@blockend/widget 1.0.29 → 1.0.31

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 (237) hide show
  1. package/dist/{AllRoutes-BI6S1_ce.js → AllRoutes-Bdi5ZW8W.js} +9 -10
  2. package/dist/{Box-C4LEcE1L.js → Box-e4gA-y_H.js} +2 -3
  3. package/dist/{EstGas-Cy36QY2c.js → EstGas-C5ihS0Mw.js} +8 -9
  4. package/dist/{Grow-CFWtr3jQ.js → Grow-B4K-I-E-.js} +2 -3
  5. package/dist/{InputComp-GOXzP194.js → InputComp-C_UUZxNU.js} +4 -5
  6. package/dist/{LoadRoute-BHtVlgUz.js → LoadRoute-CnDhVKdh.js} +5 -6
  7. package/dist/{QuotesProgress-BX0_rKsx.js → QuotesProgress-DxgPgPJE.js} +1 -2
  8. package/dist/{SwapAsset-CA5olUCO.js → SwapAsset-CmmuxeQF.js} +1 -2
  9. package/dist/{Tooltip-CSAPQuVZ.js → Tooltip-D8YjOOKU.js} +3 -4
  10. package/dist/{TxnButton-DwYxxAGp.js → TxnButton-CF-TLZrD.js} +4 -5
  11. package/dist/WidgetForm.module-DhUUlwZP.js +0 -1
  12. package/dist/{add-BRLysQx_.js → add-B8AfyNIx.js} +1 -2
  13. package/dist/{all-wallets-CTMqIWCX.js → all-wallets-BaLLU39i.js} +1 -2
  14. package/dist/{app-store-Cp0kt5bI.js → app-store-DNpoABj1.js} +1 -2
  15. package/dist/{apple-CME2ahHH.js → apple-DzzHtaL4.js} +1 -2
  16. package/dist/{arrow-bottom-DQGzC3_L.js → arrow-bottom-D2c13c51.js} +1 -2
  17. package/dist/{arrow-bottom-circle-DCCfea9l.js → arrow-bottom-circle-ls9OCLx1.js} +1 -2
  18. package/dist/{arrow-left-BZEB8Yi0.js → arrow-left-BI3rQkNI.js} +1 -2
  19. package/dist/{arrow-right-D3oUWug-.js → arrow-right-rnMzhVod.js} +1 -2
  20. package/dist/{arrow-top-L0jwd_xN.js → arrow-top-CfA6PVMz.js} +1 -2
  21. package/dist/{bank-CWIhPnb7.js → bank-CmpAmHgg.js} +1 -2
  22. package/dist/{basic-i5EtkmJ-.js → basic-Cx2xxgd9.js} +3 -4
  23. package/dist/{browser-Dwg8HqzU.js → browser-mEcjgS1H.js} +1 -2
  24. package/dist/{card-D8HhV5PJ.js → card-DkgIWcMc.js} +1 -2
  25. package/dist/{ccip-D0D8fhs0.js → ccip-BKpquA5i.js} +1 -2
  26. package/dist/{checkmark-Cc68r5tO.js → checkmark-B_A013n2.js} +1 -2
  27. package/dist/{checkmark-bold-jUylCJzk.js → checkmark-bold-DestuG2T.js} +1 -2
  28. package/dist/{chevron-bottom-Cj1CTTCf.js → chevron-bottom-Di3S86dj.js} +1 -2
  29. package/dist/{chevron-left-CPWAs3g3.js → chevron-left-A9Wj-3tj.js} +1 -2
  30. package/dist/{chevron-right-CXLbBw3Y.js → chevron-right-UFxJogOZ.js} +1 -2
  31. package/dist/{chevron-top-B_SRovV4.js → chevron-top-BbZs3eaC.js} +1 -2
  32. package/dist/{chrome-store-BixbajoM.js → chrome-store-B4F6hJmy.js} +1 -2
  33. package/dist/{clock-BZEB38B_.js → clock-BbAQ09uV.js} +1 -2
  34. package/dist/clockIcon-jSNFFrLy.js +0 -1
  35. package/dist/{close-Bs6-HBTK.js → close-CY3oZP_D.js} +1 -2
  36. package/dist/{coinPlaceholder-C9y61i8X.js → coinPlaceholder-DpfsobZT.js} +1 -2
  37. package/dist/{compass-C2avtXZS.js → compass-CHS7RZFk.js} +1 -2
  38. package/dist/{copy-DzOdZkxr.js → copy-CEd4nGhs.js} +1 -2
  39. package/dist/{core-BZZXuuw4.js → core-C-gr9X18.js} +4 -5
  40. package/dist/{cursor-Bf9iHI7p.js → cursor-BTtIlTHP.js} +1 -2
  41. package/dist/{cursor-transparent-BQEiF2ok.js → cursor-transparent-Tm6k6Ws4.js} +1 -2
  42. package/dist/{desktop-DPmyWqG5.js → desktop-CrSyXZkL.js} +1 -2
  43. package/dist/{disconnect-BQidkD6w.js → disconnect-BooT10E1.js} +1 -2
  44. package/dist/{discord-DR24fGID.js → discord-B982Qaml.js} +1 -2
  45. package/dist/{down-BkvG-2GJ.js → down-DDk8OoJG.js} +2 -3
  46. package/dist/{etherscan-Dy60oIzl.js → etherscan-CFL0IcNl.js} +1 -2
  47. package/dist/ethertousd-BOknTgU4.js +0 -1
  48. package/dist/{exclamation-triangle-HP7NPTKs.js → exclamation-triangle-BBeGXYgt.js} +1 -2
  49. package/dist/{extension-BS31sO85.js → extension-C5WqJw73.js} +1 -2
  50. package/dist/{external-link-CEik-VMT.js → external-link-CcSxVDcd.js} +1 -2
  51. package/dist/{facebook-CnyQ7n75.js → facebook-DF0v9ED8.js} +1 -2
  52. package/dist/{farcaster-BZgF-Vb2.js → farcaster-Boq7M4VK.js} +1 -2
  53. package/dist/{filters-DL1O0psz.js → filters-DfeymbPx.js} +1 -2
  54. package/dist/{getChainIds-rITF5AhT.js → getChainIds-6iugk2h0.js} +2 -3
  55. package/dist/{getCosmosAddress-F3cVcEo_.js → getCosmosAddress-BgD5iV6f.js} +2 -3
  56. package/dist/{github-Dy9CoSia.js → github-DQ8FV4bD.js} +1 -2
  57. package/dist/{google-7E1gDtp8.js → google-Dm8FDDZR.js} +1 -2
  58. package/dist/{hamburger-9OL86eJ4.js → hamburger-BYe_G11E.js} +5 -6
  59. package/dist/{help-circle-Di1WCQ0a.js → help-circle-CbgiAebR.js} +1 -2
  60. package/dist/{id-DlvuSRLo.js → id-CzqxUksI.js} +1 -2
  61. package/dist/{image-C9KlwGkO.js → image-CsCGTIN-.js} +1 -2
  62. package/dist/{index-VUHSKS3s.js → index-BAmjBHYR.js} +78 -79
  63. package/dist/{index-C1fUkQoq.js → index-BxHeZ9IF.js} +3 -4
  64. package/dist/{index-BMWxmSCJ.js → index-C7cb2O7r.js} +12 -13
  65. package/dist/{index-y2Y2qgCq.js → index-CF9p4S_X.js} +1 -2
  66. package/dist/{index-DE9MrcCA.js → index-C_vo1L7p.js} +10 -11
  67. package/dist/{index-B6VkUEzI.js → index-Ch7w83dW.js} +4 -5
  68. package/dist/{index-CtB45It1.js → index-Crhenmgw.js} +5 -6
  69. package/dist/{index-DbHvtB3i.js → index-Cz5Dosd2.js} +2 -3
  70. package/dist/{index-DNJCXmwW.js → index-D5OnT-__.js} +8 -9
  71. package/dist/index-DArR1lwi.js +0 -1
  72. package/dist/{index-BvFG_JxR.js → index-hEJSpZe-.js} +4 -5
  73. package/dist/{index-eXI3V1wT.js → index-m2O0cbD8.js} +15 -16
  74. package/dist/index-sLx4Edw4.js +0 -1
  75. package/dist/{index.es-CHo7m7wp.js → index.es-DIbGJsfa.js} +1 -2
  76. package/dist/{index.es-B6KbDmBT.js → index.es-t6sHlseh.js} +2 -3
  77. package/dist/index.es.js +1 -2
  78. package/dist/{info-circle-jE7Eeb9-.js → info-circle-Bt350Yzj.js} +1 -2
  79. package/dist/{info-N9u4Be4B.js → info-fKCfLW0k.js} +1 -2
  80. package/dist/{lightbulb-CWBMlL9o.js → lightbulb-BL9YBxiA.js} +1 -2
  81. package/dist/{mail-EzqVrU-i.js → mail-_g6CHQeQ.js} +1 -2
  82. package/dist/{mobile-BazcfAsN.js → mobile-B-EQ4IcH.js} +1 -2
  83. package/dist/{more-C23jMq4d.js → more-C3rpOdUy.js} +1 -2
  84. package/dist/{network-placeholder-CAju_EVM.js → network-placeholder-D9Ak7Xj_.js} +1 -2
  85. package/dist/{nftPlaceholder-ChYvzDe-.js → nftPlaceholder-CIIm2V_o.js} +1 -2
  86. package/dist/{off-CA_nOLym.js → off-DZjgI0eE.js} +1 -2
  87. package/dist/{play-store-CPUqc7g0.js → play-store-DvRnagoF.js} +1 -2
  88. package/dist/{plus-Bl0Y3tA2.js → plus-C2jN2huZ.js} +1 -2
  89. package/dist/{qr-code-Bqo_W-ph.js → qr-code-B64HnZgi.js} +1 -2
  90. package/dist/{recycle-horizontal-DgnidGUB.js → recycle-horizontal-CovcJGa_.js} +1 -2
  91. package/dist/{refresh-BqGHqal4.js → refresh-J1Vw6QMA.js} +1 -2
  92. package/dist/{reown-logo-xvbDZLtY.js → reown-logo-BsXoZ3KT.js} +1 -2
  93. package/dist/{search-6B7pLyuM.js → search-BC86wYXR.js} +1 -2
  94. package/dist/{secp256k1-CwqBHRCR.js → secp256k1-BkBK0mD5.js} +1 -2
  95. package/dist/{send-D2rd7Ly5.js → send-BPA1bK5G.js} +1 -2
  96. package/dist/{shareicon-YFyFHOcy.js → shareicon-C88Wx-AM.js} +2 -3
  97. package/dist/sortDown-cDA6MpOw.js +0 -1
  98. package/dist/{swapHorizontal-BBItVna7.js → swapHorizontal-47_8ePle.js} +1 -2
  99. package/dist/{swapHorizontalBold-Dubgd9Y6.js → swapHorizontalBold-CJ7TzeQP.js} +1 -2
  100. package/dist/{swapHorizontalMedium-CSxG6lVR.js → swapHorizontalMedium-CTACgUR9.js} +1 -2
  101. package/dist/{swapHorizontalRoundedBold-D34PL1Bh.js → swapHorizontalRoundedBold-Ht3_LABp.js} +1 -2
  102. package/dist/{swapVertical-0r7UQskA.js → swapVertical-DlS0V6DD.js} +1 -2
  103. package/dist/{telegram-ovAow9nb.js → telegram-UZ00kvIE.js} +1 -2
  104. package/dist/{three-dots-DOcV-lq9.js → three-dots-D9zVXr1j.js} +1 -2
  105. package/dist/truncate-DSxFWEga.js +0 -1
  106. package/dist/{twitch-PNh7HEjQ.js → twitch-CP6rpz4m.js} +1 -2
  107. package/dist/{twitterIcon-4OA21RFU.js → twitterIcon-Cm3I3FRU.js} +1 -2
  108. package/dist/{unsupportedProp-14IykURU.js → unsupportedProp-DkeDzLfM.js} +1 -2
  109. package/dist/{useRegisterError-jG_k_Jbu.js → useRegisterError-W_UfecIN.js} +1 -2
  110. package/dist/validError-rariWQ7G.js +0 -1
  111. package/dist/{verify-BcPkDFSa.js → verify-DuUE85WT.js} +1 -2
  112. package/dist/{verify-filled-BM4sK3jx.js → verify-filled-CfgydKPa.js} +1 -2
  113. package/dist/{w3m-modal-Dy5Q9QNU.js → w3m-modal-Bl-DPlah.js} +2 -3
  114. package/dist/{wallet-Dtk34v-h.js → wallet-BC2LSDlF.js} +1 -2
  115. package/dist/{wallet-placeholder-_pPhYgGm.js → wallet-placeholder-DugEJ7xM.js} +1 -2
  116. package/dist/{walletconnect-BxzjxGSG.js → walletconnect-wayCaYfk.js} +1 -2
  117. package/dist/{warning-circle-Bugxi3FB.js → warning-circle-Cy9YuvwU.js} +1 -2
  118. package/dist/{x-P3PsrJCO.js → x-jggPFiy-.js} +1 -2
  119. package/package.json +2 -2
  120. package/dist/AllRoutes-BI6S1_ce.js.map +0 -1
  121. package/dist/Box-C4LEcE1L.js.map +0 -1
  122. package/dist/EstGas-Cy36QY2c.js.map +0 -1
  123. package/dist/Grow-CFWtr3jQ.js.map +0 -1
  124. package/dist/InputComp-GOXzP194.js.map +0 -1
  125. package/dist/LoadRoute-BHtVlgUz.js.map +0 -1
  126. package/dist/QuotesProgress-BX0_rKsx.js.map +0 -1
  127. package/dist/SwapAsset-CA5olUCO.js.map +0 -1
  128. package/dist/Tooltip-CSAPQuVZ.js.map +0 -1
  129. package/dist/TxnButton-DwYxxAGp.js.map +0 -1
  130. package/dist/WidgetForm.module-DhUUlwZP.js.map +0 -1
  131. package/dist/add-BRLysQx_.js.map +0 -1
  132. package/dist/all-wallets-CTMqIWCX.js.map +0 -1
  133. package/dist/app-store-Cp0kt5bI.js.map +0 -1
  134. package/dist/apple-CME2ahHH.js.map +0 -1
  135. package/dist/arrow-bottom-DQGzC3_L.js.map +0 -1
  136. package/dist/arrow-bottom-circle-DCCfea9l.js.map +0 -1
  137. package/dist/arrow-left-BZEB8Yi0.js.map +0 -1
  138. package/dist/arrow-right-D3oUWug-.js.map +0 -1
  139. package/dist/arrow-top-L0jwd_xN.js.map +0 -1
  140. package/dist/bank-CWIhPnb7.js.map +0 -1
  141. package/dist/basic-i5EtkmJ-.js.map +0 -1
  142. package/dist/browser-Dwg8HqzU.js.map +0 -1
  143. package/dist/card-D8HhV5PJ.js.map +0 -1
  144. package/dist/ccip-D0D8fhs0.js.map +0 -1
  145. package/dist/checkmark-Cc68r5tO.js.map +0 -1
  146. package/dist/checkmark-bold-jUylCJzk.js.map +0 -1
  147. package/dist/chevron-bottom-Cj1CTTCf.js.map +0 -1
  148. package/dist/chevron-left-CPWAs3g3.js.map +0 -1
  149. package/dist/chevron-right-CXLbBw3Y.js.map +0 -1
  150. package/dist/chevron-top-B_SRovV4.js.map +0 -1
  151. package/dist/chrome-store-BixbajoM.js.map +0 -1
  152. package/dist/clock-BZEB38B_.js.map +0 -1
  153. package/dist/clockIcon-jSNFFrLy.js.map +0 -1
  154. package/dist/close-Bs6-HBTK.js.map +0 -1
  155. package/dist/coinPlaceholder-C9y61i8X.js.map +0 -1
  156. package/dist/compass-C2avtXZS.js.map +0 -1
  157. package/dist/copy-DzOdZkxr.js.map +0 -1
  158. package/dist/core-BZZXuuw4.js.map +0 -1
  159. package/dist/cursor-Bf9iHI7p.js.map +0 -1
  160. package/dist/cursor-transparent-BQEiF2ok.js.map +0 -1
  161. package/dist/desktop-DPmyWqG5.js.map +0 -1
  162. package/dist/disconnect-BQidkD6w.js.map +0 -1
  163. package/dist/discord-DR24fGID.js.map +0 -1
  164. package/dist/down-BkvG-2GJ.js.map +0 -1
  165. package/dist/etherscan-Dy60oIzl.js.map +0 -1
  166. package/dist/ethertousd-BOknTgU4.js.map +0 -1
  167. package/dist/exclamation-triangle-HP7NPTKs.js.map +0 -1
  168. package/dist/extension-BS31sO85.js.map +0 -1
  169. package/dist/external-link-CEik-VMT.js.map +0 -1
  170. package/dist/facebook-CnyQ7n75.js.map +0 -1
  171. package/dist/farcaster-BZgF-Vb2.js.map +0 -1
  172. package/dist/filters-DL1O0psz.js.map +0 -1
  173. package/dist/getChainIds-rITF5AhT.js.map +0 -1
  174. package/dist/getCosmosAddress-F3cVcEo_.js.map +0 -1
  175. package/dist/github-Dy9CoSia.js.map +0 -1
  176. package/dist/google-7E1gDtp8.js.map +0 -1
  177. package/dist/hamburger-9OL86eJ4.js.map +0 -1
  178. package/dist/help-circle-Di1WCQ0a.js.map +0 -1
  179. package/dist/id-DlvuSRLo.js.map +0 -1
  180. package/dist/image-C9KlwGkO.js.map +0 -1
  181. package/dist/index-B6VkUEzI.js.map +0 -1
  182. package/dist/index-BMWxmSCJ.js.map +0 -1
  183. package/dist/index-BvFG_JxR.js.map +0 -1
  184. package/dist/index-C1fUkQoq.js.map +0 -1
  185. package/dist/index-CtB45It1.js.map +0 -1
  186. package/dist/index-DArR1lwi.js.map +0 -1
  187. package/dist/index-DE9MrcCA.js.map +0 -1
  188. package/dist/index-DNJCXmwW.js.map +0 -1
  189. package/dist/index-DbHvtB3i.js.map +0 -1
  190. package/dist/index-VUHSKS3s.js.map +0 -1
  191. package/dist/index-eXI3V1wT.js.map +0 -1
  192. package/dist/index-sLx4Edw4.js.map +0 -1
  193. package/dist/index-y2Y2qgCq.js.map +0 -1
  194. package/dist/index.es-B6KbDmBT.js.map +0 -1
  195. package/dist/index.es-CHo7m7wp.js.map +0 -1
  196. package/dist/index.es.js.map +0 -1
  197. package/dist/info-N9u4Be4B.js.map +0 -1
  198. package/dist/info-circle-jE7Eeb9-.js.map +0 -1
  199. package/dist/lightbulb-CWBMlL9o.js.map +0 -1
  200. package/dist/mail-EzqVrU-i.js.map +0 -1
  201. package/dist/mobile-BazcfAsN.js.map +0 -1
  202. package/dist/more-C23jMq4d.js.map +0 -1
  203. package/dist/network-placeholder-CAju_EVM.js.map +0 -1
  204. package/dist/nftPlaceholder-ChYvzDe-.js.map +0 -1
  205. package/dist/off-CA_nOLym.js.map +0 -1
  206. package/dist/play-store-CPUqc7g0.js.map +0 -1
  207. package/dist/plus-Bl0Y3tA2.js.map +0 -1
  208. package/dist/qr-code-Bqo_W-ph.js.map +0 -1
  209. package/dist/recycle-horizontal-DgnidGUB.js.map +0 -1
  210. package/dist/refresh-BqGHqal4.js.map +0 -1
  211. package/dist/reown-logo-xvbDZLtY.js.map +0 -1
  212. package/dist/search-6B7pLyuM.js.map +0 -1
  213. package/dist/secp256k1-CwqBHRCR.js.map +0 -1
  214. package/dist/send-D2rd7Ly5.js.map +0 -1
  215. package/dist/shareicon-YFyFHOcy.js.map +0 -1
  216. package/dist/sortDown-cDA6MpOw.js.map +0 -1
  217. package/dist/swapHorizontal-BBItVna7.js.map +0 -1
  218. package/dist/swapHorizontalBold-Dubgd9Y6.js.map +0 -1
  219. package/dist/swapHorizontalMedium-CSxG6lVR.js.map +0 -1
  220. package/dist/swapHorizontalRoundedBold-D34PL1Bh.js.map +0 -1
  221. package/dist/swapVertical-0r7UQskA.js.map +0 -1
  222. package/dist/telegram-ovAow9nb.js.map +0 -1
  223. package/dist/three-dots-DOcV-lq9.js.map +0 -1
  224. package/dist/truncate-DSxFWEga.js.map +0 -1
  225. package/dist/twitch-PNh7HEjQ.js.map +0 -1
  226. package/dist/twitterIcon-4OA21RFU.js.map +0 -1
  227. package/dist/unsupportedProp-14IykURU.js.map +0 -1
  228. package/dist/useRegisterError-jG_k_Jbu.js.map +0 -1
  229. package/dist/validError-rariWQ7G.js.map +0 -1
  230. package/dist/verify-BcPkDFSa.js.map +0 -1
  231. package/dist/verify-filled-BM4sK3jx.js.map +0 -1
  232. package/dist/w3m-modal-Dy5Q9QNU.js.map +0 -1
  233. package/dist/wallet-Dtk34v-h.js.map +0 -1
  234. package/dist/wallet-placeholder-_pPhYgGm.js.map +0 -1
  235. package/dist/walletconnect-BxzjxGSG.js.map +0 -1
  236. package/dist/warning-circle-Bugxi3FB.js.map +0 -1
  237. package/dist/x-P3PsrJCO.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRegisterError-jG_k_Jbu.js","sources":["../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/utils/node_modules/react-is/cjs/react-is.production.js","../node_modules/@mui/utils/node_modules/react-is/cjs/react-is.development.js","../node_modules/@mui/utils/node_modules/react-is/index.js","../node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/utils/esm/chainPropTypes/chainPropTypes.js","../node_modules/@mui/utils/esm/elementAcceptingRef/elementAcceptingRef.js","../node_modules/@mui/utils/esm/exactProp/exactProp.js","../node_modules/@mui/utils/esm/HTMLElementType/HTMLElementType.js","../node_modules/@mui/utils/esm/refType/refType.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/utils/esm/useLazyRef/useLazyRef.js","../node_modules/@mui/utils/esm/useOnMount/useOnMount.js","../node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../node_modules/@mui/utils/esm/useIsFocusVisible/useIsFocusVisible.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","../node_modules/@mui/utils/esm/getReactElementRef/getReactElementRef.js","../node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@mui/system/createStyled.js","../node_modules/@mui/material/styles/slotShouldForwardProp.js","../node_modules/@mui/material/styles/rootShouldForwardProp.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/PropTypes.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/Portal/Portal.js","../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../node_modules/@mui/material/CircularProgress/CircularProgress.js","../src/Assets/coinbaseicon.svg","../src/Assets/injectedicon.svg","../src/Assets/metamaskicon.svg","../src/Assets/tick.png","../src/Assets/walletconnecticon.svg","../src/Assets/walleticon.svg","../src/Assets/gasnew.svg","../src/Assets/phantom.svg","../src/Assets/solflare.svg","../src/Assets/slope.svg","../src/Assets/backpacksol.svg","../src/Assets/magiceden.svg","../src/Assets/tronlinkicon.svg","../src/Assets/barchartdisconnect.png","../src/Assets/defaulticon.png","../src/Assets/keplr.svg","../src/Assets/cosmos.svg","../src/Assets/evmwal.svg","../src/Assets/solwal.svg","../src/Assets/ethereumicon.svg","../src/Assets/solanaicon.svg","../src/Assets/txnupdate.svg","../src/Assets/bravebrowser.svg","../src/Assets/cosmosicon.svg","../src/images.js","../src/Components/Svg/backButton.js","../src/hooks/useWalletDetails.js","../src/utils/formatNumber.js","../src/utils/fixString.js","../src/utils/formatCryptoValue.js","../node_modules/lottie-web/build/player/lottie.js","../src/Components/Svg/walletIcon.js","../src/hooks/useRegisterError.js"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-f0de968e.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-f0de968e.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx = function jsx(type, props) {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\n(function (_jsx) {\n var JSX;\n\n (function (_JSX) {})(JSX || (JSX = _jsx.JSX || (_jsx.JSX = {})));\n})(jsx || (jsx = {}));\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false;\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nfunction keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n}\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && isDevelopment) {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\n\nvar isDevelopment = false;\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n // eslint-disable-next-line prefer-spread\n styles.push.apply(styles, args);\n } else {\n var templateStringsArr = args[0];\n\n styles.push(templateStringsArr[0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], templateStringsArr[i]);\n }\n }\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n var newStyled = createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n }));\n return newStyled.apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/react';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\nimport '@emotion/utils';\nimport 'react';\nimport '@emotion/is-prop-valid';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// bind it to avoid mutating the original function\nvar newStyled = createStyled.bind(null);\ntags.forEach(function (tagName) {\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the <head> so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nlet cache;\nif (typeof document === 'object') {\n cache = createCache({\n key: 'css',\n prepend: true\n });\n}\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n children\n } = props;\n return injectFirst && cache ? /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n }) : children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * By default, the styles are injected last in the <head> element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * @mui/styled-engine v5.16.14\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","/**\n * @license React\n * react-is.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\nSymbol.for(\"react.provider\");\nvar REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nexports.ContextConsumer = REACT_CONSUMER_TYPE;\nexports.ContextProvider = REACT_CONTEXT_TYPE;\nexports.Element = REACT_ELEMENT_TYPE;\nexports.ForwardRef = REACT_FORWARD_REF_TYPE;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Lazy = REACT_LAZY_TYPE;\nexports.Memo = REACT_MEMO_TYPE;\nexports.Portal = REACT_PORTAL_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n};\nexports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n};\nexports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n};\nexports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n};\nexports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n};\nexports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n};\nexports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n};\nexports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n};\nexports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n};\nexports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n};\nexports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n};\nexports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n};\nexports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n};\nexports.typeOf = typeOf;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n exports.ContextConsumer = REACT_CONSUMER_TYPE;\n exports.ContextProvider = REACT_CONTEXT_TYPE;\n exports.Element = REACT_ELEMENT_TYPE;\n exports.ForwardRef = REACT_FORWARD_REF_TYPE;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Lazy = REACT_LAZY_TYPE;\n exports.Memo = REACT_MEMO_TYPE;\n exports.Portal = REACT_PORTAL_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n exports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n };\n exports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n };\n exports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n };\n exports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n };\n exports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n };\n exports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n };\n exports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n };\n exports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n };\n exports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n };\n exports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n };\n exports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n };\n exports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n };\n exports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n };\n exports.typeOf = typeOf;\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { ForwardRef, Memo } from 'react-is';\n\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nconst fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n const match = `${fn}`.match(fnNameMatchRegex);\n const name = match && match[1];\n return name || '';\n}\nfunction getFunctionComponentName(Component, fallback = '') {\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\nfunction getWrappedName(outerType, innerType, wrapperName) {\n const functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);\n}\n\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE11 support\n */\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`\n if (typeof Component === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n default:\n return undefined;\n }\n }\n return undefined;\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","export default function chainPropTypes(propType1, propType2) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return function validate(...args) {\n return propType1(...args) || propType2(...args);\n };\n}","import PropTypes from 'prop-types';\nimport chainPropTypes from '../chainPropTypes';\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n const {\n prototype = {}\n } = elementType;\n return Boolean(prototype.isReactComponent);\n}\nfunction acceptingRef(props, propName, componentName, location, propFullName) {\n const element = props[propName];\n const safePropName = propFullName || propName;\n if (element == null ||\n // When server-side rendering React doesn't warn either.\n // This is not an accurate check for SSR.\n // This is only in place for Emotion compat.\n // TODO: Revisit once https://github.com/facebook/react/issues/20047 is resolved.\n typeof window === 'undefined') {\n return null;\n }\n let warningHint;\n const elementType = element.type;\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n if (typeof elementType === 'function' && !isClassComponent(elementType)) {\n warningHint = 'Did you accidentally use a plain function component for an element instead?';\n }\n if (warningHint !== undefined) {\n return new Error(`Invalid ${location} \\`${safePropName}\\` supplied to \\`${componentName}\\`. ` + `Expected an element that can hold a ref. ${warningHint} ` + 'For more information see https://mui.com/r/caveat-with-refs-guide');\n }\n return null;\n}\nconst elementAcceptingRef = chainPropTypes(PropTypes.element, acceptingRef);\nelementAcceptingRef.isRequired = chainPropTypes(PropTypes.element.isRequired, acceptingRef);\nexport default elementAcceptingRef;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// This module is based on https://github.com/airbnb/prop-types-exact repository.\n// However, in order to reduce the number of dependencies and to remove some extra safe checks\n// the module was forked.\n\nconst specialProperty = 'exact-prop: \\u200b';\nexport default function exactProp(propTypes) {\n if (process.env.NODE_ENV === 'production') {\n return propTypes;\n }\n return _extends({}, propTypes, {\n [specialProperty]: props => {\n const unsupportedProps = Object.keys(props).filter(prop => !propTypes.hasOwnProperty(prop));\n if (unsupportedProps.length > 0) {\n return new Error(`The following props are not supported: ${unsupportedProps.map(prop => `\\`${prop}\\``).join(', ')}. Please remove them.`);\n }\n return null;\n }\n });\n}","export default function HTMLElementType(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propValue = props[propName];\n const safePropName = propFullName || propName;\n if (propValue == null) {\n return null;\n }\n if (propValue && propValue.nodeType !== 1) {\n return new Error(`Invalid ${location} \\`${safePropName}\\` supplied to \\`${componentName}\\`. ` + `Expected an HTMLElement.`);\n }\n return null;\n}","import PropTypes from 'prop-types';\nconst refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);\nexport default refType;","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport * as React from 'react';\nconst UNINITIALIZED = {};\n\n/**\n * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional\n * initialization argument, so the initialization function doesn't need to be an inline closure.\n *\n * @usage\n * const ref = useLazyRef(sortColumns, columns)\n */\nexport default function useLazyRef(init, initArg) {\n const ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = init(initArg);\n }\n return ref;\n}","'use client';\n\nimport * as React from 'react';\nconst EMPTY = [];\n\n/**\n * A React.useEffect equivalent that runs once, when the component is mounted.\n */\nexport default function useOnMount(fn) {\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(fn, EMPTY);\n /* eslint-enable react-hooks/exhaustive-deps */\n}","'use client';\n\nimport useLazyRef from '../useLazyRef/useLazyRef';\nimport useOnMount from '../useOnMount/useOnMount';\nexport class Timeout {\n constructor() {\n this.currentId = null;\n this.clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n this.disposeEffect = () => {\n return this.clear;\n };\n }\n static create() {\n return new Timeout();\n }\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nfunction isHostComponent(element) {\n return typeof element === 'string';\n}\nexport default isHostComponent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport isHostComponent from '../isHostComponent';\n\n/**\n * Type of the ownerState based on the type of an element it applies to.\n * This resolves to the provided OwnerState for React components and `undefined` for host components.\n * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.\n */\n\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.\n * @param otherProps Props of the element.\n * @param ownerState\n */\nfunction appendOwnerState(elementType, otherProps, ownerState) {\n if (elementType === undefined || isHostComponent(elementType)) {\n return otherProps;\n }\n return _extends({}, otherProps, {\n ownerState: _extends({}, otherProps.ownerState, ownerState)\n });\n}\nexport default appendOwnerState;","/**\n * Extracts event handlers from a given object.\n * A prop is considered an event handler if it is a function and its name starts with `on`.\n *\n * @param object An object to extract event handlers from.\n * @param excludeKeys An array of keys to exclude from the returned object.\n */\nfunction extractEventHandlers(object, excludeKeys = []) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default extractEventHandlers;","/**\n * Removes event handlers from the given object.\n * A field is considered an event handler if it is a function with a name beginning with `on`.\n *\n * @param object Object to remove event handlers from.\n * @returns Object with event handlers removed.\n */\nfunction omitEventHandlers(object) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default omitEventHandlers;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport clsx from 'clsx';\nimport extractEventHandlers from '../extractEventHandlers';\nimport omitEventHandlers from '../omitEventHandlers';\n/**\n * Merges the slot component internal props (usually coming from a hook)\n * with the externally provided ones.\n *\n * The merge order is (the latter overrides the former):\n * 1. The internal props (specified as a getter function to work with get*Props hook result)\n * 2. Additional props (specified internally on a Base UI component)\n * 3. External props specified on the owner component. These should only be used on a root slot.\n * 4. External props specified in the `slotProps.*` prop.\n * 5. The `className` prop - combined from all the above.\n * @param parameters\n * @returns\n */\nfunction mergeSlotProps(parameters) {\n const {\n getSlotProps,\n additionalProps,\n externalSlotProps,\n externalForwardedProps,\n className\n } = parameters;\n if (!getSlotProps) {\n // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,\n // so we can simply merge all the props without having to worry about extracting event handlers.\n const joinedClasses = clsx(additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, additionalProps, externalForwardedProps, externalSlotProps);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: undefined\n };\n }\n\n // In this case, getSlotProps is responsible for calling the external event handlers.\n // We don't need to include them in the merged props because of this.\n\n const eventHandlers = extractEventHandlers(_extends({}, externalForwardedProps, externalSlotProps));\n const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);\n const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);\n const internalSlotProps = getSlotProps(eventHandlers);\n\n // The order of classes is important here.\n // Emotion (that we use in libraries consuming Base UI) depends on this order\n // to properly override style. It requires the most important classes to be last\n // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.\n const joinedClasses = clsx(internalSlotProps == null ? void 0 : internalSlotProps.className, additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, internalSlotProps == null ? void 0 : internalSlotProps.style, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, internalSlotProps, additionalProps, otherPropsWithoutEventHandlers, componentsPropsWithoutEventHandlers);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: internalSlotProps.ref\n };\n}\nexport default mergeSlotProps;","/**\n * If `componentProps` is a function, calls it with the provided `ownerState`.\n * Otherwise, just returns `componentProps`.\n */\nfunction resolveComponentProps(componentProps, ownerState, slotState) {\n if (typeof componentProps === 'function') {\n return componentProps(ownerState, slotState);\n }\n return componentProps;\n}\nexport default resolveComponentProps;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"elementType\", \"externalSlotProps\", \"ownerState\", \"skipResolvingSlotProps\"];\nimport useForkRef from '../useForkRef';\nimport appendOwnerState from '../appendOwnerState';\nimport mergeSlotProps from '../mergeSlotProps';\nimport resolveComponentProps from '../resolveComponentProps';\n/**\n * @ignore - do not document.\n * Builds the props to be passed into the slot of an unstyled component.\n * It merges the internal props of the component with the ones supplied by the user, allowing to customize the behavior.\n * If the slot component is not a host component, it also merges in the `ownerState`.\n *\n * @param parameters.getSlotProps - A function that returns the props to be passed to the slot component.\n */\nfunction useSlotProps(parameters) {\n var _parameters$additiona;\n const {\n elementType,\n externalSlotProps,\n ownerState,\n skipResolvingSlotProps = false\n } = parameters,\n rest = _objectWithoutPropertiesLoose(parameters, _excluded);\n const resolvedComponentsProps = skipResolvingSlotProps ? {} : resolveComponentProps(externalSlotProps, ownerState);\n const {\n props: mergedProps,\n internalRef\n } = mergeSlotProps(_extends({}, rest, {\n externalSlotProps: resolvedComponentsProps\n }));\n const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, (_parameters$additiona = parameters.additionalProps) == null ? void 0 : _parameters$additiona.ref);\n const props = appendOwnerState(elementType, _extends({}, mergedProps, {\n ref\n }), ownerState);\n return props;\n}\nexport default useSlotProps;","import * as React from 'react';\n\n/**\n * Returns the ref of a React element handling differences between React 19 and older versions.\n * It will throw runtime error if the element is not a valid React element.\n *\n * @param element React.ReactElement\n * @returns React.Ref<any> | null\n */\nexport default function getReactElementRef(element) {\n // 'ref' is passed as prop in React 19, whereas 'ref' is directly attached to children in older versions\n if (parseInt(React.version, 10) >= 19) {\n var _element$props;\n return (element == null || (_element$props = element.props) == null ? void 0 : _element$props.ref) || null;\n }\n // @ts-expect-error element.ref is not included in the ReactElement type\n // https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/70189\n return (element == null ? void 0 : element.ref) || null;\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveProps from '@mui/utils/resolveProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PropsContext = /*#__PURE__*/React.createContext(undefined);\nfunction DefaultPropsProvider({\n value,\n children\n}) {\n return /*#__PURE__*/_jsx(PropsContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object\n} : void 0;\nfunction getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name]) {\n return props;\n }\n const config = theme.components[name];\n if (config.defaultProps) {\n // compatible with v5 signature\n return resolveProps(config.defaultProps, props);\n }\n if (!config.styleOverrides && !config.variants) {\n // v6 signature, no property 'defaultProps'\n return resolveProps(config, props);\n }\n return props;\n}\nexport function useDefaultProps({\n props,\n name\n}) {\n const ctx = React.useContext(PropsContext);\n return getThemeProps({\n props,\n name,\n theme: {\n components: ctx\n }\n });\n}\nexport default DefaultPropsProvider;","'use client';\n\nimport * as React from 'react';\nimport { useTheme as useThemeSystem } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nexport default function useTheme() {\n const theme = useThemeSystem(defaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme[THEME_ID] || theme;\n}","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createStyled;\nexports.shouldForwardProp = shouldForwardProp;\nexports.systemDefaultTheme = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _styledEngine = _interopRequireWildcard(require(\"@mui/styled-engine\"));\nvar _deepmerge = require(\"@mui/utils/deepmerge\");\nvar _capitalize = _interopRequireDefault(require(\"@mui/utils/capitalize\"));\nvar _getDisplayName = _interopRequireDefault(require(\"@mui/utils/getDisplayName\"));\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\nvar _styleFunctionSx = _interopRequireDefault(require(\"./styleFunctionSx\"));\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nfunction shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nconst systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref) {\n let {\n ownerState\n } = _ref,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({\n ownerState\n }, props)));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props((0, _extends2.default)({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n result.push(typeof variant.style === 'function' ? variant.style((0, _extends2.default)({\n ownerState\n }, props, ownerState)) : variant.style);\n }\n });\n return result;\n }\n return resolvedStylesArg;\n}\nfunction createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, {\n theme: resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n (0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = (0, _styledEngine.default)(tag, (0, _extends2.default)({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {\n return props => processStyleArg(stylesArg, (0, _extends2.default)({}, props, {\n theme: resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n })\n }));\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${(0, _getDisplayName.default)(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","// copied from @mui/system/createStyled\nfunction slotShouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport default slotShouldForwardProp;","import slotShouldForwardProp from './slotShouldForwardProp';\nconst rootShouldForwardProp = prop => slotShouldForwardProp(prop) && prop !== 'classes';\nexport default rootShouldForwardProp;","'use client';\n\nimport createStyled from '@mui/system/createStyled';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nimport rootShouldForwardProp from './rootShouldForwardProp';\nexport { default as slotShouldForwardProp } from './slotShouldForwardProp';\nexport { default as rootShouldForwardProp } from './rootShouldForwardProp';\nconst styled = createStyled({\n themeId: THEME_ID,\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport SystemDefaultPropsProvider, { useDefaultProps as useSystemDefaultProps } from '@mui/system/DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction DefaultPropsProvider(props) {\n return /*#__PURE__*/_jsx(SystemDefaultPropsProvider, _extends({}, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object.isRequired\n} : void 0;\nexport default DefaultPropsProvider;\nexport function useDefaultProps(params) {\n return useSystemDefaultProps(params);\n}","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","export default {\n disabled: false\n};","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n enter: PropTypes.number,\n exit: PropTypes.number,\n appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string,\n active: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterDone: PropTypes.string,\n enterActive: PropTypes.string,\n exit: PropTypes.string,\n exitDone: PropTypes.string,\n exitActive: PropTypes.string\n})]) : null;","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export const reflow = node => node.scrollTop;\nexport function getTransitionProps(props, options) {\n var _style$transitionDura, _style$transitionTimi;\n const {\n timeout,\n easing,\n style = {}\n } = props;\n return {\n duration: (_style$transitionDura = style.transitionDuration) != null ? _style$transitionDura : typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n easing: (_style$transitionTimi = style.transitionTimingFunction) != null ? _style$transitionTimi : typeof easing === 'object' ? easing[options.mode] : easing,\n delay: style.transitionDelay\n };\n}","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { exactProp, HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef, unstable_setRef as setRef, unstable_getReactElementRef as getReactElementRef } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\n\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n *\n * Demos:\n *\n * - [Portal](https://mui.com/material-ui/react-portal/)\n *\n * API:\n *\n * - [Portal API](https://mui.com/material-ui/api/portal/)\n */\nconst Portal = /*#__PURE__*/React.forwardRef(function Portal(props, forwardedRef) {\n const {\n children,\n container,\n disablePortal = false\n } = props;\n const [mountNode, setMountNode] = React.useState(null);\n const handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? getReactElementRef(children) : null, forwardedRef);\n useEnhancedEffect(() => {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(() => {\n if (mountNode && !disablePortal) {\n setRef(forwardedRef, mountNode);\n return () => {\n setRef(forwardedRef, null);\n };\n }\n return undefined;\n }, [forwardedRef, mountNode, disablePortal]);\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n const newProps = {\n ref: handleRef\n };\n return /*#__PURE__*/React.cloneElement(children, newProps);\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: children\n });\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Portal.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The children to render into the `container`.\n */\n children: PropTypes.node,\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\nexport default Portal;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCircularProgressUtilityClass(slot) {\n return generateUtilityClass('MuiCircularProgress', slot);\n}\nconst circularProgressClasses = generateUtilityClasses('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);\nexport default circularProgressClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"disableShrink\", \"size\", \"style\", \"thickness\", \"value\", \"variant\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { keyframes, css } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport { getCircularProgressUtilityClass } from './circularProgressClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SIZE = 44;\nconst circularRotateKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`));\nconst circularDashKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n`));\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color,\n disableShrink\n } = ownerState;\n const slots = {\n root: ['root', variant, `color${capitalize(color)}`],\n svg: ['svg'],\n circle: ['circle', `circle${capitalize(variant)}`, disableShrink && 'circleDisableShrink']\n };\n return composeClasses(slots, getCircularProgressUtilityClass, classes);\n};\nconst CircularProgressRoot = styled('span', {\n name: 'MuiCircularProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n display: 'inline-block'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('transform')\n}, ownerState.color !== 'inherit' && {\n color: (theme.vars || theme).palette[ownerState.color].main\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && css(_t3 || (_t3 = _`\n animation: ${0} 1.4s linear infinite;\n `), circularRotateKeyframe));\nconst CircularProgressSVG = styled('svg', {\n name: 'MuiCircularProgress',\n slot: 'Svg',\n overridesResolver: (props, styles) => styles.svg\n})({\n display: 'block' // Keeps the progress centered\n});\nconst CircularProgressCircle = styled('circle', {\n name: 'MuiCircularProgress',\n slot: 'Circle',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.circle, styles[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles.circleDisableShrink];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n stroke: 'currentColor'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('stroke-dashoffset')\n}, ownerState.variant === 'indeterminate' && {\n // Some default value that looks fine waiting for the animation to kicks in.\n strokeDasharray: '80px, 200px',\n strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && !ownerState.disableShrink && css(_t4 || (_t4 = _`\n animation: ${0} 1.4s ease-in-out infinite;\n `), circularDashKeyframe));\n\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\nconst CircularProgress = /*#__PURE__*/React.forwardRef(function CircularProgress(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCircularProgress'\n });\n const {\n className,\n color = 'primary',\n disableShrink = false,\n size = 40,\n style,\n thickness = 3.6,\n value = 0,\n variant = 'indeterminate'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n disableShrink,\n size,\n thickness,\n value,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const circleStyle = {};\n const rootStyle = {};\n const rootProps = {};\n if (variant === 'determinate') {\n const circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps['aria-valuenow'] = Math.round(value);\n circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;\n rootStyle.transform = 'rotate(-90deg)';\n }\n return /*#__PURE__*/_jsx(CircularProgressRoot, _extends({\n className: clsx(classes.root, className),\n style: _extends({\n width: size,\n height: size\n }, rootStyle, style),\n ownerState: ownerState,\n ref: ref,\n role: \"progressbar\"\n }, rootProps, other, {\n children: /*#__PURE__*/_jsx(CircularProgressSVG, {\n className: classes.svg,\n ownerState: ownerState,\n viewBox: `${SIZE / 2} ${SIZE / 2} ${SIZE} ${SIZE}`,\n children: /*#__PURE__*/_jsx(CircularProgressCircle, {\n className: classes.circle,\n style: circleStyle,\n ownerState: ownerState,\n cx: SIZE,\n cy: SIZE,\n r: (SIZE - thickness) / 2,\n fill: \"none\",\n strokeWidth: thickness\n })\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CircularProgress.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the shrink animation is disabled.\n * This only works if variant is `indeterminate`.\n * @default false\n */\n disableShrink: chainPropTypes(PropTypes.bool, props => {\n if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n return new Error('MUI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n }\n return null;\n }),\n /**\n * The size of the component.\n * If using a number, the pixel unit is assumed.\n * If using a string, you need to provide the CSS unit, for example '3rem'.\n * @default 40\n */\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The thickness of the circle.\n * @default 3.6\n */\n thickness: PropTypes.number,\n /**\n * The value of the progress indicator for the determinate variant.\n * Value between 0 and 100.\n * @default 0\n */\n value: PropTypes.number,\n /**\n * The variant to use.\n * Use indeterminate when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['determinate', 'indeterminate'])\n} : void 0;\nexport default CircularProgress;","export default \"data:image/svg+xml,%3csvg%20width='70'%20height='70'%20viewBox='0%200%2070%2070'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M35%2070C54.33%2070%2070%2054.33%2070%2035C70%2015.67%2054.33%200%2035%200C15.67%200%200%2015.67%200%2035C0%2054.33%2015.67%2070%2035%2070Z'%20fill='%230052FF'/%3e%3cpath%20d='M35.2939%2024.7345C39.4146%2024.7345%2042.6836%2027.2761%2043.925%2031.0557H52.2266C50.7227%2022.9749%2044.0556%2017.5%2035.3603%2017.5C25.4857%2017.5%2017.7734%2024.9956%2017.7734%2035.0335C17.7734%2045.0714%2025.293%2052.5%2035.3603%2052.5C43.8607%2052.5%2050.6604%2047.0251%2052.1657%2038.8773H43.9243C42.7472%2042.6576%2039.481%2045.2655%2035.3575%2045.2655C29.668%2045.2655%2025.6806%2040.898%2025.6806%2035.0335C25.6833%2029.102%2029.6064%2024.7345%2035.2939%2024.7345Z'%20fill='white'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='70'%20height='70'%20viewBox='0%200%2070%2070'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='69'%20height='69'%20rx='9.5'%20fill='white'%20stroke='%23F0F1F3'/%3e%3cpath%20d='M19.5826%2062.3648C26.0485%2062.3648%2031.2901%2057.1232%2031.2901%2050.6573C31.2901%2044.1914%2026.0485%2038.9497%2019.5826%2038.9497C13.1167%2038.9497%207.875%2044.1914%207.875%2050.6573C7.875%2057.1232%2013.1167%2062.3648%2019.5826%2062.3648Z'%20fill='url(%23paint0_linear_4268_19460)'/%3e%3cpath%20d='M27.9807%2050.8078H25.9139C25.9139%2046.5789%2022.5009%2043.1523%2018.2856%2043.1523C14.1111%2043.1523%2010.7117%2046.4838%2010.6301%2050.6582C10.5485%2054.9279%2014.5734%2058.64%2018.8567%2058.64H19.4006C23.1807%2058.64%2028.2526%2055.6894%2029.0413%2052.0996C29.1637%2051.5149%2028.783%2050.9574%2028.1983%2050.835C28.1303%2050.8078%2028.0623%2050.8078%2027.9807%2050.8078ZM15.1989%2050.9982C15.1989%2051.5693%2014.7366%2052.018%2014.1655%2052.018C13.5944%2052.018%2013.1457%2051.5557%2013.1457%2050.9982V49.3393C13.1457%2048.7682%2013.608%2048.3194%2014.1791%2048.3194C14.7502%2048.3194%2015.1989%2048.7818%2015.1989%2049.3393V50.9982ZM18.7615%2050.9982C18.7615%2051.5693%2018.2992%2052.018%2017.7281%2052.018C17.157%2052.018%2016.7083%2051.5557%2016.7083%2050.9982V49.3393C16.7083%2048.7682%2017.1706%2048.3194%2017.7417%2048.3194C18.3128%2048.3194%2018.7615%2048.7818%2018.7615%2049.3393V50.9982Z'%20fill='url(%23paint1_linear_4268_19460)'/%3e%3cpath%20d='M52.7032%2039.375H46.1718C45.9474%2039.375%2045.7729%2039.5584%2045.7729%2039.7785C45.6358%2045.9899%2042.4324%2051.8834%2036.9106%2056.0529C36.7361%2056.1874%2036.6988%2056.4319%2036.8234%2056.6153L40.65%2061.9586C40.7747%2062.142%2041.0364%2062.1787%2041.2109%2062.0442C44.6636%2059.452%2047.4432%2056.3219%2049.4375%2052.8616C51.4318%2056.3341%2054.2114%2059.452%2057.6641%2062.0442C57.8386%2062.1787%2058.1003%2062.142%2058.225%2061.9586L62.0516%2056.6153C62.1763%2056.4319%2062.1389%2056.1874%2061.9644%2056.0529C56.4426%2051.8834%2053.2392%2045.9899%2053.1021%2039.7785C53.1021%2039.5462%2052.9276%2039.375%2052.7032%2039.375Z'%20fill='%23FF875B'/%3e%3cpath%20d='M60.4325%209.3584L50.5977%2016.6625L52.4167%2012.353L60.4325%209.3584Z'%20fill='%23E2761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M60.444%209.34648C60.4499%209.35736%2060.4469%209.37094%2060.437%209.37833L50.6022%2016.6824C50.5932%2016.6891%2050.5808%2016.689%2050.572%2016.682C50.5632%2016.6751%2050.5601%2016.6631%2050.5645%2016.6528L52.3835%2012.3433C52.3862%2012.337%2052.3913%2012.3321%2052.3977%2012.3297L60.4135%209.33507C60.4251%209.33074%2060.4381%209.3356%2060.444%209.34648ZM52.4252%2012.3726L50.6457%2016.5882L60.2663%209.44312L52.4252%2012.3726Z'%20fill='%23E2761B'/%3e%3cpath%20d='M37.7109%209.3584L47.4667%2016.7316L45.7366%2012.353L37.7109%209.3584Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M37.714%209.3464C37.72%209.33558%2037.7329%209.33075%2037.7445%209.33507L45.7702%2012.3297C45.7768%2012.3322%2045.782%2012.3373%2045.7846%2012.3439L47.5147%2016.7225C47.5188%2016.7328%2047.5155%2016.7447%2047.5066%2016.7514C47.4977%2016.7581%2047.4854%2016.7582%2047.4765%2016.7514L37.7208%209.3782C37.711%209.37076%2037.7081%209.35722%2037.714%209.3464ZM37.8866%209.44117L47.4359%2016.6584L45.7424%2012.3724L37.8866%209.44117Z'%20fill='%23E4761B'/%3e%3cpath%20d='M56.8809%2026.29L54.2617%2030.3031L59.8661%2031.8447L61.4773%2026.3791L56.8809%2026.29Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M56.8498%2026.2754C56.8545%2026.2683%2056.8625%2026.264%2056.8711%2026.2642L61.4675%2026.3532C61.4753%2026.3533%2061.4825%2026.3571%2061.4871%2026.3633C61.4917%2026.3696%2061.4931%2026.3776%2061.4909%2026.3851L59.8797%2031.8507C59.8758%2031.8637%2059.8623%2031.8713%2059.8492%2031.8677L54.2448%2030.3261C54.2372%2030.324%2054.231%2030.3183%2054.2282%2030.3109C54.2254%2030.3035%2054.2263%2030.2952%2054.2306%2030.2885L56.8498%2026.2754ZM56.8839%2026.3142L54.2909%2030.2872L59.8389%2031.8132L61.434%2026.4023L56.8839%2026.3142Z'%20fill='%23E4761B'/%3e%3cpath%20d='M36.6914%2026.3791L38.2927%2031.8447L43.8971%2030.3031L41.2779%2026.29L36.6914%2026.3791Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M41.2632%2026.2642C41.2718%2026.264%2041.2798%2026.2683%2041.2845%2026.2754L43.9037%2030.2885C43.908%2030.2952%2043.9089%2030.3035%2043.9061%2030.3109C43.9033%2030.3183%2043.8971%2030.324%2043.8895%2030.3261L38.2851%2031.8677C38.272%2031.8713%2038.2584%2031.8637%2038.2546%2031.8507L36.6533%2026.385C36.6512%2026.3776%2036.6526%2026.3696%2036.6572%2026.3633C36.6617%2026.3571%2036.669%2026.3533%2036.6767%2026.3532L41.2632%2026.2642ZM36.7102%2026.4023L38.2955%2031.8132L43.8434%2030.2872L41.2504%2026.3142L36.7102%2026.4023Z'%20fill='%23E4761B'/%3e%3cpath%20d='M43.5737%2019.5097L42.0117%2021.8723L47.5763%2022.1195L47.3789%2016.1396L43.5737%2019.5097Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M47.3785%2016.1153C47.3873%2016.1191%2047.3932%2016.1277%2047.3935%2016.1373L47.5909%2022.1172C47.5911%2022.1241%2047.5885%2022.1308%2047.5835%2022.1357C47.5786%2022.1405%2047.5719%2022.1431%2047.5649%2022.1428L42.0003%2021.8957C41.9914%2021.8953%2041.9833%2021.8901%2041.9793%2021.8821C41.9752%2021.8742%2041.9757%2021.8646%2041.9807%2021.8571L43.5427%2019.4945C43.5439%2019.4927%2043.5453%2019.4911%2043.5469%2019.4896L47.3521%2016.1195C47.3594%2016.1131%2047.3696%2016.1115%2047.3785%2016.1153ZM43.5823%2019.5247L42.0464%2021.848L47.5403%2022.092L47.3455%2016.1918L43.5823%2019.5247Z'%20fill='%23E4761B'/%3e%3cpath%20d='M54.5809%2019.5095L50.7265%2016.0703L50.5977%2022.1193L56.1528%2021.8721L54.5809%2019.5095Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M50.7062%2016.0465C50.7151%2016.0426%2050.7255%2016.0443%2050.7327%2016.0507L54.5872%2019.49C54.5888%2019.4914%2054.5901%2019.493%2054.5913%2019.4947L56.1632%2021.8573C56.1682%2021.8648%2056.1688%2021.8744%2056.1647%2021.8824C56.1606%2021.8904%2056.1526%2021.8956%2056.1436%2021.896L50.5885%2022.1431C50.5816%2022.1434%2050.5749%2022.1409%2050.57%2022.1361C50.5651%2022.1312%2050.5624%2022.1246%2050.5625%2022.1177L50.6913%2016.0688C50.6915%2016.0591%2050.6973%2016.0504%2050.7062%2016.0465ZM50.7399%2016.1238L50.6128%2022.0923L56.0974%2021.8482L54.5517%2019.5249L50.7399%2016.1238Z'%20fill='%23E4761B'/%3e%3cpath%20d='M43.8906%2030.3028L47.2314%2028.6717L44.3451%2026.418L43.8906%2030.3028Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M44.3331%2026.3955C44.3414%2026.392%2044.3509%2026.3933%2044.358%2026.3988L47.2442%2028.6525C47.251%2028.6578%2047.2545%2028.6662%2047.2536%2028.6747C47.2527%2028.6832%2047.2475%2028.6907%2047.2398%2028.6945L43.8991%2030.3256C43.8909%2030.3295%2043.8812%2030.3288%2043.8738%2030.3235C43.8664%2030.3182%2043.8624%2030.3094%2043.8635%2030.3003L44.318%2026.4155C44.319%2026.4066%2044.3248%2026.3989%2044.3331%2026.3955ZM44.3622%2026.4652L43.9181%2030.2609L47.1822%2028.6672L44.3622%2026.4652Z'%20fill='%23E4761B'/%3e%3cpath%20d='M50.918%2028.6717L54.2687%2030.3028L53.8042%2026.418L50.918%2028.6717Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M53.8113%2026.3955C53.8196%2026.3989%2053.8254%2026.4066%2053.8264%2026.4155L54.2909%2030.3003C54.292%2030.3093%2054.288%2030.3182%2054.2806%2030.3235C54.2732%2030.3287%2054.2635%2030.3295%2054.2553%2030.3256L50.9046%2028.6945C50.8969%2028.6907%2050.8917%2028.6833%2050.8908%2028.6747C50.8899%2028.6662%2050.8934%2028.6578%2050.9002%2028.6525L53.7864%2026.3988C53.7935%2026.3933%2053.803%2026.392%2053.8113%2026.3955ZM50.9622%2028.6672L54.2361%2030.2609L53.7823%2026.4652L50.9622%2028.6672Z'%20fill='%23E4761B'/%3e%3cpath%20d='M54.2687%2030.3035L50.918%2028.6724L51.185%2030.8569L51.1552%2031.7759L54.2687%2030.3035Z'%20fill='%23D7C1B3'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M50.901%2028.6516C50.9085%2028.6463%2050.9182%2028.6455%2050.9264%2028.6495L54.2771%2030.2806C54.2857%2030.2848%2054.2911%2030.2935%2054.2911%2030.3031C54.291%2030.3126%2054.2855%2030.3213%2054.2768%2030.3254L51.1633%2031.7979C51.1555%2031.8016%2051.1463%2031.8009%2051.1391%2031.7962C51.1318%2031.7914%2051.1276%2031.7832%2051.1278%2031.7746L51.1576%2030.8575L50.8908%2028.6749C50.8897%2028.6658%2050.8936%2028.6569%2050.901%2028.6516ZM50.9457%2028.7142L51.2072%2030.8534C51.2074%2030.8547%2051.2074%2030.8559%2051.2074%2030.8572L51.1789%2031.7355L54.2087%2030.3026L50.9457%2028.7142Z'%20fill='%23D7C1B3'/%3e%3cpath%20d='M43.8906%2030.3035L47.0041%2031.7759L46.9842%2030.8569L47.2314%2028.6724L43.8906%2030.3035Z'%20fill='%23D7C1B3'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M47.2432%2028.6515C47.2507%2028.6568%2047.2546%2028.6656%2047.2536%2028.6746L47.0066%2030.8575L47.0265%2031.7749C47.0267%2031.7835%2047.0224%2031.7916%2047.0152%2031.7963C47.0079%2031.8009%2046.9988%2031.8016%2046.991%2031.7979L43.8775%2030.3254C43.8689%2030.3213%2043.8633%2030.3126%2043.8633%2030.3031C43.8632%2030.2935%2043.8686%2030.2848%2043.8772%2030.2806L47.218%2028.6495C47.2262%2028.6455%2047.2358%2028.6463%2047.2432%2028.6515ZM43.9455%2030.3026L46.9759%2031.7357L46.9569%2030.8569C46.9569%2030.8558%2046.9569%2030.8547%2046.957%2030.8536L47.1991%2028.7141L43.9455%2030.3026Z'%20fill='%23D7C1B3'/%3e%3cpath%20d='M47.0607%2024.976L44.2734%2024.1554L46.2402%2023.2559L47.0607%2024.976Z'%20fill='%23233447'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M46.2274%2023.2318C46.2397%2023.2261%2046.2543%2023.2314%2046.2602%2023.2437L47.0807%2024.9638C47.0849%2024.9726%2047.0835%2024.9831%2047.0772%2024.9906C47.0708%2024.9981%2047.0606%2025.0011%2047.0512%2024.9983L44.2639%2024.1778C44.254%2024.1749%2044.2469%2024.1661%2044.2462%2024.1557C44.2454%2024.1454%2044.2512%2024.1357%2044.2606%2024.1313L46.2274%2023.2318ZM44.3418%2024.1489L47.0118%2024.9349L46.2258%2023.2872L44.3418%2024.1489Z'%20fill='%23233447'/%3e%3cpath%20d='M51.0898%2024.976L51.9104%2023.2559L53.8871%2024.1554L51.0898%2024.976Z'%20fill='%23233447'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M51.8776%2023.2437C51.8835%2023.2314%2051.898%2023.2261%2051.9104%2023.2317L53.8871%2024.1313C53.8965%2024.1356%2053.9023%2024.1453%2053.9016%2024.1557C53.9008%2024.1661%2053.8937%2024.1749%2053.8838%2024.1778L51.0866%2024.9983C51.0771%2025.0011%2051.067%2024.9981%2051.0606%2024.9906C51.0543%2024.9831%2051.0529%2024.9726%2051.0571%2024.9638L51.8776%2023.2437ZM51.912%2023.2871L51.126%2024.9349L53.8057%2024.1489L51.912%2023.2871Z'%20fill='%23233447'/%3e%3cpath%20d='M43.9044%2030.3031L44.3788%2026.29L41.2852%2026.3791L43.9044%2030.3031Z'%20fill='%23CD6116'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M44.3751%2026.2722C44.38%2026.2776%2044.3823%2026.2848%2044.3814%2026.2919L43.907%2030.305C43.9058%2030.3154%2043.8983%2030.3239%2043.8881%2030.3263C43.878%2030.3287%2043.8674%2030.3246%2043.8617%2030.3159L41.2425%2026.3918C41.2374%2026.3843%2041.2369%2026.3747%2041.2411%2026.3666C41.2452%2026.3586%2041.2534%2026.3534%2041.2624%2026.3532L44.356%2026.2642C44.3633%2026.264%2044.3702%2026.2669%2044.3751%2026.2722ZM41.3088%2026.4016L43.8656%2030.2322L44.3287%2026.3147L41.3088%2026.4016Z'%20fill='%23CD6116'/%3e%3cpath%20d='M53.7891%2026.29L54.2635%2030.3031L56.8827%2026.3791L53.7891%2026.29Z'%20fill='%23CD6116'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M53.7682%2026.2722C53.7731%2026.2669%2053.7801%2026.264%2053.7873%2026.2642L56.8809%2026.3532C56.8899%2026.3534%2056.8981%2026.3586%2056.9023%2026.3666C56.9064%2026.3747%2056.9059%2026.3843%2056.9009%2026.3918L54.2817%2030.3159C54.2759%2030.3246%2054.2653%2030.3287%2054.2552%2030.3263C54.2451%2030.3239%2054.2375%2030.3154%2054.2363%2030.305L53.7619%2026.2919C53.761%2026.2848%2053.7634%2026.2776%2053.7682%2026.2722ZM53.8147%2026.3147L54.2778%2030.2322L56.8346%2026.4016L53.8147%2026.3147Z'%20fill='%23CD6116'/%3e%3cpath%20d='M56.1528%2021.8721L50.5977%2022.1192L51.1118%2024.9756L51.9324%2023.2555L53.9091%2024.1551L56.1528%2021.8721Z'%20fill='%23CD6116'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M56.1652%2021.8624C56.1694%2021.8717%2056.1674%2021.8827%2056.1603%2021.8899L53.9165%2024.173C53.9092%2024.1804%2053.898%2024.1825%2053.8885%2024.1782L51.934%2023.2887L51.124%2024.9868C51.1194%2024.9965%2051.1089%2025.0022%2051.0982%2025.0007C51.0875%2024.9993%2051.079%2024.9911%2051.0771%2024.9805L50.5629%2022.1241C50.5616%2022.117%2050.5635%2022.1098%2050.5679%2022.1042C50.5724%2022.0985%2050.5791%2022.0952%2050.5863%2022.0948L56.1414%2021.8477C56.1516%2021.8472%2056.1611%2021.8531%2056.1652%2021.8624ZM50.6169%2022.1432L51.1124%2024.8957L51.8996%2023.2453C51.9055%2023.233%2051.92%2023.2277%2051.9324%2023.2333L53.8932%2024.1257L56.0805%2021.9002L50.6169%2022.1432Z'%20fill='%23CD6116'/%3e%3cpath%20d='M44.2654%2024.1551L46.2421%2023.2555L47.0527%2024.9756L47.5763%2022.1192L42.0117%2021.8721L44.2654%2024.1551Z'%20fill='%23CD6116'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M41.9787%2021.8624C41.9829%2021.8531%2041.9923%2021.8472%2042.0025%2021.8477L47.5671%2022.0948C47.5743%2022.0952%2047.581%2022.0986%2047.5855%2022.1042C47.59%2022.1098%2047.5918%2022.1171%2047.5905%2022.1242L47.0669%2024.9806C47.0649%2024.9912%2047.0563%2024.9993%2047.0456%2025.0007C47.0349%2025.0021%2047.0245%2024.9964%2047.0199%2024.9867L46.2198%2023.2888L44.2654%2024.1782C44.2559%2024.1825%2044.2448%2024.1804%2044.2374%2024.173L41.9837%2021.89C41.9765%2021.8827%2041.9746%2021.8718%2041.9787%2021.8624ZM42.0637%2021.9002L44.2606%2024.1257L46.2215%2023.2333C46.2339%2023.2277%2046.2485%2023.2331%2046.2543%2023.2454L47.0319%2024.8955L47.5364%2022.1432L42.0637%2021.9002Z'%20fill='%23CD6116'/%3e%3cpath%20d='M42.0117%2021.8721L44.3445%2026.4182L44.2654%2024.1551L42.0117%2021.8721Z'%20fill='%23E4751F'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M41.9869%2021.8524C41.9968%2021.8452%2042.0105%2021.8463%2042.0191%2021.8551L44.2728%2024.1381C44.2772%2024.1425%2044.2798%2024.1485%2044.28%2024.1547L44.359%2026.4178C44.3594%2026.4295%2044.3517%2026.4398%2044.3405%2026.4428C44.3292%2026.4457%2044.3174%2026.4404%2044.3121%2026.4301L41.9793%2021.8839C41.9737%2021.873%2041.9769%2021.8596%2041.9869%2021.8524ZM42.0974%2022.0052L44.3055%2026.3082L44.2306%2024.1661L42.0974%2022.0052Z'%20fill='%23E4751F'/%3e%3cpath%20d='M53.888%2024.1551L53.7891%2026.4182L56.1318%2021.8721L53.888%2024.1551Z'%20fill='%23E4751F'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M56.1712%2021.8524C56.1812%2021.8596%2056.1844%2021.873%2056.1787%2021.8839L53.836%2026.4301C53.8307%2026.4405%2053.8188%2026.4457%2053.8075%2026.4427C53.7963%2026.4397%2053.7886%2026.4293%2053.7891%2026.4176L53.888%2024.1545C53.8883%2024.1483%2053.8908%2024.1425%2053.8952%2024.1381L56.1389%2021.8551C56.1475%2021.8463%2056.1612%2021.8452%2056.1712%2021.8524ZM53.9373%2024.1662L53.8437%2026.3066L56.0594%2022.0069L53.9373%2024.1662Z'%20fill='%23E4751F'/%3e%3cpath%20d='M47.5666%2022.1187L47.043%2024.9751L47.6954%2028.3452L47.8436%2023.9074L47.5666%2022.1187Z'%20fill='%23E4751F'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M47.584%2022.0938C47.5961%2022.0939%2047.6064%2022.1028%2047.6082%2022.1148L47.8852%2023.9035C47.8855%2023.9051%2047.8856%2023.9066%2047.8855%2023.9082L47.7373%2028.3459C47.7369%2028.3586%2047.727%2028.3689%2047.7144%2028.3699C47.7018%2028.3709%2047.6905%2028.3623%2047.688%2028.3498L47.0356%2024.9797C47.035%2024.9767%2047.035%2024.9736%2047.0356%2024.9705L47.5592%2022.1141C47.5614%2022.1022%2047.5719%2022.0936%2047.584%2022.0938ZM47.0853%2024.9749L47.695%2028.1239L47.8357%2023.9088L47.5816%2022.2678L47.0853%2024.9749Z'%20fill='%23E4751F'/%3e%3cpath%20d='M50.583%2022.1187L50.3164%2023.8974L50.4348%2028.3452L51.0971%2024.9751L50.583%2022.1187Z'%20fill='%23E4751F'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M50.5801%2022.0938C50.5923%2022.0936%2050.6028%2022.1022%2050.6049%2022.1142L51.1191%2024.9706C51.1197%2024.9737%2051.1197%2024.9768%2051.1191%2024.9798L50.4567%2028.3499C50.4542%2028.3623%2050.4428%2028.371%2050.4302%2028.3699C50.4176%2028.3688%2050.4078%2028.3584%2050.4074%2028.3458L50.2891%2023.8981C50.289%2023.8966%2050.2891%2023.8952%2050.2893%2023.8937L50.5559%2022.1149C50.5577%2022.1029%2050.5679%2022.0939%2050.5801%2022.0938ZM50.5827%2022.2714L50.3388%2023.8989L50.4512%2028.1201L51.0694%2024.9748L50.5827%2022.2714Z'%20fill='%23E4751F'/%3e%3cpath%20d='M51.096%2024.9758L50.4336%2028.3459L50.908%2028.6721L53.7942%2026.4184L53.8932%2024.1553L51.096%2024.9758Z'%20fill='%23F6851B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M53.9178%2024.1362C53.9241%2024.1411%2053.9276%2024.1488%2053.9273%2024.1568L53.8283%2026.42C53.828%2026.4272%2053.8245%2026.434%2053.8188%2026.4385L50.9325%2028.6922C50.924%2028.6988%2050.9121%2028.6992%2050.9032%2028.693L50.4287%2028.3668C50.4206%2028.3612%2050.4165%2028.3513%2050.4184%2028.3415L51.0808%2024.9714C51.0826%2024.9623%2051.0893%2024.955%2051.0982%2024.9524L53.8954%2024.1319C53.9031%2024.1296%2053.9115%2024.1312%2053.9178%2024.1362ZM51.1267%2024.9959L50.4704%2028.3351L50.9163%2028.6417L53.7791%2026.4063L53.8761%2024.1894L51.1267%2024.9959Z'%20fill='%23F6851B'/%3e%3cpath%20d='M44.2734%2024.1553L44.3525%2026.4184L47.2387%2028.6721L47.7132%2028.3459L47.0607%2024.9758L44.2734%2024.1553Z'%20fill='%23F6851B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M44.2557%2024.1361C44.262%2024.1312%2044.2703%2024.1296%2044.278%2024.1319L47.0653%2024.9524C47.0742%2024.955%2047.0809%2024.9624%2047.0827%2024.9715L47.7351%2028.3416C47.737%2028.3513%2047.7329%2028.3612%2047.7248%2028.3668L47.2504%2028.693C47.2414%2028.6992%2047.2295%2028.6988%2047.221%2028.6922L44.3347%2026.4385C44.3289%2026.4339%2044.3254%2026.4271%2044.3252%2026.4197L44.2461%2024.1566C44.2458%2024.1486%2044.2494%2024.141%2044.2557%2024.1361ZM44.297%2024.1893L44.3745%2026.4064L47.2372%2028.6417L47.6832%2028.3351L47.0367%2024.9958L44.297%2024.1893Z'%20fill='%23F6851B'/%3e%3cpath%20d='M51.155%2031.7762L51.1848%2030.8572L50.9376%2030.6394H47.2115L46.9842%2030.8572L47.0041%2031.7762L43.8906%2030.3037L44.9777%2031.1929L47.1817%2032.725H50.9675L53.1814%2031.1929L54.2685%2030.3037L51.155%2031.7762Z'%20fill='%23C0AD9E'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M43.8671%2030.2889C43.8738%2030.2783%2043.8874%2030.2744%2043.8988%2030.2797L46.9759%2031.735L46.9569%2030.8562C46.9567%2030.8493%2046.9595%2030.8426%2046.9646%2030.8377L47.1918%2030.6199C47.1964%2030.6155%2047.2026%2030.613%2047.209%2030.613H50.9352C50.9412%2030.613%2050.9471%2030.6152%2050.9516%2030.6192L51.1988%2030.837C51.2043%2030.8419%2051.2074%2030.8491%2051.2072%2030.8565L51.1787%2031.7348L54.2554%2030.2797C54.2667%2030.2744%2054.2803%2030.2783%2054.287%2030.2889C54.2937%2030.2995%2054.2915%2030.3135%2054.2817%2030.3215L53.1947%2031.2106C53.1945%2031.2107%2053.1943%2031.2109%2053.1941%2031.211C53.1938%2031.2113%2053.1934%2031.2116%2053.1931%2031.2118L50.9792%2032.7439C50.975%2032.7468%2050.9701%2032.7484%2050.965%2032.7484H47.1792C47.1741%2032.7484%2047.1692%2032.7468%2047.165%2032.7439L44.961%2031.2118C44.9605%2031.2114%2044.96%2031.211%2044.9595%2031.2106L43.8724%2030.3215C43.8627%2030.3135%2043.8604%2030.2995%2043.8671%2030.2889ZM54.0932%2030.4115L51.1631%2031.7971C51.1553%2031.8009%2051.1461%2031.8002%2051.1388%2031.7955C51.1316%2031.7907%2051.1274%2031.7825%2051.1276%2031.7739L51.1571%2030.8666L50.9258%2030.6627H47.219L47.0069%2030.8661L47.0265%2031.7741C47.0267%2031.7827%2047.0224%2031.7908%2047.0152%2031.7955C47.0079%2031.8002%2046.9988%2031.8008%2046.991%2031.7971L44.061%2030.4115L44.9902%2031.1715L47.187%2032.6986H50.9572L53.164%2031.1715L54.0932%2030.4115Z'%20fill='%23C0AD9E'/%3e%3cpath%20d='M50.914%2028.6719L50.4396%2028.3457H47.702L47.2276%2028.6719L46.9805%2030.8565L47.2077%2030.6387H50.9339L51.181%2030.8565L50.914%2028.6719Z'%20fill='%23161616'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M47.705%2028.3257C47.7091%2028.3228%2047.7141%2028.3213%2047.7191%2028.3213H50.4566C50.4617%2028.3213%2050.4666%2028.3228%2050.4707%2028.3257L50.9451%2028.6519C50.951%2028.6559%2050.9549%2028.6623%2050.9557%2028.6694L51.2228%2030.8539C51.224%2030.8642%2051.2188%2030.8741%2051.2097%2030.8789C51.2005%2030.8838%2051.1894%2030.8824%2051.1816%2030.8756L50.9415%2030.664H47.2348L47.0147%2030.8749C47.0072%2030.8821%2046.9959%2030.8839%2046.9865%2030.8792C46.9771%2030.8746%2046.9716%2030.8646%2046.9728%2030.8541L47.22%2028.6696C47.2208%2028.6624%2047.2246%2028.656%2047.2306%2028.6519L47.705%2028.3257ZM47.7268%2028.371L47.2681%2028.6864L47.03%2030.7914L47.2076%2030.6212C47.2122%2030.6167%2047.2184%2030.6143%2047.2248%2030.6143H50.9509C50.957%2030.6143%2050.9628%2030.6165%2050.9674%2030.6205L51.1655%2030.7951L50.9077%2028.6865L50.4489%2028.371H47.7268Z'%20fill='%23161616'/%3e%3cpath%20d='M60.8418%2017.1369L61.6817%2013.1044L60.4266%209.3584L50.918%2016.4154L54.575%2019.509L59.7443%2021.0212L60.891%2019.687L60.3967%2019.3314L61.1874%2018.6099L60.5747%2018.1355L61.3654%2017.5323L60.8418%2017.1369Z'%20fill='%23763D16'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M60.4315%209.33464C60.4391%209.33703%2060.4451%209.34291%2060.4476%209.35046L61.7028%2013.0965C61.7042%2013.1007%2061.7045%2013.1052%2061.7036%2013.1095L60.8669%2017.1265L61.3779%2017.5124C61.3841%2017.5171%2061.3878%2017.5244%2061.3878%2017.5322C61.3878%2017.5399%2061.3842%2017.5473%2061.378%2017.552L60.6131%2018.1356L61.2001%2018.5902C61.2059%2018.5947%2061.2095%2018.6015%2061.2098%2018.6088C61.2101%2018.6162%2061.2071%2018.6233%2061.2017%2018.6282L60.4336%2019.3291L60.9031%2019.6668C60.9087%2019.6709%2060.9124%2019.6771%2060.9132%2019.684C60.9141%2019.6909%2060.9119%2019.6979%2060.9074%2019.7032L59.7607%2021.0374C59.7543%2021.0448%2059.7442%2021.0478%2059.7348%2021.045L54.5655%2019.5328C54.5622%2019.5318%2054.5591%2019.5302%2054.5565%2019.5279L50.8994%2016.4343C50.8936%2016.4294%2050.8904%2016.4221%2050.8906%2016.4145C50.8909%2016.407%2050.8946%2016.3999%2050.9007%2016.3954L60.4093%209.33839C60.4157%209.33365%2060.4239%209.33225%2060.4315%209.33464ZM50.9555%2016.4166L54.5846%2019.4866L59.7334%2020.9928L60.852%2019.6913L60.3797%2019.3516C60.3736%2019.3472%2060.3698%2019.3403%2060.3694%2019.3329C60.369%2019.3254%2060.3719%2019.3181%2060.3775%2019.313L61.1463%2018.6114L60.557%2018.1551C60.5509%2018.1504%2060.5474%2018.1431%2060.5474%2018.1354C60.5474%2018.1276%2060.551%2018.1204%2060.5572%2018.1157L61.3218%2017.5323L60.8243%2017.1567C60.8166%2017.1509%2060.813%2017.1412%2060.815%2017.1318L61.6535%2013.1059L60.4114%209.39874L50.9555%2016.4166Z'%20fill='%23763D16'/%3e%3cpath%20d='M36.4805%2013.1044L37.3204%2017.1369L36.7868%2017.5323L37.5775%2018.1355L36.9748%2018.6099L37.7655%2019.3314L37.2712%2019.687L38.4079%2021.0212L43.5772%2019.509L47.2343%2016.4154L37.7257%209.3584L36.4805%2013.1044Z'%20fill='%23763D16'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M37.7157%209.33465C37.7233%209.33225%2037.7316%209.33364%2037.738%209.33839L47.2466%2016.3954C47.2527%2016.3999%2047.2564%2016.407%2047.2566%2016.4145C47.2569%2016.4221%2047.2536%2016.4294%2047.2478%2016.4343L43.5908%2019.5279C43.5881%2019.5302%2043.5851%2019.5318%2043.5817%2019.5328L38.4124%2021.045C38.403%2021.0478%2038.3929%2021.0448%2038.3865%2021.0373L37.2497%2019.7031C37.2452%2019.6978%2037.2432%2019.6909%2037.244%2019.684C37.2448%2019.6771%2037.2485%2019.6708%2037.2542%2019.6668L37.7236%2019.3291L36.9555%2018.6282C36.9501%2018.6233%2036.9472%2018.6162%2036.9474%2018.6089C36.9477%2018.6016%2036.9512%2018.5948%2036.9569%2018.5903L37.5344%2018.1357L36.7692%2017.552C36.763%2017.5473%2036.7594%2017.5399%2036.7595%2017.5321C36.7595%2017.5242%2036.7632%2017.5169%2036.7695%2017.5123L37.2903%2017.1264L36.4536%2013.1095C36.4528%2013.1052%2036.453%2013.1007%2036.4544%2013.0966L37.6996%209.35052C37.7021%209.34295%2037.7081%209.33705%2037.7157%209.33465ZM37.736%209.3988L36.5037%2013.1059L37.3422%2017.1318C37.3442%2017.1413%2037.3405%2017.1511%2037.3327%2017.1569L36.8257%2017.5325L37.5901%2018.1157C37.5962%2018.1203%2037.5998%2018.1276%2037.5999%2018.1353C37.5999%2018.1429%2037.5964%2018.1502%2037.5904%2018.155L37.0107%2018.6113L37.7797%2019.313C37.7853%2019.3181%2037.7882%2019.3254%2037.7878%2019.3329C37.7874%2019.3403%2037.7836%2019.3472%2037.7775%2019.3516L37.3051%2019.6914L38.4139%2020.9928L43.5627%2019.4866L47.1918%2016.4166L37.736%209.3988Z'%20fill='%23763D16'/%3e%3cpath%20d='M59.7291%2021.022L54.5599%2019.5098L56.1318%2021.8724L53.7891%2026.4185L56.8727%2026.3793H61.4691L59.7291%2021.022Z'%20fill='%23F6851B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M54.5647%2019.495C54.5709%2019.4866%2054.5817%2019.4829%2054.5917%2019.4859L59.761%2020.9981C59.7689%2021.0004%2059.7751%2021.0065%2059.7776%2021.0143L61.5176%2026.3715C61.5201%2026.3791%2061.5188%2026.3874%2061.5141%2026.3938C61.5094%2026.4003%2061.502%2026.4041%2061.494%2026.4041H56.8976L53.8142%2026.4434C53.8055%2026.4435%2053.7974%2026.439%2053.7928%2026.4316C53.7882%2026.4242%2053.7878%2026.4149%2053.7918%2026.4071L56.1278%2021.8739L54.564%2019.5235C54.5582%2019.5148%2054.5585%2019.5034%2054.5647%2019.495ZM54.6432%2019.5527L56.1773%2021.8586C56.1823%2021.8661%2056.1829%2021.8757%2056.1787%2021.8837L53.855%2026.3931L56.8973%2026.3544L56.8976%2026.3544L61.4598%2026.3544L59.7344%2021.0421L54.6432%2019.5527Z'%20fill='%23F6851B'/%3e%3cpath%20d='M43.5808%2019.5098L38.4115%2021.022L36.6914%2026.3793H41.2779L44.3516%2026.4185L42.0188%2021.8724L43.5808%2019.5098Z'%20fill='%23F6851B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M43.5866%2019.495C43.5928%2019.5034%2043.5931%2019.5147%2043.5873%2019.5234L42.0334%2021.8739L44.3595%2026.4072C44.3635%2026.4149%2044.3631%2026.4242%2044.3585%2026.4316C44.3539%2026.439%2044.3458%2026.4435%2044.3371%2026.4434L41.2637%2026.4041H36.6772C36.6693%2026.4041%2036.6618%2026.4003%2036.6571%2026.3939C36.6524%2026.3875%2036.6511%2026.3792%2036.6535%2026.3716L38.3736%2021.0144C38.3762%2021.0065%2038.3824%2021.0004%2038.3903%2020.9981L43.5596%2019.4859C43.5696%2019.4829%2043.5804%2019.4866%2043.5866%2019.495ZM38.417%2021.0421L36.7113%2026.3544H41.264L44.2964%2026.3931L41.9825%2021.8837C41.9784%2021.8757%2041.9789%2021.8661%2041.9839%2021.8586L43.5084%2019.5527L38.417%2021.0421Z'%20fill='%23F6851B'/%3e%3cpath%20d='M50.5931%2022.1182L50.9193%2016.4149L52.4221%2012.3525H45.75L47.2329%2016.4149L47.5785%2022.1182L47.6974%2023.9169L47.7073%2028.3447H50.4449L50.4648%2023.9169L50.5931%2022.1182Z'%20fill='%23F6851B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M45.7271%2012.3382C45.7318%2012.3316%2045.7394%2012.3276%2045.7475%2012.3276H52.4196C52.4277%2012.3276%2052.4353%2012.3316%2052.44%2012.3383C52.4446%2012.345%2052.4457%2012.3535%2052.4429%2012.3611L50.9414%2016.42L50.6154%2022.1196L50.6154%2022.12L50.4871%2023.9178L50.4673%2028.3448C50.4672%2028.3585%2050.4561%2028.3696%2050.4424%2028.3696H47.7048C47.6911%2028.3696%2047.68%2028.3585%2047.68%2028.3447L47.67%2023.9177L47.5512%2022.1198L47.5512%2022.1197L47.2058%2016.4199L45.7242%2012.361C45.7214%2012.3534%2045.7225%2012.3449%2045.7271%2012.3382ZM45.7831%2012.3774L47.2538%2016.4063C47.2546%2016.4086%2047.2551%2016.4109%2047.2552%2016.4133L47.6008%2022.1165L47.6009%2022.1167L47.7197%2023.9152C47.7197%2023.9158%2047.7198%2023.9163%2047.7198%2023.9168L47.7296%2028.3198H50.4176L50.4374%2023.9168C50.4374%2023.9162%2050.4374%2023.9156%2050.4375%2023.9151L50.5658%2022.1168L50.5658%2022.1164L50.892%2016.4134C50.8921%2016.4109%2050.8926%2016.4085%2050.8935%2016.4062L52.3839%2012.3774H45.7831Z'%20fill='%23F6851B'/%3e%3cpath%20d='M29.2942%2016.9084L28.5722%2014.9474L29.0743%2013.8216C29.1059%2013.7506%2029.1152%2013.6717%2029.1012%2013.5953C29.0871%2013.5189%2029.0503%2013.4485%2028.9956%2013.3933L27.6302%2012.0133C27.3372%2011.7159%2026.9656%2011.5078%2026.5589%2011.4134C26.1522%2011.319%2025.727%2011.3421%2025.3328%2011.4799L24.9505%2011.6129L22.8648%209.35319L19.3268%209.3335H19.3038L15.7428%209.36139L13.6587%2011.6391L13.2879%2011.5078C12.8912%2011.3683%2012.4629%2011.3449%2012.0534%2011.4402C11.6438%2011.5355%2011.27%2011.7457%2010.9757%2012.0461L9.58576%2013.4524C9.54214%2013.4964%209.51284%2013.5525%209.50171%2013.6134C9.49058%2013.6743%209.49814%2013.7372%209.5234%2013.7937L10.0469%2014.9621L9.32812%2016.9215L9.79253%2018.6889L11.9111%2026.7429C12.1551%2027.6707%2012.7166%2028.4836%2013.4979%2029.0403C13.4979%2029.0403%2016.0694%2030.8536%2018.6064%2032.5012C18.807%2032.6614%2019.0561%2032.7486%2019.3128%2032.7486C19.5695%2032.7486%2019.8186%2032.6614%2020.0193%2032.5012C22.8697%2030.6337%2025.1244%2029.0338%2025.1244%2029.0338C25.9051%2028.4768%2026.466%2027.6639%2026.7096%2026.7363L28.8167%2018.679L29.2942%2016.9084Z'%20fill='url(%23paint2_linear_4268_19460)'/%3e%3cpath%20d='M19.9094%2023.8482C19.7743%2023.7878%2019.635%2023.7373%2019.4926%2023.6973H19.2415C19.0991%2023.7373%2018.9597%2023.7878%2018.8247%2023.8482L18.1929%2024.1108C17.9927%2024.1945%2017.6711%2024.3438%2017.4791%2024.439L16.3172%2025.0445C16.2752%2025.0582%2016.2381%2025.0841%2016.2109%2025.119C16.1837%2025.1539%2016.1676%2025.1961%2016.1646%2025.2402C16.1616%2025.2844%2016.1719%2025.3284%2016.1941%2025.3666C16.2163%2025.4049%2016.2495%2025.4356%2016.2893%2025.4548L17.2986%2026.167C17.4758%2026.2917%2017.7548%2026.5116%2017.9189%2026.6593L18.2027%2026.9038C18.3668%2027.0449%2018.6343%2027.2796%2018.7968%2027.424L19.0659%2027.6619C19.1491%2027.7312%2019.2539%2027.7691%2019.3621%2027.7691C19.4703%2027.7691%2019.5752%2027.7312%2019.6583%2027.6619L19.9406%2027.4158L20.5346%2026.8972L20.8201%2026.6478C20.9842%2026.505%2021.2616%2026.2851%2021.4388%2026.1555L22.448%2025.4334C22.488%2025.4143%2022.5212%2025.3835%2022.5433%2025.3451C22.5654%2025.3068%2022.5755%2025.2626%2022.5721%2025.2185C22.5687%2025.1743%2022.5521%2025.1322%2022.5244%2025.0977C22.4967%2025.0631%2022.4592%2025.0377%2022.4168%2025.0248L21.2567%2024.4357C21.063%2024.3373%2020.7414%2024.1896%2020.5395%2024.1075L19.9094%2023.8482Z'%20fill='white'/%3e%3cpath%20d='M27.0506%2017.3471L27.0834%2017.242C27.0854%2017.1015%2027.0766%2016.9611%2027.0572%2016.8219C26.9595%2016.5734%2026.834%2016.3367%2026.683%2016.1163L26.0266%2015.153C25.9052%2014.9725%2025.6984%2014.687%2025.5589%2014.518L24.6793%2013.4169C24.5991%2013.3095%2024.512%2013.2076%2024.4184%2013.1116H24.4004C24.4004%2013.1116%2024.2232%2013.1428%2024.0098%2013.1838L22.6658%2013.4431L22.0767%2013.5563C21.8811%2013.5655%2021.6856%2013.5371%2021.5007%2013.4727L20.439%2013.1297C20.2322%2013.0624%2019.8909%2012.9656%2019.6792%2012.9196C19.4561%2012.8959%2019.2311%2012.8959%2019.008%2012.9196C18.7964%2012.9689%2018.455%2013.064%2018.2483%2013.1313L17.1865%2013.4759C17.0016%2013.5404%2016.8061%2013.5688%2016.6105%2013.5596L16.0214%2013.448L14.6758%2013.1904C14.4625%2013.1494%2014.2869%2013.1166%2014.2852%2013.1182H14.2672C14.1736%2013.2142%2014.0865%2013.3161%2014.0063%2013.4234L13.1283%2014.5245C12.9938%2014.6886%2012.7821%2014.9807%2012.6606%2015.1596L12.0042%2016.1229C11.8909%2016.289%2011.7873%2016.4616%2011.6941%2016.6398C11.6379%2016.8385%2011.6081%2017.0438%2011.6055%2017.2502L11.6383%2017.3553C11.6541%2017.4227%2011.6744%2017.4891%2011.699%2017.5538C11.8352%2017.7179%2012.0682%2017.9903%2012.2176%2018.1495L14.515%2020.5913C14.5912%2020.6804%2014.6423%2020.7882%2014.6628%2020.9036C14.6833%2021.0191%2014.6724%2021.1379%2014.6315%2021.2477L14.2557%2022.1388C14.1702%2022.3749%2014.1639%2022.6323%2014.2376%2022.8723L14.3131%2023.0791C14.4365%2023.4149%2014.6479%2023.7114%2014.9252%2023.9373L15.2862%2024.2311C15.38%2024.2987%2015.4895%2024.3414%2015.6043%2024.3552C15.7191%2024.369%2015.8355%2024.3534%2015.9426%2024.3099L17.2259%2023.6978C17.4615%2023.5798%2017.6819%2023.4338%2017.8823%2023.2629L18.9096%2022.3357C18.9505%2022.2988%2018.9836%2022.254%2019.0069%2022.204C19.0302%2022.1541%2019.0432%2022.0999%2019.0452%2022.0449C19.0472%2021.9898%2019.0381%2021.9348%2019.0185%2021.8833C18.9988%2021.8318%2018.9691%2021.7848%2018.9309%2021.745L16.6122%2020.1827C16.5244%2020.1204%2016.4618%2020.0287%2016.436%2019.9242C16.4101%2019.8197%2016.4225%2019.7094%2016.471%2019.6133L17.3703%2017.9231C17.4215%2017.8196%2017.4517%2017.7071%2017.4593%2017.5919C17.4669%2017.4767%2017.4517%2017.3612%2017.4146%2017.2519C17.303%2017.0434%2017.1227%2016.8799%2016.9043%2016.7891L14.085%2015.7241C13.8815%2015.647%2013.893%2015.56%2014.108%2015.5469L15.7638%2015.3828C16.0234%2015.3663%2016.2841%2015.3895%2016.5367%2015.4517L17.9775%2015.8538C18.0798%2015.8846%2018.1674%2015.9515%2018.2242%2016.042C18.2809%2016.1325%2018.3029%2016.2406%2018.286%2016.3461L17.7199%2019.4377C17.682%2019.6089%2017.6726%2019.7853%2017.692%2019.9595C17.7149%2020.0334%2017.9086%2020.1236%2018.1203%2020.1762L18.9982%2020.3632C19.2531%2020.4101%2019.5145%2020.4101%2019.7695%2020.3632L20.5588%2020.1844C20.7705%2020.1368%2020.9625%2020.0367%2020.9871%2019.9628C21.006%2019.7884%2020.996%2019.6121%2020.9576%2019.441L20.3881%2016.3493C20.3713%2016.2438%2020.3932%2016.1358%2020.45%2016.0453C20.5067%2015.9548%2020.5943%2015.8879%2020.6966%2015.857L22.1374%2015.4533C22.3901%2015.3911%2022.6507%2015.3679%2022.9103%2015.3844L24.5661%2015.5387C24.7827%2015.5584%2024.7926%2015.6388%2024.5907%2015.7159L21.7731%2016.7842C21.5547%2016.875%2021.3745%2017.0385%2021.2628%2017.247C21.188%2017.4677%2021.204%2017.7091%2021.3071%2017.9181L22.208%2019.6084C22.2565%2019.7045%2022.269%2019.8148%2022.2431%2019.9193C22.2172%2020.0238%2022.1547%2020.1155%2022.0669%2020.1778L19.7498%2021.7433C19.7116%2021.7831%2019.6819%2021.8302%2019.6622%2021.8817C19.6426%2021.9332%2019.6335%2021.9881%2019.6355%2022.0432C19.6375%2022.0983%2019.6505%2022.1524%2019.6738%2022.2024C19.6971%2022.2524%2019.7302%2022.2971%2019.7711%2022.3341L20.8%2023.2612C21.0005%2023.4316%2021.2209%2023.5771%2021.4564%2023.6945L22.7397%2024.3049C22.8469%2024.3482%2022.9635%2024.3636%2023.0783%2024.3495C23.1931%2024.3354%2023.3024%2024.2924%2023.3961%2024.2245L23.7571%2023.9291C24.0347%2023.7028%2024.2462%2023.4057%2024.3692%2023.0693L24.4447%2022.8625C24.5184%2022.6225%2024.5121%2022.365%2024.4266%2022.129L24.0492%2021.2379C24.0082%2021.128%2023.9974%2021.0092%2024.0179%2020.8938C24.0384%2020.7784%2024.0894%2020.6705%2024.1657%2020.5815L26.4631%2018.1364C26.6125%2017.9723%2026.8438%2017.7097%2026.98%2017.5407C27.0078%2017.4778%2027.0314%2017.4131%2027.0506%2017.3471Z'%20fill='white'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_4268_19460'%20x1='19.588'%20y1='38.9497'%20x2='19.588'%20y2='62.3757'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23534BB1'/%3e%3cstop%20offset='1'%20stop-color='%23551BF9'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_4268_19460'%20x1='19.8458'%20y1='43.1877'%20x2='19.8458'%20y2='58.6387'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'/%3e%3cstop%20offset='1'%20stop-color='white'%20stop-opacity='0.82'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint2_linear_4268_19460'%20x1='9.33469'%20y1='21.0421'%20x2='29.2877'%20y2='21.0421'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23F1562B'/%3e%3cstop%20offset='0.3'%20stop-color='%23F1542B'/%3e%3cstop%20offset='0.41'%20stop-color='%23F04D2A'/%3e%3cstop%20offset='0.49'%20stop-color='%23EF4229'/%3e%3cstop%20offset='0.5'%20stop-color='%23EF4029'/%3e%3cstop%20offset='0.56'%20stop-color='%23E83E28'/%3e%3cstop%20offset='0.67'%20stop-color='%23E13C26'/%3e%3cstop%20offset='1'%20stop-color='%23DF3C26'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='70'%20height='65'%20viewBox='0%200%2070%2065'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M66.4571%200.0688171L39.1953%2020.3156L44.2377%208.3699L66.4571%200.0688171Z'%20fill='%23E2761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M66.5006%200.0360005C66.517%200.0661604%2066.5087%200.103795%2066.4812%200.124265L39.2194%2020.3711C39.1944%2020.3896%2039.1602%2020.3891%2039.1357%2020.3699C39.1113%2020.3507%2039.1027%2020.3176%2039.1148%2020.2889L44.1572%208.34321C44.1646%208.32574%2044.1788%208.31208%2044.1966%208.30545L66.416%200.00436888C66.4481%20-0.00764654%2066.4842%200.00584067%2066.5006%200.0360005ZM44.2727%208.42418L39.3401%2020.1097L66.0081%200.303885L44.2727%208.42418Z'%20fill='%23E2761B'/%3e%3cpath%20d='M3.51172%200.0688171L30.5543%2020.5072L25.7587%208.3699L3.51172%200.0688171Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3.46945%200.0357588C3.48592%200.00576563%203.5219%20-0.00760322%203.55396%200.00435889L25.8009%208.30544C25.8192%208.31226%2025.8337%208.32653%2025.8409%208.34469L30.6366%2020.482C30.6479%2020.5107%2030.6388%2020.5435%2030.6142%2020.5622C30.5896%2020.5809%2030.5556%2020.581%2030.5309%2020.5623L3.48831%200.123918C3.46101%200.103287%203.45298%200.065752%203.46945%200.0357588ZM3.94789%200.298477L30.4181%2020.3043L25.724%208.42387L3.94789%200.298477Z'%20fill='%23E4761B'/%3e%3cpath%20d='M56.651%2047.0008L49.3906%2058.1249L64.9259%2062.3982L69.3921%2047.2475L56.651%2047.0008Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M56.6036%2046.9637C56.6166%2046.9438%2056.6389%2046.932%2056.6626%2046.9324L69.4037%2047.1792C69.4252%2047.1796%2069.4453%2047.19%2069.458%2047.2073C69.4707%2047.2247%2069.4746%2047.2469%2069.4685%2047.2676L65.0023%2062.4182C64.9917%2062.4542%2064.9541%2062.4751%2064.9179%2062.4652L49.3827%2058.1919C49.3615%2058.1861%2049.3443%2058.1705%2049.3365%2058.1499C49.3287%2058.1293%2049.3312%2058.1063%2049.3432%2058.0878L56.6036%2046.9637ZM56.6981%2047.071L49.5103%2058.0841L64.8892%2062.3143L69.3107%2047.3152L56.6981%2047.071Z'%20fill='%23E4761B'/%3e%3cpath%20d='M0.652344%2047.2484L5.09098%2062.3991L20.6262%2058.1258L13.3659%2047.0017L0.652344%2047.2484Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13.3553%2046.9324C13.3791%2046.932%2013.4014%2046.9438%2013.4144%2046.9637L20.6747%2058.0878C20.6868%2058.1063%2020.6893%2058.1293%2020.6815%2058.1499C20.6737%2058.1705%2020.6565%2058.1861%2020.6353%2058.1919L5.10006%2062.4652C5.06379%2062.4751%205.02621%2062.4542%205.01564%2062.4181L0.576999%2047.2674C0.570962%2047.2468%200.574874%2047.2246%200.587581%2047.2073C0.600287%2047.19%200.620336%2047.1796%200.641805%2047.1792L13.3553%2046.9324ZM0.734638%2047.3152L5.12886%2062.3143L20.5077%2058.0841L13.3198%2047.071L0.734638%2047.3152Z'%20fill='%23E4761B'/%3e%3cpath%20d='M19.7438%2028.2063L15.4141%2034.7553L30.839%2035.4404L30.2918%2018.8645L19.7438%2028.2063Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M30.3293%2018.8008C30.3539%2018.8114%2030.3701%2018.8351%2030.371%2018.8618L30.9182%2035.4378C30.9189%2035.457%2030.9115%2035.4756%2030.8978%2035.4891C30.8841%2035.5026%2030.8655%2035.5098%2030.8463%2035.5089L15.4213%2034.8238C15.3965%2034.8227%2015.3742%2034.8084%2015.363%2034.7863C15.3517%2034.7642%2015.3532%2034.7377%2015.3669%2034.717L19.6966%2028.1679C19.7%2028.1629%2019.7039%2028.1583%2019.7084%2028.1543L30.2564%2018.8125C30.2764%2018.7948%2030.3048%2018.7902%2030.3293%2018.8008ZM19.8066%2028.2515L15.549%2034.6915L30.778%2035.3679L30.2381%2019.0129L19.8066%2028.2515Z'%20fill='%23E4761B'/%3e%3cpath%20d='M50.2368%2028.2057L39.5523%2018.6723L39.1953%2035.4398L54.5941%2034.7547L50.2368%2028.2057Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M39.5078%2018.6092C39.5325%2018.5984%2039.5611%2018.603%2039.5812%2018.6209L50.2656%2028.1544C50.27%2028.1583%2050.2739%2028.1627%2050.2771%2028.1676L54.6344%2034.7167C54.6482%2034.7374%2054.6498%2034.7639%2054.6385%2034.786C54.6273%2034.8082%2054.605%2034.8226%2054.5801%2034.8237L39.1814%2035.5088C39.1623%2035.5097%2039.1438%2035.5026%2039.1301%2035.4892C39.1165%2035.4759%2039.109%2035.4575%2039.1094%2035.4385L39.4664%2018.6709C39.467%2018.644%2039.4831%2018.6199%2039.5078%2018.6092ZM39.601%2018.8234L39.2488%2035.3678L54.4521%2034.6914L50.1673%2028.2513L39.601%2018.8234Z'%20fill='%23E4761B'/%3e%3cpath%20d='M20.6328%2058.1256L29.8933%2053.6043L21.8927%2047.3571L20.6328%2058.1256Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M21.8374%2047.2931C21.8604%2047.2835%2021.8868%2047.2871%2021.9064%2047.3024L29.907%2053.5496C29.9257%2053.5642%2029.9356%2053.5875%2029.9331%2053.6111C29.9306%2053.6347%2029.9162%2053.6554%2029.8948%2053.6658L20.6343%2058.1872C20.6117%2058.1983%2020.5848%2058.1961%2020.5642%2058.1815C20.5437%2058.1669%2020.5327%2058.1423%2020.5356%2058.1172L21.7955%2047.3487C21.7984%2047.324%2021.8144%2047.3027%2021.8374%2047.2931ZM21.9182%2047.4865L20.6872%2058.008L29.7352%2053.5904L21.9182%2047.4865Z'%20fill='%23E4761B'/%3e%3cpath%20d='M40.1094%2053.6043L49.3974%2058.1256L48.11%2047.3571L40.1094%2053.6043Z'%20fill='%23E4761B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M48.1194%2047.2931C48.1424%2047.3027%2048.1584%2047.3239%2048.1614%2047.3486L49.4489%2058.1171C49.4518%2058.1421%2049.4409%2058.1668%2049.4204%2058.1814C49.3998%2058.196%2049.3729%2058.1983%2049.3503%2058.1872L40.0622%2053.6659C40.0408%2053.6555%2040.0263%2053.6348%2040.0238%2053.6111C40.0213%2053.5875%2040.0312%2053.5642%2040.0499%2053.5496L48.0505%2047.3024C48.0701%2047.2871%2048.0965%2047.2835%2048.1194%2047.2931ZM40.2218%2053.5903L49.297%2058.008L48.039%2047.4863L40.2218%2053.5903Z'%20fill='%23E4761B'/%3e%3cpath%20d='M49.3974%2058.1264L40.1094%2053.605L40.8496%2059.6606L40.7669%2062.208L49.3974%2058.1264Z'%20fill='%23D7C1B3'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M40.0523%2053.5486C40.0729%2053.5339%2040.0998%2053.5316%2040.1225%2053.5427L49.4106%2058.064C49.4344%2058.0756%2049.4495%2058.0999%2049.4493%2058.1264C49.4492%2058.1529%2049.4339%2058.177%2049.4099%2058.1883L40.7794%2062.2699C40.7576%2062.2802%2040.7321%2062.2784%2040.7121%2062.2653C40.692%2062.2521%2040.6802%2062.2294%2040.681%2062.2054L40.7635%2059.6633L40.0239%2053.613C40.0209%2053.588%2040.0318%2053.5632%2040.0523%2053.5486ZM40.1762%2053.7221L40.901%2059.6519C40.9014%2059.6554%2040.9016%2059.6589%2040.9015%2059.6625L40.8224%2062.0971L49.2211%2058.1251L40.1762%2053.7221Z'%20fill='%23D7C1B3'/%3e%3cpath%20d='M20.6328%2058.1264L29.2633%2062.208L29.2082%2059.6606L29.8933%2053.605L20.6328%2058.1264Z'%20fill='%23D7C1B3'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M29.9043%2053.5484C29.9249%2053.5629%2029.9359%2053.5874%2029.9331%2053.6124L29.2485%2059.6634L29.3035%2062.2061C29.304%2062.23%2029.2921%2062.2525%2029.2721%2062.2655C29.2521%2062.2785%2029.2267%2062.2801%2029.2051%2062.2699L20.5746%2058.1883C20.5507%2058.177%2020.5353%2058.1529%2020.5352%2058.1264C20.535%2058.0999%2020.55%2058.0757%2020.5738%2058.0641L29.8343%2053.5427C29.8569%2053.5317%2029.8838%2053.5339%2029.9043%2053.5484ZM20.7632%2058.125L29.1633%2062.0977L29.1106%2059.6617C29.1105%2059.6586%2029.1106%2059.6556%2029.111%2059.6525L29.782%2053.7217L20.7632%2058.125Z'%20fill='%23D7C1B3'/%3e%3cpath%20d='M29.3786%2043.3577L21.6523%2041.0832L27.1041%2038.5896L29.3786%2043.3577Z'%20fill='%23233447'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M27.0858%2038.527C27.12%2038.5114%2027.1605%2038.5261%2027.1767%2038.56L29.4511%2043.3281C29.4629%2043.3527%2029.459%2043.3818%2029.4414%2043.4025C29.4237%2043.4232%2029.3956%2043.4316%2029.3695%2043.4239L21.6432%2041.1495C21.6156%2041.1413%2021.596%2041.1169%2021.5939%2041.0883C21.5919%2041.0596%2021.6079%2041.0326%2021.634%2041.0207L27.0858%2038.527ZM21.8591%2041.0693L29.2602%2043.2481L27.0815%2038.6806L21.8591%2041.0693Z'%20fill='%23233447'/%3e%3cpath%20d='M40.6094%2043.3577L42.8838%2038.5896L48.3632%2041.0832L40.6094%2043.3577Z'%20fill='%23233447'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M42.7968%2038.56C42.813%2038.5261%2042.8534%2038.5114%2042.8876%2038.527L48.3669%2041.0206C48.3931%2041.0325%2048.4092%2041.0595%2048.4071%2041.0882C48.4051%2041.117%2048.3854%2041.1414%2048.3578%2041.1495L40.6039%2043.4239C40.5779%2043.4316%2040.5497%2043.4232%2040.5321%2043.4025C40.5144%2043.3818%2040.5106%2043.3527%2040.5223%2043.3281L42.7968%2038.56ZM42.8921%2038.6805L40.7132%2043.2483L48.1412%2041.0694L42.8921%2038.6805Z'%20fill='%23233447'/%3e%3cpath%20d='M20.6119%2058.1249L21.927%2047.0008L13.3516%2047.2475L20.6119%2058.1249Z'%20fill='%23CD6116'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M21.9959%2046.9548C22.0095%2046.9696%2022.0159%2046.9895%2022.0135%2047.0094L20.6985%2058.1336C20.6951%2058.1623%2020.6742%2058.1858%2020.6461%2058.1925C20.618%2058.1992%2020.5888%2058.1878%2020.5727%2058.1638L13.3124%2047.2863C13.2985%2047.2655%2013.297%2047.2387%2013.3085%2047.2164C13.32%2047.1942%2013.3427%2047.1799%2013.3677%2047.1792L21.9431%2046.9324C21.9631%2046.9319%2021.9824%2046.94%2021.9959%2046.9548ZM13.4962%2047.3134L20.5836%2057.9317L21.8673%2047.0725L13.4962%2047.3134Z'%20fill='%23CD6116'/%3e%3cpath%20d='M48.0703%2047.0017L49.3854%2058.1258L56.6457%2047.2484L48.0703%2047.0017Z'%20fill='%23CD6116'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M48.0298%2046.9548C48.0433%2046.94%2048.0626%2046.9319%2048.0826%2046.9324L56.658%2047.1792C56.6831%2047.1799%2056.7058%2047.1942%2056.7173%2047.2164C56.7288%2047.2387%2056.7273%2047.2655%2056.7134%2047.2863L49.453%2058.1638C49.437%2058.1878%2049.4077%2058.1992%2049.3796%2058.1925C49.3515%2058.1858%2049.3306%2058.1623%2049.3272%2058.1336L48.0122%2047.0094C48.0098%2046.9895%2048.0163%2046.9696%2048.0298%2046.9548ZM48.1585%2047.0725L49.4422%2057.9317L56.5296%2047.3134L48.1585%2047.0725Z'%20fill='%23CD6116'/%3e%3cpath%20d='M54.5941%2034.7548L39.1953%2035.4399L40.6206%2043.3578L42.8951%2038.5897L48.3745%2041.0833L54.5941%2034.7548Z'%20fill='%23CD6116'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M54.64%2034.7269C54.6515%2034.7527%2054.6461%2034.783%2054.6262%2034.8032L48.4066%2041.1317C48.3863%2041.1524%2048.3553%2041.1582%2048.3289%2041.1462L42.9111%2038.6806L40.6658%2043.3876C40.6529%2043.4146%2040.6241%2043.4302%2040.5945%2043.4262C40.5648%2043.4222%2040.5411%2043.3995%2040.5358%2043.3701L39.1105%2035.4522C39.1069%2035.4327%2039.112%2035.4125%2039.1245%2035.397C39.1369%2035.3815%2039.1554%2035.372%2039.1752%2035.3712L54.574%2034.6861C54.6023%2034.6848%2054.6285%2034.701%2054.64%2034.7269ZM39.2601%2035.5054L40.6335%2043.1351L42.8159%2038.5601C42.8321%2038.5262%2042.8724%2038.5115%2042.9066%2038.5271L48.3421%2041.0007L54.4051%2034.8316L39.2601%2035.5054Z'%20fill='%23CD6116'/%3e%3cpath%20d='M21.6612%2041.0833L27.1406%2038.5897L29.3875%2043.3578L30.839%2035.4399L15.4141%2034.7548L21.6612%2041.0833Z'%20fill='%23CD6116'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M15.3614%2034.7269C15.3729%2034.701%2015.3991%2034.6848%2015.4275%2034.6861L30.8524%2035.3712C30.8723%2035.372%2030.8909%2035.3815%2030.9033%2035.3971C30.9157%2035.4127%2030.9207%2035.4328%2030.9171%2035.4524L29.4656%2043.3703C29.4602%2043.3998%2029.4364%2043.4224%2029.4067%2043.4262C29.377%2043.4301%2029.3482%2043.4143%2029.3355%2043.3873L27.1176%2038.6807L21.7001%2041.1462C21.6738%2041.1581%2021.6428%2041.1524%2021.6225%2041.1318L15.3753%2034.8033C15.3554%2034.7832%2015.3499%2034.7528%2015.3614%2034.7269ZM15.5969%2034.8316L21.6868%2041.0008L27.1224%2038.5271C27.1567%2038.5114%2027.1972%2038.5263%2027.2133%2038.5604L29.3687%2043.1344L30.7673%2035.5054L15.5969%2034.8316Z'%20fill='%23CD6116'/%3e%3cpath%20d='M15.4141%2034.7548L21.8804%2047.3567L21.6612%2041.0833L15.4141%2034.7548Z'%20fill='%23E4751F'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M15.384%2034.6991C15.4115%2034.6791%2015.4495%2034.6823%2015.4734%2034.7065L21.7206%2041.035C21.7328%2041.0473%2021.7398%2041.0637%2021.7405%2041.081L21.9596%2047.3544C21.9608%2047.3866%2021.9393%2047.4154%2021.9081%2047.4235C21.8769%2047.4316%2021.8442%2047.417%2021.8294%2047.3883L15.3631%2034.7864C15.3475%2034.7561%2015.3564%2034.719%2015.384%2034.6991ZM15.6906%2035.1227L21.8111%2047.0506L21.6036%2041.1127L15.6906%2035.1227Z'%20fill='%23E4751F'/%3e%3cpath%20d='M48.3876%2041.0833L48.1133%2047.3567L54.6072%2034.7548L48.3876%2041.0833Z'%20fill='%23E4751F'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M54.6228%2034.6991C54.6504%2034.7191%2054.6592%2034.7562%2054.6436%2034.7865L48.1497%2047.3884C48.1349%2047.4171%2048.102%2047.4317%2048.0708%2047.4234C48.0395%2047.4151%2048.0182%2047.3861%2048.0196%2047.3538L48.2939%2041.0804C48.2947%2041.0634%2048.3017%2041.0473%2048.3136%2041.0351L54.5332%2034.7066C54.5571%2034.6823%2054.5952%2034.6791%2054.6228%2034.6991ZM48.4305%2041.1129L48.171%2047.0461L54.3128%2035.1275L48.4305%2041.1129Z'%20fill='%23E4751F'/%3e%3cpath%20d='M30.8343%2035.4407L29.3828%2043.3586L31.1914%2052.7004L31.6021%2040.399L30.8343%2035.4407Z'%20fill='%23E4751F'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M30.8456%2035.3715C30.8792%2035.3719%2030.9076%2035.3966%2030.9128%2035.4298L31.6806%2040.3882C31.6812%2040.3924%2031.6815%2040.3967%2031.6813%2040.401L31.2706%2052.7024C31.2694%2052.7374%2031.2421%2052.766%2031.2071%2052.7688C31.1721%2052.7715%2031.1407%2052.7476%2031.134%2052.7132L29.3255%2043.3714C29.3238%2043.3629%2029.3238%2043.3543%2029.3253%2043.3458L30.7769%2035.428C30.7829%2035.3949%2030.812%2035.371%2030.8456%2035.3715ZM29.4633%2043.3579L31.1532%2052.087L31.5434%2040.4029L30.8389%2035.8538L29.4633%2043.3579Z'%20fill='%23E4751F'/%3e%3cpath%20d='M39.2037%2035.4407L38.4648%2040.3715L38.7929%2052.7004L40.629%2043.3586L39.2037%2035.4407Z'%20fill='%23E4751F'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M39.1935%2035.3715C39.2272%2035.371%2039.2564%2035.395%2039.2623%2035.4282L40.6877%2043.346C40.6892%2043.3545%2040.6891%2043.3631%2040.6875%2043.3715L38.8513%2052.7134C38.8446%2052.7478%2038.813%2052.7717%2038.778%2052.7687C38.7429%2052.7658%2038.7158%2052.737%2038.7148%2052.7019L38.3867%2040.373C38.3866%2040.3689%2038.3869%2040.3649%2038.3875%2040.3609L39.1263%2035.4302C39.1313%2035.3968%2039.1598%2035.372%2039.1935%2035.3715ZM39.2007%2035.864L38.5247%2040.3754L38.8361%2052.0763L40.5497%2043.3577L39.2007%2035.864Z'%20fill='%23E4751F'/%3e%3cpath%20d='M40.6291%2043.3583L38.793%2052.7001L40.108%2053.6043L48.1086%2047.3572L48.3829%2041.0838L40.6291%2043.3583Z'%20fill='%23F6851B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M48.4045%2041.0287C48.422%2041.0425%2048.4318%2041.0638%2048.4308%2041.086L48.1565%2047.3594C48.1557%2047.3795%2048.146%2047.3983%2048.1301%2047.4107L40.1295%2053.6579C40.1058%2053.6764%2040.0728%2053.6774%2040.0481%2053.6603L38.733%2052.7561C38.7104%2052.7405%2038.6991%2052.7129%2038.7044%2052.686L40.5405%2043.3442C40.5455%2043.3189%2040.5641%2043.2986%2040.5888%2043.2913L48.3426%2041.0169C48.3639%2041.0106%2048.387%2041.015%2048.4045%2041.0287ZM40.6677%2043.4118L38.8484%2052.6681L40.0845%2053.5181L48.0202%2047.3216L48.2889%2041.1763L40.6677%2043.4118Z'%20fill='%23F6851B'/%3e%3cpath%20d='M21.6523%2041.0838L21.8715%2047.3572L29.8721%2053.6043L31.1871%2052.7001L29.3786%2043.3583L21.6523%2041.0838Z'%20fill='%23F6851B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M21.6204%2041.0285C21.6379%2041.015%2021.6609%2041.0106%2021.6821%2041.0169L29.4084%2043.2913C29.4331%2043.2986%2029.4517%2043.3191%2029.4566%2043.3443L31.2651%2052.6862C31.2704%2052.7131%2031.2591%2052.7405%2031.2365%2052.7561L29.9215%2053.6603C29.8967%2053.6774%2029.8637%2053.6764%2029.84%2053.6579L21.8394%2047.4107C21.8234%2047.3981%2021.8137%2047.3791%2021.813%2047.3588L21.5938%2041.0854C21.593%2041.0633%2021.6029%2041.0421%2021.6204%2041.0285ZM21.7349%2041.1761L21.9496%2047.3218L29.885%2053.5181L31.1212%2052.668L29.3292%2043.4117L21.7349%2041.1761Z'%20fill='%23F6851B'/%3e%3cpath%20d='M40.7693%2062.2064L40.852%2059.659L40.167%2059.0553H29.8382L29.2082%2059.659L29.2633%2062.2064L20.6328%2058.1248L23.6461%2060.5895L29.7555%2064.8365H40.2497L46.3866%2060.5895L49.3999%2058.1248L40.7693%2062.2064Z'%20fill='%23C0AD9E'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M20.5458%2058.0885C20.5644%2058.0591%2020.6021%2058.0482%2020.6335%2058.0631L29.1633%2062.097L29.1106%2059.6611C29.1102%2059.6418%2029.1178%2059.6232%2029.1318%2059.6098L29.7617%2059.0061C29.7746%2058.9938%2029.7917%2058.9869%2029.8094%2058.9869H40.1382C40.155%2058.9869%2040.1712%2058.993%2040.1838%2059.0041L40.8689%2059.6079C40.8843%2059.6215%2040.8929%2059.6413%2040.8922%2059.6618L40.8132%2062.0964L49.3417%2058.0631C49.3732%2058.0482%2049.4108%2058.0591%2049.4294%2058.0885C49.448%2058.118%2049.4417%2058.1567%2049.4148%2058.1787L46.4015%2060.6434C46.401%2060.6438%2046.4005%2060.6442%2046.4%2060.6446C46.399%2060.6453%2046.398%2060.646%2046.3971%2060.6467L40.2602%2064.8938C40.2486%2064.9017%2040.235%2064.906%2040.2209%2064.906H29.7267C29.7127%2064.906%2029.6989%2064.9017%2029.6874%2064.8937L23.5781%2060.6466C23.5766%2060.6456%2023.5751%2060.6445%2023.5738%2060.6434L20.5604%2058.1787C20.5335%2058.1567%2020.5272%2058.118%2020.5458%2058.0885ZM48.8921%2058.4282L40.7701%2062.2693C40.7484%2062.2796%2040.7229%2062.2778%2040.7028%2062.2646C40.6827%2062.2514%2040.6709%2062.2288%2040.6717%2062.2048L40.7534%2059.6898L40.1122%2059.1248H29.8371L29.249%2059.6884L29.3035%2062.2055C29.304%2062.2294%2029.2922%2062.2518%2029.2721%2062.2648C29.2521%2062.2778%2029.2267%2062.2795%2029.2051%2062.2693L21.0832%2058.4282L23.6589%2060.535L29.7483%2064.7682H40.1994L46.3163%2060.535L48.8921%2058.4282Z'%20fill='%23C0AD9E'/%3e%3cpath%20d='M40.0833%2053.6047L38.7682%2052.7004H31.1798L29.8648%2053.6047L29.1797%2059.6603L29.8096%2059.0565H40.1384L40.8235%2059.6603L40.0833%2053.6047Z'%20fill='%23161616'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M31.1511%2052.6437C31.1626%2052.6358%2031.1762%2052.6316%2031.1902%2052.6316H38.7786C38.7925%2052.6316%2038.8061%2052.6358%2038.8176%2052.6437L40.1327%2053.548C40.149%2053.5592%2040.1596%2053.5768%2040.162%2053.5964L40.9023%2059.652C40.9057%2059.6804%2040.8913%2059.708%2040.866%2059.7213C40.8407%2059.7347%2040.8098%2059.731%2040.7883%2059.7121L40.1227%2059.1255H29.8477L29.2377%2059.7101C29.2168%2059.7302%2029.1855%2059.735%2029.1594%2059.7221C29.1334%2059.7093%2029.1183%2059.6815%2029.1215%2059.6526L29.8066%2053.597C29.8089%2053.5772%2029.8196%2053.5593%2029.8361%2053.548L31.1511%2052.6437ZM31.2116%2052.7694L29.9401%2053.6438L29.2799%2059.4787L29.7723%2059.0068C29.7851%2058.9945%2029.8022%2058.9877%2029.82%2058.9877H40.1488C40.1655%2058.9877%2040.1818%2058.9938%2040.1943%2059.0049L40.7435%2059.4888L40.029%2053.644L38.7572%2052.7694H31.2116Z'%20fill='%23161616'/%3e%3cpath%20d='M67.6179%2021.6307L69.9461%2010.4527L66.4669%200.0688171L40.1094%2019.6305L50.2466%2028.2059L64.5756%2032.3978L67.7544%2028.6994L66.3842%2027.7138L68.5759%2025.7137L66.8777%2024.3986L69.0694%2022.7265L67.6179%2021.6307Z'%20fill='%23763D16'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M66.4705%200.00317148C66.4916%200.00979012%2066.5082%200.0260955%2066.5152%200.0470267L69.9945%2010.431C69.9983%2010.4425%2069.9991%2010.455%2069.9966%2010.4669L67.6773%2021.6021L69.0939%2022.6716C69.1111%2022.6846%2069.1213%2022.7049%2069.1213%2022.7265C69.1214%2022.748%2069.1113%2022.7684%2069.0942%2022.7815L66.9738%2024.3991L68.6011%2025.6593C68.6172%2025.6717%2068.627%2025.6907%2068.6278%2025.711C68.6286%2025.7313%2068.6204%2025.751%2068.6054%2025.7647L66.4764%2027.7076L67.7776%2028.6436C67.7933%2028.6548%2067.8035%2028.6722%2067.8058%2028.6914C67.8081%2028.7105%2067.8022%2028.7298%2067.7896%2028.7444L64.6109%2032.4428C64.5933%2032.4634%2064.5652%2032.4717%2064.5393%2032.4641L50.2102%2028.2722C50.201%2028.2695%2050.1924%2028.2649%2050.185%2028.2586L40.0478%2019.6833C40.0318%2019.6697%2040.0228%2019.6495%2040.0235%2019.6284C40.0241%2019.6074%2040.0344%2019.5878%2040.0513%2019.5753L66.4088%200.0135778C66.4265%200.000421927%2066.4495%20-0.00344716%2066.4705%200.00317148ZM40.2033%2019.6342L50.2629%2028.144L64.5353%2032.3193L67.6361%2028.7116L66.3269%2027.7699C66.3101%2027.7577%2066.2996%2027.7387%2066.2984%2027.7179C66.2972%2027.6972%2066.3054%2027.677%2066.3207%2027.663L68.4519%2025.7181L66.8185%2024.4532C66.8015%2024.4401%2066.7917%2024.4199%2066.7917%2024.3985C66.7918%2024.3771%2066.8018%2024.3569%2066.8189%2024.3439L68.9384%2022.7269L67.5594%2021.6858C67.5381%2021.6697%2067.528%2021.6428%2067.5334%2021.6167L69.8578%2010.4571L66.4147%200.180865L40.2033%2019.6342Z'%20fill='%23763D16'/%3e%3cpath%20d='M0.0664062%2010.4527L2.39462%2021.6307L0.915537%2022.7265L3.10729%2024.3986L1.43659%2025.7137L3.62834%2027.7138L2.25816%2028.6994L5.40931%2032.3978L19.7384%2028.2059L29.8756%2019.6305L3.51807%200.0688171L0.0664062%2010.4527Z'%20fill='%23763D16'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3.49984%200.00319621C3.52092%20-0.00345631%203.54391%200.000404632%203.56166%200.0135778L29.9192%2019.5753C29.9361%2019.5878%2029.9463%2019.6074%2029.947%2019.6284C29.9476%2019.6495%2029.9387%2019.6697%2029.9226%2019.6833L19.7854%2028.2586C19.7781%2028.2649%2019.7695%2028.2695%2019.7603%2028.2722L5.43118%2032.4641C5.40511%2032.4717%205.37698%2032.4633%205.35937%2032.4426L2.20821%2028.7442C2.19572%2028.7296%202.18993%2028.7103%202.19225%2028.6912C2.19457%2028.6721%202.20479%2028.6548%202.22043%2028.6436L3.52166%2027.7076L1.39265%2025.7647C1.37769%2025.751%201.3695%2025.7315%201.37023%2025.7113C1.37097%2025.691%201.38057%2025.6721%201.39648%2025.6596L2.99729%2024.3996L0.876249%2022.7815C0.859024%2022.7683%200.84898%2022.7478%200.849132%2022.7262C0.849284%2022.7045%200.859614%2022.6842%200.877022%2022.6713L2.32067%2021.6017L0.00144812%2010.4669C-0.00103161%2010.455%20-0.000317245%2010.4427%200.0035187%2010.4311L3.45518%200.0471829C3.46215%200.0262075%203.47876%200.00984874%203.49984%200.00319621ZM3.55596%200.181008L0.140184%2010.457L2.46461%2021.6167C2.4701%2021.643%202.45977%2021.6702%202.43817%2021.6862L1.03274%2022.7275L3.15161%2024.3439C3.16855%2024.3569%203.17856%2024.3769%203.17872%2024.3982C3.17888%2024.4195%203.16918%2024.4397%203.15243%2024.4529L1.54561%2025.7177L3.67732%2027.663C3.69266%2027.677%203.70087%2027.6972%203.69967%2027.7179C3.69846%2027.7387%203.68797%2027.7577%203.67111%2027.7699L2.36166%2028.7118L5.43533%2032.3192L19.7075%2028.144L29.7672%2019.6342L3.55596%200.181008Z'%20fill='%23763D16'/%3e%3cpath%20d='M64.579%2032.3981L50.2499%2028.2063L54.6072%2034.7553L48.1133%2047.3572L56.6611%2047.2483H69.4022L64.579%2032.3981Z'%20fill='%23F6851B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M50.1695%2028.1655C50.1867%2028.1422%2050.2166%2028.1321%2050.2444%2028.1402L64.5735%2032.3321C64.5954%2032.3385%2064.6127%2032.3553%2064.6197%2032.377L69.4429%2047.2271C69.4497%2047.2481%2069.4461%2047.2711%2069.4331%2047.2889C69.4202%2047.3068%2069.3994%2047.3173%2069.3774%2047.3173H56.6363L48.0893%2047.4262C48.0651%2047.4265%2048.0426%2047.4141%2048.0298%2047.3935C48.0171%2047.373%2048.0161%2047.3472%2048.0272%2047.3257L54.5025%2034.7599L50.1677%2028.2445C50.1516%2028.2204%2050.1524%2028.1889%2050.1695%2028.1655ZM50.3872%2028.3256L54.6398%2034.7172C54.6536%2034.7381%2054.6551%2034.7648%2054.6436%2034.787L48.2023%2047.2869L56.6354%2047.1795L56.6363%2047.1795L69.2825%2047.1795L64.4998%2032.4542L50.3872%2028.3256Z'%20fill='%23F6851B'/%3e%3cpath%20d='M19.7495%2028.2063L5.42043%2032.3981L0.652344%2047.2483H13.3659L21.8861%2047.3572L15.4198%2034.7553L19.7495%2028.2063Z'%20fill='%23F6851B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M19.7958%2028.1654C19.813%2028.1887%2019.8138%2028.2202%2019.7978%2028.2444L15.4903%2034.7598L21.9382%2047.3258C21.9493%2047.3473%2021.9482%2047.373%2021.9355%2047.3936C21.9228%2047.4141%2021.9002%2047.4265%2021.876%2047.4262L13.3567%2047.3173H0.643142C0.621122%2047.3173%200.600427%2047.3068%200.587453%2047.289C0.574479%2047.2712%200.570787%2047.2483%200.577519%2047.2273L5.34561%2032.3772C5.3526%2032.3554%205.36993%2032.3385%205.39188%2032.3321L19.721%2028.1402C19.7487%2028.1321%2019.7786%2028.1422%2019.7958%2028.1654ZM5.46568%2032.4541L0.73766%2047.1795H13.3576L21.7633%2047.2869L15.3493%2034.7869C15.3379%2034.7647%2015.3394%2034.7382%2015.3531%2034.7174L19.579%2028.3254L5.46568%2032.4541Z'%20fill='%23F6851B'/%3e%3cpath%20d='M39.1983%2035.4397L40.1025%2019.6301L44.2682%208.36951H25.7734L29.884%2019.6301L30.842%2035.4397L31.1715%2040.4256L31.1991%2052.6994H38.7875L38.8426%2040.4256L39.1983%2035.4397Z'%20fill='%23F6851B'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M25.7195%208.33011C25.7324%208.31168%2025.7535%208.3007%2025.776%208.3007H44.2707C44.2933%208.3007%2044.3144%208.31173%2044.3273%208.33024C44.3402%208.34874%2044.3432%208.37238%2044.3354%208.39353L40.1733%2019.6445L39.2696%2035.4437L39.2695%2035.4447L38.914%2040.4283L38.8589%2052.6998C38.8587%2052.7377%2038.8279%2052.7684%2038.79%2052.7684H31.2016C31.1636%2052.7684%2031.1327%2052.7376%2031.1326%2052.6996L31.1051%2040.428L30.7758%2035.4443L30.7758%2035.444L29.8183%2019.6444L25.7112%208.39325C25.7035%208.37212%2025.7066%208.34855%2025.7195%208.33011ZM25.8745%208.43854L29.9513%2019.6066C29.9535%2019.6129%2029.9549%2019.6194%2029.9553%2019.6261L30.9133%2035.4353L30.9133%2035.4356L31.2428%2040.4211C31.2429%2040.4226%2031.2429%2040.4241%2031.2429%2040.4255L31.2703%2052.6306H38.7214L38.7762%2040.4254C38.7762%2040.4238%2038.7763%2040.4223%2038.7764%2040.4208L39.132%2035.4359L39.132%2035.4349L40.0362%2019.6263C40.0366%2019.6195%2040.038%2019.6128%2040.0404%2019.6063L44.1718%208.43854H25.8745Z'%20fill='%23F6851B'/%3e%3c/svg%3e\"","export default \"data:image/png;base64,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\"","export default \"data:image/svg+xml,%3csvg%20width='74'%20height='74'%20viewBox='0%200%2074%2074'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M37%2072C56.33%2072%2072%2056.33%2072%2037C72%2017.67%2056.33%202%2037%202C17.67%202%202%2017.67%202%2037C2%2056.33%2017.67%2072%2037%2072Z'%20fill='%233396FF'%20stroke='%2366B1FF'%20stroke-width='3'%20stroke-miterlimit='22.9256'/%3e%3cpath%20d='M23.4002%2028.0464C30.8942%2020.7209%2043.0754%2020.7209%2050.5975%2028.0464L51.4956%2028.9165C51.8605%2029.2814%2051.8605%2029.8708%2051.4956%2030.2357L48.4082%2033.2389C48.2117%2033.4354%2047.903%2033.4354%2047.7346%2033.2389L46.4996%2032.032C41.251%2026.9237%2032.7747%2026.9237%2027.5261%2032.032L26.2069%2033.3231C26.0104%2033.5196%2025.7017%2033.5196%2025.5333%2033.3231L22.4459%2030.3199C22.081%2029.955%2022.081%2029.3656%2022.4459%2029.0007L23.4282%2028.0464H23.4002ZM56.9687%2034.2774L59.7193%2036.9719C60.0842%2037.3367%2060.0842%2037.9261%2059.7193%2038.291L47.3136%2050.3881C46.9487%2050.7529%2046.3312%2050.7529%2045.9663%2050.3881L37.1532%2041.7994C37.069%2041.7152%2036.9006%2041.7152%2036.8164%2041.7994L28.0032%2050.3881C27.6384%2050.7529%2027.0209%2050.7529%2026.656%2050.3881L14.2502%2038.291C13.8853%2037.9261%2013.8853%2037.3367%2014.2502%2036.9719L17.0008%2034.2774C17.3657%2033.9125%2017.9832%2033.9125%2018.3481%2034.2774L27.1612%2042.866C27.2454%2042.9502%2027.4138%2042.9502%2027.498%2042.866L36.3112%2034.2774C36.676%2033.9125%2037.2935%2033.9125%2037.6584%2034.2774L46.4716%2042.866C46.5558%2042.9502%2046.7242%2042.9502%2046.8084%2042.866L55.6215%2034.2774C55.9864%2033.9125%2056.6039%2033.9125%2056.9687%2034.2774Z'%20fill='white'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='17'%20height='15'%20viewBox='0%200%2017%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M15.6813%206.14035V5.50643C15.6813%204.34722%2014.9059%203.37279%2013.8599%203.09358L13.858%202.04837C13.858%201.02834%2013.0489%200.198242%2012.0541%200.198242H11.9587L3.51625%202.88492C3.32397%202.89632%203.14154%202.94193%202.97023%203.01055H2.94821C1.60705%203.01055%200.515625%204.13018%200.515625%205.50643V11.7024C0.515625%2013.0784%201.60684%2014.1982%202.94821%2014.1982H13.2487C14.5899%2014.1982%2015.6813%2013.0786%2015.6813%2011.7024V10.8783C16.1684%2010.6849%2016.5156%2010.2005%2016.5156%209.63303V7.38517C16.5154%206.81815%2016.1684%206.33373%2015.6813%206.14035ZM15.2573%209.63282C15.2573%209.6582%2015.2378%209.67821%2015.213%209.67821H11.8075C11.7828%209.67821%2011.7635%209.6582%2011.7635%209.63282V7.38517C11.7635%207.36043%2011.7832%207.34021%2011.8075%207.34021H15.213C15.2374%207.34021%2015.2573%207.36043%2015.2573%207.38517V9.63282ZM12.1319%201.49469C12.3963%201.53341%2012.5999%201.76701%2012.5999%202.04945L12.6016%203.01076H7.368L12.1319%201.49469ZM13.2487%2012.9074H2.94842C2.29986%2012.9074%201.77396%2012.3677%201.77396%2011.7021V5.50643C1.77396%204.84067%202.29986%204.30119%202.94842%204.30119H13.2487C13.8975%204.30119%2014.4232%204.84067%2014.4232%205.50643V6.04957H11.8075C11.0895%206.04957%2010.5054%206.64864%2010.5054%207.38517V9.63282C10.5054%2010.3696%2011.0895%2010.9688%2011.8075%2010.9688H14.4232V11.7024C14.4232%2012.3677%2013.8975%2012.9074%2013.2487%2012.9074Z'%20fill='%236F7473'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='10'%20height='12'%20viewBox='0%200%2010%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.93273%201.97282C8.95707%201.98551%208.97871%202.00212%208.99945%202.0236C9.00486%202.02946%209.00936%202.03532%209.01387%202.04118C9.27442%202.26483%209.53498%202.51778%209.72431%202.8225C9.93347%203.15944%2010.0498%203.54912%209.97945%204.01107C9.9497%204.20444%209.88208%204.3734%209.7793%204.52283C9.70537%204.62928%209.61522%204.72304%209.50883%204.80508C9.50342%204.9545%209.50162%205.101%209.50162%205.24652C9.50252%205.43306%209.50793%205.62546%209.51785%205.82274C9.54039%206.28567%209.6044%206.7525%209.66841%207.21543C9.73693%207.71352%209.80545%208.2077%209.82348%208.72239C9.84782%209.38162%209.77569%209.92366%209.57465%2010.3065C9.35106%2010.7343%208.98773%2010.9628%208.45219%2010.9423C7.81298%2010.9296%207.4199%2010.5409%207.24229%209.82306C7.08722%209.19508%207.11066%208.29853%207.28647%207.17051C7.28106%206.27688%207.17377%205.60006%206.961%205.14397C6.82216%204.8461%206.63373%204.64882%206.39572%204.55506V10.4071C6.47325%2010.4471%206.54358%2010.5018%206.60308%2010.5673C6.74012%2010.7157%206.82577%2010.9218%206.82577%2011.1484V11.7324C6.82577%2011.8799%206.71487%2012%206.57874%2012H0.247029C0.110893%2012%200%2011.8799%200%2011.7324V11.1484C0%2010.9218%200.0856489%2010.7167%200.222687%2010.5673C0.265061%2010.5214%200.312844%2010.4803%200.364233%2010.4462V1.41808C0.364233%201.02743%200.511189%200.672906%200.748301%200.416049C0.985413%200.159193%201.31268%200%201.67331%200H5.07943C5.44096%200%205.77003%200.160169%206.00805%200.418003C6.24606%200.675836%206.39392%201.03231%206.39392%201.42492V3.99935C6.83208%204.10287%207.16656%204.40661%207.39916%204.9047C7.6489%205.43892%207.77331%206.20461%207.77692%207.1959C7.77692%207.21152%207.77602%207.22715%207.77331%207.2418H7.77422C7.60743%208.30341%207.58038%209.1316%207.71742%209.68536C7.83192%2010.1512%208.07354%2010.4032%208.46031%2010.409H8.46482C8.79479%2010.4208%209.01387%2010.2899%209.1428%2010.0428C9.29516%209.75177%209.34835%209.30544%209.32762%208.7429C9.31049%208.2663%209.24287%207.78091%209.17615%207.29258C9.11124%206.82184%209.04633%206.3472%209.02199%205.84911C9.01207%205.6528%209.00666%205.45259%209.00576%205.24554C9.00486%205.08147%209.00756%204.91935%209.01387%204.76015C8.55317%204.32262%208.27278%203.88508%208.18623%203.4495C8.10419%203.03638%208.19074%202.63986%208.4567%202.26093C8.25385%202.11052%208.04739%201.98747%207.83823%201.88883C7.55243%201.75405%207.55063%201.74233%207.25131%201.68959C7.11697%201.66615%207.02591%201.52844%207.04755%201.38292C7.06919%201.23741%207.19631%201.13876%207.33064%201.1622C7.66963%201.22178%207.7102%201.24522%208.03567%201.39855C8.34491%201.54505%208.64333%201.73354%208.93273%201.97282ZM8.85069%202.5881C8.67849%202.83812%208.62079%203.08814%208.67128%203.34012C8.73168%203.64483%208.94175%203.96907%209.29155%204.31187C9.32671%204.27769%209.35827%204.24156%209.38441%204.20347C9.43941%204.12436%209.47637%204.03158%209.4917%203.9261C9.53858%203.61748%209.45834%203.35281%209.31409%203.12037C9.19509%202.92797%209.0292%202.75022%208.85069%202.5881ZM1.97083%201.22471H4.83961C4.98837%201.22471%205.12361%201.29014%205.22188%201.3966C5.22819%201.40441%205.2354%201.41125%205.24171%201.42004C5.32826%201.52454%205.38146%201.66224%205.38146%201.81069V3.79328C5.38146%203.95442%205.32105%204.1019%205.22278%204.20737C5.12541%204.31285%204.99018%204.37926%204.84052%204.37926H1.97083C1.82297%204.37926%201.68864%204.31285%201.58946%204.20737L1.58856%204.20835C1.49119%204.10287%201.42989%203.9554%201.42989%203.79425V1.80972C1.42989%201.64857%201.49029%201.50208%201.58856%201.39562C1.59577%201.38878%201.60209%201.38097%201.6102%201.37511C1.70667%201.28135%201.83289%201.22471%201.97083%201.22471ZM6.16943%2010.8876C6.16221%2010.8886%206.1559%2010.8886%206.14869%2010.8886H0.654538C0.623885%2010.9032%200.595936%2010.9237%200.572495%2010.9491C0.524712%2011.0009%200.49496%2011.0722%200.49496%2011.1513V11.4677H6.33171V11.1513C6.33171%2011.0732%206.30196%2011.0019%206.25417%2010.9491C6.22983%2010.9228%206.20098%2010.9023%206.16943%2010.8876Z'%20fill='%23808080'%20fill-opacity='0.5'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='512'%20height='512'%20viewBox='0%200%20512%20512'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='512'%20height='512'%20rx='110'%20fill='url(%23pattern0)'/%3e%3cdefs%3e%3cpattern%20id='pattern0'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1270_33423'%20transform='scale(0.000833333)'/%3e%3c/pattern%3e%3cimage%20id='image0_1270_33423'%20width='1200'%20height='1200'%20xlink:href='data:image/png;base64,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'/%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='512'%20height='512'%20viewBox='0%200%20512%20512'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='512'%20height='512'%20fill='url(%23pattern0)'/%3e%3cdefs%3e%3cpattern%20id='pattern0'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1270_33422'%20transform='scale(0.00195312)'/%3e%3c/pattern%3e%3cimage%20id='image0_1270_33422'%20width='512'%20height='512'%20xlink:href='data:image/png;base64,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'/%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='512'%20height='512'%20viewBox='0%200%20512%20512'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='512'%20height='512'%20fill='url(%23pattern0)'/%3e%3cdefs%3e%3cpattern%20id='pattern0'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1270_33421'%20transform='scale(0.00217391)'/%3e%3c/pattern%3e%3cimage%20id='image0_1270_33421'%20width='460'%20height='460'%20xlink:href='data:image/png;base64,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'/%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='356'%20height='512'%20viewBox='0%200%20356%20512'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M55%2073.1348C24.6243%2073.1348%200%2097.7591%200%20128.135V329.443C0%20332.756%202.68629%20335.443%206%20335.443H349.629C352.942%20335.443%20355.629%20332.756%20355.629%20329.443V128.135C355.629%2097.7591%20331.004%2073.1348%20300.629%2073.1348H55ZM176.546%20234.556C208.584%20234.556%20234.556%20208.584%20234.556%20176.546C234.556%20144.508%20208.584%20118.536%20176.546%20118.536C144.508%20118.536%20118.536%20144.508%20118.536%20176.546C118.536%20208.584%20144.508%20234.556%20176.546%20234.556Z'%20fill='%23E23E3F'/%3e%3cpath%20d='M148.811%200C118.545%203.02663%2097.5266%2031.5274%2090.8008%2045.3994C106.943%2039.3462%20123.589%2037.8328%20129.895%2037.8328H216.91C229.017%2037.8328%20252.221%2042.0365%20262.31%2044.1383C247.177%2013.872%20219.853%202.10182%20208.083%200H148.811Z'%20fill='%23E23E3F'/%3e%3cpath%20d='M0%20376.757C0%20373.444%202.68629%20370.757%206%20370.757H349.629C352.942%20370.757%20355.629%20373.444%20355.629%20376.757V446C355.629%20482.451%20326.08%20512%20289.629%20512H66C29.5492%20512%200%20482.451%200%20446V376.757Z'%20fill='%23E23E3F'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='512'%20height='512'%20viewBox='0%200%20512%20512'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='512'%20height='512'%20fill='url(%23pattern0)'/%3e%3cdefs%3e%3cpattern%20id='pattern0'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1282_33431'%20transform='scale(0.00195312)'/%3e%3c/pattern%3e%3cimage%20id='image0_1282_33431'%20width='512'%20height='512'%20xlink:href='data:image/png;base64,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'/%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='513'%20height='513'%20viewBox='0%200%20513%20513'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.489746'%20y='0.162903'%20width='512'%20height='512'%20rx='100'%20fill='%23135DCD'/%3e%3cmask%20id='mask0_23_1279'%20style='mask-type:alpha'%20maskUnits='userSpaceOnUse'%20x='0'%20y='0'%20width='513'%20height='513'%3e%3crect%20x='0.489746'%20y='0.162903'%20width='512'%20height='512'%20rx='94'%20fill='%23135DCD'/%3e%3c/mask%3e%3cg%20mask='url(%23mask0_23_1279)'%3e%3cpath%20d='M610.847%20206.062L100.082%20112.06L368.843%20788.458L743.389%20332.136L610.847%20206.062ZM602.607%20247.526L680.75%20321.77L467.009%20360.488L602.607%20247.526ZM420.628%20352.691L195.369%20165.883L563.536%20233.616L420.628%20352.691ZM404.592%20385.782L367.868%20689.406L169.808%20191.045L404.592%20385.782ZM438.569%20401.863L675.213%20359.026L403.794%20689.76L438.569%20401.863Z'%20fill='%23F8F8F8'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/svg+xml,%3csvg%20width='512'%20height='512'%20viewBox='0%200%20512%20512'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_3786_185)'%3e%3cmask%20id='mask0_3786_185'%20style='mask-type:luminance'%20maskUnits='userSpaceOnUse'%20x='0'%20y='0'%20width='512'%20height='512'%3e%3cpath%20d='M512%200H0V512H512V0Z'%20fill='white'/%3e%3c/mask%3e%3cg%20mask='url(%23mask0_3786_185)'%3e%3cpath%20d='M395.636%200H116.364C52.0978%200%200%2052.0978%200%20116.364V395.636C0%20459.903%2052.0978%20512%20116.364%20512H395.636C459.903%20512%20512%20459.903%20512%20395.636V116.364C512%2052.0978%20459.903%200%20395.636%200Z'%20fill='url(%23paint0_linear_3786_185)'/%3e%3cpath%20d='M395.636%200H116.364C52.0978%200%200%2052.0978%200%20116.364V395.636C0%20459.903%2052.0978%20512%20116.364%20512H395.636C459.903%20512%20512%20459.903%20512%20395.636V116.364C512%2052.0978%20459.903%200%20395.636%200Z'%20fill='url(%23paint1_radial_3786_185)'/%3e%3cpath%20d='M395.636%200H116.364C52.0978%200%200%2052.0978%200%20116.364V395.636C0%20459.903%2052.0978%20512%20116.364%20512H395.636C459.903%20512%20512%20459.903%20512%20395.636V116.364C512%2052.0978%20459.903%200%20395.636%200Z'%20fill='url(%23paint2_radial_3786_185)'/%3e%3cpath%20d='M395.636%200H116.364C52.0978%200%200%2052.0978%200%20116.364V395.636C0%20459.903%2052.0978%20512%20116.364%20512H395.636C459.903%20512%20512%20459.903%20512%20395.636V116.364C512%2052.0978%20459.903%200%20395.636%200Z'%20fill='url(%23paint3_radial_3786_185)'/%3e%3cpath%20d='M210.317%20393.282V274.52L325.711%20393.282H389.911V390.192L257.175%20254.93L379.696%20126.607V125.091H315.08L210.317%20238.488V125.091H158.292V393.282H210.317Z'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_3786_185'%20x1='256'%20y1='0'%20x2='256'%20y2='512'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%231FD1FF'/%3e%3cstop%20offset='1'%20stop-color='%231BB8FF'/%3e%3c/linearGradient%3e%3cradialGradient%20id='paint1_radial_3786_185'%20cx='0'%20cy='0'%20r='1'%20gradientUnits='userSpaceOnUse'%20gradientTransform='translate(24.4569%20492.6)%20rotate(-45.1556)%20scale(821.086%20833.37)'%3e%3cstop%20stop-color='%23232DE3'/%3e%3cstop%20offset='1'%20stop-color='%23232DE3'%20stop-opacity='0'/%3e%3c/radialGradient%3e%3cradialGradient%20id='paint2_radial_3786_185'%20cx='0'%20cy='0'%20r='1'%20gradientUnits='userSpaceOnUse'%20gradientTransform='translate(484.424%20509.077)%20rotate(-138.45)%20scale(513.386%20782.77)'%3e%3cstop%20stop-color='%238B4DFF'/%3e%3cstop%20offset='1'%20stop-color='%238B4DFF'%20stop-opacity='0'/%3e%3c/radialGradient%3e%3cradialGradient%20id='paint3_radial_3786_185'%20cx='0'%20cy='0'%20r='1'%20gradientUnits='userSpaceOnUse'%20gradientTransform='translate(251.735%203.79731)%20rotate(90)%20scale(403.669%20979.411)'%3e%3cstop%20stop-color='%2324D5FF'/%3e%3cstop%20offset='1'%20stop-color='%231BB8FF'%20stop-opacity='0'/%3e%3c/radialGradient%3e%3cclipPath%20id='clip0_3786_185'%3e%3crect%20width='512'%20height='512'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='14'%20height='16'%20viewBox='0%200%2014%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.99916%200C6.01166%200%205.21094%203.58171%205.21094%208C5.21094%2012.4183%206.01166%2016%206.99916%2016C7.98665%2016%208.78738%2012.4183%208.78738%208C8.78738%203.58171%207.98665%200%206.99916%200ZM7.12262%2015.5485C7.00969%2015.6991%206.89677%2015.5861%206.89677%2015.5861C6.44199%2015.0592%206.21461%2014.0803%206.21461%2014.0803C5.41915%2011.5203%205.60848%206.02384%205.60848%206.02384C5.98232%201.66022%206.66236%200.629397%206.89377%200.400545C6.9174%200.377188%206.94851%200.362915%206.98163%200.360238C7.01475%200.357561%207.04775%200.366651%207.07483%200.385908C7.41061%200.623835%207.69223%201.61887%207.69223%201.61887C8.52383%204.70591%208.44853%207.60472%208.44853%207.60472C8.52383%2010.1271%208.03181%2012.9506%208.03181%2012.9506C7.65307%2015.0964%207.12262%2015.5485%207.12262%2015.5485Z'%20fill='%236F7390'/%3e%3cpath%20d='M13.9361%204.01736C13.4445%203.1605%209.93951%204.24848%206.10524%206.44713C2.27097%208.64577%20-0.433677%2011.1229%200.0576183%2011.9794C0.548914%2012.8359%204.05422%2011.7483%207.88849%209.54962C11.7228%207.35097%2014.4274%204.87385%2013.9361%204.01736ZM0.511223%2011.8618C0.322989%2011.8381%200.36551%2011.6834%200.36551%2011.6834C0.596411%2011.0269%201.3312%2010.3424%201.3312%2010.3424C3.15667%208.37842%208.01883%205.80748%208.01883%205.80748C11.9894%203.96013%2013.2228%204.03807%2013.5356%204.12421C13.5678%204.13318%2013.5957%204.15322%2013.6144%204.18079C13.6332%204.20835%2013.6416%204.24167%2013.6381%204.27483C13.6005%204.68467%2012.8757%205.42385%2012.8757%205.42385C10.6134%207.68228%208.06135%209.05978%208.06135%209.05978C5.91094%2010.3808%203.21697%2011.3585%203.21697%2011.3585C1.16711%2012.0971%200.511296%2011.8618%200.511296%2011.8618H0.511223Z'%20fill='%236F7390'/%3e%3cpath%20d='M13.9099%2012.0083C14.4054%2011.1537%2011.7075%208.66527%207.88671%206.45008C4.06591%204.2349%200.561412%203.13345%200.0663843%203.98951C-0.428644%204.84556%202.26876%207.33256%206.09176%209.54774C9.91476%2011.7629%2013.4149%2012.8644%2013.9099%2012.0083ZM0.394695%204.31972C0.32151%204.1462%200.476005%204.10441%200.476005%204.10441C1.16%203.97524%202.12078%204.26959%202.12078%204.26959C4.73461%204.86481%209.39544%207.78433%209.39544%207.78433C12.9839%2010.2954%2013.5343%2011.4015%2013.6168%2011.7154C13.6252%2011.7476%2013.6219%2011.7818%2013.6076%2011.8118C13.5933%2011.8418%2013.5688%2011.8658%2013.5385%2011.8796C13.1643%2012.0509%2012.1621%2011.7956%2012.1621%2011.7956C9.07313%2010.9674%206.60274%209.44989%206.60274%209.44989C4.3831%208.25272%202.18826%206.41064%202.18826%206.41064C0.520501%205.00642%200.395208%204.32162%200.395208%204.32162L0.394695%204.31972Z'%20fill='%236F7390'/%3e%3cpath%20d='M6.96461%208.9214C7.4844%208.9214%207.90577%208.50002%207.90577%207.98023C7.90577%207.46044%207.4844%207.03906%206.96461%207.03906C6.44481%207.03906%206.02344%207.46044%206.02344%207.98023C6.02344%208.50002%206.44481%208.9214%206.96461%208.9214Z'%20fill='%23B7B9C8'/%3e%3cpath%20d='M10.5459%205.1294C10.8474%205.1294%2011.0918%204.87658%2011.0918%204.5647C11.0918%204.25282%2010.8474%204%2010.5459%204C10.2444%204%2010%204.25282%2010%204.5647C10%204.87658%2010.2444%205.1294%2010.5459%205.1294Z'%20fill='%23B7B9C8'/%3e%3cpath%20d='M1.87402%206.85011C2.1755%206.85011%202.41991%206.59728%202.41991%206.2854C2.41991%205.97353%202.1755%205.7207%201.87402%205.7207C1.57253%205.7207%201.32812%205.97353%201.32812%206.2854C1.32812%206.59728%201.57253%206.85011%201.87402%206.85011Z'%20fill='%23B7B9C8'/%3e%3cpath%20d='M5.87402%2013.7798C6.17551%2013.7798%206.41991%2013.527%206.41991%2013.2151C6.41991%2012.9032%206.17551%2012.6504%205.87402%2012.6504C5.57253%2012.6504%205.32812%2012.9032%205.32812%2013.2151C5.32812%2013.527%205.57253%2013.7798%205.87402%2013.7798Z'%20fill='%23B7B9C8'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='11'%20height='17'%20viewBox='0%200%2011%2017'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20opacity='0.45'%20d='M0%208.6556L5.21346%2011.7397V0L0%208.6556Z'%20fill='%238A8A8A'/%3e%3cpath%20opacity='0.8'%20d='M5.21875%200V11.7397L10.4385%208.6556L5.21875%200Z'%20fill='%239A9898'/%3e%3cpath%20opacity='0.45'%20d='M0%209.65039L5.21346%2016.9995V12.7282L0%209.65039Z'%20fill='%238A8A8A'/%3e%3cpath%20opacity='0.8'%20d='M5.21875%2012.7282V16.9995L10.4385%209.65039L5.21875%2012.7282Z'%20fill='%239A9898'/%3e%3cpath%20opacity='0.6'%20d='M5.21346%206.28906L0%208.6571L5.21346%2011.7412L10.4332%208.6571L5.21346%206.28906Z'%20fill='%23282828'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.37792%209.87054C3.46884%209.77097%203.59387%209.71289%203.72647%209.71289H15.7516C15.9714%209.71289%2016.0812%2010.0033%2015.9259%2010.1734L13.5504%2012.7745C13.4595%2012.8741%2013.3345%2012.9322%2013.2019%2012.9322H1.17671C0.956972%2012.9322%200.847101%2012.6418%201.00244%2012.4717L3.37792%209.87054Z'%20fill='%2396969C'/%3e%3cpath%20d='M3.37792%200.157645C3.47263%200.0580798%203.59766%200%203.72647%200H15.7516C15.9714%200%2016.0812%200.290399%2015.9259%200.46049L13.5504%203.06163C13.4595%203.1612%2013.3345%203.21928%2013.2019%203.21928H1.17671C0.956972%203.21928%200.847101%202.92888%201.00244%202.75879L3.37792%200.157645Z'%20fill='%2396969C'/%3e%3cpath%20d='M13.5504%204.98186C13.4595%204.8823%2013.3345%204.82422%2013.2019%204.82422H1.17671C0.956972%204.82422%200.847101%205.11462%201.00244%205.28471L3.37792%207.88585C3.46884%207.98542%203.59387%208.0435%203.72647%208.0435H15.7516C15.9714%208.0435%2016.0812%207.7531%2015.9259%207.58301L13.5504%204.98186Z'%20fill='%2396969C'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='21'%20height='21'%20viewBox='0%200%2021%2021'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M19.6992%2010.6094C19.6992%2015.8561%2015.4459%2020.1094%2010.1992%2020.1094C4.95251%2020.1094%200.699219%2015.8561%200.699219%2010.6094C0.699219%205.36267%204.95251%201.10938%2010.1992%201.10938C15.4459%201.10938%2019.6992%205.36267%2019.6992%2010.6094Z'%20fill='white'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M10.3935%203.00391L10.293%203.34571V13.2641L10.3935%2013.3644L14.9975%2010.643L10.3935%203.00391Z'%20fill='%23343434'/%3e%3cpath%20d='M10.4047%203.00391L5.80078%2010.643L10.4047%2013.3645V8.55038V3.00391Z'%20fill='%238A8F8E'/%3e%3cpath%20d='M10.42%2014.2317L10.3633%2014.3008V17.834L10.42%2017.9995L15.0267%2011.5117L10.42%2014.2317Z'%20fill='%233C3C3B'/%3e%3cpath%20d='M10.4047%2017.9995V14.2318L5.80078%2011.5117L10.4047%2017.9995Z'%20fill='%238A8F8E'/%3e%3cpath%20d='M10.4258%2013.3608L15.0297%2010.6394L10.4258%208.54688V13.3608Z'%20fill='%23141414'/%3e%3cpath%20d='M5.81641%2010.6394L10.4204%2013.3608V8.54688L5.81641%2010.6394Z'%20fill='%23393939'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='21'%20height='20'%20viewBox='0%200%2021%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='10.3945'%20cy='10'%20r='9.5'%20fill='black'%20stroke='%23262525'/%3e%3cpath%20d='M6.91117%2012.38C6.9736%2012.3004%207.05943%2012.2539%207.15046%2012.2539H15.4057C15.5566%2012.2539%2015.632%2012.4862%2015.5254%2012.6223L13.8946%2014.7032C13.8322%2014.7829%2013.7463%2014.8293%2013.6553%2014.8293H5.40005C5.2492%2014.8293%205.17377%2014.597%205.28041%2014.4609L6.91117%2012.38Z'%20fill='url(%23paint0_linear_5308_20246)'/%3e%3cpath%20d='M6.91117%204.61049C6.9762%204.53084%207.06203%204.48438%207.15046%204.48438H15.4057C15.5566%204.48438%2015.632%204.71669%2015.5254%204.85277L13.8946%206.93368C13.8322%207.01333%2013.7463%207.0598%2013.6553%207.0598H5.40005C5.2492%207.0598%205.17377%206.82748%205.28041%206.69141L6.91117%204.61049Z'%20fill='url(%23paint1_linear_5308_20246)'/%3e%3cpath%20d='M13.8946%208.46987C13.8322%208.39021%2013.7463%208.34375%2013.6553%208.34375H5.40005C5.2492%208.34375%205.17377%208.57607%205.28041%208.71214L6.91117%2010.7931C6.9736%2010.8727%207.05943%2010.9192%207.15046%2010.9192H15.4057C15.5566%2010.9192%2015.632%2010.6869%2015.5254%2010.5508L13.8946%208.46987Z'%20fill='url(%23paint2_linear_5308_20246)'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_5308_20246'%20x1='14.6171'%20y1='3.2414'%20x2='6.41769'%20y2='15.5492'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2300FFA3'/%3e%3cstop%20offset='1'%20stop-color='%23DC1FFF'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_5308_20246'%20x1='12.1189'%20y1='1.57702'%20x2='3.91953'%20y2='13.8848'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2300FFA3'/%3e%3cstop%20offset='1'%20stop-color='%23DC1FFF'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint2_linear_5308_20246'%20x1='13.3601'%20y1='2.40342'%20x2='5.16065'%20y2='14.7112'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2300FFA3'/%3e%3cstop%20offset='1'%20stop-color='%23DC1FFF'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='79'%20height='72'%20viewBox='0%200%2079%2072'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M48.5431%205.8226L77.5687%2056.0964C81.4029%2062.7375%2076.6102%2071.0388%2068.9417%2071.0388H10.8905C3.22211%2071.0388%20-1.57071%2062.7375%202.26353%2056.0964L31.2891%205.82261C35.1233%20-0.818459%2044.7089%20-0.818485%2048.5431%205.8226ZM45.6675%207.48287C43.1113%203.05548%2036.7209%203.05549%2034.1648%207.48288L5.1392%2057.7567C2.58305%2062.1841%205.77825%2067.7183%2010.8905%2067.7183H68.9417C74.054%2067.7183%2077.2492%2062.184%2074.693%2057.7567L45.6675%207.48287ZM35.7132%2017.7147H44.1153L41.9683%2046.0961H37.9382L35.7132%2017.7147ZM39.9164%2061.1248C42.8687%2061.1248%2045.2621%2058.7315%2045.2621%2055.7792C45.2621%2052.8269%2042.8687%2050.4336%2039.9164%2050.4336C36.9641%2050.4336%2034.5708%2052.8269%2034.5708%2055.7792C34.5708%2058.7315%2036.9641%2061.1248%2039.9164%2061.1248Z'%20fill='%23ED5E6A'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='513'%20height='513'%20viewBox='0%200%20513%20513'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='256.936'%20cy='256.312'%20r='256'%20fill='%2315121C'/%3e%3cpath%20d='M428.2%20193.045L415.809%20159.395L424.442%20140.09C424.982%20138.872%20425.144%20137.52%20424.906%20136.209C424.668%20134.898%20424.041%20133.688%20423.108%20132.737L399.652%20109.054C394.624%20103.949%20388.25%20100.379%20381.271%2098.7591C374.292%2097.139%20366.996%2097.5361%20360.234%2099.904L353.807%20102.172L318.023%2063.4058L256.939%2063.0684L195.847%2063.547L160.102%20102.627L153.738%20100.375C146.933%2097.9812%20139.586%2097.578%20132.56%2099.2126C125.534%20100.847%20119.119%20104.452%20114.07%20109.603L90.0802%20133.734C89.3329%20134.49%2088.8313%20135.454%2088.6409%20136.5C88.4505%20137.546%2088.5802%20138.625%2089.0129%20139.596L98.0139%20159.654L85.6699%20193.272L129.984%20361.771C134.173%20377.69%20143.808%20391.638%20157.215%20401.189L244.854%20460.586C248.295%20463.337%20252.569%20464.836%20256.974%20464.836C261.38%20464.836%20265.654%20463.337%20269.095%20460.586L356.687%20401.102C370.117%20391.584%20379.746%20377.621%20383.871%20361.685L420.024%20223.461L428.2%20193.045Z'%20fill='url(%23paint0_linear_2072_12112)'/%3e%3cpath%20d='M266.945%20312.089C264.629%20311.05%20262.239%20310.185%20259.796%20309.499H255.488C253.044%20310.186%20250.655%20311.052%20248.339%20312.089L237.501%20316.593L225.259%20322.227L205.327%20332.617C204.597%20332.845%20203.952%20333.288%20203.478%20333.889C203.003%20334.489%20202.721%20335.219%20202.669%20335.982C202.616%20336.746%20202.795%20337.507%20203.183%20338.167C203.57%20338.827%20204.148%20339.354%20204.841%20339.68L222.152%20351.836C225.814%20354.451%20229.358%20357.266%20232.785%20360.279L237.658%20364.478L247.86%20373.4L252.482%20377.481C253.911%20378.664%20255.708%20379.312%20257.563%20379.312C259.419%20379.312%20261.216%20378.664%20262.644%20377.481L282.569%20360.075L293.241%20351.624L310.553%20339.233C311.239%20338.906%20311.811%20338.378%20312.192%20337.72C312.574%20337.062%20312.747%20336.304%20312.689%20335.546C312.631%20334.787%20312.345%20334.064%20311.869%20333.472C311.392%20332.879%20310.747%20332.444%20310.019%20332.225L290.118%20322.18L277.806%20316.538L266.945%20312.089ZM389.678%20200.554L390.306%20198.749C390.337%20196.34%20390.188%20193.932%20389.858%20191.545C388.206%20187.265%20386.048%20183.197%20383.431%20179.429L372.17%20162.902L364.15%20152.01L349.06%20133.176C347.68%20131.339%20346.186%20129.591%20344.587%20127.942H344.273L337.571%20129.182L304.4%20135.569C301.045%20135.724%20297.691%20135.234%20294.521%20134.126L276.307%20128.24L263.272%20124.638C259.445%20124.238%20255.587%20124.238%20251.76%20124.638L238.694%20128.279L220.48%20134.196C217.308%20135.297%20213.955%20135.787%20210.601%20135.64L177.469%20129.362L170.767%20128.122H170.453C168.848%20129.766%20167.353%20131.514%20165.98%20133.357L150.913%20152.19C148.125%20155.722%20145.473%20159.352%20142.956%20163.082L131.664%20179.609L126.343%20188.484C125.374%20191.894%20124.862%20195.417%20124.821%20198.961L125.449%20200.766C125.716%20201.922%20126.06%20203.06%20126.477%20204.171L135.368%20214.373L174.785%20256.27C176.095%20257.795%20176.972%20259.644%20177.324%20261.623C177.676%20263.603%20177.491%20265.64%20176.786%20267.523L170.171%20282.794C168.709%20286.835%20168.601%20291.243%20169.865%20295.35L171.152%20298.897C173.27%20304.658%20176.899%20309.744%20181.659%20313.619L187.851%20318.665C189.462%20319.82%20191.34%20320.549%20193.308%20320.785C195.277%20321.021%20197.273%20320.756%20199.112%20320.014L221.132%20309.475C225.184%20307.467%20228.974%20304.968%20232.416%20302.036L250.042%20286.129C250.749%20285.498%20251.322%20284.731%20251.726%20283.873C252.131%20283.016%20252.358%20282.086%20252.396%20281.138C252.427%20280.193%20252.269%20279.251%20251.932%20278.367C251.596%20277.483%20251.086%20276.676%20250.434%20275.991L210.601%20249.192C209.094%20248.123%20208.02%20246.55%20207.575%20244.757C207.13%20242.964%20207.343%20241.071%20208.176%20239.422L223.604%20210.426C224.484%20208.652%20225.006%20206.723%20225.141%20204.748C225.276%20202.772%20225.02%20200.79%20224.388%20198.914C222.468%20195.332%20219.364%20192.528%20215.607%20190.98L167.236%20172.774C163.752%20171.518%20163.94%20169.949%20167.636%20169.729L196.044%20166.912C200.499%20166.627%20204.971%20167.024%20209.306%20168.089L234.025%20174.995C235.78%20175.523%20237.283%20176.67%20238.256%20178.223C239.229%20179.776%20239.605%20181.629%20239.314%20183.439L229.607%20236.495C228.954%20239.432%20228.792%20242.458%20229.128%20245.449C229.521%20246.712%20232.84%20248.274%20236.473%20249.16L251.533%20252.299C255.906%20253.108%20260.39%20253.108%20264.763%20252.299L278.308%20249.16C281.949%20248.376%20285.229%20246.626%20285.645%20245.354C285.972%20242.365%20285.805%20239.343%20285.151%20236.408L275.381%20183.368C275.094%20181.559%20275.471%20179.707%20276.443%20178.155C277.416%20176.603%20278.917%20175.455%20280.67%20174.924L305.389%20167.995C309.724%20166.93%20314.196%20166.533%20318.651%20166.818L347.059%20169.462C350.778%20169.808%20350.982%20171.189%20347.483%20172.507L299.119%20190.815C295.359%20192.354%20292.259%20195.165%20290.361%20198.757C289.094%20202.547%20289.376%20206.685%20291.146%20210.269L306.598%20239.265C307.434%20240.915%20307.65%20242.811%20307.206%20244.606C306.762%20246.402%20305.689%20247.979%20304.181%20249.051L264.426%20275.912C263.78%20276.585%20263.274%20277.379%20262.937%20278.249C262.6%20279.119%20262.438%20280.046%20262.461%20280.979C262.485%20281.911%20262.692%20282.83%20263.073%20283.682C263.453%20284.533%20263.998%20285.301%20264.677%20285.941L264.795%20286.051L282.443%20301.958C285.884%20304.879%20289.665%20307.374%20293.704%20309.389L315.724%20319.865C317.563%20320.609%20319.561%20320.873%20321.529%20320.631C323.498%20320.389%20325.373%20319.651%20326.977%20318.484L333.177%20313.423C337.94%20309.539%20341.568%20304.442%20343.677%20298.67L344.971%20295.123C346.232%20291.015%20346.125%20286.608%20344.665%20282.567L338.183%20267.272C337.485%20265.387%20337.302%20263.349%20337.654%20261.37C338.006%20259.39%20338.879%20257.54%20340.184%20256.011L379.602%20214.067L388.469%20203.865C388.942%20202.783%20389.345%20201.671%20389.678%20200.538V200.554Z'%20fill='white'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_2072_12112'%20x1='85.6468'%20y1='263.431'%20x2='428.48'%20y2='263.431'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23F1562B'/%3e%3cstop%20offset='0.3'%20stop-color='%23F1542B'/%3e%3cstop%20offset='0.41'%20stop-color='%23F04D2A'/%3e%3cstop%20offset='0.49'%20stop-color='%23EF4229'/%3e%3cstop%20offset='0.5'%20stop-color='%23EF4029'/%3e%3cstop%20offset='0.56'%20stop-color='%23E83E28'/%3e%3cstop%20offset='0.67'%20stop-color='%23E13C26'/%3e%3cstop%20offset='1'%20stop-color='%23DF3C26'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='513'%20height='513'%20viewBox='0%200%20513%20513'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M256.021%20512.49C397.406%20512.49%20512.021%20397.875%20512.021%20256.49C512.021%20115.105%20397.406%200.490234%20256.021%200.490234C114.636%200.490234%200.0209961%20115.105%200.0209961%20256.49C0.0209961%20397.875%20114.636%20512.49%20256.021%20512.49Z'%20fill='%232E3148'/%3e%3cpath%20d='M256.021%20405.034C338.059%20405.034%20404.565%20338.529%20404.565%20256.491C404.565%20174.452%20338.059%20107.947%20256.021%20107.947C173.983%20107.947%20107.478%20174.452%20107.478%20256.491C107.478%20338.529%20173.983%20405.034%20256.021%20405.034Z'%20fill='%231B1E36'/%3e%3cpath%20d='M256.548%2033.1504C228.914%2033.1504%20206.507%20133.38%20206.507%20257.019C206.507%20380.659%20228.914%20480.888%20256.548%20480.888C284.181%20480.888%20306.589%20380.659%20306.589%20257.019C306.589%20133.38%20284.181%2033.1504%20256.548%2033.1504ZM260.003%20468.254C256.843%20472.469%20253.683%20469.307%20253.683%20469.307C240.956%20454.561%20234.593%20427.167%20234.593%20427.167C212.333%20355.53%20217.632%20201.719%20217.632%20201.719C228.093%2079.6093%20247.123%2050.7632%20253.599%2044.3591C254.26%2043.7055%20255.131%2043.3061%20256.057%2043.2312C256.984%2043.1562%20257.908%2043.4106%20258.665%2043.9495C268.062%2050.6075%20275.942%2078.4522%20275.942%2078.4522C299.214%20164.839%20297.106%20245.958%20297.106%20245.958C299.214%20316.542%20285.445%20395.554%20285.445%20395.554C274.847%20455.602%20260.003%20468.254%20260.003%20468.254Z'%20fill='%236F7390'/%3e%3cpath%20d='M450.728%20145.61C436.97%20121.632%20338.889%20152.078%20231.592%20213.604C124.296%20275.13%2048.6097%20344.449%2062.358%20368.416C76.1062%20392.384%20174.197%20361.949%20281.494%20300.423C388.791%20238.897%20464.477%20169.578%20450.728%20145.61ZM75.0515%20365.127C69.784%20364.464%2070.9739%20360.134%2070.9739%20360.134C77.4353%20341.762%2097.9973%20322.609%2097.9973%20322.609C149.081%20267.649%20285.141%20195.704%20285.141%20195.704C396.254%20144.009%20430.767%20146.19%20439.522%20148.6C440.42%20148.851%20441.201%20149.412%20441.726%20150.183C442.251%20150.955%20442.486%20151.887%20442.389%20152.815C441.336%20164.284%20421.055%20184.969%20421.055%20184.969C357.747%20248.168%20286.331%20286.715%20286.331%20286.715C226.155%20323.682%20150.768%20351.041%20150.768%20351.041C93.4057%20371.712%2075.0535%20365.127%2075.0535%20365.127H75.0515Z'%20fill='%236F7390'/%3e%3cpath%20d='M450.243%20369.214C464.108%20345.299%20388.613%20275.663%20281.693%20213.674C174.773%20151.686%2076.7046%20120.863%2062.8519%20144.819C48.9993%20168.774%20124.482%20238.369%20231.464%20300.358C338.445%20362.347%20436.391%20393.171%20450.243%20369.214ZM72.0393%20154.059C69.9913%20149.203%2074.3146%20148.034%2074.3146%20148.034C93.4552%20144.419%20120.341%20152.656%20120.341%20152.656C193.486%20169.313%20323.913%20251.012%20323.913%20251.012C424.332%20321.28%20439.733%20352.232%20442.041%20361.018C442.276%20361.919%20442.185%20362.874%20441.784%20363.715C441.383%20364.555%20440.698%20365.227%20439.85%20365.611C429.378%20370.406%20401.333%20363.262%20401.333%20363.262C314.893%20340.085%20245.763%20297.62%20245.763%20297.62C183.649%20264.119%20122.23%20212.571%20122.23%20212.571C75.5598%20173.276%2072.0536%20154.112%2072.0536%20154.112L72.0393%20154.059Z'%20fill='%236F7390'/%3e%3cpath%20d='M256.021%20282.827C270.567%20282.827%20282.359%20271.035%20282.359%20256.49C282.359%20241.944%20270.567%20230.152%20256.021%20230.152C241.476%20230.152%20229.684%20241.944%20229.684%20256.49C229.684%20271.035%20241.476%20282.827%20256.021%20282.827Z'%20fill='%23B7B9C8'/%3e%3cpath%20d='M364.004%20171.156C372.44%20171.156%20379.28%20164.081%20379.28%20155.353C379.28%20146.626%20372.44%20139.551%20364.004%20139.551C355.567%20139.551%20348.728%20146.626%20348.728%20155.353C348.728%20164.081%20355.567%20171.156%20364.004%20171.156Z'%20fill='%23B7B9C8'/%3e%3cpath%20d='M113.271%20224.886C121.708%20224.886%20128.547%20217.811%20128.547%20209.084C128.547%20200.356%20121.708%20193.281%20113.271%20193.281C104.834%20193.281%2097.9951%20200.356%2097.9951%20209.084C97.9951%20217.811%20104.834%20224.886%20113.271%20224.886Z'%20fill='%23B7B9C8'/%3e%3cpath%20d='M224.943%20418.728C233.379%20418.728%20240.219%20411.653%20240.219%20402.925C240.219%20394.198%20233.379%20387.123%20224.943%20387.123C216.506%20387.123%20209.667%20394.198%20209.667%20402.925C209.667%20411.653%20216.506%20418.728%20224.943%20418.728Z'%20fill='%23B7B9C8'/%3e%3c/svg%3e\"","import tradebridge from \"./Assets/tradebridge.svg\";\nimport arrowprocess from \"./Assets/arrowprocess.png\";\nimport backbutton from \"./Assets/backbutton.svg\";\nimport close from \"./Assets/close.svg\";\nimport coinbaseicon from \"./Assets/coinbaseicon.svg\";\nimport copy from \"./Assets/copy.svg\";\nimport down from \"./Assets/down.svg\";\nimport downroute from \"./Assets/downroute.svg\";\nimport edit from \"./Assets/edit.svg\";\nimport failedimg from \"./Assets/failedimg.svg\";\nimport filter from \"./Assets/filter.svg\";\nimport gas from \"./Assets/gas.svg\";\nimport greentick from \"./Assets/greentick.svg\";\nimport handstep from \"./Assets/handstep.svg\";\nimport history from \"./Assets/history.svg\";\nimport info from \"./Assets/info.svg\";\nimport injectedicon from \"./Assets/injectedicon.svg\";\nimport metamaskicon from \"./Assets/metamaskicon.svg\";\nimport refresh from \"./Assets/refresh.svg\";\nimport reverse from \"./Assets/reverse.svg\";\nimport routeicon from \"./Assets/routeicon.svg\";\nimport search from \"./Assets/search.svg\";\nimport step1 from \"./Assets/step1.svg\";\nimport step2 from \"./Assets/step2.svg\";\nimport stepstick from \"./Assets/stepstick.svg\";\nimport success from \"./Assets/success.png\";\nimport tick from \"./Assets/tick.png\";\nimport time from \"./Assets/time.svg\";\nimport walletconnecticon from \"./Assets/walletconnecticon.svg\";\nimport installedicon from \"./Assets/installedicon.svg\";\nimport loadroute from \"./Assets/loadingroute.svg\";\nimport walleticon from \"./Assets/walleticon.svg\";\nimport shareicon from \"./Assets/share.svg\";\nimport modegas from \"./Assets/modegas.svg\";\nimport modegasless from \"./Assets/modegasless.svg\";\nimport chainlink from \"./Assets/chainlink.svg\";\nimport hamburger from \"./Assets/hamburger.svg\";\nimport swapicon from \"./Assets/swapicon.svg\";\nimport clocknew from \"./Assets/clocknew.svg\";\nimport exchange from \"./Assets/exchange.svg\";\nimport refetchroute from \"./Assets/refetchRoute.svg\";\nimport portfolio from \"./Assets/portfolio.svg\";\nimport disconnecticon from \"./Assets/disconnect.svg\";\nimport b from \"./Assets/b.svg\";\nimport clockicon from \"./Assets/clockicon.svg\";\nimport step from \"./Assets/step.svg\";\nimport routesback from \"./Assets/routesback.svg\";\nimport maxop from \"./Assets/maxop.svg\";\nimport lowgas from \"./Assets/lowgas.svg\";\nimport fast from \"./Assets/fast.svg\";\nimport gasnew from \"./Assets/gasnew.svg\";\nimport phantom from \"./Assets/phantom.svg\";\nimport solflare from \"./Assets/solflare.svg\";\nimport slope from \"./Assets/slope.svg\";\nimport backpacksol from \"./Assets/backpacksol.svg\";\nimport magiceden from \"./Assets/magiceden.svg\";\nimport exchangeicon from \"./Assets/exchangeicon.svg\";\nimport successGif from \"./Assets/success.gif\";\nimport tronLink from \"./Assets/tronlinkicon.svg\";\nimport barchartdisconnect from \"./Assets/barchartdisconnect.png\";\nimport defaultCoin from \"./Assets/defaulticon.png\";\nimport errornew from \"./Assets/errornewicon.svg\";\nimport successnew from \"./Assets/successnew.svg\";\nimport keplr from \"./Assets/keplr.svg\";\nimport cosmos from \"./Assets/cosmos.svg\";\nimport evmwal from \"./Assets/evmwal.svg\";\nimport solwal from \"./Assets/solwal.svg\";\nimport ethereumicon from \"./Assets/ethereumicon.svg\";\nimport solanaicon from \"./Assets/solanaicon.svg\";\nimport dgen from \"./Assets/dgen.svg\";\nimport txnupdate from \"./Assets/txnupdate.svg\";\nimport lazylogo from \"./Assets/lazywl.svg\";\nimport brave from \"./Assets/bravebrowser.svg\";\nimport cosmosicon from \"./Assets/cosmosicon.svg\";\n\nconst images = {\n tradebridge,\n arrowprocess,\n backbutton,\n close,\n coinbaseicon,\n copy,\n down,\n downroute,\n edit,\n failedimg,\n filter,\n gas,\n greentick,\n handstep,\n history,\n info,\n injectedicon,\n metamaskicon,\n refresh,\n reverse,\n routeicon,\n search,\n step1,\n step2,\n stepstick,\n success,\n tick,\n time,\n walletconnecticon,\n installedicon,\n loadroute,\n walleticon,\n shareicon,\n modegas,\n modegasless,\n chainlink,\n hamburger,\n swapicon,\n clocknew,\n exchange,\n refetchroute,\n portfolio,\n b,\n clockicon,\n step,\n routesback,\n maxop,\n lowgas,\n fast,\n gasnew,\n phantom,\n solflare,\n slope,\n backpacksol,\n magiceden,\n exchangeicon,\n successGif,\n tronLink,\n barchartdisconnect,\n defaultCoin,\n errornew,\n successnew,\n keplr,\n cosmos,\n evmwal,\n solwal,\n ethereumicon,\n solanaicon,\n disconnecticon,\n dgen,\n txnupdate,\n lazylogo,\n brave,\n cosmosicon,\n};\n\nexport default images;\n","\nexport default function BackButton({fill}){\n return <svg width=\"14\" height=\"16\" viewBox=\"0 0 14 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.9639 9C13.5162 9 13.9639 8.55228 13.9639 8C13.9639 7.44772 13.5162 7 12.9639 7V9ZM0.292893 7.29289C-0.0976311 7.68342 -0.0976311 8.31658 0.292893 8.70711L6.65685 15.0711C7.04738 15.4616 7.68054 15.4616 8.07107 15.0711C8.46159 14.6805 8.46159 14.0474 8.07107 13.6569L2.41421 8L8.07107 2.34315C8.46159 1.95262 8.46159 1.31946 8.07107 0.928932C7.68054 0.538408 7.04738 0.538408 6.65685 0.928932L0.292893 7.29289ZM12.9639 7H1V9H12.9639V7Z\" fill={fill}/>\n </svg>\n \n}","import { useAccount, useDisconnect, useBalance, useConnections } from \"wagmi\";\nimport { useDynamicContext, useIsLoggedIn, useUserWallets } from \"@dynamic-labs/sdk-react-core\";\nimport { useWallet } from \"@tronweb3/tronwallet-adapter-react-hooks\";\nimport { useAccount as useCosmosAccount, useConnect, useDisconnect as useCosmosDisconnect } from \"graz\";\nimport useStore from \"../zustand/store\";\nexport default function useWalletDetails({ chainData, show }) {\n //evm\n const { address, isConnected, chain } = useAccount();\n const { data } = useBalance({ address });\n const { disconnect, disconnectAsync } = useDisconnect();\n let evmWallet = { address, data, disconnect: disconnectAsync, chain };\n const cosmosChainIds = useStore((state) => state.cosmosChainIds);\n const evmConnections = useConnections();\n const wallets = useUserWallets();\n\n const {\n data: cosmosData,\n isConnected: isCosmosConnected,\n WalletType,\n reconnect,\n } = useCosmosAccount({\n chainId: cosmosChainIds,\n multiChain: true,\n });\n const { disconnect: cosmosDisconnect } = useCosmosDisconnect();\n const setCustomWallet = useStore((state) => state.setCustomWallet);\n const customWallet = useStore((state) => state.customWallet);\n const toDisconnect = useStore((state) => state.toDisconnect);\n const fromChain = useStore((state) => state.fromChain);\n const toChain = useStore((state) => state.toChain);\n //solana\n const { primaryWallet, handleLogOut } = useDynamicContext();\n const isFullyConnected = useIsLoggedIn();\n let solWallet = {\n address: primaryWallet?.address || \"\",\n disconnect: handleLogOut,\n chain: { network: \"Solana\" },\n };\n //tron\n const { address: tronAdrress, disconnect: tronDisconnect, connected } = useWallet();\n let tronWallet = {\n address: tronAdrress || \"\",\n disconnect: tronDisconnect,\n chain: { network: \"tron\" },\n };\n let cosmosWallet = {\n address: cosmosData?.[chainData?.chainId]?.bech32Address || \"\",\n disconnect: cosmosDisconnect,\n chain: { network: \"cosmos\" },\n };\n let customWalletDetail = {\n address: customWallet,\n disconnect: setCustomWallet,\n chain: { network: \"custom\" },\n };\n const walletAddress = {\n evm: { address: address, connected: isConnected, name: \"Ethereum\" },\n sol: {\n address: primaryWallet?.address || \"\",\n connected: isFullyConnected,\n name: \"Solana\",\n },\n tron: { address: tronAdrress, connected: connected, name: \"Tron\" },\n cosmos: {\n address: cosmosData?.[chainData?.chainId]?.bech32Address || \"\",\n connected: isCosmosConnected,\n name: \"Cosmos\",\n },\n customWallet: {\n address: customWallet,\n connected: customWallet?.length > 30,\n name: \"Custom\",\n },\n };\n function handleConnection() {\n if (chainData)\n return (\n (chainData?.networkType === \"evm\" && address && address?.length) ||\n // && isConnected\n (chainData?.networkType === \"sol\" && isFullyConnected && primaryWallet !== null) ||\n (chainData?.networkType === \"cosmos\" && isCosmosConnected) ||\n (chainData?.networkType === \"tron\" && connected) ||\n (show === \"to\" && customWallet?.length > 30)\n );\n else return;\n }\n function handleEVMDisable(connectWalletField) {\n if ((connectWalletField === \"from\" && (fromChain?.networkType?.toLowerCase() === \"sol\" || fromChain?.networkType?.toLowerCase() === \"tron\")) || (connectWalletField === \"to\" && (toChain?.networkType?.toLowerCase() === \"sol\" || toChain?.networkType?.toLowerCase() === \"tron\"))) {\n return true;\n } else {\n return false;\n }\n }\n function handleSOLDisable(connectWalletField) {\n if ((connectWalletField === \"from\" && (fromChain?.networkType?.toLowerCase() === \"evm\" || fromChain?.networkType?.toLowerCase() === \"tron\")) || (connectWalletField === \"to\" && (toChain?.networkType?.toLowerCase() === \"evm\" || toChain?.networkType?.toLowerCase() === \"tron\"))) {\n return true;\n } else {\n return false;\n }\n }\n function handleTRONDisable(connectWalletField) {\n if ((connectWalletField === \"from\" && (fromChain?.networkType?.toLowerCase() === \"sol\" || fromChain?.networkType?.toLowerCase() === \"evm\")) || (connectWalletField === \"to\" && (toChain?.networkType?.toLowerCase() === \"sol\" || toChain?.networkType?.toLowerCase() === \"evm\"))) {\n return true;\n } else {\n return false;\n }\n }\n function getWallet(chainData) {\n if (chainData)\n if (chainData?.networkType === \"evm\") {\n return evmWallet;\n } else if (chainData?.networkType === \"sol\") {\n return solWallet;\n } else if (chainData?.networkType === \"tron\") {\n return tronWallet;\n } else if (chainData?.networkType === \"cosmos\") {\n return cosmosWallet;\n } else {\n if (customWallet?.length > 30) return customWalletDetail;\n else return {};\n }\n else {\n return;\n }\n }\n function getBothWalletConnection(fromNetwork, toNetwork) {\n if (fromNetwork && toNetwork)\n return (fromNetwork == \"cosmos\" ? cosmosData?.[fromChain?.chainId]?.address?.length : walletAddress[fromNetwork]?.address?.length) && (toNetwork == \"cosmos\" ? cosmosData?.[toChain?.chainId]?.address?.length : walletAddress[toNetwork]?.address?.length)\n ? // ||\n // customWallet?.length > 30)\n // &&\n // !toDisconnect\n true\n : false;\n else {\n return false;\n }\n }\n\n function getConnectWallet(fromNetwork, toNetwork) {\n if (fromNetwork && toNetwork) {\n if (!walletAddress[fromNetwork?.networkType]?.connected) {\n return fromNetwork?.name;\n } else if (!walletAddress[toNetwork?.networkType]?.connected) {\n return toNetwork?.name;\n } else if (toDisconnect) {\n return toNetwork?.name;\n } else {\n return \"\";\n }\n } else {\n return \"\";\n }\n }\n function getAllConnections() {\n let connections = [];\n\n if (evmConnections.length) {\n evmConnections.forEach((connection) => {\n connections.push(connection.accounts[0]);\n });\n }\n if (wallets.length) {\n wallets.forEach((wallet) => {\n connections.push(wallet.address);\n });\n }\n if (cosmosData && cosmosData?.[\"cosmoshub-4\"]?.bech32Address) {\n connections.push(cosmosData[\"cosmoshub-4\"].bech32Address);\n }\n return connections;\n }\n return {\n isAnyWalletConnected: handleConnection(),\n getWallet,\n handleEVMDisable,\n handleSOLDisable,\n handleTRONDisable,\n getBothWalletConnection,\n getConnectWallet,\n refetch: reconnect,\n getAllConnections,\n };\n}\n","export default function formatNumber(number, decimal = 20) {\n return Number(number).toLocaleString(\"en-US\", {\n minimumFractionDigits: 0,\n maximumFractionDigits: decimal,\n useGrouping: false,\n });\n}\nexport function formatNumberWithGrouping(number, decimal = 20) {\n return Number(number).toLocaleString(\"en-US\", {\n minimumFractionDigits: 0,\n maximumFractionDigits: decimal,\n useGrouping: true,\n });\n}\n","export default function fixString(x, decimal) {\n let tempX = x.toString();\n let split = tempX.split(\".\");\n let value =\n split[0]?.length > decimal || split[0]?.length + 1 === decimal\n ? split[0]\n : split[1]?.length\n ? split.join(\".\").slice(0, decimal)\n : split[0];\n return Number(value?.replace(/,/g, \"\")) ? value : 0;\n}\n","/**\n * Formats crypto values for display, using subscript notation for very small values\n * to save space in the UI.\n */\nimport React from \"react\";\nimport fixString from \"./fixString\";\nimport formatNumber from \"./formatNumber\";\n/**\n * Regular JavaScript function that formats a crypto value with subscript notation\n *\n * @param {number} value - The crypto value to format\n * @param {object} options - Formatting options\n * @param {number} options.threshold - Values smaller than this will use subscript notation (default: 0.00001)\n * @param {number} options.maxDecimals - Maximum decimal places to show (default: 8)\n * @param {number} options.significantDigits - Number of significant digits to show for small values (default: 2)\n * @param {boolean} options.useGrouping - Whether to use thousands separator (default: true)\n * @returns {string} HTML string with formatted value (may contain <sub> tags)\n */\nexport function formatCryptoValue(value, options = {}) {\n // Default options\n const {\n threshold = 0.00001,\n maxDecimals = 6,\n significantDigits = 3,\n useGrouping = true,\n } = options;\n\n // Handle null/undefined/NaN\n if (value == null || isNaN(value)) {\n return \"0\";\n }\n\n // Convert to number if string\n const numValue = typeof value === \"string\" ? parseFloat(value) : value;\n\n // Handle zero\n if (numValue === 0) {\n return \"0\";\n }\n\n // For values above threshold, use regular formatting\n if (Math.abs(numValue) >= threshold) {\n return (\n // fixString(\n Number(numValue).toLocaleString(\"en-US\", {\n minimumFractionDigits: 0,\n maximumFractionDigits: maxDecimals,\n useGrouping,\n })\n // maxDecimals\n // ) || \"0\"\n );\n }\n\n // For very small values, use subscript notation\n // Find the first non-zero digit after decimal\n const stringValue = formatNumber(Math.abs(numValue), 20);\n const decimalPart = stringValue.split(\".\")[1];\n let zeroCount = 0;\n // Count leading zeros\n for (let i = 0; i < decimalPart.length; i++) {\n if (decimalPart[i] === \"0\") {\n zeroCount++;\n } else {\n break;\n }\n }\n\n // Extract significant digits based on the specified parameter\n const significantPart = decimalPart.substring(\n zeroCount,\n zeroCount + significantDigits\n );\n\n // Create formatted value with subscript for zero count\n // Example: 0.0000000123 becomes 0.0<sub>7</sub>123 (with a space and showing zeroCount)\n const sign = numValue < 0 ? \"-\" : \"\";\n return `${sign}0.0<sub>${zeroCount}</sub>${significantPart}`;\n}\n\n/**\n * React component that renders a formatted crypto value with proper subscript\n *\n * @param {object} props - Component props\n * @param {number} props.value - The crypto value to format\n * @param {object} props.options - Same options as formatCryptoValue function\n * @returns {JSX.Element} Rendered component with properly formatted value\n */\nexport function FormatCryptoValue({ value, options = {} }) {\n const formattedValue = formatCryptoValue(value, options);\n // If no HTML tags, just return the value\n if (!formattedValue || formattedValue === \"0\") {\n return <>0</>;\n }\n if (!formattedValue?.includes(\"<sub>\")) {\n return <>{fixString(formattedValue, options.maxDecimals)}</>;\n }\n\n // Parse the HTML and render it properly\n const [beforeSub, rest] = formattedValue?.split(\"<sub>\");\n const [subValue, afterSub] = rest?.split(\"</sub>\");\n\n return (\n <>\n {beforeSub}\n <sub>{subValue}</sub>\n {afterSub}\n </>\n );\n}\n\n/**\n * A simpler version that returns a plain text representation\n * (for use in attributes or where HTML is not supported)\n *\n * @param {number} value - The crypto value to format\n * @param {object} options - Same options as formatCryptoValue\n * @returns {string} Plain text representation of the value\n */\nexport function formatCryptoValuePlainText(value, options = {}) {\n const {\n threshold = 0.00001,\n maxDecimals = 8,\n significantDigits = 3,\n useGrouping = true,\n } = options;\n\n if (value == null || isNaN(value)) {\n return \"0\";\n }\n\n const numValue = typeof value === \"string\" ? parseFloat(value) : value;\n\n if (numValue === 0) {\n return \"0\";\n }\n\n if (Math.abs(numValue) >= threshold) {\n return Number(numValue).toLocaleString(\"en-US\", {\n minimumFractionDigits: 0,\n maximumFractionDigits: maxDecimals,\n useGrouping,\n });\n }\n\n // For very small values, use a modified scientific notation to match our subscript format\n const stringValue = Math.abs(numValue).toFixed(20);\n const decimalPart = stringValue.split(\".\")[1];\n let zeroCount = 0;\n\n // Count leading zeros\n for (let i = 0; i < decimalPart.length; i++) {\n if (decimalPart[i] === \"0\") {\n zeroCount++;\n } else {\n break;\n }\n }\n\n // Extract significant digits\n const significantPart = decimalPart.substring(\n zeroCount,\n zeroCount + significantDigits\n );\n\n return `0.0 e-${zeroCount - 1} ${significantPart}`;\n}\n","(typeof document !== \"undefined\") && (typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n default:\n value = 1.1;\n break;\n }\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n return arr;\n }\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n if (type === 'int16') {\n return new Int16Array(len);\n }\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n return createRegularArray(type, len);\n }\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n return createRegularArray;\n }();\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(o) { \"@babel/helpers - typeof\"; return _typeof$6 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$6(o); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n function ProjectInterface$1() {\n return {};\n }\n BMMath.random = Math.random;\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n return absArr;\n }\n return Math.abs(val);\n };\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n return value;\n }\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n default:\n break;\n }\n return [r, g, b];\n }\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n switch (max) {\n case min:\n h = 0;\n break;\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n default:\n break;\n }\n return [h, s, v];\n }\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n if (g < 0) {\n g = 0;\n }\n if (b < 0) {\n b = 0;\n }\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(o) { \"@babel/helpers - typeof\"; return _typeof$5 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$5(o); }\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n });\n // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n workerFn = fn;\n return workerProxy;\n }\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets);\n // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n i += 1;\n }\n return null;\n }\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n return JSON.parse(JSON.stringify(comp.layers));\n }\n return null;\n }\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n return null;\n }\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {\n // data.singleShape = true;\n }\n }\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n return null;\n }\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest();\n // set responseType after calling open or IE will break.\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n xhr.send();\n }\n return {\n load: loadAsset\n };\n }();\n }\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n _workerSelf.dataManager.completeData(animation);\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n function imageLoaded() {\n this.loadedAssets += 1;\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n return path;\n }\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n if (box.width || _count > 500) {\n this._imageLoaded();\n clearInterval(intervalId);\n }\n _count += 1;\n }.bind(this), 50);\n }\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n function setPath(path) {\n this.path = path || '';\n }\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n i += 1;\n }\n return null;\n }\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n this._cbs[eventName].push(callback);\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n i -= 1;\n len -= 1;\n }\n i += 1;\n }\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n if (keysCount === 0) {\n throw new Error();\n }\n return keys;\n }\n return function (_markers) {\n var markers = [];\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n markers.push(markerData);\n }\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n return this.compositions[i].compInterface;\n }\n i += 1;\n }\n return null;\n }\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n function getRenderer(key) {\n return renderers[key];\n }\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n }\n // Returns any renderer that is registered\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n return '';\n }\n\n function _typeof$4(o) { \"@babel/helpers - typeof\"; return _typeof$4 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$4(o); }\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n extendPrototype([BaseEvent], AnimationItem);\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n var animType = 'svg';\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n if (prerender === 'false') {\n params.prerender = false;\n }\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n i += 1;\n }\n }\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n if (data.assets) {\n len = data.assets.length;\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n this.loadNextSegment();\n };\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n this.loadNextSegment();\n };\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n try {\n this.animationData = animData;\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n this.renderer.configAnimation(animData);\n if (!animData.assets) {\n animData.assets = [];\n }\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n if (this.autoplay) {\n this.play();\n }\n }\n };\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n var _height = typeof height === 'number' ? height : undefined;\n this.renderer.updateContainerSize(_width, _height);\n };\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n return null;\n };\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n var numValue = Number(value);\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n this.pause();\n };\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n var numValue = Number(value);\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n this.play();\n };\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false;\n // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n this.trigger('segmentStart');\n };\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n if (this.isPaused) {\n this.play();\n }\n };\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n return false;\n };\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n this.audioController.setVolume(val);\n };\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n this.audioController.mute();\n };\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n this.audioController.unmute();\n };\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n return path;\n };\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n i += 1;\n }\n return null;\n };\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {\n // TODO: decide how to handle catch case\n }\n };\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n default:\n this.triggerEvent(name);\n }\n }\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n i += 1;\n }\n }\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n var i = 0;\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n i += 1;\n }\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n return animations;\n }\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n function setSpeed(val, animation) {\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n function setDirection(val, animation) {\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n function play(animation) {\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n initTime = nowTime;\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n function pause(animation) {\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n function goToAndStop(value, isFrame, animation) {\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n function stop(animation) {\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n function togglePause(animation) {\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n function destroy(animation) {\n var i;\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n registerAnimation(animElements[i], animationData);\n }\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n function resize() {\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n function freeze() {\n _isFrozen = true;\n }\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n function setVolume(val, animation) {\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n function mute(animation) {\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n function unmute(animation) {\n var i;\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize;\n // moduleOb.start = start;\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\n * BezierEasing - use bezier curve for transition easing function\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\n *\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\n * Usage:\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\n *\n */\n\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n if (beziers[str]) {\n return beziers[str];\n }\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n }\n\n // These values are established by empiricism with tests (tradeoff: performance VS precision)\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n function C(aA1) {\n return 3.0 * aA1;\n }\n\n // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n }\n\n // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n }\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n\n /**\n * points is an array of [ mX1, mY1, mX2, mY2 ]\n */\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n /**\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n if (initialSlope === 0.0) {\n return guessForT;\n }\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n function newElement() {\n var element;\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n return element;\n }\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n if (_release) {\n _release(element);\n }\n pool[_length] = element;\n _length += 1;\n }\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n function release(element) {\n var i;\n var len = element.lengths.length;\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n element.lengths.length = 0;\n }\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n lastPoint[i] = point[i];\n }\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n return storedData[bezierName];\n };\n }();\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n flag = false;\n }\n }\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n var bezierSegmentPoints = createTypedArray('float32', 8);\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n var t0t0t0 = t0 * t0 * t0;\n //\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n var t0t0t1 = t0 * t0 * t1;\n //\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n var t0t1t1 = t0 * t1 * t1;\n //\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n var t1t1t1 = t1 * t1 * t1;\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n return bezierSegmentPoints;\n }\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n iterationIndex = 0;\n break;\n }\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n var bezierData = keyframeMetadata.bezierData;\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n }\n // caching._lastKeyframeIndex = -1;\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n break;\n }\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n caching.lastIndex = iterationIndex;\n return newValue;\n }\n\n // based on @Toji's https://github.com/toji/gl-matrix/\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n function setVValue(val) {\n var multipliedValue;\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n i += 1;\n }\n }\n }\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n var p;\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n default:\n break;\n }\n }\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n return p;\n }\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n this._length = len;\n };\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n case 'i':\n arr = this.i;\n break;\n case 'o':\n arr = this.o;\n break;\n default:\n arr = [];\n break;\n }\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n return newPath;\n };\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n shapePath._length = 0;\n shapePath.c = false;\n }\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n return cloned;\n }\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n function newShapeCollection() {\n var shapeCollection;\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n return shapeCollection;\n }\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n shapeCollection._length = 0;\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n pool[_length] = shapeCollection;\n _length += 1;\n }\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\n keyPropS = kf[kf.length - 1].s[0];\n }else{\n keyPropS = kf[kf.length - 2].e[0];\n } */\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n keyPropS = keyData.s[0];\n }\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching);\n /// /\n }\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n var i;\n var len = shape1._length;\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n return true;\n }\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n this.lock = true;\n this._mdf = false;\n var finalValue;\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n var i;\n var len = this.effectsSequence.length;\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n var _cw = this.d !== 3;\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\n this.v.i.length = numPts;\n this.v.o.length = numPts; */\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n\n /* this.v.v[i] = [x,y];\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\n this.v._length = numPts; */\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n function getShapeProp(elem, data, type) {\n var prop;\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n return prop;\n }\n function getConstructorFunction() {\n return ShapeProperty;\n }\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\n Transformation Matrix v2.0\n (c) Epistemex 2014-2015\n www.epistemex.com\n By Ken Fyrstenberg\n Contributions by leeoniya.\n License: MIT, header required.\n */\n\n /**\n * 2D transformation matrix object initialized with identity matrix.\n *\n * The matrix can synchronize a canvas context by supplying the context\n * as an argument, or later apply current absolute transform to an\n * existing context.\n *\n * All values are handled as floating point values.\n *\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\n * @prop {number} a - scale x\n * @prop {number} b - shear y\n * @prop {number} c - shear x\n * @prop {number} d - scale y\n * @prop {number} e - translate x\n * @prop {number} f - translate y\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\n * @constructor\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n var mCos = _cos(angle);\n var mSin = _sin(angle);\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n var mCos = _cos(angle);\n var mSin = _sin(angle);\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n var mCos = _cos(angle);\n var mSin = _sin(angle);\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n var mCos = _cos(angle);\n var mSin = _sin(angle);\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n var mSin = _sin(angle);\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n function translate(tx, ty, tz) {\n tz = tz || 0;\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n return this;\n }\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2;\n // }\n this._identityCalculated = false;\n return this;\n }\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n\n /* matrix order (canvas compatible):\n * ace\n * bdf\n * 001\n */\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n return this._identity;\n }\n function equals(matr) {\n var i = 0;\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n i += 1;\n }\n return true;\n }\n function clone(matr) {\n var i;\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n return matr;\n }\n function cloneFromProps(props) {\n var i;\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\n x: x * me.a + y * me.c + me.e,\n y: x * me.b + y * me.d + me.f\n }; */\n }\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n return retPts;\n }\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n return arr;\n }\n function applyToPointArray(x, y, z) {\n var arr;\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n return arr;\n }\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n /* if(this.isIdentity()) {\n return '';\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n return cssValue;\n }\n function roundMatrixProperty(val) {\n var v = 10000;\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n return val;\n }\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n /* if(this.isIdentity()) {\n return '';\n } */\n var props = this.props;\n var _a = roundMatrixProperty(props[0]);\n var _b = roundMatrixProperty(props[1]);\n var _c = roundMatrixProperty(props[4]);\n var _d = roundMatrixProperty(props[5]);\n var _e = roundMatrixProperty(props[12]);\n var _f = roundMatrixProperty(props[13]);\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(o) { \"@babel/helpers - typeof\"; return _typeof$3 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$3(o); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n function setLocation(href) {\n setLocationHref(href);\n }\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n return animationManager.loadAnimation(params);\n }\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n case 'matrix':\n return Matrix;\n default:\n return null;\n }\n }\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize;\n // lottie.start = start;\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.13.0';\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n return null;\n }\n var queryString = '';\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n renderer = getQueryVariable('renderer');\n }\n var readyStateCheckInterval = setInterval(checkReady, 100);\n\n // this adds bodymovin to the window object for backwards compatibility\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {\n //\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n return ob;\n }();\n function ShapeModifier() {}\n ShapeModifier.prototype.initModifierProperties = function () {};\n ShapeModifier.prototype.addShapeToModifier = function () {};\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n extendPrototype([ShapeModifier], TrimModifier);\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n return shapeSegments;\n };\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n pathsData.length = 0;\n return pathsData;\n };\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n if (o < 0) {\n o += 1;\n }\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes();\n // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n jLen = edges.length;\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n var newShapesData = this.addShapes(shapeData, segments[0]);\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n shapes.push(shapePath);\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n newShape = false;\n shapePath.c = false;\n }\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n if (addedLength > shapeSegment.e) {\n break;\n }\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n return clonedPath;\n };\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n this.iterateDynamicProperties();\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n this.frameId = this.elem.globalData.frameId;\n }\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n function autoOrient() {\n //\n // var prevP = this.getValueAtTime();\n }\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix();\n // Precalculated matrix with non animated properties\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this);\n // sh Indicates it needs to be capped between -180 and 180\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this);\n // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n this._isDirty = true;\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n extendPrototype([ShapeModifier], RepeaterModifier);\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n while (pos > 0) {\n pos -= 1;\n // this._elements.unshift(arr.splice(pos,1)[0]);\n this._elements.unshift(arr[pos]);\n }\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n this._groups.splice(0, 0, group);\n this._currentCopies += 1;\n }\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n cont = 0;\n var renderFlag;\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n cont += 1;\n }\n this._currentCopies = copies;\n /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n this.matrix.reset();\n } else {\n this.matrix.reset();\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n return hasReloaded;\n };\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n extendPrototype([ShapeModifier], RoundCornersModifier);\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\n clonedPath.o[index] = currentO;\n clonedPath.i[index] = currentI; */\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n return clonedPath;\n };\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c;\n // Complex roots\n if (s < 0) return [];\n var singleRoot = -b / (2 * a);\n // 1 root\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a);\n // 2 roots\n return [singleRoot - delta, singleRoot + delta];\n }\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n }\n // Derivative roots to find min/max\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n return {\n min: min,\n max: max\n };\n }\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n extendPrototype([ShapeModifier], ZigZagModifier);\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n return direction;\n }\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n if (!path.c) {\n count -= 1;\n }\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n return clonedPath;\n };\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0];\n\n // Bevel\n if (lineJoin === 3) return p0;\n\n // Connected, they don't need a joint\n if (pointEqual(p0, p1)) return p0;\n\n // Round\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n }\n\n // Miter\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n return p0;\n }\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n return [outa, outb];\n }\n function pruneIntersections(segments) {\n var e;\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n return segments;\n }\n function offsetSegmentSplit(segment, amount) {\n /*\n We split each bezier segment into smaller pieces based\n on inflection points, this ensures the control point\n polygon is convex.\n (A cubic bezier can have none, one, or two inflection points)\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n function OffsetPathModifier() {}\n extendPrototype([ShapeModifier], OffsetPathModifier);\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n if (!inputBezier.c) {\n count -= 1;\n }\n var i;\n var j;\n var segment;\n var multiSegments = [];\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n multiSegments = pruneIntersections(multiSegments);\n\n // Add bezier segments to the output and apply line joints\n var lastPoint = null;\n var lastSeg = null;\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n case 'bold':\n fWeight = '700';\n break;\n case 'black':\n fWeight = '900';\n break;\n case 'medium':\n fWeight = '500';\n break;\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n default:\n break;\n }\n }\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = [];\n // Hindi characters\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n return enabledFamilies.join(',');\n }\n function setUpNode(font, family) {\n var parentNode = createTag('span');\n // Node is invisible to screen readers.\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span');\n // Characters that vary significantly among different fonts\n node.innerText = 'giItT1WQy@!-/#';\n // Visible - so we can measure it - but not on the screen\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px';\n // Large font size makes even subtle changes obvious\n parentNode.style.fontSize = '300px';\n // Reset any font properties\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode);\n\n // Remember width with no applied web font\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px';\n // tHelper.style.fontFamily = fontData.fFamily;\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n return helper.measureText(text).width;\n }\n return {\n measureText: measure\n };\n }\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n function addChars(chars) {\n if (!chars) {\n return;\n }\n if (!this.chars) {\n this.chars = [];\n }\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n j += 1;\n }\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n i += 1;\n }\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n return emptyChar;\n }\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName);\n // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n var index = _char2;\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n return fontData.cache[index] * size;\n }\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n i += 1;\n }\n return this.fonts[0];\n }\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return codePoint;\n }\n\n // Skin tone modifiers\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n }\n\n // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n }\n\n // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n return false;\n }\n\n // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n var count = 0;\n index += 2;\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n count += 1;\n index += 2;\n }\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n function setIsLoaded() {\n this.isLoaded = true;\n }\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n return data;\n };\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false;\n // layer's display state\n this.hidden = false;\n // If layer's transparency equals 0, it can be hidden\n this.isTransparent = false;\n // list of animated components\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n /**\n * @function\n * Initializes frame related properties.\n *\n * @param {number} num\n * current frame number in Layer's time\n *\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n for (i = 0; i < len; i += 1) {\n eff = null;\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n var i = 0;\n var len = this.data.masksProperties.length;\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n i += 1;\n }\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n if (!expressionsInterfaces) {\n return;\n }\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID();\n\n // Stretch factor for old animations missing this property.\n if (!this.data.sr) {\n this.data.sr = 1;\n }\n // effects manager\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\n * @file\n * Handles element's layer frame update.\n * Checks layer in point and out point\n *\n */\n\n function FrameElement() {}\n FrameElement.prototype = {\n /**\n * @function\n * Initializes frame related properties.\n *\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false;\n // list of animated properties\n this.dynamicProperties = [];\n // If layer has been modified in current tick this will be true\n this._mdf = false;\n },\n /**\n * @function\n * Calculates all dynamic values\n *\n * @param {number} num\n * current frame number in Layer's time\n * @param {boolean} isVisible\n * if layers is currently in range\n *\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n FootageElement.prototype.prepareFrame = function () {};\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n FootageElement.prototype.renderFrame = function () {};\n FootageElement.prototype.destroy = function () {};\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n if (!expressionsInterfaces) {\n return;\n }\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n AudioElement.prototype.show = function () {\n // this.audio.play()\n };\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n AudioElement.prototype.destroy = function () {};\n AudioElement.prototype.sourceRectAtTime = function () {};\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n this.checkPendingElements();\n };\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n case 0:\n return this.createComp(layer);\n case 1:\n return this.createSolid(layer);\n case 3:\n return this.createNull(layer);\n case 4:\n return this.createShape(layer);\n case 5:\n return this.createText(layer);\n case 6:\n return this.createAudio(layer);\n case 13:\n return this.createCamera(layer);\n case 15:\n return this.createFootage(layer);\n default:\n return this.createNull(layer);\n }\n };\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n this.checkPendingElements();\n };\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n for (i = 0; i < len; i += 1) {\n j = 0;\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n j += 1;\n }\n }\n };\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n i += 1;\n }\n };\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n return null;\n };\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n if (path.length === 0) {\n return element;\n }\n return element.getElementByPath(path);\n };\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n }\n\n // TODO: check TYPE 11: Guided elements\n if (this.data.ty !== 11) {\n // this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length;\n // Checking if any of the transformation matrices in the hierarchy chain has changed.\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n i += 1;\n }\n }\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n if (!this.localTransforms || this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n i += 1;\n }\n }\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n localMat.multiply(this.finalTransform.mat);\n }\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n var i;\n var len = transforms.length;\n var ptNew;\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0);\n // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n path = createNS('path');\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n }\n\n // TODO move this to a factory or to a constructor\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n }\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n }\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n }\n // pathNodes.__renderedString = pathString;\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n viewData.lastPath = pathString;\n }\n };\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n return fil;\n }\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n return effects;\n };\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null;\n // If this layer acts as a mask for the following layer\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n /// /\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc);\n /// /\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n this.globalData.defs.appendChild(maskGroup);\n }\n this.matteMasks[matteType] = id;\n }\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\n * @file\n * Handles AE's layer parenting property.\n *\n */\n\n function HierarchyElement() {}\n HierarchyElement.prototype = {\n /**\n * @function\n * Initializes hierarchy properties\n *\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = [];\n // if element is parent of another layer _isParent will be true\n this._isParent = false;\n this.checkParenting();\n },\n /**\n * @function\n * Sets layer's hierarchy.\n * @param {array} hierarch\n * layer's parent list\n *\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n /**\n * @function\n * Sets layer as parent.\n *\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n /**\n * @function\n * Searches layer's parenting chain\n *\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n var i;\n var len = this.shapes.length;\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame);\n // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n i += 1;\n }\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n while (i) {\n i -= 1;\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level;\n // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n this._isAnimated = !!shape.k;\n // TODO: commenting this for now since all shapes are animated\n var i = 0;\n var len = transformers.length;\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n i += 1;\n }\n }\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n if (!this.k) {\n this.getValue(true);\n }\n this._isAnimated = this.k;\n }\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n if (diff > 0.01) {\n return false;\n }\n i += 1;\n }\n return true;\n };\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n return true;\n };\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n if (this.o.length) {\n len = this.prop.v.length;\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n this._mdf = !forceRender;\n }\n };\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n var _matrixHelper = new Matrix();\n var ob = {\n createRenderFunction: createRenderFunction\n };\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n case 'gf':\n return renderGradient;\n case 'gs':\n return renderGradientStroke;\n case 'st':\n return renderStroke;\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n case 'tr':\n return renderContentTransform;\n case 'no':\n return renderNoop;\n default:\n return null;\n }\n }\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n function renderNoop() {}\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n paths = itemData.sh.paths;\n jLen = paths._length;\n if (redraw) {\n pathStringTransformed = '';\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n var stops;\n var i;\n var len;\n var stop;\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n len = stops.length;\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n if (itemData.s._mdf || itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n }\n // gfill.setAttribute('fy','200');\n }\n }\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = [];\n // Full shape data\n this.shapesData = data.shapes;\n // List of styles that will be applied to shapes\n this.stylesList = [];\n // List of modifiers that will be applied to shapes\n this.shapeModifiers = [];\n // List of items in shape tree\n this.itemsData = [];\n // List of items in previous shape tree\n this.processedElements = [];\n // List of animated components\n this.animatedContents = [];\n this.initElement(data, globalData, comp);\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n this.prevViewData = [];\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n\n /*\n This method searches for multiple shapes that affect a single element and one of them is animated\n */\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n return elementData;\n };\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n i += 1;\n }\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n for (j = 0; j < jLen; j += 1) {\n if (arr.indexOf(this.stylesList[j]) === -1 && !this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n this.renderModifiers();\n };\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = arr[i].hd;\n }\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n ownModifiers.push(modifier);\n }\n this.addProcessedElement(arr[i], i + 1);\n }\n len = ownStyles.length;\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n len = ownModifiers.length;\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n this.renderShape();\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d);\n // Adding M0 0 fixes same mask bug on all browsers\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n return obj;\n };\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n return this.kf;\n };\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n i += 1;\n }\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n return this.data.d.k[this.keysIndex].s;\n };\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true;\n // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1);\n // It's a surrogate pair (this is the Low surrogate)\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n i += currentChars.length;\n }\n return charactersArray;\n };\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r');\n // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n }\n\n //\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n default:\n documentData.justifyOffset = 0;\n }\n }\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n ind = 0;\n based = animatorData.s.b;\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n ind += 1;\n }\n }\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n mult = easer(mult);\n }\n // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n var threshold = 0.5 - smoothness * 0.5;\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n if (this._pathData.r.v) {\n paths = paths.reverse();\n }\n // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n i = len;\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n this._pathData.pi = pathInfo;\n }\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO;\n\n //\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n isNewLine = false;\n }\n }\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n }\n //\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n default:\n break;\n }\n currentLine = letters[i].line;\n }\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n flag = true;\n // Force alignment only works with a single line for now\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n\n // Grouping alignment\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n default:\n break;\n }\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n letterO = elemOpacity;\n }\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n return shapeStr;\n };\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n matrixHelper.translate(0, -documentData.ls, 0);\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n default:\n break;\n }\n matrixHelper.translate(xPos, yPos, 0);\n };\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n ITextElement.prototype.emptyProp = new LetterProps();\n ITextElement.prototype.destroy = function () {};\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n i += 1;\n }\n textContents.push(currentTextContent);\n return textContents;\n };\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n return data;\n };\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n case 2:\n justify = 'middle';\n break;\n default:\n justify = 'start';\n break;\n }\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n tSpan.style.display = 'inherit';\n }\n matrixHelper.reset();\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0;\n // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n xPos += trackingOffset;\n }\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement;\n // t === 1 means the character has been replaced with an animated shaped\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement);\n // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n }\n //\n }\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n this._sizeChanged = true;\n };\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n return this.bbox;\n };\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n extendPrototype([IImageElement], ISolidElement);\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect');\n /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n NullElement.prototype.renderFrame = function () {};\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n NullElement.prototype.destroy = function () {};\n NullElement.prototype.sourceRectAtTime = function () {};\n NullElement.prototype.hide = function () {};\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n extendPrototype([BaseRenderer], SVGRendererBase);\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio);\n // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n this.animationItem.wrapper.appendChild(this.svgElement);\n // Mask animation\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n SVGRendererBase.prototype.updateContainerSize = function () {};\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n return -1;\n };\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n element.initExpressions();\n }\n this.appendElementInPos(element, pos);\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n if (elementIndex === -1) {\n return;\n }\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n i += 1;\n }\n }\n }\n };\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n }\n // console.log('-------');\n // console.log('FRAME ',num);\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n if (!newElement) {\n return;\n }\n var i = 0;\n var nextElement;\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n i += 1;\n }\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n this.hide();\n };\n\n /* ICompElement.prototype.hide = function(){\n if(!this.hidden){\n this.hideElement();\n var i,len = this.elements.length;\n for( i = 0; i < len; i+=1 ){\n if(this.elements[i]){\n this.elements[i].hide();\n }\n }\n }\n }; */\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n var i;\n var len = this.elements.length;\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n }\n // This iteration needs to be backwards because of how expressions connect between each other\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n extendPrototype([SVGRendererBase], SVGRenderer);\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n var sequence = this.sequences[key];\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n i += 1;\n }\n if (_mdf) {\n sequence.finalTransform.reset();\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null;\n\n // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n /*\n var svgString = [\n '<svg xmlns=\"http://www.w3.org/2000/svg\">',\n '<filter id=\"' + id + '\">',\n '<feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"',\n '0.3, 0.3, 0.3, 0, 0, ',\n '0.3, 0.3, 0.3, 0, 0, ',\n '0.3, 0.3, 0.3, 0, 0, ',\n '0.3, 0.3, 0.3, 0, 0',\n '\"/>',\n '</filter>',\n '</svg>',\n ].join('');\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\n var url = URL.createObjectURL(blob);\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n _svg.appendChild(fil);\n _svg.setAttribute('id', id + '_svg');\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n return _svg;\n }\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d');\n // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height;\n // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n return effects;\n };\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n this.hasMasks = hasMasks;\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n // on the first buffer we store the current state of the global drawing\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1];\n // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n // We clear the canvas again\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n // We draw the mask\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true);\n // We draw the second buffer (that contains the content of this layer)\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n\n // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext);\n // we repaint the context with the mask applied to it\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0);\n // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform);\n // We reset the globalCompositeOperation to source-over, the standard type of operation\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n ownModifiers.push(modifier);\n }\n this.addProcessedElement(arr[i], i + 1);\n }\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type;\n\n // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd);\n // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n renderer.ctxLineWidth(currentStyle.wi);\n // ctx.lineWidth = currentStyle.wi;\n renderer.ctxLineCap(currentStyle.lc);\n // ctx.lineCap = currentStyle.lc;\n renderer.ctxLineJoin(currentStyle.lj);\n // ctx.lineJoin = currentStyle.lj;\n renderer.ctxMiterLimit(currentStyle.ml || 0);\n // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd);\n // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n renderer.ctxOpacity(currentStyle.coOp);\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n renderer.restore();\n }\n }\n };\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {\n //\n }\n }\n if (isMain) {\n this.drawLayer();\n }\n };\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n styledShape.trNodes = shapeNodes;\n }\n };\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n styleElem.grd = grd;\n }\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n this.fill = hasFill;\n var hasStroke = false;\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length;\n // this.tHelper.font = this.values.fValue;\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n cnt += 1;\n }\n };\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt');\n // ctx.lineCap = 'butt';\n this.globalData.renderer.ctxLineJoin('miter');\n // ctx.lineJoin = 'miter';\n this.globalData.renderer.ctxMiterLimit(4);\n // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc;\n // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill);\n // ctx.fillStyle = this.values.fill;\n }\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n this.globalData.canvasContext.closePath();\n renderer.ctxFill();\n // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw);\n // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth);\n // ctx.lineWidth = this.values.sWidth;\n }\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc);\n // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke);\n // ctx.strokeStyle = this.values.stroke;\n }\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke();\n // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc);\n // ctx.fillStyle = this.data.sc;\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh);\n // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n extendPrototype([BaseRenderer], CanvasRendererBase);\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n this.contextData.reset();\n };\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n this.contextData.restore(actionFlag);\n };\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n var elementRel;\n var animationRel;\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\n for(i=0;i<len;i+=1){\n if(this.elements[i] && this.elements[i].data.ty === 0){\n this.elements[i].resize(this.globalData.transformCanvas);\n }\n } */\n this.ctxTransform(this.transformCanvas.props);\n this.canvasContext.beginPath();\n this.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n this.canvasContext.closePath();\n this.canvasContext.clip();\n this.renderFrame(this.renderedFrame, true);\n };\n CanvasRendererBase.prototype.destroy = function () {\n if (this.renderConfig.clearCanvas && this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n var i;\n var len = this.layers ? this.layers.length : 0;\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num;\n\n // console.log('--------');\n // console.log('NEW: ',num);\n var i;\n var len = this.layers.length;\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\n element.resize(this.globalData.transformCanvas);\n } */\n };\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1;\n //\n this.currentFillStyle = '';\n this.appliedFillStyle = '';\n //\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = '';\n //\n this.currentLineWidth = '';\n this.appliedLineWidth = '';\n //\n this.currentLineCap = '';\n this.appliedLineCap = '';\n //\n this.currentLineJoin = '';\n this.appliedLineJoin = '';\n //\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n this._length = newLength;\n };\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n var props = this.cTr.props;\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n var currentStack = this.stack[this.cArrPos];\n var i;\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props);\n // Taking the last transform value from the stored stack of transforms\n var currentTransform = this.cTr;\n // Applying the last transform value after the new transform to respect the order of transformations\n this.transformMat.multiply(currentTransform);\n // Storing the new transformed value in the stored transform\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props;\n // Applying the new transform to the canvas\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n this.nativeContext.fill(rule);\n };\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n this.nativeContext.fillRect(x, y, w, h);\n };\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n this.layers = null;\n this.elements = null;\n };\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n if (this.matteElement) {\n this.matteElement = null;\n }\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n HSolidElement.prototype.createContent = function () {\n var rect;\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = [];\n // Full shape data\n this.shapesData = data.shapes;\n // List of styles that will be applied to shapes\n this.stylesList = [];\n // List of modifiers that will be applied to shapes\n this.shapeModifiers = [];\n // List of items in shape tree\n this.itemsData = [];\n // List of items in previous shape tree\n this.processedElements = [];\n // List of animated components\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp);\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n return point;\n };\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n if (len <= 1) {\n return;\n }\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n a |= 0; // eslint-disable-line no-bitwise\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {\n //\n } else if (a === 0) {\n t = -c / b;\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n if (kfw > width) {\n width = kfw;\n }\n }\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y;\n // var tempBoundingBox = this.shapeCont.getBBox();\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n var changed = false;\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n this.checkParenting();\n };\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n }\n // tSpan.setAttribute('visibility', 'hidden');\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n matrixHelper.reset();\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n //\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n }\n //\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n }\n /// /textSpan.setAttribute('opacity',renderedLetter.o);\n textSpan.style.opacity = renderedLetter.o;\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n var margin = 1;\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true;\n\n // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n this.finalTransform = {\n mProp: this\n };\n }\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n HCameraElement.prototype.createElements = function () {};\n HCameraElement.prototype.hide = function () {};\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n if (this.hierarchy) {\n len = this.hierarchy.length;\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n if (this.a) {\n var diffVector;\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2));\n // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n this.mat.clone(this._prevMat);\n }\n }\n this._isFirstFrame = false;\n };\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n HCameraElement.prototype.destroy = function () {};\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n if (!newDOMElement) {\n return;\n }\n var layer = this.layers[pos];\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n i += 1;\n }\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n return new HShapeElement(data, this.globalData, this);\n };\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n return new HTextElement(data, this.globalData, this);\n };\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n return new HImageElement(data, this.globalData, this);\n };\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n return new HSolidElement(data, this.globalData, this);\n };\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n i += 1;\n }\n return null;\n };\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n perspectiveElem.appendChild(container);\n // this.resizerElem.appendChild(perspectiveElem);\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n len = this.threeDElements.length;\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n j += 1;\n }\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n break;\n }\n i += 1;\n }\n };\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData;\n // Mask animation\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements();\n // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n j += 1;\n }\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n extendPrototype([HybridRendererBase], HybridRenderer);\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n i += 1;\n }\n return null;\n // return {active:false};\n }\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(o) { \"@babel/helpers - typeof\"; return _typeof$2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$2(o); }\n /* eslint-disable */\n /*\n Copyright 2014 David Bau.\n\n Permission is hereby granted, free of charge, to any person obtaining\n a copy of this software and associated documentation files (the\n \"Software\"), to deal in the Software without restriction, including\n without limitation the rights to use, copy, modify, merge, publish,\n distribute, sublicense, and/or sell copies of the Software, and to\n permit persons to whom the Software is furnished to do so, subject to\n the following conditions:\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n */\n\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {};\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n prng[\"double\"] = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n }\n // Only provide the .state method if requested via options.state.\n prng.state = function () {\n return copy(arc4, {});\n };\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n math['seed' + rngname] = seedrandom;\n\n //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) {\n key = [keylen++];\n }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n me.i = i;\n me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n }\n\n //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n }\n\n //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n }\n\n //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n return tostring(key);\n }\n\n //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n }\n\n //\n // tostring()\n // Converts an array of charcodes to a string\n //\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n }\n\n //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n mixkey(math.random(), pool);\n\n //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n\n // End anonymous scope, and pass initial values.\n }\n ;\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n function resetFrame() {\n _lottieGlobal = {};\n }\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n return retArr;\n }\n if (a.propType) {\n return a.v;\n }\n return -a;\n }\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n var tOfB = _typeof$1(b);\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n i += 1;\n }\n return retArr;\n }\n return 0;\n }\n var add = sum;\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n var tOfB = _typeof$1(b);\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n return a - b;\n }\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n i += 1;\n }\n return retArr;\n }\n return 0;\n }\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n var tOfB = _typeof$1(b);\n var arr;\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n var i;\n var len;\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n return arr;\n }\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n return arr;\n }\n return 0;\n }\n function div(a, b) {\n var tOfA = _typeof$1(a);\n var tOfB = _typeof$1(b);\n var arr;\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n var i;\n var len;\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n return arr;\n }\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n return arr;\n }\n return 0;\n }\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n return a % b;\n }\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n return Math.min(Math.max(num, min), max);\n }\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n var radians_to_degrees = radiansToDegrees;\n function degreesToRadians(val) {\n return val * degToRads;\n }\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n return Math.sqrt(addedLength);\n }\n function normalize(vec) {\n return div(vec, length(vec));\n }\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n if (max === min) {\n h = 0; // achromatic\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return [h, s, l, val[3]];\n }\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n if (s === 0) {\n r = l; // achromatic\n b = l; // achromatic\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return [r, g, b, val[3]];\n }\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n if (t <= tMin) {\n return value1;\n }\n if (t >= tMax) {\n return value2;\n }\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n return arr;\n }\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n if (max.length) {\n var i;\n var len = max.length;\n if (!min) {\n min = createTypedArray('float32', len);\n }\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n return arr;\n }\n if (min === undefined) {\n min = 0;\n }\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n return path;\n }\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n var _needsRandom = val.indexOf('random') !== -1;\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty._name = elem.data.nm;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt;\n // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random();\n // addedAmps[j] += -amp + amp*2*rnd;\n }\n iWiggle += 1;\n }\n // var rnd2 = BMMath.random();\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc;\n // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n return arr;\n }\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n var mult = fn(t);\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n return arr;\n }\n return (val2 - val1) * mult + val1;\n }\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n break;\n }\n }\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n return obKey;\n }\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n return fr / fps;\n }\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n return t * fps;\n }\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n return value.substring(init, end);\n }\n return '';\n }\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n return value.substr(init, end);\n }\n return '';\n }\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\n rotation = transform.rotation;\n scale = transform.scale; */\n }\n }\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n if (!effect) {\n effect = thisLayer(4);\n }\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n expression_function();\n this.frameExpressionId = elem.globalData.frameId;\n\n // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n }\n // Bundlers will see these as dead code and unless we reference them\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n function pushExpression() {\n stackCount += 1;\n }\n function popExpression() {\n stackCount -= 1;\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n function releaseInstances() {\n var i;\n var len = registers.length;\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n registers.length = 0;\n }\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n return this._mask.op.v * 100;\n }\n });\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n var i;\n var len = maskManager.viewData.length;\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n var maskFunction = function maskFunction(name) {\n i = 0;\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n i += 1;\n }\n return null;\n };\n return maskFunction;\n };\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n var value = '';\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n val = property.v * mult;\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n expressionValue.value = val;\n expressionValue[0] = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n return expressionValue;\n };\n }\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n return expressionValue;\n };\n }\n\n // TODO: try to avoid using this getter\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n default:\n return null;\n }\n }\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n var _px;\n var _py;\n var _pz;\n var _transformFactory;\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n return toWorldMat;\n }\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n return matrix.inversePoint(arr);\n }\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n return toWorldMat.inversePoint(arr);\n }\n return toWorldMat.inversePoint(arr);\n }\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n return function (elem) {\n var transformInterface;\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n default:\n return null;\n }\n }\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n if (val <= 0) {\n return interfaceFunction;\n }\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n if (val <= 0) {\n return interfaceFunction;\n }\n return propertyGroup(val - 1);\n }\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n var effects = elem.data.ef || [];\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n i += 1;\n }\n return null;\n };\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n return null;\n }\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n return effectElements[i]();\n }\n i += 1;\n }\n throw new Error();\n }\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n var effectElements = [];\n var i;\n var len = data.ef.length;\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n return expressionProperty();\n }\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n return interfaceFunction;\n }\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n return null;\n }\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {\n // arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n return arr;\n }\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n i += 1;\n }\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n return null;\n };\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n default:\n return interfaceFunction.transform;\n }\n };\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n });\n // interfaceFunction.content = interfaceFunction;\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n return null;\n }\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n return null;\n }\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n return interfaceFunction;\n }\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n return null;\n }\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n return null;\n }\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n return null;\n }\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n return null;\n }\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n return null;\n }\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n return null;\n }\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n return null;\n }\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n return null;\n }\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n return function (shapes, view, propertyGroup) {\n var interfaces;\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n if (value === 0) {\n return propertyGroup;\n }\n return interfaces[value - 1];\n }\n var i = 0;\n var len = interfaces.length;\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n i += 1;\n }\n return null;\n }\n function parentGroupWrapper() {\n return propertyGroup;\n }\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n default:\n return null;\n }\n }\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n return currentProperty;\n }\n var propertyNameIndex = value.indexOf(currentPropertyName);\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n return currentProperty;\n }\n return '';\n }\n return init;\n };\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n return null;\n }\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n return null;\n }\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n return this._cachingAtTime.value;\n }\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n if (v1.length) {\n var i;\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n return speed;\n }\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n var delta = -0.001;\n // frameNum += this.elem.data.st;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n return velocity;\n }\n function getStaticValueAtTime() {\n return this.pv;\n }\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n var cycleDuration;\n var firstKeyFrame;\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n var i;\n var len;\n var ret;\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n return ret;\n }\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n return ret;\n }\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n var cycleDuration;\n var lastKeyFrame;\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n var i;\n var len;\n var ret;\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n return ret;\n }\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n return ret;\n }\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n if (samples <= 1) {\n return this.pv;\n }\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n var sampleValue;\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n i += 1;\n }\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n return value;\n }\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n }\n /// /\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n return matrix;\n /// /\n }\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n var propertyGetProp = PropertyFactory.getProp;\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container);\n // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n return prop;\n };\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n return this._cachingAtTime.shapeValue;\n }\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n function ShapeExpressions() {}\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n var shapePath = this.v;\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n i += 1;\n }\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n if (magnitude === 0) {\n return [0, 0];\n }\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n return prop;\n };\n }\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n return null;\n }\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n return currentValue;\n };\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer');\n\n // Red\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n }\n // Green\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n }\n // Blue\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n // Alpha\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n }\n // RGB\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n while (cnt <= 256) {\n perc = cnt / 256;\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n return table.join(' ');\n };\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge);\n //\n }\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n i += 1;\n }\n return null;\n };\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n if (!parentNode) {\n return;\n }\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n i += 1;\n }\n var nextChild;\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n _svgMatteSymbols.push(mask);\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n elem.setMatte(mask.layerId);\n };\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n i += 1;\n }\n this.initialized = true;\n };\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma;\n\n // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY);\n\n // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n extendPrototype([TransformEffect], CVTransformEffect);\n\n // Registering renderers\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer);\n\n // Registering shape modifiers\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier);\n\n // Registering expression plugin\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize();\n\n // Registering svg effects\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","export default function WalletIcon({ fill }) {\n return (\n <svg\n width=\"17\"\n height=\"15\"\n viewBox=\"0 0 17 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15.6813 6.14035V5.50643C15.6813 4.34722 14.9059 3.37279 13.8599 3.09358L13.858 2.04837C13.858 1.02834 13.0489 0.198242 12.0541 0.198242H11.9587L3.51625 2.88492C3.32397 2.89632 3.14154 2.94193 2.97023 3.01055H2.94821C1.60705 3.01055 0.515625 4.13018 0.515625 5.50643V11.7024C0.515625 13.0784 1.60684 14.1982 2.94821 14.1982H13.2487C14.5899 14.1982 15.6813 13.0786 15.6813 11.7024V10.8783C16.1684 10.6849 16.5156 10.2005 16.5156 9.63303V7.38517C16.5154 6.81815 16.1684 6.33373 15.6813 6.14035ZM15.2573 9.63282C15.2573 9.6582 15.2378 9.67821 15.213 9.67821H11.8075C11.7828 9.67821 11.7635 9.6582 11.7635 9.63282V7.38517C11.7635 7.36043 11.7832 7.34021 11.8075 7.34021H15.213C15.2374 7.34021 15.2573 7.36043 15.2573 7.38517V9.63282ZM12.1319 1.49469C12.3963 1.53341 12.5999 1.76701 12.5999 2.04945L12.6016 3.01076H7.368L12.1319 1.49469ZM13.2487 12.9074H2.94842C2.29986 12.9074 1.77396 12.3677 1.77396 11.7021V5.50643C1.77396 4.84067 2.29986 4.30119 2.94842 4.30119H13.2487C13.8975 4.30119 14.4232 4.84067 14.4232 5.50643V6.04957H11.8075C11.0895 6.04957 10.5054 6.64864 10.5054 7.38517V9.63282C10.5054 10.3696 11.0895 10.9688 11.8075 10.9688H14.4232V11.7024C14.4232 12.3677 13.8975 12.9074 13.2487 12.9074Z\"\n fill={fill}\n />\n </svg>\n );\n}\n","import React from \"react\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport controllers from \"../Actions/Controllers\";\nimport useStore from \"../zustand/store\";\nimport useWalletDetails from \"./useWalletDetails\";\nfunction useRegisterError() {\n const fromChain = useStore((state) => state.fromChain);\n const userId = useStore((state) => state.userId);\n const { getWallet } = useWalletDetails({});\n const { data, isLoading, mutate, mutateAsync, isSuccess } = useMutation({\n mutationKey: \"register-error\",\n mutationFn: async (data) => {\n let req = await controllers.registerError(data);\n let res = await req.json();\n },\n\n onSuccess: (data) => {},\n onError: (err) => {\n console.log(err, \"errorregistering\");\n },\n retry: false,\n });\n async function registerError(data = {}) {\n try {\n await mutateAsync({\n sessionId: userId,\n userWalletAddress: getWallet(fromChain)?.address || \"\",\n error: data?.error || \"\",\n ...data,\n });\n } catch (err) {\n console.log(err);\n }\n }\n return {\n registerErrorData: data,\n registerErrorIsLoading: isLoading,\n registerErrorMutate: mutate,\n registerErrorMutateAsync: mutateAsync,\n registerErrorIsSuccess: isSuccess,\n registerError,\n };\n}\n\nexport default useRegisterError;\n"],"names":["r","process","Element","Fragment","Portal","reactIs_development","reactIsModule","require$$0","require$$1","reactIs","key","jsx","Emotion","cache","name","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","Insertion","createStyled","value","newStyled","_extends","_jsx","defaultTheme","styled","emStyled","_excluded","config","getDisplayName","ForwardRef","Memo","propTypes","timeout","joinedClasses","mergedStyle","props","useDefaultProps","useThemeSystem","module","_objectWithoutPropertiesLoose","createStyled_1","require$$2","require$$3","_excluded2","e","isEmpty","rootShouldForwardProp","slotShouldForwardProp","useSystemDefaultProps","t","setPrototypeOf","React","forceReflow","Transition","ReactDOM","active","capitalize","CircularProgress","data","useCosmosAccount","useCosmosDisconnect","_a","_b","chainData","this","setWebWorker","getWebWorker","setLocationHref","getLocationHref","o","val","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","comp","loadAnimation","ob","_","registerRenderer","AnimationItem","expressionsPlugin","width","height","index","searchAnimations","div","length","time","elem","initFrame","setVValue","processEffectsSequence","addEffect","scale","transform","bez","text","sum","Font","sourceRectAtTime","expressionsInterfaces","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","globalData","FootageInterface","mask","effect","position","buildShapeString","lumaLoader","prng","seed","i","j","s","BMMath","wiggle","MaskManager","maskFunction","property","toWorld","fromWorld","fromComp","groupInterface","len","interfaces","content","get","outlineInterfaceFactory","dataInterfaceFactory","velocity","loopOut","keyframes","loopIn","smooth","rotation","vertices"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,91]}