@8wave/ai-elements 0.75.0 → 0.78.0

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 (141) hide show
  1. package/dist/_chunks/{PkStreamingMarkdown-rIdQh5_D.js → PkStreamingMarkdown-gIAvEY1t.js} +372 -303
  2. package/dist/_chunks/PkStreamingMarkdown-gIAvEY1t.js.map +1 -0
  3. package/dist/_chunks/{PkToolShowArtifact-CeLgwZBA.js → PkToolShowArtifact-BwW4Yn6k.js} +5 -5
  4. package/dist/_chunks/{PkToolShowArtifact-CeLgwZBA.js.map → PkToolShowArtifact-BwW4Yn6k.js.map} +1 -1
  5. package/dist/_chunks/{PkToolShowCalendarEvent-cQpAAE3a.js → PkToolShowCalendarEvent-BEqn5iEb.js} +6 -6
  6. package/dist/_chunks/{PkToolShowCalendarEvent-cQpAAE3a.js.map → PkToolShowCalendarEvent-BEqn5iEb.js.map} +1 -1
  7. package/dist/_chunks/{PkToolShowComparison-Cu-zT8-Z.js → PkToolShowComparison-p34r0Hhd.js} +4 -4
  8. package/dist/_chunks/{PkToolShowComparison-Cu-zT8-Z.js.map → PkToolShowComparison-p34r0Hhd.js.map} +1 -1
  9. package/dist/_chunks/{PkToolShowContactForm-CqoSVvjG.js → PkToolShowContactForm-DTE-iF_c.js} +18 -18
  10. package/dist/_chunks/{PkToolShowContactForm-CqoSVvjG.js.map → PkToolShowContactForm-DTE-iF_c.js.map} +1 -1
  11. package/dist/_chunks/{PkToolShowEmail-oLGym0R9.js → PkToolShowEmail-Be8FvWjw.js} +4 -4
  12. package/dist/_chunks/{PkToolShowEmail-oLGym0R9.js.map → PkToolShowEmail-Be8FvWjw.js.map} +1 -1
  13. package/dist/_chunks/PkToolShowImageGallery-CGL-HL6v.js +60 -0
  14. package/dist/_chunks/PkToolShowImageGallery-CGL-HL6v.js.map +1 -0
  15. package/dist/_chunks/{PkToolShowLocation-BtRUdoEw.js → PkToolShowLocation-DOoLCHzS.js} +6 -6
  16. package/dist/_chunks/{PkToolShowLocation-BtRUdoEw.js.map → PkToolShowLocation-DOoLCHzS.js.map} +1 -1
  17. package/dist/_chunks/{PkToolShowMessage-tJQGRhce.js → PkToolShowMessage-DgeULbdQ.js} +4 -4
  18. package/dist/_chunks/{PkToolShowMessage-tJQGRhce.js.map → PkToolShowMessage-DgeULbdQ.js.map} +1 -1
  19. package/dist/_chunks/{PkToolShowMultipleChoice-CtVvdyDg.js → PkToolShowMultipleChoice-CpGyn_bZ.js} +3 -3
  20. package/dist/_chunks/{PkToolShowMultipleChoice-CtVvdyDg.js.map → PkToolShowMultipleChoice-CpGyn_bZ.js.map} +1 -1
  21. package/dist/_chunks/{PkToolShowProductList-D_k6CDdb.js → PkToolShowProductList-C8YIh0Dw.js} +4 -4
  22. package/dist/_chunks/{PkToolShowProductList-D_k6CDdb.js.map → PkToolShowProductList-C8YIh0Dw.js.map} +1 -1
  23. package/dist/_chunks/{PkToolShowQrCode-S1j_T8wQ.js → PkToolShowQrCode-UE4uSyvJ.js} +4 -4
  24. package/dist/_chunks/{PkToolShowQrCode-S1j_T8wQ.js.map → PkToolShowQrCode-UE4uSyvJ.js.map} +1 -1
  25. package/dist/_chunks/{PkToolShowSources-CroItMtG.js → PkToolShowSources-TSjtd1ps.js} +7 -7
  26. package/dist/_chunks/PkToolShowSources-TSjtd1ps.js.map +1 -0
  27. package/dist/_chunks/{PkToolShowSuggestedReply-BRa5Lpti.js → PkToolShowSuggestedReply-c9sLv4n4.js} +4 -4
  28. package/dist/_chunks/{PkToolShowSuggestedReply-BRa5Lpti.js.map → PkToolShowSuggestedReply-c9sLv4n4.js.map} +1 -1
  29. package/dist/_chunks/{PkToolShowWeather-CUpCJ8Nj.js → PkToolShowWeather-ChJ5lB4K.js} +51 -51
  30. package/dist/_chunks/PkToolShowWeather-ChJ5lB4K.js.map +1 -0
  31. package/dist/_chunks/{PkToolShowWebPages-f-dHyxfD.js → PkToolShowWebPages-CL2mYxh-.js} +5 -5
  32. package/dist/_chunks/{PkToolShowWebPages-f-dHyxfD.js.map → PkToolShowWebPages-CL2mYxh-.js.map} +1 -1
  33. package/dist/_chunks/{PkUrl-CI17WkYu.js → PkUrl-CvztUywv.js} +3 -3
  34. package/dist/_chunks/{PkUrl-CI17WkYu.js.map → PkUrl-CvztUywv.js.map} +1 -1
  35. package/dist/_chunks/{VvCheckbox.es-BF8Mdg0O.js → VvCheckbox.es-ohF87NOe.js} +3 -3
  36. package/dist/_chunks/{VvCheckbox.es-BF8Mdg0O.js.map → VvCheckbox.es-ohF87NOe.js.map} +1 -1
  37. package/dist/_chunks/{VvCheckboxGroup.es-BJc8MmJ3.js → VvCheckboxGroup.es-DZCbyLN0.js} +4 -4
  38. package/dist/_chunks/{VvCheckboxGroup.es-BJc8MmJ3.js.map → VvCheckboxGroup.es-DZCbyLN0.js.map} +1 -1
  39. package/dist/_chunks/{VvCombobox.es-ILRHqAye.js → VvCombobox.es-YLPD7MpO.js} +6 -6
  40. package/dist/_chunks/{VvCombobox.es-ILRHqAye.js.map → VvCombobox.es-YLPD7MpO.js.map} +1 -1
  41. package/dist/_chunks/{VvInputText.es-CDnMeO26.js → VvInputText.es-DAnAXfBO.js} +7 -7
  42. package/dist/_chunks/{VvInputText.es-CDnMeO26.js.map → VvInputText.es-DAnAXfBO.js.map} +1 -1
  43. package/dist/_chunks/{VvRadio.es-C2p5vvAx.js → VvRadio.es-Do9oyNtV.js} +3 -3
  44. package/dist/_chunks/{VvRadio.es-C2p5vvAx.js.map → VvRadio.es-Do9oyNtV.js.map} +1 -1
  45. package/dist/_chunks/{VvRadioGroup.es-6GlWuDjY.js → VvRadioGroup.es-BHcqcJFC.js} +4 -4
  46. package/dist/_chunks/{VvRadioGroup.es-6GlWuDjY.js.map → VvRadioGroup.es-BHcqcJFC.js.map} +1 -1
  47. package/dist/_chunks/{VvSelect.es-i4lO9onq.js → VvSelect.es-CP_y02fy.js} +5 -5
  48. package/dist/_chunks/{VvSelect.es-i4lO9onq.js.map → VvSelect.es-CP_y02fy.js.map} +1 -1
  49. package/dist/_chunks/{VvTextarea.es-CGpiCS4S.js → VvTextarea.es-DetA_2DM.js} +6 -6
  50. package/dist/_chunks/{VvTextarea.es-CGpiCS4S.js.map → VvTextarea.es-DetA_2DM.js.map} +1 -1
  51. package/dist/_chunks/{dist-BTnzL-m0.js → dist-yqV26MWM.js} +4 -4
  52. package/dist/_chunks/{dist-BTnzL-m0.js.map → dist-yqV26MWM.js.map} +1 -1
  53. package/dist/_chunks/{esm-0nyRYwmP.js → esm-DLxNpT06.js} +7 -7
  54. package/dist/_chunks/{esm-0nyRYwmP.js.map → esm-DLxNpT06.js.map} +1 -1
  55. package/dist/_chunks/{floating-ui.vue-B5ZV-j8C.js → floating-ui.vue-tVPpNXUc.js} +3 -3
  56. package/dist/_chunks/{floating-ui.vue-B5ZV-j8C.js.map → floating-ui.vue-tVPpNXUc.js.map} +1 -1
  57. package/dist/_chunks/{iconify-C1EOwL90.js → iconify-y0w2FIJH.js} +3 -3
  58. package/dist/_chunks/{iconify-C1EOwL90.js.map → iconify-y0w2FIJH.js.map} +1 -1
  59. package/dist/_chunks/{index.es-CUjDCkXD.js → index.es-7fUi-rc0.js} +7 -7
  60. package/dist/_chunks/{index.es-CUjDCkXD.js.map → index.es-7fUi-rc0.js.map} +1 -1
  61. package/dist/_chunks/{src-C_wl-KYN.js → src-BfoQF6Z3.js} +2 -2
  62. package/dist/_chunks/{src-C_wl-KYN.js.map → src-BfoQF6Z3.js.map} +1 -1
  63. package/dist/_chunks/{useLightbox-CH1KeVqr.js → useLightbox-Ddvue042.js} +7 -5
  64. package/dist/_chunks/{useLightbox-CH1KeVqr.js.map → useLightbox-Ddvue042.js.map} +1 -1
  65. package/dist/_chunks/{vue-i18n-KvYvoek4.js → vue-i18n-DAH6nDTN.js} +3 -3
  66. package/dist/_chunks/{vue-i18n-KvYvoek4.js.map → vue-i18n-DAH6nDTN.js.map} +1 -1
  67. package/dist/_chunks/{vue.runtime.esm-bundler-BmggS4HU.js → vue.runtime.esm-bundler-Dq29dQrz.js} +16 -10
  68. package/dist/_chunks/vue.runtime.esm-bundler-Dq29dQrz.js.map +1 -0
  69. package/dist/ai-elements.es.js +3138 -3039
  70. package/dist/ai-elements.es.js.map +1 -1
  71. package/dist-vue/PkChatbot.js +1 -1
  72. package/dist-vue/PkChatbotFeedbackForm.js +1 -1
  73. package/dist-vue/PkChatbotFilePreview.js +1 -1
  74. package/dist-vue/PkChatbotInput.js +1 -1
  75. package/dist-vue/PkChatbotMessages.js +1 -1
  76. package/dist-vue/PkChatbotViewChat.js +1 -1
  77. package/dist-vue/PkChatbotViewConversations.js +1 -1
  78. package/dist-vue/PkChatbotViewProfile.js +1 -1
  79. package/dist-vue/_chunks/{Media-CXQSoKqt.js → Media-kK7BnZGr.js} +2 -2
  80. package/dist-vue/_chunks/Media-kK7BnZGr.js.map +1 -0
  81. package/dist-vue/_chunks/{PkChatbot-DAzGc7al.js → PkChatbot-BEJTYq-D.js} +7 -7
  82. package/dist-vue/_chunks/{PkChatbot-DAzGc7al.js.map → PkChatbot-BEJTYq-D.js.map} +1 -1
  83. package/dist-vue/_chunks/{PkChatbotFeedbackForm-DvUzirPP.js → PkChatbotFeedbackForm-lj9CHdhn.js} +2 -2
  84. package/dist-vue/_chunks/{PkChatbotFeedbackForm-DvUzirPP.js.map → PkChatbotFeedbackForm-lj9CHdhn.js.map} +1 -1
  85. package/dist-vue/_chunks/{PkChatbotFilePreview-DHzuGtz5.js → PkChatbotFilePreview-hRNtv2OJ.js} +2 -2
  86. package/dist-vue/_chunks/{PkChatbotFilePreview-DHzuGtz5.js.map → PkChatbotFilePreview-hRNtv2OJ.js.map} +1 -1
  87. package/dist-vue/_chunks/{PkChatbotInput-C5QSmt21.js → PkChatbotInput-BbGLBVim.js} +124 -116
  88. package/dist-vue/_chunks/PkChatbotInput-BbGLBVim.js.map +1 -0
  89. package/dist-vue/_chunks/PkChatbotMessages-j3ALQmGG.js +467 -0
  90. package/dist-vue/_chunks/PkChatbotMessages-j3ALQmGG.js.map +1 -0
  91. package/dist-vue/_chunks/{PkChatbotViewChat-CjoezIyz.js → PkChatbotViewChat-Z05fqNFE.js} +6 -6
  92. package/dist-vue/_chunks/{PkChatbotViewChat-CjoezIyz.js.map → PkChatbotViewChat-Z05fqNFE.js.map} +1 -1
  93. package/dist-vue/_chunks/{PkChatbotViewConversations-DSQu6vY1.js → PkChatbotViewConversations-2xc0o-fO.js} +2 -2
  94. package/dist-vue/_chunks/{PkChatbotViewConversations-DSQu6vY1.js.map → PkChatbotViewConversations-2xc0o-fO.js.map} +1 -1
  95. package/dist-vue/_chunks/{PkChatbotViewProfile-BJJiaG9H.js → PkChatbotViewProfile-CoT1JnMk.js} +2 -2
  96. package/dist-vue/_chunks/{PkChatbotViewProfile-BJJiaG9H.js.map → PkChatbotViewProfile-CoT1JnMk.js.map} +1 -1
  97. package/dist-vue/_chunks/{PkStreamingMarkdown-BAhC3uGK.js → PkStreamingMarkdown-BBTAwHd_.js} +311 -252
  98. package/dist-vue/_chunks/PkStreamingMarkdown-BBTAwHd_.js.map +1 -0
  99. package/dist-vue/_chunks/{PkToolShowArtifact-RzrDPcEQ.js → PkToolShowArtifact-CbqpjzCA.js} +2 -2
  100. package/dist-vue/_chunks/{PkToolShowArtifact-RzrDPcEQ.js.map → PkToolShowArtifact-CbqpjzCA.js.map} +1 -1
  101. package/dist-vue/_chunks/{PkToolShowContactForm-r_GgO-ZX.js → PkToolShowContactForm-BkgfSyw7.js} +3 -3
  102. package/dist-vue/_chunks/{PkToolShowContactForm-r_GgO-ZX.js.map → PkToolShowContactForm-BkgfSyw7.js.map} +1 -1
  103. package/dist-vue/_chunks/{PkToolShowImageGallery-B7Bt6ZGv.js → PkToolShowImageGallery-Ckyxa0mx.js} +18 -21
  104. package/dist-vue/_chunks/PkToolShowImageGallery-Ckyxa0mx.js.map +1 -0
  105. package/dist-vue/_chunks/{PkToolShowSources-DK2DCvU3.js → PkToolShowSources-7Xt3iK2Z.js} +3 -3
  106. package/dist-vue/_chunks/{PkToolShowSources-DK2DCvU3.js.map → PkToolShowSources-7Xt3iK2Z.js.map} +1 -1
  107. package/dist-vue/_chunks/{PkToolShowWeather-Coq6H0iv.js → PkToolShowWeather-B5Wp8WAt.js} +26 -26
  108. package/dist-vue/_chunks/PkToolShowWeather-B5Wp8WAt.js.map +1 -0
  109. package/dist-vue/_chunks/{createChatbotApiClient-f86KwRcq.js → createChatbotApiClient-CvDRMmDa.js} +2 -2
  110. package/dist-vue/_chunks/{createChatbotApiClient-f86KwRcq.js.map → createChatbotApiClient-CvDRMmDa.js.map} +1 -1
  111. package/dist-vue/_chunks/{index.es-_14zrNZB.js → index.es-Dk_HaA08.js} +2 -2
  112. package/dist-vue/_chunks/{index.es-_14zrNZB.js.map → index.es-Dk_HaA08.js.map} +1 -1
  113. package/dist-vue/_chunks/{useChatbotStore-CJlkoNn7.js → useChatbotStore-DMDbzuub.js} +5 -5
  114. package/dist-vue/_chunks/{useChatbotStore-CJlkoNn7.js.map → useChatbotStore-DMDbzuub.js.map} +1 -1
  115. package/dist-vue/_chunks/{useLightbox-1sB7fmFb.js → useLightbox-Cl8REkfc.js} +5 -3
  116. package/dist-vue/_chunks/{useLightbox-1sB7fmFb.js.map → useLightbox-Cl8REkfc.js.map} +1 -1
  117. package/dist-vue/api.js +1 -1
  118. package/dist-vue/composables.js +2 -2
  119. package/dist-vue/index.js +24 -24
  120. package/dist-vue/index.js.map +1 -1
  121. package/dist-vue/packages/components/src/chat/PkChatbotMessages.d.ts +4 -5
  122. package/dist-vue/packages/components/src/chat/PkStreamingMarkdown.d.ts +9 -1
  123. package/dist-vue/packages/components/src/chat/useChatScroll.d.ts +15 -0
  124. package/dist-vue/packages/models/src/schema/AgentEndpoint.d.ts +1 -1
  125. package/dist-vue/packages/models/src/schema/constants.d.ts +3 -1
  126. package/dist-vue/style.css +1 -1
  127. package/package.json +2 -2
  128. package/dist/_chunks/PkStreamingMarkdown-rIdQh5_D.js.map +0 -1
  129. package/dist/_chunks/PkToolShowImageGallery-CDXSL1Mg.js +0 -63
  130. package/dist/_chunks/PkToolShowImageGallery-CDXSL1Mg.js.map +0 -1
  131. package/dist/_chunks/PkToolShowSources-CroItMtG.js.map +0 -1
  132. package/dist/_chunks/PkToolShowWeather-CUpCJ8Nj.js.map +0 -1
  133. package/dist/_chunks/vue.runtime.esm-bundler-BmggS4HU.js.map +0 -1
  134. package/dist-vue/_chunks/Media-CXQSoKqt.js.map +0 -1
  135. package/dist-vue/_chunks/PkChatbotInput-C5QSmt21.js.map +0 -1
  136. package/dist-vue/_chunks/PkChatbotMessages-dsjB0-26.js +0 -388
  137. package/dist-vue/_chunks/PkChatbotMessages-dsjB0-26.js.map +0 -1
  138. package/dist-vue/_chunks/PkStreamingMarkdown-BAhC3uGK.js.map +0 -1
  139. package/dist-vue/_chunks/PkToolShowImageGallery-B7Bt6ZGv.js.map +0 -1
  140. package/dist-vue/_chunks/PkToolShowWeather-Coq6H0iv.js.map +0 -1
  141. /package/dist/_chunks/{_plugin-vue_export-helper-BI3pHb34.js → _plugin-vue_export-helper-C6kC663S.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PkStreamingMarkdown-gIAvEY1t.js","names":["$","O","I","L","E","M","N","y","U","W","K","d","b","H","D","w","G","F","T","g","X","m","z","Y","A","v","j","Q","q","J","V","x","B","$e"],"sources":["../../../../node_modules/.pnpm/remend@1.3.0/node_modules/remend/dist/index.js","../../../../node_modules/.pnpm/marked@18.0.3/node_modules/marked/lib/marked.esm.js","../../../../packages/components/src/chat/PkStreamingMarkdown.vue","../../../../packages/components/src/chat/PkStreamingMarkdown.vue","../../../../packages/components/src/chat/PkStreamingMarkdown.vue"],"sourcesContent":["var cn=Object.defineProperty,un=Object.defineProperties;var fn=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var dn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable;var O=(n,r,e)=>r in n?cn(n,r,{enumerable:true,configurable:true,writable:true,value:e}):n[r]=e,I=(n,r)=>{for(var e in r||(r={}))dn.call(r,e)&&O(n,e,r[e]);if($)for(var e of $(r))gn.call(r,e)&&O(n,e,r[e]);return n},k=(n,r)=>un(n,fn(r));var c=(n,r)=>{let e=false,i=false;for(let s=0;s<r;s+=1){if(n[s]===\"\\\\\"&&s+1<n.length&&n[s+1]===\"`\"){s+=1;continue}if(n.substring(s,s+3)===\"```\"){i=!i,s+=2;continue}!i&&n[s]===\"`\"&&(e=!e);}return e||i},hn=(n,r)=>{let e=n.substring(r,r+3)===\"```\",i=r>0&&n.substring(r-1,r+2)===\"```\",s=r>1&&n.substring(r-2,r+1)===\"```\";return e||i||s},L=n=>{let r=0;for(let e=0;e<n.length;e+=1){if(n[e]===\"\\\\\"&&e+1<n.length&&n[e+1]===\"`\"){e+=1;continue}n[e]===\"`\"&&!hn(n,e)&&(r+=1);}return r},f=(n,r)=>{let e=false,i=false,s=-1;for(let o=0;o<n.length;o+=1){if(n[o]===\"\\\\\"&&o+1<n.length&&n[o+1]===\"`\"){o+=1;continue}if(n.substring(o,o+3)===\"```\"){i=!i,o+=2;continue}if(!i&&n[o]===\"`\")if(e){if(s<r&&r<o)return true;e=false,s=-1;}else e=true,s=o;}return false};var mn=/^(\\s*(?:[-*+]|\\d+[.)]) +)>(=?\\s*[$]?\\d)/gm,E=n=>!n||typeof n!=\"string\"||!n.includes(\">\")?n:n.replace(mn,(r,e,i,s)=>c(n,s)?r:`${e}\\\\>${i}`);var M=/(\\*\\*)([^*]*\\*?)$/,N=/(__)([^_]*?)$/,y=/(\\*\\*\\*)([^*]*?)$/,R=/(\\*)([^*]*?)$/,U=/(_)([^_]*?)$/,W=/(`)([^`]*?)$/,K=/(~~)([^~]*?)$/,d=/^[\\s_~*`]*$/,b=/^[\\s]*[-*+][\\s]+$/,H=/[\\p{L}\\p{N}_]/u,D=/^```[^`\\n]*```?$/,w=/^\\*{4,}$/;var G=/(__)([^_]+)_$/,F=/(~~)([^~]+)~$/;var T=/~~/g;var g=n=>{if(!n)return false;let r=n.charCodeAt(0);return r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r===95?true:H.test(n)},pn=(n,r)=>{let e=false;for(let i=0;i<r;i+=1)n[i]===\"`\"&&n[i+1]===\"`\"&&n[i+2]===\"`\"&&(e=!e,i+=2);return e},X=(n,r)=>{let e=1;for(let i=r-1;i>=0;i-=1)if(n[i]===\"]\")e+=1;else if(n[i]===\"[\"&&(e-=1,e===0))return i;return -1},C=(n,r)=>{let e=1;for(let i=r+1;i<n.length;i+=1)if(n[i]===\"[\")e+=1;else if(n[i]===\"]\"&&(e-=1,e===0))return i;return -1},h=(n,r)=>{let e=false,i=false;for(let s=0;s<n.length&&s<r;s+=1){if(n[s]===\"\\\\\"&&n[s+1]===\"$\"){s+=1;continue}n[s]===\"$\"&&(n[s+1]===\"$\"?(i=!i,s+=1,e=false):i||(e=!e));}return e||i},In=(n,r)=>{for(let e=r;e<n.length;e+=1){if(n[e]===\")\")return true;if(n[e]===`\n`)return false}return false},m=(n,r)=>{for(let e=r-1;e>=0;e-=1){if(n[e]===\")\")return false;if(n[e]===\"(\")return e>0&&n[e-1]===\"]\"?In(n,r):false;if(n[e]===`\n`)return false}return false},z=(n,r)=>{for(let e=r-1;e>=0;e-=1){if(n[e]===\">\")return false;if(n[e]===\"<\"){let i=e+1<n.length?n[e+1]:\"\";return i>=\"a\"&&i<=\"z\"||i>=\"A\"&&i<=\"Z\"||i===\"/\"}if(n[e]===`\n`)return false}return false},p=(n,r,e)=>{let i=0;for(let l=r-1;l>=0;l-=1)if(n[l]===`\n`){i=l+1;break}let s=n.length;for(let l=r;l<n.length;l+=1)if(n[l]===`\n`){s=l;break}let o=n.substring(i,s),t=0,a=false;for(let l of o)if(l===e)t+=1;else if(l!==\" \"&&l!==\"\t\"){a=true;break}return t>=3&&!a};var kn=(n,r,e,i)=>e===\"\\\\\"||n.includes(\"$\")&&h(n,r)?true:e!==\"*\"&&i===\"*\"?(r<n.length-2?n[r+2]:\"\")!==\"*\":!!(e===\"*\"||e&&i&&g(e)&&g(i)||(!e||e===\" \"||e===\"\t\"||e===`\n`)&&(!i||i===\" \"||i===\"\t\"||i===`\n`)),Y=n=>{let r=0,e=false,i=n.length;for(let s=0;s<i;s+=1){if(n[s]===\"`\"&&s+2<i&&n[s+1]===\"`\"&&n[s+2]===\"`\"){e=!e,s+=2;continue}if(e||n[s]!==\"*\")continue;let o=s>0?n[s-1]:\"\",t=s<i-1?n[s+1]:\"\";kn(n,s,o,t)||(r+=1);}return r},bn=(n,r,e,i)=>!!(e===\"\\\\\"||n.includes(\"$\")&&h(n,r)||m(n,r)||z(n,r)||e===\"_\"||i===\"_\"||e&&i&&g(e)&&g(i)),Tn=n=>{let r=0,e=false,i=n.length;for(let s=0;s<i;s+=1){if(n[s]===\"`\"&&s+2<i&&n[s+1]===\"`\"&&n[s+2]===\"`\"){e=!e,s+=2;continue}if(e||n[s]!==\"_\")continue;let o=s>0?n[s-1]:\"\",t=s<i-1?n[s+1]:\"\";bn(n,s,o,t)||(r+=1);}return r},Cn=n=>{let r=0,e=0,i=false;for(let s=0;s<n.length;s+=1){if(n[s]===\"`\"&&s+2<n.length&&n[s+1]===\"`\"&&n[s+2]===\"`\"){e>=3&&(r+=Math.floor(e/3)),e=0,i=!i,s+=2;continue}i||(n[s]===\"*\"?e+=1:(e>=3&&(r+=Math.floor(e/3)),e=0));}return e>=3&&(r+=Math.floor(e/3)),r},A=n=>{let r=0,e=false;for(let i=0;i<n.length;i+=1){if(n[i]===\"`\"&&i+2<n.length&&n[i+1]===\"`\"&&n[i+2]===\"`\"){e=!e,i+=2;continue}e||n[i]===\"*\"&&i+1<n.length&&n[i+1]===\"*\"&&(r+=1,i+=1);}return r},v=n=>{let r=0,e=false;for(let i=0;i<n.length;i+=1){if(n[i]===\"`\"&&i+2<n.length&&n[i+1]===\"`\"&&n[i+2]===\"`\"){e=!e,i+=2;continue}e||n[i]===\"_\"&&i+1<n.length&&n[i+1]===\"_\"&&(r+=1,i+=1);}return r},An=(n,r,e)=>{if(!r||d.test(r))return true;let s=n.substring(0,e).lastIndexOf(`\n`),o=s===-1?0:s+1,t=n.substring(o,e);return b.test(t)&&r.includes(`\n`)?true:p(n,e,\"*\")},j=n=>{let r=n.match(M);if(!r)return n;let e=r[2],i=n.lastIndexOf(r[1]);return c(n,i)||f(n,i)||An(n,e,i)?n:A(n)%2===1?e.endsWith(\"*\")?`${n}*`:`${n}**`:n},Bn=(n,r,e)=>{if(!r||d.test(r))return true;let s=n.substring(0,e).lastIndexOf(`\n`),o=s===-1?0:s+1,t=n.substring(o,e);return b.test(t)&&r.includes(`\n`)?true:p(n,e,\"_\")},Q=n=>{let r=n.match(N);if(!r){let o=n.match(G);if(o){let t=n.lastIndexOf(o[1]);if(!(c(n,t)||f(n,t))&&v(n)%2===1)return `${n}_`}return n}let e=r[2],i=n.lastIndexOf(r[1]);return c(n,i)||f(n,i)||Bn(n,e,i)?n:v(n)%2===1?`${n}__`:n},Sn=n=>{let r=false;for(let e=0;e<n.length;e+=1){if(n[e]===\"`\"&&e+2<n.length&&n[e+1]===\"`\"&&n[e+2]===\"`\"){r=!r,e+=2;continue}if(!r&&n[e]===\"*\"&&n[e-1]!==\"*\"&&n[e+1]!==\"*\"&&n[e-1]!==\"\\\\\"&&!h(n,e)){let i=e>0?n[e-1]:\"\",s=e<n.length-1?n[e+1]:\"\";if((!i||i===\" \"||i===\"\t\"||i===`\n`)&&(!s||s===\" \"||s===\"\t\"||s===`\n`)||i&&s&&g(i)&&g(s))continue;return e}}return -1},Z=n=>{if(!n.match(R))return n;let e=Sn(n);if(e===-1||c(n,e)||f(n,e))return n;let i=n.substring(e+1);return !i||d.test(i)?n:Y(n)%2===1?`${n}*`:n},q=n=>{let r=false;for(let e=0;e<n.length;e+=1){if(n[e]===\"`\"&&e+2<n.length&&n[e+1]===\"`\"&&n[e+2]===\"`\"){r=!r,e+=2;continue}if(!r&&n[e]===\"_\"&&n[e-1]!==\"_\"&&n[e+1]!==\"_\"&&n[e-1]!==\"\\\\\"&&!h(n,e)&&!m(n,e)){let i=e>0?n[e-1]:\"\",s=e<n.length-1?n[e+1]:\"\";if(i&&s&&g(i)&&g(s))continue;return e}}return -1},_n=n=>{let r=n.length;for(;r>0&&n[r-1]===`\n`;)r-=1;if(r<n.length){let e=n.slice(0,r),i=n.slice(r);return `${e}_${i}`}return `${n}_`},Pn=n=>{if(!n.endsWith(\"**\"))return null;let r=n.slice(0,-2);if(A(r)%2!==1)return null;let i=r.indexOf(\"**\"),s=q(r);return i!==-1&&s!==-1&&i<s?`${r}_**`:null},J=n=>{if(!n.match(U))return n;let e=q(n);if(e===-1)return n;let i=n.substring(e+1);if(!i||d.test(i)||c(n,e)||f(n,e))return n;if(Tn(n)%2===1){let o=Pn(n);return o!==null?o:_n(n)}return n},$n=n=>{let r=A(n),e=Y(n);return r%2===0&&e%2===0},On=(n,r,e)=>!r||d.test(r)||c(n,e)||f(n,e)?true:p(n,e,\"*\"),V=n=>{if(w.test(n))return n;let r=n.match(y);if(!r)return n;let e=r[2],i=n.lastIndexOf(r[1]);return On(n,e,i)?n:Cn(n)%2===1?$n(n)?n:`${n}***`:n};var Ln=/<[a-zA-Z/][^>]*$/,x=n=>{let r=n.match(Ln);return !r||r.index===void 0||c(n,r.index)?n:n.substring(0,r.index).trimEnd()};var En=n=>!n.match(D)||n.includes(`\n`)?null:n.endsWith(\"``\")&&!n.endsWith(\"```\")?`${n}\\``:n,Mn=n=>(n.match(/```/g)||[]).length%2===1,nn=n=>{let r=En(n);if(r!==null)return r;let e=n.match(W);if(e&&!Mn(n)){let i=e[2];if(!i||d.test(i))return n;if(L(n)%2===1)return `${n}\\``}return n};var en=(n,r)=>r>=2&&n.substring(r-2,r+1)===\"```\"||r>=1&&n.substring(r-1,r+2)===\"```\"||r<=n.length-3&&n.substring(r,r+3)===\"```\",Nn=n=>{let r=0,e=false;for(let i=0;i<n.length-1;i+=1)n[i]===\"`\"&&!en(n,i)&&(e=!e),!e&&n[i]===\"$\"&&n[i+1]===\"$\"&&(r+=1,i+=1);return r},yn=n=>{let r=0,e=false;for(let i=0;i<n.length;i+=1){if(n[i]===\"\\\\\"){i+=1;continue}if(n[i]===\"`\"&&!en(n,i)){e=!e;continue}!e&&n[i]===\"$\"&&(i+1<n.length&&n[i+1]===\"$\"?i+=1:r+=1);}return r},Rn=n=>{if(n.endsWith(\"$\")&&!n.endsWith(\"$$\"))return `${n}$`;let r=n.indexOf(\"$$\");return r!==-1&&n.indexOf(`\n`,r)!==-1&&!n.endsWith(`\n`)?`${n}\n$$`:`${n}$$`},rn=n=>Nn(n)%2===0?n:Rn(n),sn=n=>yn(n)%2===1?`${n}$`:n;var Un=(n,r,e)=>{if(n.substring(r+2).includes(\")\"))return null;let s=X(n,r);if(s===-1||c(n,s))return null;let o=s>0&&n[s-1]===\"!\",t=o?s-1:s,a=n.substring(0,t);if(o)return a;let l=n.substring(s+1,r);return e===\"text-only\"?`${a}${l}`:`${a}[${l}](streamdown:incomplete-link)`},on=(n,r)=>{for(let e=0;e<r;e++)if(n[e]===\"[\"&&!c(n,e)){if(e>0&&n[e-1]===\"!\")continue;let i=C(n,e);if(i===-1)return e;if(i+1<n.length&&n[i+1]===\"(\"){let s=n.indexOf(\")\",i+2);s!==-1&&(e=s);}}return r},Wn=(n,r,e)=>{let i=r>0&&n[r-1]===\"!\",s=i?r-1:r;if(!n.substring(r+1).includes(\"]\")){let a=n.substring(0,s);if(i)return a;if(e===\"text-only\"){let l=on(n,r);return n.substring(0,l)+n.substring(l+1)}return `${n}](streamdown:incomplete-link)`}if(C(n,r)===-1){let a=n.substring(0,s);if(i)return a;if(e===\"text-only\"){let l=on(n,r);return n.substring(0,l)+n.substring(l+1)}return `${n}](streamdown:incomplete-link)`}return null},B=(n,r=\"protocol\")=>{let e=n.lastIndexOf(\"](\");if(e!==-1&&!c(n,e)){let i=Un(n,e,r);if(i!==null)return i}for(let i=n.length-1;i>=0;i-=1)if(n[i]===\"[\"&&!c(n,i)){let s=Wn(n,i,r);if(s!==null)return s}return n};var Kn=/^-{1,2}$/,Hn=/^[\\s]*-{1,2}[\\s]+$/,Dn=/^={1,2}$/,wn=/^[\\s]*={1,2}[\\s]+$/,ln=n=>{if(!n||typeof n!=\"string\")return n;let r=n.lastIndexOf(`\n`);if(r===-1)return n;let e=n.substring(r+1),i=n.substring(0,r),s=e.trim();if(Kn.test(s)&&!e.match(Hn)){let t=i.split(`\n`).at(-1);if(t&&t.trim().length>0)return `${n}\\u200B`}if(Dn.test(s)&&!e.match(wn)){let t=i.split(`\n`).at(-1);if(t&&t.trim().length>0)return `${n}\\u200B`}return n};var Gn=new RegExp(\"(?<=[\\\\p{L}\\\\p{N}_])~(?!~)(?=[\\\\p{L}\\\\p{N}_])\",\"gu\"),tn=n=>!n||typeof n!=\"string\"||!n.includes(\"~\")?n:n.replace(Gn,(r,e)=>c(n,e)?r:\"\\\\~\");var an=n=>{var e,i;let r=n.match(K);if(r){let s=r[2];if(!s||d.test(s))return n;let o=n.lastIndexOf(r[1]);if(c(n,o)||f(n,o))return n;if(((e=n.match(T))==null?void 0:e.length)%2===1)return `${n}~~`}else {let s=n.match(F);if(s){let o=n.lastIndexOf(s[0].slice(0,2));if(c(n,o)||f(n,o))return n;if(((i=n.match(T))==null?void 0:i.length)%2===1)return `${n}~`}}return n};var S=n=>n!==false,Fn=n=>n===true,u={SINGLE_TILDE:0,COMPARISON_OPERATORS:5,HTML_TAGS:10,SETEXT_HEADINGS:15,LINKS:20,BOLD_ITALIC:30,BOLD:35,ITALIC_DOUBLE_UNDERSCORE:40,ITALIC_SINGLE_ASTERISK:41,ITALIC_SINGLE_UNDERSCORE:42,INLINE_CODE:50,STRIKETHROUGH:60,KATEX:70,INLINE_KATEX:75,DEFAULT:100},Xn=[{handler:{name:\"singleTilde\",handle:tn,priority:u.SINGLE_TILDE},optionKey:\"singleTilde\"},{handler:{name:\"comparisonOperators\",handle:E,priority:u.COMPARISON_OPERATORS},optionKey:\"comparisonOperators\"},{handler:{name:\"htmlTags\",handle:x,priority:u.HTML_TAGS},optionKey:\"htmlTags\"},{handler:{name:\"setextHeadings\",handle:ln,priority:u.SETEXT_HEADINGS},optionKey:\"setextHeadings\"},{handler:{name:\"links\",handle:B,priority:u.LINKS},optionKey:\"links\",earlyReturn:n=>n.endsWith(\"](streamdown:incomplete-link)\")},{handler:{name:\"boldItalic\",handle:V,priority:u.BOLD_ITALIC},optionKey:\"boldItalic\"},{handler:{name:\"bold\",handle:j,priority:u.BOLD},optionKey:\"bold\"},{handler:{name:\"italicDoubleUnderscore\",handle:Q,priority:u.ITALIC_DOUBLE_UNDERSCORE},optionKey:\"italic\"},{handler:{name:\"italicSingleAsterisk\",handle:Z,priority:u.ITALIC_SINGLE_ASTERISK},optionKey:\"italic\"},{handler:{name:\"italicSingleUnderscore\",handle:J,priority:u.ITALIC_SINGLE_UNDERSCORE},optionKey:\"italic\"},{handler:{name:\"inlineCode\",handle:nn,priority:u.INLINE_CODE},optionKey:\"inlineCode\"},{handler:{name:\"strikethrough\",handle:an,priority:u.STRIKETHROUGH},optionKey:\"strikethrough\"},{handler:{name:\"katex\",handle:rn,priority:u.KATEX},optionKey:\"katex\"},{handler:{name:\"inlineKatex\",handle:sn,priority:u.INLINE_KATEX},optionKey:\"inlineKatex\"}],zn=n=>{var e;let r=(e=n==null?void 0:n.linkMode)!=null?e:\"protocol\";return Xn.filter(({handler:i,optionKey:s})=>i.name===\"links\"?S(n==null?void 0:n.links)||S(n==null?void 0:n.images):i.name===\"inlineKatex\"?Fn(n==null?void 0:n.inlineKatex):S(n==null?void 0:n[s])).map(({handler:i,earlyReturn:s})=>i.name===\"links\"?{handler:k(I({},i),{handle:o=>B(o,r)}),earlyReturn:r===\"protocol\"?s:void 0}:{handler:i,earlyReturn:s})},vn=(n,r)=>{var t;if(!n||typeof n!=\"string\")return n;let e=n.endsWith(\" \")&&!n.endsWith(\" \")?n.slice(0,-1):n,i=zn(r),s=((t=r==null?void 0:r.handlers)!=null?t:[]).map(a=>{var l;return {handler:k(I({},a),{priority:(l=a.priority)!=null?l:u.DEFAULT}),earlyReturn:void 0}}),o=[...i,...s].sort((a,l)=>{var _,P;return ((_=a.handler.priority)!=null?_:0)-((P=l.handler.priority)!=null?P:0)});for(let{handler:a,earlyReturn:l}of o)if(e=a.handle(e),l!=null&&l(e))return e;return e},$e=vn;export{$e as default,pn as isWithinCodeBlock,m as isWithinLinkOrImageUrl,h as isWithinMathBlock,g as isWordChar};","/**\n * marked v18.0.3 - a markdown parser\n * Copyright (c) 2018-2026, MarkedJS. (MIT License)\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction z(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T=z();function G(l){T=l}var _={exec:()=>null};function d(l,e=\"\"){let t=typeof l==\"string\"?l:l.source,n={replace:(s,r)=>{let i=typeof r==\"string\"?r:r.source;return i=i.replace(m.caret,\"$1\"),t=t.replace(s,i),n},getRegex:()=>new RegExp(t,e)};return n}var Re=((l=\"\")=>{try{return!!new RegExp(\"(?<=1)(?<!1)\"+l)}catch{return!1}})(),m={codeRemoveIndent:/^(?: {1,4}| {0,3}\\t)/gm,outputLinkReplace:/\\\\([\\[\\]])/g,indentCodeCompensation:/^(\\s+)(?:```)/,beginningSpace:/^\\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\\n/g,tabCharGlobal:/\\t/g,multipleSpaceGlobal:/\\s+/g,blankLine:/^[ \\t]*$/,doubleBlankLine:/\\n[ \\t]*\\n[ \\t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \\t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\\[[ xX]\\] +\\S/,listReplaceTask:/^\\[[ xX]\\] +/,listTaskCheckbox:/\\[[ xX]\\]/,anyLine:/\\n.*\\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\\||\\| *$/g,tableRowBlankLine:/\\n[ \\t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\\s|>)/i,endPreScriptTag:/^<\\/(pre|code|kbd|script)(\\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,unicodeAlphaNumeric:/[\\p{L}\\p{N}]/u,escapeTest:/[&<>\"']/,escapeReplace:/[&<>\"']/g,escapeTestNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,escapeReplaceNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,caret:/(^|[^\\[])\\^/g,percentDecode:/%25/g,findPipe:/\\|/g,splitPipe:/ \\|/,slashPipe:/\\\\\\|/g,carriageReturn:/\\r\\n|\\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\\S*/,endingNewline:/\\n$/,listItemRegex:l=>new RegExp(`^( {0,3}${l})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),nextBulletRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),hrRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),fencesBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:\\`\\`\\`|~~~)`),headingBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}#`),htmlBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}<(?:[a-z].*>|!--)`,\"i\"),blockquoteBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}>`)},Te=/^(?:[ \\t]*(?:\\n|$))+/,Oe=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,we=/^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,I=/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,ye=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,Q=/ {0,3}(?:[*+-]|\\d{1,9}[.)])/,ie=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,oe=d(ie).replace(/bull/g,Q).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g,\"\").getRegex(),Pe=d(ie).replace(/bull/g,Q).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/table/g,/ {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),j=/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,Se=/^[^\\n]+/,F=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/,$e=d(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",F).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),Le=d(/^(bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g,Q).getRegex(),v=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",U=/<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,_e=d(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\"i\").replace(\"comment\",U).replace(\"tag\",v).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),ae=d(j).replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),Me=d(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",ae).getRegex(),K={blockquote:Me,code:Oe,def:$e,fences:we,heading:ye,hr:I,html:_e,lheading:oe,list:Le,newline:Te,paragraph:ae,table:_,text:Se},re=d(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),ze={...K,lheading:Pe,table:re,paragraph:d(j).replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"table\",re).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex()},Ee={...K,html:d(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",U).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:_,lheading:/^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,paragraph:d(j).replace(\"hr\",I).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",oe).replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").replace(\"|tag\",\"\").getRegex()},Ae=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,Ce=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,le=/^( {2,}|\\\\)\\n(?!\\s*$)/,Ie=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,E=/[\\p{P}\\p{S}]/u,H=/[\\s\\p{P}\\p{S}]/u,W=/[^\\s\\p{P}\\p{S}]/u,Be=d(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,H).getRegex(),ue=/(?!~)[\\p{P}\\p{S}]/u,De=/(?!~)[\\s\\p{P}\\p{S}]/u,qe=/(?:[^\\s\\p{P}\\p{S}]|~)/u,ve=d(/link|precode-code|html/,\"g\").replace(\"link\",/\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/).replace(\"precode-\",Re?\"(?<!`)()\":\"(^^|[^`])\").replace(\"code\",/(?<b>`+)[^`]+\\k<b>(?!`)/).replace(\"html\",/<(?! )[^<>]*?>/).getRegex(),pe=/^(?:\\*+(?:((?!\\*)punct)|([^\\s*]))?)|^_+(?:((?!_)punct)|([^\\s_]))?/,He=d(pe,\"u\").replace(/punct/g,E).getRegex(),Ze=d(pe,\"u\").replace(/punct/g,ue).getRegex(),ce=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",Ge=d(ce,\"gu\").replace(/notPunctSpace/g,W).replace(/punctSpace/g,H).replace(/punct/g,E).getRegex(),Ne=d(ce,\"gu\").replace(/notPunctSpace/g,qe).replace(/punctSpace/g,De).replace(/punct/g,ue).getRegex(),Qe=d(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,W).replace(/punctSpace/g,H).replace(/punct/g,E).getRegex(),je=d(/^~~?(?:((?!~)punct)|[^\\s~])/,\"u\").replace(/punct/g,E).getRegex(),Fe=\"^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)\",Ue=d(Fe,\"gu\").replace(/notPunctSpace/g,W).replace(/punctSpace/g,H).replace(/punct/g,E).getRegex(),Ke=d(/\\\\(punct)/,\"gu\").replace(/punct/g,E).getRegex(),We=d(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Xe=d(U).replace(\"(?:-->|$)\",\"-->\").getRegex(),Je=d(\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\",Xe).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),q=/(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\])|[^\\[\\]\\\\`])*?/,Ve=d(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]+(?:\\n[ \\t]*)?|\\n[ \\t]*)(title))?\\s*\\)/).replace(\"label\",q).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),he=d(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",q).replace(\"ref\",F).getRegex(),ke=d(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",F).getRegex(),Ye=d(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",he).replace(\"nolink\",ke).getRegex(),se=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,X={_backpedal:_,anyPunctuation:Ke,autolink:We,blockSkip:ve,br:le,code:Ce,del:_,delLDelim:_,delRDelim:_,emStrongLDelim:He,emStrongRDelimAst:Ge,emStrongRDelimUnd:Qe,escape:Ae,link:Ve,nolink:ke,punctuation:Be,reflink:he,reflinkSearch:Ye,tag:Je,text:Ie,url:_},et={...X,link:d(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",q).getRegex(),reflink:d(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",q).getRegex()},N={...X,emStrongRDelimAst:Ne,emStrongLDelim:Ze,delLDelim:je,delRDelim:Ue,url:d(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/).replace(\"protocol\",se).replace(\"email\",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,text:d(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/).replace(\"protocol\",se).getRegex()},tt={...N,br:d(le).replace(\"{2,}\",\"*\").getRegex(),text:d(N.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},B={normal:K,gfm:ze,pedantic:Ee},A={normal:X,gfm:N,breaks:tt,pedantic:et};var nt={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},de=l=>nt[l];function O(l,e){if(e){if(m.escapeTest.test(l))return l.replace(m.escapeReplace,de)}else if(m.escapeTestNoEncode.test(l))return l.replace(m.escapeReplaceNoEncode,de);return l}function J(l){try{l=encodeURI(l).replace(m.percentDecode,\"%\")}catch{return null}return l}function V(l,e){let t=l.replace(m.findPipe,(r,i,o)=>{let u=!1,a=i;for(;--a>=0&&o[a]===\"\\\\\";)u=!u;return u?\"|\":\" |\"}),n=t.split(m.splitPipe),s=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push(\"\");for(;s<n.length;s++)n[s]=n[s].trim().replace(m.slashPipe,\"|\");return n}function $(l,e,t){let n=l.length;if(n===0)return\"\";let s=0;for(;s<n;){let r=l.charAt(n-s-1);if(r===e&&!t)s++;else if(r!==e&&t)s++;else break}return l.slice(0,n-s)}function Y(l){let e=l.split(`\n`),t=e.length-1;for(;t>=0&&m.blankLine.test(e[t]);)t--;return e.length-t<=2?l:e.slice(0,t+1).join(`\n`)}function ge(l,e){if(l.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n<l.length;n++)if(l[n]===\"\\\\\")n++;else if(l[n]===e[0])t++;else if(l[n]===e[1]&&(t--,t<0))return n;return t>0?-2:-1}function fe(l,e=0){let t=e,n=\"\";for(let s of l)if(s===\"\t\"){let r=4-t%4;n+=\" \".repeat(r),t+=r}else n+=s,t++;return n}function me(l,e,t,n,s){let r=e.href,i=e.title||null,o=l[1].replace(s.other.outputLinkReplace,\"$1\");n.state.inLink=!0;let u={type:l[0].charAt(0)===\"!\"?\"image\":\"link\",raw:t,href:r,title:i,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,u}function rt(l,e,t){let n=l.match(t.other.indentCodeCompensation);if(n===null)return e;let s=n[1];return e.split(`\n`).map(r=>{let i=r.match(t.other.beginningSpace);if(i===null)return r;let[o]=i;return o.length>=s.length?r.slice(s.length):r}).join(`\n`)}var w=class{options;rules;lexer;constructor(e){this.options=e||T}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:\"space\",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:Y(t[0]),s=n.replace(this.rules.other.codeRemoveIndent,\"\");return{type:\"code\",raw:n,codeBlockStyle:\"indented\",text:s}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],s=rt(n,t[3]||\"\",this.rules);return{type:\"code\",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,\"$1\"):t[2],text:s}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let s=$(n,\"#\");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(n=s.trim())}return{type:\"heading\",raw:$(t[0],`\n`),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:\"hr\",raw:$(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=$(t[0],`\n`).split(`\n`),s=\"\",r=\"\",i=[];for(;n.length>0;){let o=!1,u=[],a;for(a=0;a<n.length;a++)if(this.rules.other.blockquoteStart.test(n[a]))u.push(n[a]),o=!0;else if(!o)u.push(n[a]);else break;n=n.slice(a);let c=u.join(`\n`),p=c.replace(this.rules.other.blockquoteSetextReplace,`\n $1`).replace(this.rules.other.blockquoteSetextReplace2,\"\");s=s?`${s}\n${c}`:c,r=r?`${r}\n${p}`:p;let k=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(p,i,!0),this.lexer.state.top=k,n.length===0)break;let h=i.at(-1);if(h?.type===\"code\")break;if(h?.type===\"blockquote\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.blockquote(f);i[i.length-1]=S,s=s.substring(0,s.length-R.raw.length)+S.raw,r=r.substring(0,r.length-R.text.length)+S.text;break}else if(h?.type===\"list\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.list(f);i[i.length-1]=S,s=s.substring(0,s.length-h.raw.length)+S.raw,r=r.substring(0,r.length-R.raw.length)+S.raw,n=f.substring(i.at(-1).raw.length).split(`\n`);continue}}return{type:\"blockquote\",raw:s,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),s=n.length>1,r={type:\"list\",raw:\"\",ordered:s,start:s?+n.slice(0,-1):\"\",loose:!1,items:[]};n=s?`\\\\d{1,9}\\\\${n.slice(-1)}`:`\\\\${n}`,this.options.pedantic&&(n=s?n:\"[*+-]\");let i=this.rules.other.listItemRegex(n),o=!1;for(;e;){let a=!1,c=\"\",p=\"\";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;c=t[0],e=e.substring(c.length);let k=fe(t[2].split(`\n`,1)[0],t[1].length),h=e.split(`\n`,1)[0],R=!k.trim(),f=0;if(this.options.pedantic?(f=2,p=k.trimStart()):R?f=t[1].length+1:(f=k.search(this.rules.other.nonSpaceChar),f=f>4?1:f,p=k.slice(f),f+=t[1].length),R&&this.rules.other.blankLine.test(h)&&(c+=h+`\n`,e=e.substring(h.length+1),a=!0),!a){let S=this.rules.other.nextBulletRegex(f),ee=this.rules.other.hrRegex(f),te=this.rules.other.fencesBeginRegex(f),ne=this.rules.other.headingBeginRegex(f),xe=this.rules.other.htmlBeginRegex(f),be=this.rules.other.blockquoteBeginRegex(f);for(;e;){let Z=e.split(`\n`,1)[0],C;if(h=Z,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting,\" \"),C=h):C=h.replace(this.rules.other.tabCharGlobal,\" \"),te.test(h)||ne.test(h)||xe.test(h)||be.test(h)||S.test(h)||ee.test(h))break;if(C.search(this.rules.other.nonSpaceChar)>=f||!h.trim())p+=`\n`+C.slice(f);else{if(R||k.replace(this.rules.other.tabCharGlobal,\" \").search(this.rules.other.nonSpaceChar)>=4||te.test(k)||ne.test(k)||ee.test(k))break;p+=`\n`+h}R=!h.trim(),c+=Z+`\n`,e=e.substring(Z.length+1),k=C.slice(f)}}r.loose||(o?r.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(o=!0)),r.items.push({type:\"list_item\",raw:c,task:!!this.options.gfm&&this.rules.other.listIsTask.test(p),loose:!1,text:p,tokens:[]}),r.raw+=c}let u=r.items.at(-1);if(u)u.raw=u.raw.trimEnd(),u.text=u.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let a of r.items){this.lexer.state.top=!1,a.tokens=this.lexer.blockTokens(a.text,[]);let c=a.tokens[0];if(a.task&&(c?.type===\"text\"||c?.type===\"paragraph\")){a.text=a.text.replace(this.rules.other.listReplaceTask,\"\"),c.raw=c.raw.replace(this.rules.other.listReplaceTask,\"\"),c.text=c.text.replace(this.rules.other.listReplaceTask,\"\");for(let k=this.lexer.inlineQueue.length-1;k>=0;k--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[k].src)){this.lexer.inlineQueue[k].src=this.lexer.inlineQueue[k].src.replace(this.rules.other.listReplaceTask,\"\");break}let p=this.rules.other.listTaskCheckbox.exec(a.raw);if(p){let k={type:\"checkbox\",raw:p[0]+\" \",checked:p[0]!==\"[ ]\"};a.checked=k.checked,r.loose?a.tokens[0]&&[\"paragraph\",\"text\"].includes(a.tokens[0].type)&&\"tokens\"in a.tokens[0]&&a.tokens[0].tokens?(a.tokens[0].raw=k.raw+a.tokens[0].raw,a.tokens[0].text=k.raw+a.tokens[0].text,a.tokens[0].tokens.unshift(k)):a.tokens.unshift({type:\"paragraph\",raw:k.raw,text:k.raw,tokens:[k]}):a.tokens.unshift(k)}}else a.task&&(a.task=!1);if(!r.loose){let p=a.tokens.filter(h=>h.type===\"space\"),k=p.length>0&&p.some(h=>this.rules.other.anyLine.test(h.raw));r.loose=k}}if(r.loose)for(let a of r.items){a.loose=!0;for(let c of a.tokens)c.type===\"text\"&&(c.type=\"paragraph\")}return r}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=Y(t[0]);return{type:\"html\",block:!0,raw:n,pre:t[1]===\"pre\"||t[1]===\"script\"||t[1]===\"style\",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,\" \"),s=t[2]?t[2].replace(this.rules.other.hrefBrackets,\"$1\").replace(this.rules.inline.anyPunctuation,\"$1\"):\"\",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,\"$1\"):t[3];return{type:\"def\",tag:n,raw:$(t[0],`\n`),href:s,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=V(t[1]),s=t[2].replace(this.rules.other.tableAlignChars,\"\").split(\"|\"),r=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,\"\").split(`\n`):[],i={type:\"table\",raw:$(t[0],`\n`),header:[],align:[],rows:[]};if(n.length===s.length){for(let o of s)this.rules.other.tableAlignRight.test(o)?i.align.push(\"right\"):this.rules.other.tableAlignCenter.test(o)?i.align.push(\"center\"):this.rules.other.tableAlignLeft.test(o)?i.align.push(\"left\"):i.align.push(null);for(let o=0;o<n.length;o++)i.header.push({text:n[o],tokens:this.lexer.inline(n[o]),header:!0,align:i.align[o]});for(let o of r)i.rows.push(V(o,i.header.length).map((u,a)=>({text:u,tokens:this.lexer.inline(u),header:!1,align:i.align[a]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:\"heading\",raw:$(t[0],`\n`),depth:t[2].charAt(0)===\"=\"?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`\n`?t[1].slice(0,-1):t[1];return{type:\"paragraph\",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:\"text\",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:\"escape\",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:\"html\",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let i=$(n.slice(0,-1),\"\\\\\");if((n.length-i.length)%2===0)return}else{let i=ge(t[2],\"()\");if(i===-2)return;if(i>-1){let u=(t[0].indexOf(\"!\")===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,u).trim(),t[3]=\"\"}}let s=t[2],r=\"\";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(s);i&&(s=i[1],r=i[3])}else r=t[3]?t[3].slice(1,-1):\"\";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?s=s.slice(1):s=s.slice(1,-1)),me(t,{href:s&&s.replace(this.rules.inline.anyPunctuation,\"$1\"),title:r&&r.replace(this.rules.inline.anyPunctuation,\"$1\")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let s=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),r=t[s.toLowerCase()];if(!r){let i=n[0].charAt(0);return{type:\"text\",raw:i,text:i}}return me(n,r,n[0],this.lexer,this.rules)}}emStrong(e,t,n=\"\"){let s=this.rules.inline.emStrongLDelim.exec(e);if(!s||!s[1]&&!s[2]&&!s[3]&&!s[4]||s[4]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(s[1]||s[3]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let i=[...s[0]].length-1,o,u,a=i,c=0,p=s[0][0]===\"*\"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(p.lastIndex=0,t=t.slice(-1*e.length+i);(s=p.exec(t))!==null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o)continue;if(u=[...o].length,s[3]||s[4]){a+=u;continue}else if((s[5]||s[6])&&i%3&&!((i+u)%3)){c+=u;continue}if(a-=u,a>0)continue;u=Math.min(u,u+a+c);let k=[...s[0]][0].length,h=e.slice(0,i+s.index+k+u);if(Math.min(i,u)%2){let f=h.slice(1,-1);return{type:\"em\",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let R=h.slice(2,-2);return{type:\"strong\",raw:h,text:R,tokens:this.lexer.inlineTokens(R)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal,\" \"),s=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return s&&r&&(n=n.substring(1,n.length-1)),{type:\"codespan\",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:\"br\",raw:t[0]}}del(e,t,n=\"\"){let s=this.rules.inline.delLDelim.exec(e);if(!s)return;if(!(s[1]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let i=[...s[0]].length-1,o,u,a=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+i);(s=c.exec(t))!==null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o||(u=[...o].length,u!==i))continue;if(s[3]||s[4]){a+=u;continue}if(a-=u,a>0)continue;u=Math.min(u,u+a);let p=[...s[0]][0].length,k=e.slice(0,i+s.index+p+u),h=k.slice(i,-i);return{type:\"del\",raw:k,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,s;return t[2]===\"@\"?(n=t[1],s=\"mailto:\"+n):(n=t[1],s=n),{type:\"link\",raw:t[0],text:n,href:s,tokens:[{type:\"text\",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,s;if(t[2]===\"@\")n=t[0],s=\"mailto:\"+n;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??\"\";while(r!==t[0]);n=t[0],t[1]===\"www.\"?s=\"http://\"+t[0]:s=t[0]}return{type:\"link\",raw:t[0],text:n,href:s,tokens:[{type:\"text\",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:\"text\",raw:t[0],text:t[0],escaped:n}}}};var x=class l{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||T,this.options.tokenizer=this.options.tokenizer||new w,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:m,block:B.normal,inline:A.normal};this.options.pedantic?(t.block=B.pedantic,t.inline=A.pedantic):this.options.gfm&&(t.block=B.gfm,this.options.breaks?t.inline=A.breaks:t.inline=A.gfm),this.tokenizer.rules=t}static get rules(){return{block:B,inline:A}}static lex(e,t){return new l(t).lex(e)}static lexInline(e,t){return new l(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,`\n`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let n=this.inlineQueue[t];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(m.tabCharGlobal,\" \").replace(m.spaceLine,\"\"));let s=1/0;for(;e;){if(e.length<s)s=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let r;if(this.options.extensions?.block?.some(o=>(r=o.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let o=t.at(-1);r.raw.length===1&&o!==void 0?o.raw+=`\n`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"paragraph\"||o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.at(-1).src=o.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"paragraph\"||o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.raw,this.inlineQueue.at(-1).src=o.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let o=1/0,u=e.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},u),typeof a==\"number\"&&a>=0&&(o=Math.min(o,a))}),o<1/0&&o>=0&&(i=e.substring(0,o+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let o=t.at(-1);n&&o?.type===\"paragraph\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):t.push(r);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e,s=null;if(this.tokens.links){let a=Object.keys(this.tokens.links);if(a.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(n))!==null;)a.includes(s[0].slice(s[0].lastIndexOf(\"[\")+1,-1))&&(n=n.slice(0,s.index)+\"[\"+\"a\".repeat(s[0].length-2)+\"]\"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.anyPunctuation.exec(n))!==null;)n=n.slice(0,s.index)+\"++\"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let r;for(;(s=this.tokenizer.rules.inline.blockSkip.exec(n))!==null;)r=s[2]?s[2].length:0,n=n.slice(0,s.index+r)+\"[\"+\"a\".repeat(s[0].length-r-2)+\"]\"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let i=!1,o=\"\",u=1/0;for(;e;){if(e.length<u)u=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}i||(o=\"\"),i=!1;let a;if(this.options.extensions?.inline?.some(p=>(a=p.call({lexer:this},e,t))?(e=e.substring(a.raw.length),t.push(a),!0):!1))continue;if(a=this.tokenizer.escape(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.tag(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.link(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(a.raw.length);let p=t.at(-1);a.type===\"text\"&&p?.type===\"text\"?(p.raw+=a.raw,p.text+=a.text):t.push(a);continue}if(a=this.tokenizer.emStrong(e,n,o)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.codespan(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.br(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.del(e,n,o)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.autolink(e)){e=e.substring(a.raw.length),t.push(a);continue}if(!this.state.inLink&&(a=this.tokenizer.url(e))){e=e.substring(a.raw.length),t.push(a);continue}let c=e;if(this.options.extensions?.startInline){let p=1/0,k=e.slice(1),h;this.options.extensions.startInline.forEach(R=>{h=R.call({lexer:this},k),typeof h==\"number\"&&h>=0&&(p=Math.min(p,h))}),p<1/0&&p>=0&&(c=e.substring(0,p+1))}if(a=this.tokenizer.inlineText(c)){e=e.substring(a.raw.length),a.raw.slice(-1)!==\"_\"&&(o=a.raw.slice(-1)),i=!0;let p=t.at(-1);p?.type===\"text\"?(p.raw+=a.raw,p.text+=a.text):t.push(a);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=\"Infinite loop on byte: \"+e;if(this.options.silent)console.error(t);else throw new Error(t)}};var y=class{options;parser;constructor(e){this.options=e||T}space(e){return\"\"}code({text:e,lang:t,escaped:n}){let s=(t||\"\").match(m.notSpaceStart)?.[0],r=e.replace(m.endingNewline,\"\")+`\n`;return s?'<pre><code class=\"language-'+O(s)+'\">'+(n?r:O(r,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?r:O(r,!0))+`</code></pre>\n`}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return\"\"}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>\n`}list(e){let t=e.ordered,n=e.start,s=\"\";for(let o=0;o<e.items.length;o++){let u=e.items[o];s+=this.listitem(u)}let r=t?\"ol\":\"ul\",i=t&&n!==1?' start=\"'+n+'\"':\"\";return\"<\"+r+i+`>\n`+s+\"</\"+r+`>\n`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>\n`}checkbox({checked:e}){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=\"\",n=\"\";for(let r=0;r<e.header.length;r++)n+=this.tablecell(e.header[r]);t+=this.tablerow({text:n});let s=\"\";for(let r=0;r<e.rows.length;r++){let i=e.rows[r];n=\"\";for(let o=0;o<i.length;o++)n+=this.tablecell(i[o]);s+=this.tablerow({text:n})}return s&&(s=`<tbody>${s}</tbody>`),`<table>\n<thead>\n`+t+`</thead>\n`+s+`</table>\n`}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?\"th\":\"td\";return(e.align?`<${n} align=\"${e.align}\">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${O(e,!0)}</code>`}br(e){return\"<br>\"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let s=this.parser.parseInline(n),r=J(e);if(r===null)return s;e=r;let i='<a href=\"'+e+'\"';return t&&(i+=' title=\"'+O(t)+'\"'),i+=\">\"+s+\"</a>\",i}image({href:e,title:t,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));let r=J(e);if(r===null)return O(n);e=r;let i=`<img src=\"${e}\" alt=\"${O(n)}\"`;return t&&(i+=` title=\"${O(t)}\"`),i+=\">\",i}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:O(e.text)}};var L=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return\"\"+e}image({text:e}){return\"\"+e}br(){return\"\"}checkbox({raw:e}){return e}};var b=class l{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new y,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new L}static parse(e,t){return new l(t).parse(e)}static parseInline(e,t){return new l(t).parseInline(e)}parse(e){this.renderer.parser=this;let t=\"\";for(let n=0;n<e.length;n++){let s=e[n];if(this.options.extensions?.renderers?.[s.type]){let i=s,o=this.options.extensions.renderers[i.type].call({parser:this},i);if(o!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"html\",\"def\",\"paragraph\",\"text\"].includes(i.type)){t+=o||\"\";continue}}let r=s;switch(r.type){case\"space\":{t+=this.renderer.space(r);break}case\"hr\":{t+=this.renderer.hr(r);break}case\"heading\":{t+=this.renderer.heading(r);break}case\"code\":{t+=this.renderer.code(r);break}case\"table\":{t+=this.renderer.table(r);break}case\"blockquote\":{t+=this.renderer.blockquote(r);break}case\"list\":{t+=this.renderer.list(r);break}case\"checkbox\":{t+=this.renderer.checkbox(r);break}case\"html\":{t+=this.renderer.html(r);break}case\"def\":{t+=this.renderer.def(r);break}case\"paragraph\":{t+=this.renderer.paragraph(r);break}case\"text\":{t+=this.renderer.text(r);break}default:{let i='Token with \"'+r.type+'\" type was not found.';if(this.options.silent)return console.error(i),\"\";throw new Error(i)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=\"\";for(let s=0;s<e.length;s++){let r=e[s];if(this.options.extensions?.renderers?.[r.type]){let o=this.options.extensions.renderers[r.type].call({parser:this},r);if(o!==!1||![\"escape\",\"html\",\"link\",\"image\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(r.type)){n+=o||\"\";continue}}let i=r;switch(i.type){case\"escape\":{n+=t.text(i);break}case\"html\":{n+=t.html(i);break}case\"link\":{n+=t.link(i);break}case\"image\":{n+=t.image(i);break}case\"checkbox\":{n+=t.checkbox(i);break}case\"strong\":{n+=t.strong(i);break}case\"em\":{n+=t.em(i);break}case\"codespan\":{n+=t.codespan(i);break}case\"br\":{n+=t.br(i);break}case\"del\":{n+=t.del(i);break}case\"text\":{n+=t.text(i);break}default:{let o='Token with \"'+i.type+'\" type was not found.';if(this.options.silent)return console.error(o),\"\";throw new Error(o)}}}return n}};var P=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\",\"emStrongMask\"]);static passThroughHooksRespectAsync=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?x.lex:x.lexInline}provideParser(e=this.block){return e?b.parse:b.parseInline}};var D=class{defaults=z();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=y;TextRenderer=L;Lexer=x;Tokenizer=w;Hooks=P;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let s of e)switch(n=n.concat(t.call(this,s)),s.type){case\"table\":{let r=s;for(let i of r.header)n=n.concat(this.walkTokens(i.tokens,t));for(let i of r.rows)for(let o of i)n=n.concat(this.walkTokens(o.tokens,t));break}case\"list\":{let r=s;n=n.concat(this.walkTokens(r.items,t));break}default:{let r=s;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(i=>{let o=r[i].flat(1/0);n=n.concat(this.walkTokens(o,t))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let s={...n};if(s.async=this.defaults.async||s.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error(\"extension name required\");if(\"renderer\"in r){let i=t.renderers[r.name];i?t.renderers[r.name]=function(...o){let u=r.renderer.apply(this,o);return u===!1&&(u=i.apply(this,o)),u}:t.renderers[r.name]=r.renderer}if(\"tokenizer\"in r){if(!r.level||r.level!==\"block\"&&r.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");let i=t[r.level];i?i.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level===\"block\"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level===\"inline\"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}\"childTokens\"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),s.extensions=t),n.renderer){let r=this.defaults.renderer||new y(this.defaults);for(let i in n.renderer){if(!(i in r))throw new Error(`renderer '${i}' does not exist`);if([\"options\",\"parser\"].includes(i))continue;let o=i,u=n.renderer[o],a=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p||\"\"}}s.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new w(this.defaults);for(let i in n.tokenizer){if(!(i in r))throw new Error(`tokenizer '${i}' does not exist`);if([\"options\",\"rules\",\"lexer\"].includes(i))continue;let o=i,u=n.tokenizer[o],a=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p}}s.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new P;for(let i in n.hooks){if(!(i in r))throw new Error(`hook '${i}' does not exist`);if([\"options\",\"block\"].includes(i))continue;let o=i,u=n.hooks[o],a=r[o];P.passThroughHooks.has(i)?r[o]=c=>{if(this.defaults.async&&P.passThroughHooksRespectAsync.has(i))return(async()=>{let k=await u.call(r,c);return a.call(r,k)})();let p=u.call(r,c);return a.call(r,p)}:r[o]=(...c)=>{if(this.defaults.async)return(async()=>{let k=await u.apply(r,c);return k===!1&&(k=await a.apply(r,c)),k})();let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p}}s.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,i=n.walkTokens;s.walkTokens=function(o){let u=[];return u.push(i.call(this,o)),r&&(u=u.concat(r.call(this,o))),u}}this.defaults={...this.defaults,...s}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,s)=>{let r={...s},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));if(typeof n>\"u\"||n===null)return o(new Error(\"marked(): input parameter is undefined or null\"));if(typeof n!=\"string\")return o(new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(n)+\", string expected\"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let u=i.hooks?await i.hooks.preprocess(n):n,c=await(i.hooks?await i.hooks.provideLexer(e):e?x.lex:x.lexInline)(u,i),p=i.hooks?await i.hooks.processAllTokens(c):c;i.walkTokens&&await Promise.all(this.walkTokens(p,i.walkTokens));let h=await(i.hooks?await i.hooks.provideParser(e):e?b.parse:b.parseInline)(p,i);return i.hooks?await i.hooks.postprocess(h):h})().catch(o);try{i.hooks&&(n=i.hooks.preprocess(n));let a=(i.hooks?i.hooks.provideLexer(e):e?x.lex:x.lexInline)(n,i);i.hooks&&(a=i.hooks.processAllTokens(a)),i.walkTokens&&this.walkTokens(a,i.walkTokens);let p=(i.hooks?i.hooks.provideParser(e):e?b.parse:b.parseInline)(a,i);return i.hooks&&(p=i.hooks.postprocess(p)),p}catch(u){return o(u)}}}onError(e,t){return n=>{if(n.message+=`\nPlease report this to https://github.com/markedjs/marked.`,e){let s=\"<p>An error occurred:</p><pre>\"+O(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(s):s}if(t)return Promise.reject(n);throw n}}};var M=new D;function g(l,e){return M.parse(l,e)}g.options=g.setOptions=function(l){return M.setOptions(l),g.defaults=M.defaults,G(g.defaults),g};g.getDefaults=z;g.defaults=T;g.use=function(...l){return M.use(...l),g.defaults=M.defaults,G(g.defaults),g};g.walkTokens=function(l,e){return M.walkTokens(l,e)};g.parseInline=M.parseInline;g.Parser=b;g.parser=b.parse;g.Renderer=y;g.TextRenderer=L;g.Lexer=x;g.lexer=x.lex;g.Tokenizer=w;g.Hooks=P;g.parse=g;var jt=g.options,Ft=g.setOptions,Ut=g.use,Kt=g.walkTokens,Wt=g.parseInline,Xt=g,Jt=b.parse,Vt=x.lex;export{P as Hooks,x as Lexer,D as Marked,b as Parser,y as Renderer,L as TextRenderer,w as Tokenizer,T as defaults,z as getDefaults,Vt as lexer,g as marked,jt as options,Xt as parse,Wt as parseInline,Jt as parser,Ft as setOptions,Ut as use,Kt as walkTokens};\n//# sourceMappingURL=marked.esm.js.map\n","<script setup lang=\"ts\">\n import remend from 'remend'\n import { marked, type Token } from 'marked'\n import { computed, nextTick, useTemplateRef, watch } from 'vue'\n import { loadCdnCss, getShadowRoot, isSameSite } from 'utils'\n\n export type StreamingAnimation =\n | 'fadeIn'\n | 'blurIn'\n | 'dropIn'\n | 'slideUp'\n | 'fadeAndScale'\n | null\n\n const props = withDefaults(\n defineProps<{\n markdown?: string\n loading?: boolean\n animation?: StreamingAnimation\n animationDuration?: string\n }>(),\n {\n markdown: '',\n loading: false,\n animation: 'fadeIn',\n animationDuration: '0.3s',\n },\n )\n\n // --- Lazy-loaded heavy dependencies ---\n\n let mermaidPromise: Promise<(typeof import('mermaid'))['default']> | null =\n null\n function loadMermaid() {\n if (!mermaidPromise) {\n mermaidPromise = import('mermaid').then((mod) => {\n mod.default.initialize({ startOnLoad: false })\n return mod.default\n })\n }\n return mermaidPromise\n }\n\n let katexPromise: Promise<(typeof import('katex'))['default']> | null = null\n function loadKatex() {\n if (!katexPromise) {\n katexPromise = import('katex').then((mod) => mod.default)\n }\n return katexPromise\n }\n\n // --- Marked extensions ---\n\n const inlineKatexRule =\n /^(\\${1,2})(?!\\$)((?:\\\\.|[^\\\\\\n])*?(?:\\\\.|[^\\\\\\n$]))\\1(?=[\\s?!.,:\\uFF1F\\uFF01\\u3002\\uFF0C\\uFF1A]|$)/\n const blockKatexRule = /^(\\${1,2})\\n((?:\\\\[^]|[^\\\\])+?)\\n\\1(?:\\n|$)/\n\n function encodeKatexHtml(text: string): string {\n return text\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n }\n\n function renderKatexPlaceholder(\n text: string,\n displayMode: boolean,\n ): string {\n const encoded = encodeKatexHtml(text)\n return `<span class=\"katex-pending\" data-katex=\"${encoded}\" data-display=\"${displayMode}\"></span>`\n }\n\n marked.use({\n extensions: [\n {\n name: 'inlineKatex',\n level: 'inline',\n start: (src) => {\n const idx = src.indexOf('$')\n if (idx === -1) return undefined\n if (idx === 0 || src.charAt(idx - 1) === ' ') return idx\n return undefined\n },\n tokenizer(src) {\n const match = src.match(inlineKatexRule)\n if (!match) return\n return {\n type: 'inlineKatex',\n raw: match[0],\n text: match[2].trim(),\n displayMode: match[1].length === 2,\n }\n },\n renderer(token) {\n return renderKatexPlaceholder(token.text, token.displayMode)\n },\n },\n {\n name: 'blockKatex',\n level: 'block',\n tokenizer(src) {\n const match = src.match(blockKatexRule)\n if (!match) return\n return {\n type: 'blockKatex',\n raw: match[0],\n text: match[2].trim(),\n displayMode: match[1].length === 2,\n }\n },\n renderer(token) {\n return (\n renderKatexPlaceholder(token.text, token.displayMode) +\n '\\n'\n )\n },\n },\n ],\n })\n\n marked.use({\n extensions: [\n {\n name: 'thinking',\n level: 'block',\n start: (src) => src.indexOf('<thinking>'),\n tokenizer(src) {\n const match = /^<thinking>([\\s\\S]*?)<\\/thinking>/.exec(src)\n if (!match) return\n const token = {\n type: 'thinking',\n raw: match[0],\n text: match[1].trim(),\n tokens: [] as Token[],\n }\n this.lexer.blockTokens(token.text, token.tokens)\n return token\n },\n renderer(token) {\n return `<div class=\"thinking-block\">${this.parser.parse(token.tokens ?? [])}</div>`\n },\n },\n ],\n })\n\n // --- Custom renderer ---\n\n const renderer = new marked.Renderer()\n\n renderer.link = function ({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens)\n const titleAttr = title ? ` title=\"${title}\"` : ''\n const targetAttrs = isSameSite(href ?? '')\n ? ''\n : ' target=\"_blank\" rel=\"noopener noreferrer\"'\n return `<a href=\"${href}\"${titleAttr}${targetAttrs}>${text}</a>`\n }\n\n renderer.table = function (token) {\n return `<div class=\"table-wrapper\">${marked.Renderer.prototype.table.call(this, token)}</div>`\n }\n\n const MERMAID_PREFIXES =\n /^(sequenceDiagram|graph|classDiagram|stateDiagram|erDiagram|gantt|pie|flowchart|journey)/\n\n renderer.code = ({ text }) => {\n if (MERMAID_PREFIXES.test(text)) {\n return `<pre class=\"mermaid\">${text}</pre>`\n }\n return `<pre><code>${text}</code></pre>`\n }\n\n // --- Preprocessing pipeline ---\n\n function normalizeLatexDelimiters(md: string): string {\n return md\n .replace(/\\\\\\[([\\s\\S]*?)\\\\\\]/g, (_, content) => `$$${content}$$`)\n .replace(/\\\\\\(([\\s\\S]*?)\\\\\\)/g, (_, content) => `$${content}$`)\n .replace(/^(\\d+)\\.(?!\\s)/gm, '$1\\\\.')\n }\n\n /**\n * Strips JSON objects/arrays that appear outside fenced code blocks.\n * Some models dump tool-call JSON directly into the text response.\n */\n function stripLeakedJson(md: string): string {\n const fenced = new Set<number>()\n const fenceRe = /^(`{3,})[^\\n]*\\n([\\s\\S]*?)\\n\\1/gm\n let fenceMatch: RegExpExecArray | null\n while ((fenceMatch = fenceRe.exec(md)) !== null) {\n for (\n let i = fenceMatch.index;\n i < fenceMatch.index + fenceMatch[0].length;\n i++\n ) {\n fenced.add(i)\n }\n }\n\n return md\n .replace(\n /[{[]([\\s\\S]*?)[}\\]]/g,\n (match, _inner, offset: number) => {\n if (fenced.has(offset)) return match\n try {\n JSON.parse(match)\n return ''\n } catch {\n return match\n }\n },\n )\n .replace(/\\n{3,}/g, '\\n\\n')\n }\n\n const preprocessors: Array<(md: string) => string> = [\n stripLeakedJson,\n remend,\n normalizeLatexDelimiters,\n ]\n\n // --- Computed HTML ---\n\n const containerRef = useTemplateRef<HTMLDivElement>('container')\n\n const html = computed(() => {\n const md = preprocessors.reduce((text, fn) => fn(text), props.markdown)\n return marked.parse(md, {\n async: false,\n breaks: true,\n renderer,\n }) as string\n })\n\n // --- Post-render processors ---\n\n async function renderMermaid() {\n if (props.loading) return\n\n await nextTick()\n const nodes = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre.mermaid:not([data-rendered])',\n )\n if (!nodes?.length) return\n\n const mermaid = await loadMermaid()\n\n const sandbox = document.createElement('div')\n sandbox.style.cssText =\n 'position:fixed;left:-9999px;top:-9999px;width:800px'\n document.body.appendChild(sandbox)\n\n try {\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const code = node.textContent?.trim()\n if (!code) continue\n\n try {\n const { svg } = await mermaid.render(\n `m-${Math.random().toString(36).slice(2)}`,\n code,\n sandbox,\n )\n if (node.isConnected) {\n node.innerHTML = svg\n node.setAttribute('data-rendered', 'true')\n }\n } catch {\n // Invalid syntax — node left untouched\n }\n }\n } finally {\n sandbox.remove()\n }\n }\n\n async function highlightCode() {\n await nextTick()\n const blocks = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre:not(.mermaid) > code:not([data-highlighted])',\n )\n if (!blocks?.length) return\n\n const hljs = (await import('highlight.js/lib/common')).default\n for (const block of blocks) {\n hljs.highlightElement(block)\n block.setAttribute('data-highlighted', 'true')\n }\n }\n\n async function renderKatex() {\n await nextTick()\n const nodes =\n containerRef.value?.querySelectorAll<HTMLElement>('.katex-pending')\n if (!nodes?.length) return\n\n const katex = await loadKatex()\n loadCdnCss(\n 'https://cdn.jsdelivr.net/npm/katex@0.16/dist/katex.min.css',\n getShadowRoot(containerRef.value),\n )\n\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const tex = node.dataset.katex\n if (!tex) continue\n const displayMode = node.dataset.display === 'true'\n try {\n node.innerHTML = katex.renderToString(tex, {\n throwOnError: false,\n displayMode,\n })\n node.classList.remove('katex-pending')\n } catch {\n // Invalid LaTeX — leave placeholder\n }\n }\n }\n\n watch([html, () => props.loading], renderMermaid, { immediate: true })\n watch(html, highlightCode, { immediate: true })\n watch(html, renderKatex, { immediate: true })\n\n // --- Streaming animation (FlowToken-style) ---\n\n let prevCharCount = 0\n\n function createAnimatedSpan(text: string, delay: number): HTMLSpanElement {\n const span = document.createElement('span')\n span.style.cssText = `animation:ft-${props.animation} ${props.animationDuration} ease-out ${delay}ms both;display:inline-block`\n span.textContent = text\n span.addEventListener(\n 'animationend',\n () => {\n const parent = span.parentNode\n if (!parent) return\n parent.replaceChild(document.createTextNode(text), span)\n parent.normalize()\n },\n { once: true },\n )\n return span\n }\n\n function insertAnimatedWords(\n text: string,\n parent: Node,\n refNode: Node | null,\n startIndex: number,\n ): number {\n let idx = startIndex\n const parts = text.split(/(\\s+)/)\n for (const part of parts) {\n if (!part) continue\n if (/^\\s+$/.test(part)) {\n parent.insertBefore(document.createTextNode(part), refNode)\n continue\n }\n parent.insertBefore(createAnimatedSpan(part, idx * 30), refNode)\n idx++\n }\n return idx\n }\n\n function collectTextNodes(root: HTMLElement): Text[] {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {\n acceptNode(node) {\n if (node.parentElement?.closest('pre, code, .katex-pending')) {\n return NodeFilter.FILTER_REJECT\n }\n return NodeFilter.FILTER_ACCEPT\n },\n })\n const nodes: Text[] = []\n while (walker.nextNode()) {\n nodes.push(walker.currentNode as Text)\n }\n return nodes\n }\n\n function annotateNewContent() {\n if (!containerRef.value || !props.loading || !props.animation) return\n\n const textNodes = collectTextNodes(containerRef.value)\n let charsSeen = 0\n let wordIdx = 0\n\n for (const textNode of textNodes) {\n const text = textNode.textContent || ''\n const nodeStart = charsSeen\n const nodeEnd = charsSeen + text.length\n charsSeen = nodeEnd\n\n if (nodeEnd <= prevCharCount) continue\n\n const parent = textNode.parentNode\n if (!parent) continue\n\n // Entirely new node — animate all words\n if (nodeStart >= prevCharCount) {\n const ref = textNode.nextSibling\n parent.removeChild(textNode)\n wordIdx = insertAnimatedWords(text, parent, ref, wordIdx)\n continue\n }\n\n // Partially new — split and animate only the new portion\n const splitAt = prevCharCount - nodeStart\n const newTextNode = textNode.splitText(splitAt)\n const newText = newTextNode.textContent || ''\n const ref = newTextNode.nextSibling\n parent.removeChild(newTextNode)\n wordIdx = insertAnimatedWords(newText, parent, ref, wordIdx)\n }\n\n prevCharCount = charsSeen\n }\n\n watch(\n html,\n async () => {\n await nextTick()\n annotateNewContent()\n },\n { immediate: true },\n )\n\n watch(\n () => props.markdown,\n (newVal, oldVal) => {\n if (!newVal || (oldVal && newVal.length < oldVal.length)) {\n prevCharCount = 0\n }\n },\n )\n</script>\n\n<template>\n <div ref=\"container\" v-html=\"html\"></div>\n</template>\n\n<style>\n @keyframes ft-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes ft-blurIn {\n from {\n opacity: 0;\n filter: blur(4px);\n }\n to {\n opacity: 1;\n filter: blur(0px);\n }\n }\n\n @keyframes ft-dropIn {\n from {\n transform: translateY(-8px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @keyframes ft-slideUp {\n from {\n transform: translateY(8px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @keyframes ft-fadeAndScale {\n from {\n transform: scale(0.85);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n }\n</style>\n","<script setup lang=\"ts\">\n import remend from 'remend'\n import { marked, type Token } from 'marked'\n import { computed, nextTick, useTemplateRef, watch } from 'vue'\n import { loadCdnCss, getShadowRoot, isSameSite } from 'utils'\n\n export type StreamingAnimation =\n | 'fadeIn'\n | 'blurIn'\n | 'dropIn'\n | 'slideUp'\n | 'fadeAndScale'\n | null\n\n const props = withDefaults(\n defineProps<{\n markdown?: string\n loading?: boolean\n animation?: StreamingAnimation\n animationDuration?: string\n }>(),\n {\n markdown: '',\n loading: false,\n animation: 'fadeIn',\n animationDuration: '0.3s',\n },\n )\n\n // --- Lazy-loaded heavy dependencies ---\n\n let mermaidPromise: Promise<(typeof import('mermaid'))['default']> | null =\n null\n function loadMermaid() {\n if (!mermaidPromise) {\n mermaidPromise = import('mermaid').then((mod) => {\n mod.default.initialize({ startOnLoad: false })\n return mod.default\n })\n }\n return mermaidPromise\n }\n\n let katexPromise: Promise<(typeof import('katex'))['default']> | null = null\n function loadKatex() {\n if (!katexPromise) {\n katexPromise = import('katex').then((mod) => mod.default)\n }\n return katexPromise\n }\n\n // --- Marked extensions ---\n\n const inlineKatexRule =\n /^(\\${1,2})(?!\\$)((?:\\\\.|[^\\\\\\n])*?(?:\\\\.|[^\\\\\\n$]))\\1(?=[\\s?!.,:\\uFF1F\\uFF01\\u3002\\uFF0C\\uFF1A]|$)/\n const blockKatexRule = /^(\\${1,2})\\n((?:\\\\[^]|[^\\\\])+?)\\n\\1(?:\\n|$)/\n\n function encodeKatexHtml(text: string): string {\n return text\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n }\n\n function renderKatexPlaceholder(\n text: string,\n displayMode: boolean,\n ): string {\n const encoded = encodeKatexHtml(text)\n return `<span class=\"katex-pending\" data-katex=\"${encoded}\" data-display=\"${displayMode}\"></span>`\n }\n\n marked.use({\n extensions: [\n {\n name: 'inlineKatex',\n level: 'inline',\n start: (src) => {\n const idx = src.indexOf('$')\n if (idx === -1) return undefined\n if (idx === 0 || src.charAt(idx - 1) === ' ') return idx\n return undefined\n },\n tokenizer(src) {\n const match = src.match(inlineKatexRule)\n if (!match) return\n return {\n type: 'inlineKatex',\n raw: match[0],\n text: match[2].trim(),\n displayMode: match[1].length === 2,\n }\n },\n renderer(token) {\n return renderKatexPlaceholder(token.text, token.displayMode)\n },\n },\n {\n name: 'blockKatex',\n level: 'block',\n tokenizer(src) {\n const match = src.match(blockKatexRule)\n if (!match) return\n return {\n type: 'blockKatex',\n raw: match[0],\n text: match[2].trim(),\n displayMode: match[1].length === 2,\n }\n },\n renderer(token) {\n return (\n renderKatexPlaceholder(token.text, token.displayMode) +\n '\\n'\n )\n },\n },\n ],\n })\n\n marked.use({\n extensions: [\n {\n name: 'thinking',\n level: 'block',\n start: (src) => src.indexOf('<thinking>'),\n tokenizer(src) {\n const match = /^<thinking>([\\s\\S]*?)<\\/thinking>/.exec(src)\n if (!match) return\n const token = {\n type: 'thinking',\n raw: match[0],\n text: match[1].trim(),\n tokens: [] as Token[],\n }\n this.lexer.blockTokens(token.text, token.tokens)\n return token\n },\n renderer(token) {\n return `<div class=\"thinking-block\">${this.parser.parse(token.tokens ?? [])}</div>`\n },\n },\n ],\n })\n\n // --- Custom renderer ---\n\n const renderer = new marked.Renderer()\n\n renderer.link = function ({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens)\n const titleAttr = title ? ` title=\"${title}\"` : ''\n const targetAttrs = isSameSite(href ?? '')\n ? ''\n : ' target=\"_blank\" rel=\"noopener noreferrer\"'\n return `<a href=\"${href}\"${titleAttr}${targetAttrs}>${text}</a>`\n }\n\n renderer.table = function (token) {\n return `<div class=\"table-wrapper\">${marked.Renderer.prototype.table.call(this, token)}</div>`\n }\n\n const MERMAID_PREFIXES =\n /^(sequenceDiagram|graph|classDiagram|stateDiagram|erDiagram|gantt|pie|flowchart|journey)/\n\n renderer.code = ({ text }) => {\n if (MERMAID_PREFIXES.test(text)) {\n return `<pre class=\"mermaid\">${text}</pre>`\n }\n return `<pre><code>${text}</code></pre>`\n }\n\n // --- Preprocessing pipeline ---\n\n function normalizeLatexDelimiters(md: string): string {\n return md\n .replace(/\\\\\\[([\\s\\S]*?)\\\\\\]/g, (_, content) => `$$${content}$$`)\n .replace(/\\\\\\(([\\s\\S]*?)\\\\\\)/g, (_, content) => `$${content}$`)\n .replace(/^(\\d+)\\.(?!\\s)/gm, '$1\\\\.')\n }\n\n /**\n * Strips JSON objects/arrays that appear outside fenced code blocks.\n * Some models dump tool-call JSON directly into the text response.\n */\n function stripLeakedJson(md: string): string {\n const fenced = new Set<number>()\n const fenceRe = /^(`{3,})[^\\n]*\\n([\\s\\S]*?)\\n\\1/gm\n let fenceMatch: RegExpExecArray | null\n while ((fenceMatch = fenceRe.exec(md)) !== null) {\n for (\n let i = fenceMatch.index;\n i < fenceMatch.index + fenceMatch[0].length;\n i++\n ) {\n fenced.add(i)\n }\n }\n\n return md\n .replace(\n /[{[]([\\s\\S]*?)[}\\]]/g,\n (match, _inner, offset: number) => {\n if (fenced.has(offset)) return match\n try {\n JSON.parse(match)\n return ''\n } catch {\n return match\n }\n },\n )\n .replace(/\\n{3,}/g, '\\n\\n')\n }\n\n const preprocessors: Array<(md: string) => string> = [\n stripLeakedJson,\n remend,\n normalizeLatexDelimiters,\n ]\n\n // --- Computed HTML ---\n\n const containerRef = useTemplateRef<HTMLDivElement>('container')\n\n const html = computed(() => {\n const md = preprocessors.reduce((text, fn) => fn(text), props.markdown)\n return marked.parse(md, {\n async: false,\n breaks: true,\n renderer,\n }) as string\n })\n\n // --- Post-render processors ---\n\n async function renderMermaid() {\n if (props.loading) return\n\n await nextTick()\n const nodes = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre.mermaid:not([data-rendered])',\n )\n if (!nodes?.length) return\n\n const mermaid = await loadMermaid()\n\n const sandbox = document.createElement('div')\n sandbox.style.cssText =\n 'position:fixed;left:-9999px;top:-9999px;width:800px'\n document.body.appendChild(sandbox)\n\n try {\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const code = node.textContent?.trim()\n if (!code) continue\n\n try {\n const { svg } = await mermaid.render(\n `m-${Math.random().toString(36).slice(2)}`,\n code,\n sandbox,\n )\n if (node.isConnected) {\n node.innerHTML = svg\n node.setAttribute('data-rendered', 'true')\n }\n } catch {\n // Invalid syntax — node left untouched\n }\n }\n } finally {\n sandbox.remove()\n }\n }\n\n async function highlightCode() {\n await nextTick()\n const blocks = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre:not(.mermaid) > code:not([data-highlighted])',\n )\n if (!blocks?.length) return\n\n const hljs = (await import('highlight.js/lib/common')).default\n for (const block of blocks) {\n hljs.highlightElement(block)\n block.setAttribute('data-highlighted', 'true')\n }\n }\n\n async function renderKatex() {\n await nextTick()\n const nodes =\n containerRef.value?.querySelectorAll<HTMLElement>('.katex-pending')\n if (!nodes?.length) return\n\n const katex = await loadKatex()\n loadCdnCss(\n 'https://cdn.jsdelivr.net/npm/katex@0.16/dist/katex.min.css',\n getShadowRoot(containerRef.value),\n )\n\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const tex = node.dataset.katex\n if (!tex) continue\n const displayMode = node.dataset.display === 'true'\n try {\n node.innerHTML = katex.renderToString(tex, {\n throwOnError: false,\n displayMode,\n })\n node.classList.remove('katex-pending')\n } catch {\n // Invalid LaTeX — leave placeholder\n }\n }\n }\n\n watch([html, () => props.loading], renderMermaid, { immediate: true })\n watch(html, highlightCode, { immediate: true })\n watch(html, renderKatex, { immediate: true })\n\n // --- Streaming animation (FlowToken-style) ---\n\n let prevCharCount = 0\n\n function createAnimatedSpan(text: string, delay: number): HTMLSpanElement {\n const span = document.createElement('span')\n span.style.cssText = `animation:ft-${props.animation} ${props.animationDuration} ease-out ${delay}ms both;display:inline-block`\n span.textContent = text\n span.addEventListener(\n 'animationend',\n () => {\n const parent = span.parentNode\n if (!parent) return\n parent.replaceChild(document.createTextNode(text), span)\n parent.normalize()\n },\n { once: true },\n )\n return span\n }\n\n function insertAnimatedWords(\n text: string,\n parent: Node,\n refNode: Node | null,\n startIndex: number,\n ): number {\n let idx = startIndex\n const parts = text.split(/(\\s+)/)\n for (const part of parts) {\n if (!part) continue\n if (/^\\s+$/.test(part)) {\n parent.insertBefore(document.createTextNode(part), refNode)\n continue\n }\n parent.insertBefore(createAnimatedSpan(part, idx * 30), refNode)\n idx++\n }\n return idx\n }\n\n function collectTextNodes(root: HTMLElement): Text[] {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {\n acceptNode(node) {\n if (node.parentElement?.closest('pre, code, .katex-pending')) {\n return NodeFilter.FILTER_REJECT\n }\n return NodeFilter.FILTER_ACCEPT\n },\n })\n const nodes: Text[] = []\n while (walker.nextNode()) {\n nodes.push(walker.currentNode as Text)\n }\n return nodes\n }\n\n function annotateNewContent() {\n if (!containerRef.value || !props.loading || !props.animation) return\n\n const textNodes = collectTextNodes(containerRef.value)\n let charsSeen = 0\n let wordIdx = 0\n\n for (const textNode of textNodes) {\n const text = textNode.textContent || ''\n const nodeStart = charsSeen\n const nodeEnd = charsSeen + text.length\n charsSeen = nodeEnd\n\n if (nodeEnd <= prevCharCount) continue\n\n const parent = textNode.parentNode\n if (!parent) continue\n\n // Entirely new node — animate all words\n if (nodeStart >= prevCharCount) {\n const ref = textNode.nextSibling\n parent.removeChild(textNode)\n wordIdx = insertAnimatedWords(text, parent, ref, wordIdx)\n continue\n }\n\n // Partially new — split and animate only the new portion\n const splitAt = prevCharCount - nodeStart\n const newTextNode = textNode.splitText(splitAt)\n const newText = newTextNode.textContent || ''\n const ref = newTextNode.nextSibling\n parent.removeChild(newTextNode)\n wordIdx = insertAnimatedWords(newText, parent, ref, wordIdx)\n }\n\n prevCharCount = charsSeen\n }\n\n watch(\n html,\n async () => {\n await nextTick()\n annotateNewContent()\n },\n { immediate: true },\n )\n\n watch(\n () => props.markdown,\n (newVal, oldVal) => {\n if (!newVal || (oldVal && newVal.length < oldVal.length)) {\n prevCharCount = 0\n }\n },\n )\n</script>\n\n<template>\n <div ref=\"container\" v-html=\"html\"></div>\n</template>\n\n<style>\n @keyframes ft-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes ft-blurIn {\n from {\n opacity: 0;\n filter: blur(4px);\n }\n to {\n opacity: 1;\n filter: blur(0px);\n }\n }\n\n @keyframes ft-dropIn {\n from {\n transform: translateY(-8px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @keyframes ft-slideUp {\n from {\n transform: translateY(8px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @keyframes ft-fadeAndScale {\n from {\n transform: scale(0.85);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n }\n</style>\n","<script setup lang=\"ts\">\n import remend from 'remend'\n import { marked, type Token } from 'marked'\n import { computed, nextTick, useTemplateRef, watch } from 'vue'\n import { loadCdnCss, getShadowRoot, isSameSite } from 'utils'\n\n export type StreamingAnimation =\n | 'fadeIn'\n | 'blurIn'\n | 'dropIn'\n | 'slideUp'\n | 'fadeAndScale'\n | null\n\n const props = withDefaults(\n defineProps<{\n markdown?: string\n loading?: boolean\n animation?: StreamingAnimation\n animationDuration?: string\n }>(),\n {\n markdown: '',\n loading: false,\n animation: 'fadeIn',\n animationDuration: '0.3s',\n },\n )\n\n // --- Lazy-loaded heavy dependencies ---\n\n let mermaidPromise: Promise<(typeof import('mermaid'))['default']> | null =\n null\n function loadMermaid() {\n if (!mermaidPromise) {\n mermaidPromise = import('mermaid').then((mod) => {\n mod.default.initialize({ startOnLoad: false })\n return mod.default\n })\n }\n return mermaidPromise\n }\n\n let katexPromise: Promise<(typeof import('katex'))['default']> | null = null\n function loadKatex() {\n if (!katexPromise) {\n katexPromise = import('katex').then((mod) => mod.default)\n }\n return katexPromise\n }\n\n // --- Marked extensions ---\n\n const inlineKatexRule =\n /^(\\${1,2})(?!\\$)((?:\\\\.|[^\\\\\\n])*?(?:\\\\.|[^\\\\\\n$]))\\1(?=[\\s?!.,:\\uFF1F\\uFF01\\u3002\\uFF0C\\uFF1A]|$)/\n const blockKatexRule = /^(\\${1,2})\\n((?:\\\\[^]|[^\\\\])+?)\\n\\1(?:\\n|$)/\n\n function encodeKatexHtml(text: string): string {\n return text\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n }\n\n function renderKatexPlaceholder(\n text: string,\n displayMode: boolean,\n ): string {\n const encoded = encodeKatexHtml(text)\n return `<span class=\"katex-pending\" data-katex=\"${encoded}\" data-display=\"${displayMode}\"></span>`\n }\n\n marked.use({\n extensions: [\n {\n name: 'inlineKatex',\n level: 'inline',\n start: (src) => {\n const idx = src.indexOf('$')\n if (idx === -1) return undefined\n if (idx === 0 || src.charAt(idx - 1) === ' ') return idx\n return undefined\n },\n tokenizer(src) {\n const match = src.match(inlineKatexRule)\n if (!match) return\n return {\n type: 'inlineKatex',\n raw: match[0],\n text: match[2].trim(),\n displayMode: match[1].length === 2,\n }\n },\n renderer(token) {\n return renderKatexPlaceholder(token.text, token.displayMode)\n },\n },\n {\n name: 'blockKatex',\n level: 'block',\n tokenizer(src) {\n const match = src.match(blockKatexRule)\n if (!match) return\n return {\n type: 'blockKatex',\n raw: match[0],\n text: match[2].trim(),\n displayMode: match[1].length === 2,\n }\n },\n renderer(token) {\n return (\n renderKatexPlaceholder(token.text, token.displayMode) +\n '\\n'\n )\n },\n },\n ],\n })\n\n marked.use({\n extensions: [\n {\n name: 'thinking',\n level: 'block',\n start: (src) => src.indexOf('<thinking>'),\n tokenizer(src) {\n const match = /^<thinking>([\\s\\S]*?)<\\/thinking>/.exec(src)\n if (!match) return\n const token = {\n type: 'thinking',\n raw: match[0],\n text: match[1].trim(),\n tokens: [] as Token[],\n }\n this.lexer.blockTokens(token.text, token.tokens)\n return token\n },\n renderer(token) {\n return `<div class=\"thinking-block\">${this.parser.parse(token.tokens ?? [])}</div>`\n },\n },\n ],\n })\n\n // --- Custom renderer ---\n\n const renderer = new marked.Renderer()\n\n renderer.link = function ({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens)\n const titleAttr = title ? ` title=\"${title}\"` : ''\n const targetAttrs = isSameSite(href ?? '')\n ? ''\n : ' target=\"_blank\" rel=\"noopener noreferrer\"'\n return `<a href=\"${href}\"${titleAttr}${targetAttrs}>${text}</a>`\n }\n\n renderer.table = function (token) {\n return `<div class=\"table-wrapper\">${marked.Renderer.prototype.table.call(this, token)}</div>`\n }\n\n const MERMAID_PREFIXES =\n /^(sequenceDiagram|graph|classDiagram|stateDiagram|erDiagram|gantt|pie|flowchart|journey)/\n\n renderer.code = ({ text }) => {\n if (MERMAID_PREFIXES.test(text)) {\n return `<pre class=\"mermaid\">${text}</pre>`\n }\n return `<pre><code>${text}</code></pre>`\n }\n\n // --- Preprocessing pipeline ---\n\n function normalizeLatexDelimiters(md: string): string {\n return md\n .replace(/\\\\\\[([\\s\\S]*?)\\\\\\]/g, (_, content) => `$$${content}$$`)\n .replace(/\\\\\\(([\\s\\S]*?)\\\\\\)/g, (_, content) => `$${content}$`)\n .replace(/^(\\d+)\\.(?!\\s)/gm, '$1\\\\.')\n }\n\n /**\n * Strips JSON objects/arrays that appear outside fenced code blocks.\n * Some models dump tool-call JSON directly into the text response.\n */\n function stripLeakedJson(md: string): string {\n const fenced = new Set<number>()\n const fenceRe = /^(`{3,})[^\\n]*\\n([\\s\\S]*?)\\n\\1/gm\n let fenceMatch: RegExpExecArray | null\n while ((fenceMatch = fenceRe.exec(md)) !== null) {\n for (\n let i = fenceMatch.index;\n i < fenceMatch.index + fenceMatch[0].length;\n i++\n ) {\n fenced.add(i)\n }\n }\n\n return md\n .replace(\n /[{[]([\\s\\S]*?)[}\\]]/g,\n (match, _inner, offset: number) => {\n if (fenced.has(offset)) return match\n try {\n JSON.parse(match)\n return ''\n } catch {\n return match\n }\n },\n )\n .replace(/\\n{3,}/g, '\\n\\n')\n }\n\n const preprocessors: Array<(md: string) => string> = [\n stripLeakedJson,\n remend,\n normalizeLatexDelimiters,\n ]\n\n // --- Computed HTML ---\n\n const containerRef = useTemplateRef<HTMLDivElement>('container')\n\n const html = computed(() => {\n const md = preprocessors.reduce((text, fn) => fn(text), props.markdown)\n return marked.parse(md, {\n async: false,\n breaks: true,\n renderer,\n }) as string\n })\n\n // --- Post-render processors ---\n\n async function renderMermaid() {\n if (props.loading) return\n\n await nextTick()\n const nodes = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre.mermaid:not([data-rendered])',\n )\n if (!nodes?.length) return\n\n const mermaid = await loadMermaid()\n\n const sandbox = document.createElement('div')\n sandbox.style.cssText =\n 'position:fixed;left:-9999px;top:-9999px;width:800px'\n document.body.appendChild(sandbox)\n\n try {\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const code = node.textContent?.trim()\n if (!code) continue\n\n try {\n const { svg } = await mermaid.render(\n `m-${Math.random().toString(36).slice(2)}`,\n code,\n sandbox,\n )\n if (node.isConnected) {\n node.innerHTML = svg\n node.setAttribute('data-rendered', 'true')\n }\n } catch {\n // Invalid syntax — node left untouched\n }\n }\n } finally {\n sandbox.remove()\n }\n }\n\n async function highlightCode() {\n await nextTick()\n const blocks = containerRef.value?.querySelectorAll<HTMLElement>(\n 'pre:not(.mermaid) > code:not([data-highlighted])',\n )\n if (!blocks?.length) return\n\n const hljs = (await import('highlight.js/lib/common')).default\n for (const block of blocks) {\n hljs.highlightElement(block)\n block.setAttribute('data-highlighted', 'true')\n }\n }\n\n async function renderKatex() {\n await nextTick()\n const nodes =\n containerRef.value?.querySelectorAll<HTMLElement>('.katex-pending')\n if (!nodes?.length) return\n\n const katex = await loadKatex()\n loadCdnCss(\n 'https://cdn.jsdelivr.net/npm/katex@0.16/dist/katex.min.css',\n getShadowRoot(containerRef.value),\n )\n\n for (const node of Array.from(nodes)) {\n if (!node.isConnected) continue\n const tex = node.dataset.katex\n if (!tex) continue\n const displayMode = node.dataset.display === 'true'\n try {\n node.innerHTML = katex.renderToString(tex, {\n throwOnError: false,\n displayMode,\n })\n node.classList.remove('katex-pending')\n } catch {\n // Invalid LaTeX — leave placeholder\n }\n }\n }\n\n watch([html, () => props.loading], renderMermaid, { immediate: true })\n watch(html, highlightCode, { immediate: true })\n watch(html, renderKatex, { immediate: true })\n\n // --- Streaming animation (FlowToken-style) ---\n\n let prevCharCount = 0\n\n function createAnimatedSpan(text: string, delay: number): HTMLSpanElement {\n const span = document.createElement('span')\n span.style.cssText = `animation:ft-${props.animation} ${props.animationDuration} ease-out ${delay}ms both;display:inline-block`\n span.textContent = text\n span.addEventListener(\n 'animationend',\n () => {\n const parent = span.parentNode\n if (!parent) return\n parent.replaceChild(document.createTextNode(text), span)\n parent.normalize()\n },\n { once: true },\n )\n return span\n }\n\n function insertAnimatedWords(\n text: string,\n parent: Node,\n refNode: Node | null,\n startIndex: number,\n ): number {\n let idx = startIndex\n const parts = text.split(/(\\s+)/)\n for (const part of parts) {\n if (!part) continue\n if (/^\\s+$/.test(part)) {\n parent.insertBefore(document.createTextNode(part), refNode)\n continue\n }\n parent.insertBefore(createAnimatedSpan(part, idx * 30), refNode)\n idx++\n }\n return idx\n }\n\n function collectTextNodes(root: HTMLElement): Text[] {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {\n acceptNode(node) {\n if (node.parentElement?.closest('pre, code, .katex-pending')) {\n return NodeFilter.FILTER_REJECT\n }\n return NodeFilter.FILTER_ACCEPT\n },\n })\n const nodes: Text[] = []\n while (walker.nextNode()) {\n nodes.push(walker.currentNode as Text)\n }\n return nodes\n }\n\n function annotateNewContent() {\n if (!containerRef.value || !props.loading || !props.animation) return\n\n const textNodes = collectTextNodes(containerRef.value)\n let charsSeen = 0\n let wordIdx = 0\n\n for (const textNode of textNodes) {\n const text = textNode.textContent || ''\n const nodeStart = charsSeen\n const nodeEnd = charsSeen + text.length\n charsSeen = nodeEnd\n\n if (nodeEnd <= prevCharCount) continue\n\n const parent = textNode.parentNode\n if (!parent) continue\n\n // Entirely new node — animate all words\n if (nodeStart >= prevCharCount) {\n const ref = textNode.nextSibling\n parent.removeChild(textNode)\n wordIdx = insertAnimatedWords(text, parent, ref, wordIdx)\n continue\n }\n\n // Partially new — split and animate only the new portion\n const splitAt = prevCharCount - nodeStart\n const newTextNode = textNode.splitText(splitAt)\n const newText = newTextNode.textContent || ''\n const ref = newTextNode.nextSibling\n parent.removeChild(newTextNode)\n wordIdx = insertAnimatedWords(newText, parent, ref, wordIdx)\n }\n\n prevCharCount = charsSeen\n }\n\n watch(\n html,\n async () => {\n await nextTick()\n annotateNewContent()\n },\n { immediate: true },\n )\n\n watch(\n () => props.markdown,\n (newVal, oldVal) => {\n if (!newVal || (oldVal && newVal.length < oldVal.length)) {\n prevCharCount = 0\n }\n },\n )\n</script>\n\n<template>\n <div ref=\"container\" v-html=\"html\"></div>\n</template>\n\n<style>\n @keyframes ft-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes ft-blurIn {\n from {\n opacity: 0;\n filter: blur(4px);\n }\n to {\n opacity: 1;\n filter: blur(0px);\n }\n }\n\n @keyframes ft-dropIn {\n from {\n transform: translateY(-8px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @keyframes ft-slideUp {\n from {\n transform: translateY(8px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @keyframes ft-fadeAndScale {\n from {\n transform: scale(0.85);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n }\n</style>\n"],"x_google_ignoreList":[0,1],"mappings":";;;;AAAA,IAAI,IAAG,OAAO,gBAAe,KAAG,OAAO,kBAAqB,IAAG,OAAO,2BAA8BA,IAAE,OAAO,uBAA0B,KAAG,OAAO,UAAU,gBAAe,KAAG,OAAO,UAAU,sBAAyBC,KAAG,GAAE,GAAE,MAAI,KAAK,IAAE,EAAG,GAAE,GAAE;CAAC,YAAW;CAAK,cAAa;CAAK,UAAS;CAAK,OAAM;CAAE,CAAC,GAAC,EAAE,KAAG,GAAEC,KAAG,GAAE,MAAI;AAAC,MAAI,IAAI,KAAK,AAAI,MAAE,EAAE,CAAE,IAAG,KAAK,GAAE,EAAE,IAAED,EAAE,GAAE,GAAE,EAAE,GAAG;AAAC,KAAGD,EAAE,MAAI,IAAI,KAAKA,EAAE,EAAE,CAAC,IAAG,KAAK,GAAE,EAAE,IAAEC,EAAE,GAAE,GAAE,EAAE,GAAG;AAAC,QAAO;GAAG,KAAG,GAAE,MAAI,GAAG,GAAE,EAAG,EAAE,CAAC,EAAK,KAAG,GAAE,MAAI;CAAC,IAAI,IAAE,IAAM,IAAE;AAAM,MAAI,IAAI,IAAE,GAAE,IAAE,GAAE,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,QAAM,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,KAAI;AAAC,QAAG;AAAE;;AAAS,MAAG,EAAE,UAAU,GAAE,IAAE,EAAE,KAAG,OAAM;AAAC,OAAE,CAAC,GAAE,KAAG;AAAE;;AAAS,GAAC,KAAG,EAAE,OAAK,QAAM,IAAE,CAAC;;AAAI,QAAO,KAAG;GAAG,MAAI,GAAE,MAAI;CAAC,IAAI,IAAE,EAAE,UAAU,GAAE,IAAE,EAAE,KAAG,OAAM,IAAE,IAAE,KAAG,EAAE,UAAU,IAAE,GAAE,IAAE,EAAE,KAAG,OAAM,IAAE,IAAE,KAAG,EAAE,UAAU,IAAE,GAAE,IAAE,EAAE,KAAG;AAAM,QAAO,KAAG,KAAG;GAAGE,MAAE,MAAG;CAAC,IAAI,IAAE;AAAE,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,QAAM,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,KAAI;AAAC,QAAG;AAAE;;AAAS,IAAE,OAAK,OAAK,CAAC,GAAG,GAAE,EAAE,KAAG,KAAG;;AAAI,QAAO;GAAG,KAAG,GAAE,MAAI;CAAC,IAAI,IAAE,IAAM,IAAE,IAAM,IAAE;AAAG,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,QAAM,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,KAAI;AAAC,QAAG;AAAE;;AAAS,MAAG,EAAE,UAAU,GAAE,IAAE,EAAE,KAAG,OAAM;AAAC,OAAE,CAAC,GAAE,KAAG;AAAE;;AAAS,MAAG,CAAC,KAAG,EAAE,OAAK,IAAI,KAAG,GAAE;AAAC,OAAG,IAAE,KAAG,IAAE,EAAE,QAAQ;AAAK,OAAE,IAAM,IAAE;QAAS,KAAE,IAAK,IAAE;;AAAG,QAAQ;GAAW,IAAG,6CAA4CC,KAAE,MAAG,CAAC,KAAG,OAAO,KAAG,YAAU,CAAC,EAAE,SAAS,IAAI,GAAC,IAAE,EAAE,QAAQ,IAAI,GAAE,GAAE,GAAE,MAAI,EAAE,GAAE,EAAE,GAAC,IAAE,GAAG,EAAE,KAAK,IAAI,EAAKC,KAAE,qBAAoBC,KAAE,iBAAgBC,KAAE,qBAAoB,IAAE,iBAAgBC,KAAE,gBAAeC,KAAE,gBAAeC,KAAE,iBAAgBC,IAAE,eAAcC,KAAE,qBAAoBC,KAAE,kBAAiBC,KAAE,oBAAmBC,KAAE,YAAeC,KAAE,iBAAgBC,KAAE,iBAAoBC,KAAE,OAAUC,KAAE,MAAG;AAAC,KAAG,CAAC,EAAE,QAAQ;CAAM,IAAI,IAAE,EAAE,WAAW,EAAE;AAAC,QAAO,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,OAAK,MAAI,KAAG,KAAKN,GAAE,KAAK,EAAE;GAA4GO,MAAG,GAAE,MAAI;CAAC,IAAI,IAAE;AAAE,MAAI,IAAI,IAAE,IAAE,GAAE,KAAG,GAAE,IAAK,KAAG,EAAE,OAAK,IAAI,MAAG;UAAU,EAAE,OAAK,QAAM,KAAK,MAAI,GAAG,QAAO;AAAE,QAAQ;GAAI,MAAG,GAAE,MAAI;CAAC,IAAI,IAAE;AAAE,MAAI,IAAI,IAAE,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,EAAE,KAAG,EAAE,OAAK,IAAI,MAAG;UAAU,EAAE,OAAK,QAAM,KAAK,MAAI,GAAG,QAAO;AAAE,QAAQ;GAAI,KAAG,GAAE,MAAI;CAAC,IAAI,IAAE,IAAM,IAAE;AAAM,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,UAAQ,IAAE,GAAE,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,QAAM,EAAE,IAAE,OAAK,KAAI;AAAC,QAAG;AAAE;;AAAS,IAAE,OAAK,QAAM,EAAE,IAAE,OAAK,OAAK,IAAE,CAAC,GAAE,KAAG,GAAE,IAAE,MAAO,MAAI,IAAE,CAAC;;AAAK,QAAO,KAAG;GAAG,MAAI,GAAE,MAAI;AAAC,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,IAAI,QAAQ;AAAK,MAAG,EAAE,OAAK,KAC7xE,QAAQ;;AAAM,QAAQ;GAAOC,MAAG,GAAE,MAAI;AAAC,MAAI,IAAI,IAAE,IAAE,GAAE,KAAG,GAAE,KAAK;AAAC,MAAG,EAAE,OAAK,IAAI,QAAQ;AAAM,MAAG,EAAE,OAAK,IAAI,QAAO,IAAE,KAAG,EAAE,IAAE,OAAK,MAAI,GAAG,GAAE,EAAE,GAAC;AAAM,MAAG,EAAE,OAAK,KAC3J,QAAQ;;AAAM,QAAQ;GAAOC,MAAG,GAAE,MAAI;AAAC,MAAI,IAAI,IAAE,IAAE,GAAE,KAAG,GAAE,KAAK;AAAC,MAAG,EAAE,OAAK,IAAI,QAAQ;AAAM,MAAG,EAAE,OAAK,KAAI;GAAC,IAAI,IAAE,IAAE,IAAE,EAAE,SAAO,EAAE,IAAE,KAAG;AAAG,UAAO,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,MAAI;;AAAI,MAAG,EAAE,OAAK,KACjM,QAAQ;;AAAM,QAAQ;GAAO,KAAG,GAAE,GAAE,MAAI;CAAC,IAAI,IAAE;AAAE,MAAI,IAAI,IAAE,IAAE,GAAE,KAAG,GAAE,IAAK,KAAG,EAAE,OAAK,MACnF;AAAC,MAAE,IAAE;AAAE;;CAAM,IAAI,IAAE,EAAE;AAAO,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,EAAE,KAAG,EAAE,OAAK,MAClE;AAAC,MAAE;AAAE;;CAAM,IAAI,IAAE,EAAE,UAAU,GAAE,EAAE,EAAC,IAAE,GAAE,IAAE;AAAM,MAAI,IAAI,KAAK,EAAE,KAAG,MAAI,EAAE,MAAG;UAAU,MAAI,OAAK,MAAI,KAAI;AAAC,MAAE;AAAK;;AAAM,QAAO,KAAG,KAAG,CAAC;GAAO,MAAI,GAAE,GAAE,GAAE,MAAI,MAAI,QAAM,EAAE,SAAS,IAAI,IAAE,EAAE,GAAE,EAAE,GAAC,KAAK,MAAI,OAAK,MAAI,OAAK,IAAE,EAAE,SAAO,IAAE,EAAE,IAAE,KAAG,QAAM,MAAI,CAAC,EAAE,MAAI,OAAK,KAAG,KAAGH,EAAE,EAAE,IAAEA,EAAE,EAAE,KAAG,CAAC,KAAG,MAAI,OAAK,MAAI,OAAK,MAAI,UAClS,CAAC,KAAG,MAAI,OAAK,MAAI,OAAK,MAAI,QAC3BI,MAAE,MAAG;CAAC,IAAI,IAAE,GAAE,IAAE,IAAM,IAAE,EAAE;AAAO,MAAI,IAAI,IAAE,GAAE,IAAE,GAAE,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,OAAK,IAAE,IAAE,KAAG,EAAE,IAAE,OAAK,OAAK,EAAE,IAAE,OAAK,KAAI;AAAC,OAAE,CAAC,GAAE,KAAG;AAAE;;AAAS,MAAG,KAAG,EAAE,OAAK,IAAI;EAAS,IAAI,IAAE,IAAE,IAAE,EAAE,IAAE,KAAG,IAAG,IAAE,IAAE,IAAE,IAAE,EAAE,IAAE,KAAG;AAAG,KAAG,GAAE,GAAE,GAAE,EAAE,KAAG,KAAG;;AAAI,QAAO;GAAG,MAAI,GAAE,GAAE,GAAE,MAAI,CAAC,EAAE,MAAI,QAAM,EAAE,SAAS,IAAI,IAAE,EAAE,GAAE,EAAE,IAAEF,GAAE,GAAE,EAAE,IAAEC,GAAE,GAAE,EAAE,IAAE,MAAI,OAAK,MAAI,OAAK,KAAG,KAAGH,EAAE,EAAE,IAAEA,EAAE,EAAE,GAAE,MAAG,MAAG;CAAC,IAAI,IAAE,GAAE,IAAE,IAAM,IAAE,EAAE;AAAO,MAAI,IAAI,IAAE,GAAE,IAAE,GAAE,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,OAAK,IAAE,IAAE,KAAG,EAAE,IAAE,OAAK,OAAK,EAAE,IAAE,OAAK,KAAI;AAAC,OAAE,CAAC,GAAE,KAAG;AAAE;;AAAS,MAAG,KAAG,EAAE,OAAK,IAAI;EAAS,IAAI,IAAE,IAAE,IAAE,EAAE,IAAE,KAAG,IAAG,IAAE,IAAE,IAAE,IAAE,EAAE,IAAE,KAAG;AAAG,KAAG,GAAE,GAAE,GAAE,EAAE,KAAG,KAAG;;AAAI,QAAO;GAAG,MAAG,MAAG;CAAC,IAAI,IAAE,GAAE,IAAE,GAAE,IAAE;AAAM,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,OAAK,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,OAAK,EAAE,IAAE,OAAK,KAAI;AAAC,QAAG,MAAI,KAAG,KAAK,MAAM,IAAE,EAAE,GAAE,IAAE,GAAE,IAAE,CAAC,GAAE,KAAG;AAAE;;AAAS,QAAI,EAAE,OAAK,MAAI,KAAG,KAAG,KAAG,MAAI,KAAG,KAAK,MAAM,IAAE,EAAE,GAAE,IAAE;;AAAK,QAAO,KAAG,MAAI,KAAG,KAAK,MAAM,IAAE,EAAE,GAAE;GAAGK,KAAE,MAAG;CAAC,IAAI,IAAE,GAAE,IAAE;AAAM,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,OAAK,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,OAAK,EAAE,IAAE,OAAK,KAAI;AAAC,OAAE,CAAC,GAAE,KAAG;AAAE;;AAAS,OAAG,EAAE,OAAK,OAAK,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,QAAM,KAAG,GAAE,KAAG;;AAAI,QAAO;GAAGC,MAAE,MAAG;CAAC,IAAI,IAAE,GAAE,IAAE;AAAM,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,OAAK,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,OAAK,EAAE,IAAE,OAAK,KAAI;AAAC,OAAE,CAAC,GAAE,KAAG;AAAE;;AAAS,OAAG,EAAE,OAAK,OAAK,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,QAAM,KAAG,GAAE,KAAG;;AAAI,QAAO;GAAG,MAAI,GAAE,GAAE,MAAI;AAAC,KAAG,CAAC,KAAGd,EAAE,KAAK,EAAE,CAAC,QAAQ;CAAK,IAAI,IAAE,EAAE,UAAU,GAAE,EAAE,CAAC,YAAY,KAChvC,EAAC,IAAE,MAAI,KAAG,IAAE,IAAE,GAAE,IAAE,EAAE,UAAU,GAAE,EAAE;AAAC,QAAOC,GAAE,KAAK,EAAE,IAAE,EAAE,SAAS,KAChE,GAAC,KAAK,EAAE,GAAE,GAAE,IAAI;GAAEc,MAAE,MAAG;CAAC,IAAI,IAAE,EAAE,MAAMrB,GAAE;AAAC,KAAG,CAAC,EAAE,QAAO;CAAE,IAAI,IAAE,EAAE,IAAG,IAAE,EAAE,YAAY,EAAE,GAAG;AAAC,QAAO,EAAE,GAAE,EAAE,IAAE,EAAE,GAAE,EAAE,IAAE,GAAG,GAAE,GAAE,EAAE,GAAC,IAAEmB,EAAE,EAAE,GAAC,KAAI,IAAE,EAAE,SAAS,IAAI,GAAC,GAAG,EAAE,KAAG,GAAG,EAAE,MAAI;GAAG,MAAI,GAAE,GAAE,MAAI;AAAC,KAAG,CAAC,KAAGb,EAAE,KAAK,EAAE,CAAC,QAAQ;CAAK,IAAI,IAAE,EAAE,UAAU,GAAE,EAAE,CAAC,YAAY,KACzP,EAAC,IAAE,MAAI,KAAG,IAAE,IAAE,GAAE,IAAE,EAAE,UAAU,GAAE,EAAE;AAAC,QAAOC,GAAE,KAAK,EAAE,IAAE,EAAE,SAAS,KAChE,GAAC,KAAK,EAAE,GAAE,GAAE,IAAI;GAAEe,MAAE,MAAG;CAAC,IAAI,IAAE,EAAE,MAAMrB,GAAE;AAAC,KAAG,CAAC,GAAE;EAAC,IAAI,IAAE,EAAE,MAAMU,GAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,EAAE,YAAY,EAAE,GAAG;AAAC,OAAG,EAAE,EAAE,GAAE,EAAE,IAAE,EAAE,GAAE,EAAE,KAAGS,GAAE,EAAE,GAAC,KAAI,EAAE,QAAO,GAAG,EAAE;;AAAG,SAAO;;CAAE,IAAI,IAAE,EAAE,IAAG,IAAE,EAAE,YAAY,EAAE,GAAG;AAAC,QAAO,EAAE,GAAE,EAAE,IAAE,EAAE,GAAE,EAAE,IAAE,GAAG,GAAE,GAAE,EAAE,GAAC,IAAEA,GAAE,EAAE,GAAC,KAAI,IAAE,GAAG,EAAE,MAAI;GAAG,MAAG,MAAG;CAAC,IAAI,IAAE;AAAM,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,OAAK,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,OAAK,EAAE,IAAE,OAAK,KAAI;AAAC,OAAE,CAAC,GAAE,KAAG;AAAE;;AAAS,MAAG,CAAC,KAAG,EAAE,OAAK,OAAK,EAAE,IAAE,OAAK,OAAK,EAAE,IAAE,OAAK,OAAK,EAAE,IAAE,OAAK,QAAM,CAAC,EAAE,GAAE,EAAE,EAAC;GAAC,IAAI,IAAE,IAAE,IAAE,EAAE,IAAE,KAAG,IAAG,IAAE,IAAE,EAAE,SAAO,IAAE,EAAE,IAAE,KAAG;AAAG,QAAI,CAAC,KAAG,MAAI,OAAK,MAAI,OAAK,MAAI,UAChgB,CAAC,KAAG,MAAI,OAAK,MAAI,OAAK,MAAI,SAC3B,KAAG,KAAGN,EAAE,EAAE,IAAEA,EAAE,EAAE,CAAC;AAAS,UAAO;;;AAAG,QAAQ;GAAI,MAAE,MAAG;AAAC,KAAG,CAAC,EAAE,MAAM,EAAE,CAAC,QAAO;CAAE,IAAI,IAAE,GAAG,EAAE;AAAC,KAAG,MAAI,MAAI,EAAE,GAAE,EAAE,IAAE,EAAE,GAAE,EAAE,CAAC,QAAO;CAAE,IAAI,IAAE,EAAE,UAAU,IAAE,EAAE;AAAC,QAAO,CAAC,KAAGR,EAAE,KAAK,EAAE,GAAC,IAAEY,GAAE,EAAE,GAAC,KAAI,IAAE,GAAG,EAAE,KAAG;GAAGK,MAAE,MAAG;CAAC,IAAI,IAAE;AAAM,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,OAAK,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,OAAK,EAAE,IAAE,OAAK,KAAI;AAAC,OAAE,CAAC,GAAE,KAAG;AAAE;;AAAS,MAAG,CAAC,KAAG,EAAE,OAAK,OAAK,EAAE,IAAE,OAAK,OAAK,EAAE,IAAE,OAAK,OAAK,EAAE,IAAE,OAAK,QAAM,CAAC,EAAE,GAAE,EAAE,IAAE,CAACP,GAAE,GAAE,EAAE,EAAC;GAAC,IAAI,IAAE,IAAE,IAAE,EAAE,IAAE,KAAG,IAAG,IAAE,IAAE,EAAE,SAAO,IAAE,EAAE,IAAE,KAAG;AAAG,OAAG,KAAG,KAAGF,EAAE,EAAE,IAAEA,EAAE,EAAE,CAAC;AAAS,UAAO;;;AAAG,QAAQ;GAAI,MAAG,MAAG;CAAC,IAAI,IAAE,EAAE;AAAO,QAAK,IAAE,KAAG,EAAE,IAAE,OAAK,MACthB;AAAuE,QAA/D,IAAE,EAAE,SAA+C,GAAjC,EAAE,MAAM,GAAE,EAA2B,CAAC,GAAvB,EAAE,MAAM,EAAmB,KAAU,GAAG,EAAE;GAAI,MAAG,MAAG;AAAC,KAAG,CAAC,EAAE,SAAS,KAAK,CAAC,QAAO;CAAK,IAAI,IAAE,EAAE,MAAM,GAAE,GAAG;AAAC,KAAGK,EAAE,EAAE,GAAC,KAAI,EAAE,QAAO;CAAK,IAAI,IAAE,EAAE,QAAQ,KAAK,EAAC,IAAEI,GAAE,EAAE;AAAC,QAAO,MAAI,MAAI,MAAI,MAAI,IAAE,IAAE,GAAG,EAAE,OAAK;GAAMC,MAAE,MAAG;AAAC,KAAG,CAAC,EAAE,MAAMrB,GAAE,CAAC,QAAO;CAAE,IAAI,IAAEoB,GAAE,EAAE;AAAC,KAAG,MAAI,GAAG,QAAO;CAAE,IAAI,IAAE,EAAE,UAAU,IAAE,EAAE;AAAC,KAAG,CAAC,KAAGjB,EAAE,KAAK,EAAE,IAAE,EAAE,GAAE,EAAE,IAAE,EAAE,GAAE,EAAE,CAAC,QAAO;AAAE,KAAG,GAAG,EAAE,GAAC,KAAI,GAAE;EAAC,IAAI,IAAE,GAAG,EAAE;AAAC,SAAO,MAAI,OAAO,GAAG,EAAE,GAAP;;AAAQ,QAAO;GAAG,MAAG,MAAG;CAAC,IAAI,IAAEa,EAAE,EAAE,EAAC,IAAED,GAAE,EAAE;AAAC,QAAO,IAAE,KAAI,KAAG,IAAE,KAAI;GAAG,MAAI,GAAE,GAAE,MAAI,CAAC,KAAGZ,EAAE,KAAK,EAAE,IAAE,EAAE,GAAE,EAAE,IAAE,EAAE,GAAE,EAAE,GAAC,KAAK,EAAE,GAAE,GAAE,IAAI,EAACmB,MAAE,MAAG;AAAC,KAAGf,GAAE,KAAK,EAAE,CAAC,QAAO;CAAE,IAAI,IAAE,EAAE,MAAMR,GAAE;AAAC,KAAG,CAAC,EAAE,QAAO;CAAE,IAAI,IAAE,EAAE;AAAyB,QAAO,GAAG,GAAE,GAAhC,EAAE,YAAY,EAAE,GAAmB,CAAC,GAAC,IAAE,GAAG,EAAE,GAAC,KAAI,IAAE,GAAG,EAAE,GAAC,IAAE,GAAG,EAAE,OAAK;GAAO,KAAG,oBAAmBwB,MAAE,MAAG;CAAC,IAAI,IAAE,EAAE,MAAM,GAAG;AAAC,QAAO,CAAC,KAAG,EAAE,UAAQ,KAAK,KAAG,EAAE,GAAE,EAAE,MAAM,GAAC,IAAE,EAAE,UAAU,GAAE,EAAE,MAAM,CAAC,SAAS;GAAM,MAAG,MAAG,CAAC,EAAE,MAAMjB,GAAE,IAAE,EAAE,SAAS,KACh1B,GAAC,OAAK,EAAE,SAAS,KAAK,IAAE,CAAC,EAAE,SAAS,MAAM,GAAC,GAAG,EAAE,MAAI,GAAE,MAAG,OAAI,EAAE,MAAM,OAAO,IAAE,EAAE,EAAE,SAAO,KAAI,GAAE,MAAG,MAAG;CAAC,IAAI,IAAE,GAAG,EAAE;AAAC,KAAG,MAAI,KAAK,QAAO;CAAE,IAAI,IAAE,EAAE,MAAML,GAAE;AAAC,KAAG,KAAG,CAAC,GAAG,EAAE,EAAC;EAAC,IAAI,IAAE,EAAE;AAAG,MAAG,CAAC,KAAGE,EAAE,KAAK,EAAE,CAAC,QAAO;AAAE,MAAGR,GAAE,EAAE,GAAC,KAAI,EAAE,QAAO,GAAG,EAAE;;AAAI,QAAO;GAAO,MAAI,GAAE,MAAI,KAAG,KAAG,EAAE,UAAU,IAAE,GAAE,IAAE,EAAE,KAAG,SAAO,KAAG,KAAG,EAAE,UAAU,IAAE,GAAE,IAAE,EAAE,KAAG,SAAO,KAAG,EAAE,SAAO,KAAG,EAAE,UAAU,GAAE,IAAE,EAAE,KAAG,OAAM,MAAG,MAAG;CAAC,IAAI,IAAE,GAAE,IAAE;AAAM,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,SAAO,GAAE,KAAG,EAAE,GAAE,OAAK,OAAK,CAAC,GAAG,GAAE,EAAE,KAAG,IAAE,CAAC,IAAG,CAAC,KAAG,EAAE,OAAK,OAAK,EAAE,IAAE,OAAK,QAAM,KAAG,GAAE,KAAG;AAAG,QAAO;GAAG,MAAG,MAAG;CAAC,IAAI,IAAE,GAAE,IAAE;AAAM,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,GAAE;AAAC,MAAG,EAAE,OAAK,MAAK;AAAC,QAAG;AAAE;;AAAS,MAAG,EAAE,OAAK,OAAK,CAAC,GAAG,GAAE,EAAE,EAAC;AAAC,OAAE,CAAC;AAAE;;AAAS,GAAC,KAAG,EAAE,OAAK,QAAM,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,MAAI,KAAG,IAAE,KAAG;;AAAI,QAAO;GAAG,MAAG,MAAG;AAAC,KAAG,EAAE,SAAS,IAAI,IAAE,CAAC,EAAE,SAAS,KAAK,CAAC,QAAO,GAAG,EAAE;CAAG,IAAI,IAAE,EAAE,QAAQ,KAAK;AAAC,QAAO,MAAI,MAAI,EAAE,QAAQ,MAC/xB,EAAE,KAAG,MAAI,CAAC,EAAE,SAAS,KACrB,GAAC,GAAG,EAAE;MACJ,GAAG,EAAE;GAAK,MAAG,MAAG,GAAG,EAAE,GAAC,KAAI,IAAE,IAAE,GAAG,EAAE,EAAC,MAAG,MAAG,GAAG,EAAE,GAAC,KAAI,IAAE,GAAG,EAAE,KAAG,GAAM,MAAI,GAAE,GAAE,MAAI;AAAC,KAAG,EAAE,UAAU,IAAE,EAAE,CAAC,SAAS,IAAI,CAAC,QAAO;CAAK,IAAI,IAAEiB,GAAE,GAAE,EAAE;AAAC,KAAG,MAAI,MAAI,EAAE,GAAE,EAAE,CAAC,QAAO;CAAK,IAAI,IAAE,IAAE,KAAG,EAAE,IAAE,OAAK,KAAI,IAAE,IAAE,IAAE,IAAE,GAAE,IAAE,EAAE,UAAU,GAAE,EAAE;AAAC,KAAG,EAAE,QAAO;CAAE,IAAI,IAAE,EAAE,UAAU,IAAE,GAAE,EAAE;AAAC,QAAO,MAAI,cAAY,GAAG,IAAI,MAAI,GAAG,EAAE,GAAG,EAAE;GAAgC,MAAI,GAAE,MAAI;AAAC,MAAI,IAAI,IAAE,GAAE,IAAE,GAAE,IAAI,KAAG,EAAE,OAAK,OAAK,CAAC,EAAE,GAAE,EAAE,EAAC;AAAC,MAAG,IAAE,KAAG,EAAE,IAAE,OAAK,IAAI;EAAS,IAAI,IAAE,GAAE,GAAE,EAAE;AAAC,MAAG,MAAI,GAAG,QAAO;AAAE,MAAG,IAAE,IAAE,EAAE,UAAQ,EAAE,IAAE,OAAK,KAAI;GAAC,IAAI,IAAE,EAAE,QAAQ,KAAI,IAAE,EAAE;AAAC,SAAI,OAAK,IAAE;;;AAAK,QAAO;GAAG,MAAI,GAAE,GAAE,MAAI;CAAC,IAAI,IAAE,IAAE,KAAG,EAAE,IAAE,OAAK,KAAI,IAAE,IAAE,IAAE,IAAE;AAAE,KAAG,CAAC,EAAE,UAAU,IAAE,EAAE,CAAC,SAAS,IAAI,EAAC;EAAC,IAAI,IAAE,EAAE,UAAU,GAAE,EAAE;AAAC,MAAG,EAAE,QAAO;AAAE,MAAG,MAAI,aAAY;GAAC,IAAI,IAAE,GAAG,GAAE,EAAE;AAAC,UAAO,EAAE,UAAU,GAAE,EAAE,GAAC,EAAE,UAAU,IAAE,EAAE;;AAAC,SAAO,GAAG,EAAE;;AAA+B,KAAG,GAAE,GAAE,EAAE,KAAG,IAAG;EAAC,IAAI,IAAE,EAAE,UAAU,GAAE,EAAE;AAAC,MAAG,EAAE,QAAO;AAAE,MAAG,MAAI,aAAY;GAAC,IAAI,IAAE,GAAG,GAAE,EAAE;AAAC,UAAO,EAAE,UAAU,GAAE,EAAE,GAAC,EAAE,UAAU,IAAE,EAAE;;AAAC,SAAO,GAAG,EAAE;;AAA+B,QAAO;GAAMY,MAAG,GAAE,IAAE,eAAa;CAAC,IAAI,IAAE,EAAE,YAAY,KAAK;AAAC,KAAG,MAAI,MAAI,CAAC,EAAE,GAAE,EAAE,EAAC;EAAC,IAAI,IAAE,GAAG,GAAE,GAAE,EAAE;AAAC,MAAG,MAAI,KAAK,QAAO;;AAAE,MAAI,IAAI,IAAE,EAAE,SAAO,GAAE,KAAG,GAAE,IAAK,KAAG,EAAE,OAAK,OAAK,CAAC,EAAE,GAAE,EAAE,EAAC;EAAC,IAAI,IAAE,GAAG,GAAE,GAAE,EAAE;AAAC,MAAG,MAAI,KAAK,QAAO;;AAAE,QAAO;GAAO,KAAG,YAAW,KAAG,sBAAqB,KAAG,YAAW,KAAG,sBAAqB,MAAG,MAAG;AAAC,KAAG,CAAC,KAAG,OAAO,KAAG,SAAS,QAAO;CAAE,IAAI,IAAE,EAAE,YAAY,KAC7xC;AAAC,KAAG,MAAI,GAAG,QAAO;CAAE,IAAI,IAAE,EAAE,UAAU,IAAE,EAAE,EAAC,IAAE,EAAE,UAAU,GAAE,EAAE,EAAC,IAAE,EAAE,MAAM;AAAC,KAAG,GAAG,KAAK,EAAE,IAAE,CAAC,EAAE,MAAM,GAAG,EAAC;EAAC,IAAI,IAAE,EAAE,MAAM,KACpH,CAAC,GAAG,GAAG;AAAC,MAAG,KAAG,EAAE,MAAM,CAAC,SAAO,EAAE,QAAO,GAAG,EAAE;;AAAQ,KAAG,GAAG,KAAK,EAAE,IAAE,CAAC,EAAE,MAAM,GAAG,EAAC;EAAC,IAAI,IAAE,EAAE,MAAM,KAC/F,CAAC,GAAG,GAAG;AAAC,MAAG,KAAG,EAAE,MAAM,CAAC,SAAO,EAAE,QAAO,GAAG,EAAE;;AAAQ,QAAO;GAAO,KAAG,gBAAI,OAAO,iDAAgD,KAAK,EAAC,MAAG,MAAG,CAAC,KAAG,OAAO,KAAG,YAAU,CAAC,EAAE,SAAS,IAAI,GAAC,IAAE,EAAE,QAAQ,KAAI,GAAE,MAAI,EAAE,GAAE,EAAE,GAAC,IAAE,MAAM,EAAK,MAAG,MAAG;CAAS,IAAI,IAAE,EAAE,MAAMtB,GAAE;AAAC,KAAG,GAAE;EAAC,IAAI,IAAE,EAAE;AAAG,MAAG,CAAC,KAAGC,EAAE,KAAK,EAAE,CAAC,QAAO;EAAE,IAAI,IAAE,EAAE,YAAY,EAAE,GAAG;AAAC,MAAG,EAAE,GAAE,EAAE,IAAE,EAAE,GAAE,EAAE,CAAC,QAAO;AAAE,MAAO,EAAE,MAAMO,GAAE,EAAiB,SAAQ,KAAI,EAAE,QAAO,GAAG,EAAE;QAAS;EAAC,IAAI,IAAE,EAAE,MAAMD,GAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,EAAE,YAAY,EAAE,GAAG,MAAM,GAAE,EAAE,CAAC;AAAC,OAAG,EAAE,GAAE,EAAE,IAAE,EAAE,GAAE,EAAE,CAAC,QAAO;AAAE,OAAO,EAAE,MAAMC,GAAE,EAAiB,SAAQ,KAAI,EAAE,QAAO,GAAG,EAAE;;;AAAI,QAAO;GAAO,KAAE,MAAG,MAAI,IAAM,MAAG,MAAG,MAAI,IAAK,IAAE;CAAC,cAAa;CAAE,sBAAqB;CAAE,WAAU;CAAG,iBAAgB;CAAG,OAAM;CAAG,aAAY;CAAG,MAAK;CAAG,0BAAyB;CAAG,wBAAuB;CAAG,0BAAyB;CAAG,aAAY;CAAG,eAAc;CAAG,OAAM;CAAG,cAAa;CAAG,SAAQ;CAAI,EAAC,KAAG;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAc,QAAO;GAAG,UAAS,EAAE;GAAa;EAAC,WAAU;EAAc;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAsB,QAAOd;GAAE,UAAS,EAAE;GAAqB;EAAC,WAAU;EAAsB;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAW,QAAO2B;GAAE,UAAS,EAAE;GAAU;EAAC,WAAU;EAAW;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAiB,QAAO;GAAG,UAAS,EAAE;GAAgB;EAAC,WAAU;EAAiB;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAQ,QAAOC;GAAE,UAAS,EAAE;GAAM;EAAC,WAAU;EAAQ,cAAY,MAAG,EAAE,SAAS,gCAAgC;EAAC;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAa,QAAOF;GAAE,UAAS,EAAE;GAAY;EAAC,WAAU;EAAa;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAO,QAAOJ;GAAE,UAAS,EAAE;GAAK;EAAC,WAAU;EAAO;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAyB,QAAOC;GAAE,UAAS,EAAE;GAAyB;EAAC,WAAU;EAAS;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAuB,QAAO;GAAE,UAAS,EAAE;GAAuB;EAAC,WAAU;EAAS;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAyB,QAAOE;GAAE,UAAS,EAAE;GAAyB;EAAC,WAAU;EAAS;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAa,QAAO;GAAG,UAAS,EAAE;GAAY;EAAC,WAAU;EAAa;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAgB,QAAO;GAAG,UAAS,EAAE;GAAc;EAAC,WAAU;EAAgB;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAQ,QAAO;GAAG,UAAS,EAAE;GAAM;EAAC,WAAU;EAAQ;CAAC;EAAC,SAAQ;GAAC,MAAK;GAAc,QAAO;GAAG,UAAS,EAAE;GAAa;EAAC,WAAU;EAAc;CAAC,EAAC,MAAG,MAAG;CAAO,IAAI,IAAK,GAAiB,YAAkB;AAAW,QAAO,GAAG,QAAQ,EAAC,SAAQ,GAAE,WAAU,QAAK,EAAE,SAAO,UAAQ,EAAE,GAAiB,MAAM,IAAE,EAAE,GAAiB,OAAO,GAAC,EAAE,SAAO,gBAAc,GAAG,GAAiB,YAAY,GAAC,EAAE,IAAiB,GAAG,CAAC,CAAC,KAAK,EAAC,SAAQ,GAAE,aAAY,QAAK,EAAE,SAAO,UAAQ;EAAC,SAAQ,EAAE3B,EAAE,EAAE,EAAC,EAAE,EAAC,EAAC,SAAO,MAAG8B,GAAE,GAAE,EAAE,EAAC,CAAC;EAAC,aAAY,MAAI,aAAW,IAAE,KAAK;EAAE,GAAC;EAAC,SAAQ;EAAE,aAAY;EAAE,CAAC;GAAwdC,MAAld,GAAE,MAAI;AAAO,KAAG,CAAC,KAAG,OAAO,KAAG,SAAS,QAAO;CAAE,IAAI,IAAE,EAAE,SAAS,IAAI,IAAE,CAAC,EAAE,SAAS,KAAK,GAAC,EAAE,MAAM,GAAE,GAAG,GAAC,GAAE,IAAE,GAAG,EAAE,EAAC,KAAM,GAAiB,YAAkB,EAAE,EAAE,KAAI,OAAiB;EAAC,SAAQ,EAAE/B,EAAE,EAAE,EAAC,EAAE,EAAC,EAAC,UAAY,EAAE,YAAkB,EAAE,SAAQ,CAAC;EAAC,aAAY,KAAK;EAAE,EAAE,EAAC,IAAE,CAAC,GAAG,GAAE,GAAG,EAAE,CAAC,MAAM,GAAE,OAAwB,EAAE,QAAQ,YAAkB,MAAO,EAAE,QAAQ,YAAkB,GAAI;AAAC,MAAI,IAAG,EAAC,SAAQ,GAAE,aAAY,OAAK,EAAE,KAAG,IAAE,EAAE,OAAO,EAAE,EAAC,KAAG,QAAM,EAAE,EAAE,CAAC,QAAO;AAAE,QAAO;;;;ACTlgG,SAAS,IAAG;AAAC,QAAM;EAAC,OAAM,CAAC;EAAE,QAAO,CAAC;EAAE,YAAW;EAAK,KAAI,CAAC;EAAE,OAAM;EAAK,UAAS,CAAC;EAAE,UAAS;EAAK,QAAO,CAAC;EAAE,WAAU;EAAK,YAAW;EAAK;;AAAC,IAAI,IAAE,GAAG;AAAC,SAAS,GAAE,GAAE;AAAC,KAAE;;AAAE,IAAI,IAAE,EAAC,YAAS,MAAK;AAAC,SAAS,EAAE,GAAE,IAAE,IAAG;CAAC,IAAI,IAAE,OAAO,KAAG,WAAS,IAAE,EAAE,QAAO,IAAE;EAAC,UAAS,GAAE,MAAI;GAAC,IAAI,IAAE,OAAO,KAAG,WAAS,IAAE,EAAE;AAAO,UAAO,IAAE,EAAE,QAAQ,EAAE,OAAM,KAAK,EAAC,IAAE,EAAE,QAAQ,GAAE,EAAE,EAAC;;EAAG,gBAAa,IAAI,OAAO,GAAE,EAAE;EAAC;AAAC,QAAO;;AAAE,IAAI,OAAK,IAAE,OAAK;AAAC,KAAG;AAAC,SAAM,CAAC,CAAK,OAAO,iBAAe,EAAE;SAAM;AAAC,SAAM,CAAC;;IAAM,EAAC,IAAE;CAAC,kBAAiB;CAAyB,mBAAkB;CAAc,wBAAuB;CAAgB,gBAAe;CAAO,YAAW;CAAK,mBAAkB;CAAK,iBAAgB;CAAK,cAAa;CAAO,mBAAkB;CAAM,eAAc;CAAM,qBAAoB;CAAO,WAAU;CAAW,iBAAgB;CAAoB,iBAAgB;CAAW,yBAAwB;CAAiC,0BAAyB;CAAmB,oBAAmB;CAA0B,YAAW;CAAiB,iBAAgB;CAAe,kBAAiB;CAAY,SAAQ;CAAS,cAAa;CAAW,gBAAe;CAAO,iBAAgB;CAAa,mBAAkB;CAAY,iBAAgB;CAAY,kBAAiB;CAAa,gBAAe;CAAY,WAAU;CAAQ,SAAQ;CAAU,mBAAkB;CAAiC,iBAAgB;CAAmC,mBAAkB;CAAK,iBAAgB;CAAK,mBAAkB;CAAgC,qBAAoB;CAAgB,YAAW;CAAU,eAAc;CAAW,oBAAmB;CAAoD,uBAAsB;CAAqD,OAAM;CAAe,eAAc;CAAO,UAAS;CAAM,WAAU;CAAM,WAAU;CAAQ,gBAAe;CAAW,WAAU;CAAS,eAAc;CAAO,eAAc;CAAM,gBAAc,MAAO,OAAO,WAAW,EAAE,8BAA8B;CAAC,kBAAgB,MAAO,OAAO,QAAQ,KAAK,IAAI,GAAE,IAAE,EAAE,CAAC,oDAAoD;CAAC,UAAQ,MAAO,OAAO,QAAQ,KAAK,IAAI,GAAE,IAAE,EAAE,CAAC,oDAAoD;CAAC,mBAAiB,MAAO,OAAO,QAAQ,KAAK,IAAI,GAAE,IAAE,EAAE,CAAC,iBAAiB;CAAC,oBAAkB,MAAO,OAAO,QAAQ,KAAK,IAAI,GAAE,IAAE,EAAE,CAAC,IAAI;CAAC,iBAAe,MAAO,OAAO,QAAQ,KAAK,IAAI,GAAE,IAAE,EAAE,CAAC,qBAAoB,IAAI;CAAC,uBAAqB,MAAO,OAAO,QAAQ,KAAK,IAAI,GAAE,IAAE,EAAE,CAAC,IAAI;CAAC,EAAC,KAAG,wBAAuB,KAAG,yDAAwD,KAAG,+GAA8G,IAAE,sEAAqE,KAAG,wCAAuC,IAAE,+BAA8B,KAAG,kKAAiK,KAAG,EAAE,GAAG,CAAC,QAAQ,SAAQ,EAAE,CAAC,QAAQ,cAAa,oBAAoB,CAAC,QAAQ,WAAU,wBAAwB,CAAC,QAAQ,eAAc,UAAU,CAAC,QAAQ,YAAW,eAAe,CAAC,QAAQ,SAAQ,oBAAoB,CAAC,QAAQ,YAAW,GAAG,CAAC,UAAU,EAAC,KAAG,EAAE,GAAG,CAAC,QAAQ,SAAQ,EAAE,CAAC,QAAQ,cAAa,oBAAoB,CAAC,QAAQ,WAAU,wBAAwB,CAAC,QAAQ,eAAc,UAAU,CAAC,QAAQ,YAAW,eAAe,CAAC,QAAQ,SAAQ,oBAAoB,CAAC,QAAQ,UAAS,oCAAoC,CAAC,UAAU,EAAC,IAAE,wFAAuF,KAAG,WAAU,IAAE,oCAAmC,KAAG,EAAE,8GAA8G,CAAC,QAAQ,SAAQ,EAAE,CAAC,QAAQ,SAAQ,+DAA+D,CAAC,UAAU,EAAC,KAAG,EAAE,iCAAiC,CAAC,QAAQ,SAAQ,EAAE,CAAC,UAAU,EAAC,IAAE,iWAAgW,KAAE,iCAAgC,KAAG,EAAE,6dAA4d,IAAI,CAAC,QAAQ,WAAU,GAAE,CAAC,QAAQ,OAAM,EAAE,CAAC,QAAQ,aAAY,2EAA2E,CAAC,UAAU,EAAC,KAAG,EAAE,EAAE,CAAC,QAAQ,MAAK,EAAE,CAAC,QAAQ,WAAU,wBAAwB,CAAC,QAAQ,aAAY,GAAG,CAAC,QAAQ,UAAS,GAAG,CAAC,QAAQ,cAAa,UAAU,CAAC,QAAQ,UAAS,iDAAiD,CAAC,QAAQ,QAAO,8BAA8B,CAAC,QAAQ,QAAO,8DAA8D,CAAC,QAAQ,OAAM,EAAE,CAAC,UAAU,EAAoF,KAAE;CAAC,YAAnF,EAAE,0CAA0C,CAAC,QAAQ,aAAY,GAAG,CAAC,UAA2B;CAAC,MAAK;CAAG,KAAI;CAAG,QAAO;CAAG,SAAQ;CAAG,IAAG;CAAE,MAAK;CAAG,UAAS;CAAG,MAAK;CAAG,SAAQ;CAAG,WAAU;CAAG,OAAM;CAAE,MAAK;CAAG,EAAC,KAAG,EAAE,8JAA8J,CAAC,QAAQ,MAAK,EAAE,CAAC,QAAQ,WAAU,wBAAwB,CAAC,QAAQ,cAAa,UAAU,CAAC,QAAQ,QAAO,yBAAyB,CAAC,QAAQ,UAAS,iDAAiD,CAAC,QAAQ,QAAO,8BAA8B,CAAC,QAAQ,QAAO,8DAA8D,CAAC,QAAQ,OAAM,EAAE,CAAC,UAAU,EAAC,KAAG;CAAC,GAAG;CAAE,UAAS;CAAG,OAAM;CAAG,WAAU,EAAE,EAAE,CAAC,QAAQ,MAAK,EAAE,CAAC,QAAQ,WAAU,wBAAwB,CAAC,QAAQ,aAAY,GAAG,CAAC,QAAQ,SAAQ,GAAG,CAAC,QAAQ,cAAa,UAAU,CAAC,QAAQ,UAAS,iDAAiD,CAAC,QAAQ,QAAO,8BAA8B,CAAC,QAAQ,QAAO,8DAA8D,CAAC,QAAQ,OAAM,EAAE,CAAC,UAAU;CAAC,EAAC,KAAG;CAAC,GAAG;CAAE,MAAK,EAAE,6IAAyI,CAAC,QAAQ,WAAU,GAAE,CAAC,QAAQ,QAAO,oKAAoK,CAAC,UAAU;CAAC,KAAI;CAAoE,SAAQ;CAAyB,QAAO;CAAE,UAAS;CAAmC,WAAU,EAAE,EAAE,CAAC,QAAQ,MAAK,EAAE,CAAC,QAAQ,WAAU,kBACt3N,CAAC,QAAQ,YAAW,GAAG,CAAC,QAAQ,UAAS,GAAG,CAAC,QAAQ,cAAa,UAAU,CAAC,QAAQ,WAAU,GAAG,CAAC,QAAQ,SAAQ,GAAG,CAAC,QAAQ,SAAQ,GAAG,CAAC,QAAQ,QAAO,GAAG,CAAC,UAAU;CAAC,EAAC,KAAG,+CAA8C,KAAG,uCAAsC,KAAG,yBAAwB,KAAG,+EAA8E,IAAE,iBAAgB,IAAE,mBAAkB,KAAE,oBAAmB,KAAG,EAAE,yBAAwB,IAAI,CAAC,QAAQ,eAAc,EAAE,CAAC,UAAU,EAAC,KAAG,sBAAqB,KAAG,wBAAuB,KAAG,0BAAyB,KAAG,EAAE,0BAAyB,IAAI,CAAC,QAAQ,QAAO,oGAAoG,CAAC,QAAQ,YAAW,KAAG,aAAW,YAAY,CAAC,QAAQ,QAAO,0BAA0B,CAAC,QAAQ,QAAO,iBAAiB,CAAC,UAAU,EAAC,KAAG,qEAAoE,KAAG,EAAE,IAAG,IAAI,CAAC,QAAQ,UAAS,EAAE,CAAC,UAAU,EAAC,KAAG,EAAE,IAAG,IAAI,CAAC,QAAQ,UAAS,GAAG,CAAC,UAAU,EAAC,KAAG,yQAAwQ,KAAG,EAAE,IAAG,KAAK,CAAC,QAAQ,kBAAiB,GAAE,CAAC,QAAQ,eAAc,EAAE,CAAC,QAAQ,UAAS,EAAE,CAAC,UAAU,EAAC,KAAG,EAAE,IAAG,KAAK,CAAC,QAAQ,kBAAiB,GAAG,CAAC,QAAQ,eAAc,GAAG,CAAC,QAAQ,UAAS,GAAG,CAAC,UAAU,EAAC,KAAG,EAAE,oNAAmN,KAAK,CAAC,QAAQ,kBAAiB,GAAE,CAAC,QAAQ,eAAc,EAAE,CAAC,QAAQ,UAAS,EAAE,CAAC,UAAU,EAAC,KAAG,EAAE,+BAA8B,IAAI,CAAC,QAAQ,UAAS,EAAE,CAAC,UAAU,EAAyN,KAAG,EAAE,sNAAG,KAAK,CAAC,QAAQ,kBAAiB,GAAE,CAAC,QAAQ,eAAc,EAAE,CAAC,QAAQ,UAAS,EAAE,CAAC,UAAU,EAAC,KAAG,EAAE,aAAY,KAAK,CAAC,QAAQ,UAAS,EAAE,CAAC,UAAU,EAAC,KAAG,EAAE,sCAAsC,CAAC,QAAQ,UAAS,+BAA+B,CAAC,QAAQ,SAAQ,+IAA+I,CAAC,UAAU,EAAC,KAAG,EAAE,GAAE,CAAC,QAAQ,aAAY,MAAM,CAAC,UAAU,EAAC,KAAG,EAAE,2JAA2J,CAAC,QAAQ,WAAU,GAAG,CAAC,QAAQ,aAAY,8EAA8E,CAAC,UAAU,EAAC,IAAE,wFAAuF,KAAG,EAAE,6EAA6E,CAAC,QAAQ,SAAQ,EAAE,CAAC,QAAQ,QAAO,0CAA0C,CAAC,QAAQ,SAAQ,8DAA8D,CAAC,UAAU,EAAC,KAAG,EAAE,0BAA0B,CAAC,QAAQ,SAAQ,EAAE,CAAC,QAAQ,OAAM,EAAE,CAAC,UAAU,EAAC,KAAG,EAAE,wBAAwB,CAAC,QAAQ,OAAM,EAAE,CAAC,UAAU,EAAC,KAAG,EAAE,yBAAwB,IAAI,CAAC,QAAQ,WAAU,GAAG,CAAC,QAAQ,UAAS,GAAG,CAAC,UAAU,EAAC,KAAG,sCAAqC,KAAE;CAAC,YAAW;CAAE,gBAAe;CAAG,UAAS;CAAG,WAAU;CAAG,IAAG;CAAG,MAAK;CAAG,KAAI;CAAE,WAAU;CAAE,WAAU;CAAE,gBAAe;CAAG,mBAAkB;CAAG,mBAAkB;CAAG,QAAO;CAAG,MAAK;CAAG,QAAO;CAAG,aAAY;CAAG,SAAQ;CAAG,eAAc;CAAG,KAAI;CAAG,MAAK;CAAG,KAAI;CAAE,EAAC,KAAG;CAAC,GAAG;CAAE,MAAK,EAAE,0BAA0B,CAAC,QAAQ,SAAQ,EAAE,CAAC,UAAU;CAAC,SAAQ,EAAE,gCAAgC,CAAC,QAAQ,SAAQ,EAAE,CAAC,UAAU;CAAC,EAAC,KAAE;CAAC,GAAG;CAAE,mBAAkB;CAAG,gBAAe;CAAG,WAAU;CAAG,WAAU;CAAG,KAAI,EAAE,iEAAiE,CAAC,QAAQ,YAAW,GAAG,CAAC,QAAQ,SAAQ,4EAA4E,CAAC,UAAU;CAAC,YAAW;CAA6E,KAAI;CAA0E,MAAK,EAAE,sNAAsN,CAAC,QAAQ,YAAW,GAAG,CAAC,UAAU;CAAC,EAAC,KAAG;CAAC,GAAG;CAAE,IAAG,EAAE,GAAG,CAAC,QAAQ,QAAO,IAAI,CAAC,UAAU;CAAC,MAAK,EAAE,GAAE,KAAK,CAAC,QAAQ,QAAO,gBAAgB,CAAC,QAAQ,WAAU,IAAI,CAAC,UAAU;CAAC,EAAC,IAAE;CAAC,QAAO;CAAE,KAAI;CAAG,UAAS;CAAG,EAAC,IAAE;CAAC,QAAO;CAAE,KAAI;CAAE,QAAO;CAAG,UAAS;CAAG,EAAK,KAAG;CAAC,KAAI;CAAQ,KAAI;CAAO,KAAI;CAAO,MAAI;CAAS,KAAI;CAAQ,EAAC,MAAG,MAAG,GAAG;AAAG,SAAS,EAAE,GAAE,GAAE;AAAC,KAAG;MAAM,EAAE,WAAW,KAAK,EAAE,CAAC,QAAO,EAAE,QAAQ,EAAE,eAAc,GAAG;YAAS,EAAE,mBAAmB,KAAK,EAAE,CAAC,QAAO,EAAE,QAAQ,EAAE,uBAAsB,GAAG;AAAC,QAAO;;AAAE,SAAS,GAAE,GAAE;AAAC,KAAG;AAAC,MAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,eAAc,IAAI;SAAM;AAAC,SAAO;;AAAK,QAAO;;AAAE,SAAS,GAAE,GAAE,GAAE;CAAC,IAAqG,IAA/F,EAAE,QAAQ,EAAE,WAAU,GAAE,GAAE,MAAI;EAAC,IAAI,IAAE,CAAC,GAAE,IAAE;AAAE,SAAK,EAAE,KAAG,KAAG,EAAE,OAAK,MAAM,KAAE,CAAC;AAAE,SAAO,IAAE,MAAI;GAAU,CAAC,MAAM,EAAE,UAAU,EAAC,IAAE;AAAE,KAAG,EAAE,GAAG,MAAM,IAAE,EAAE,OAAO,EAAC,EAAE,SAAO,KAAG,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,IAAE,EAAE,KAAK,EAAC,EAAE,KAAG,EAAE,SAAO,EAAE,GAAE,OAAO,EAAE;KAAM,QAAK,EAAE,SAAO,GAAG,GAAE,KAAK,GAAG;AAAC,QAAK,IAAE,EAAE,QAAO,IAAI,GAAE,KAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,WAAU,IAAI;AAAC,QAAO;;AAAE,SAAS,EAAE,GAAE,GAAE,GAAE;CAAC,IAAI,IAAE,EAAE;AAAO,KAAG,MAAI,EAAE,QAAM;CAAG,IAAI,IAAE;AAAE,QAAK,IAAE,IAAG;EAAC,IAAI,IAAE,EAAE,OAAO,IAAE,IAAE,EAAE;AAAC,MAAG,MAAI,KAAG,CAAC,EAAE;WAAY,MAAI,KAAG,EAAE;MAAS;;AAAM,QAAO,EAAE,MAAM,GAAE,IAAE,EAAE;;AAAC,SAAS,GAAE,GAAE;CAAC,IAAI,IAAE,EAAE,MAAM,KAC9+K,EAAC,IAAE,EAAE,SAAO;AAAE,QAAK,KAAG,KAAG,EAAE,UAAU,KAAK,EAAE,GAAG,EAAE;AAAI,QAAO,EAAE,SAAO,KAAG,IAAE,IAAE,EAAE,MAAM,GAAE,IAAE,EAAE,CAAC,KAAK,KAChG;;AAAC,SAAS,GAAG,GAAE,GAAE;AAAC,KAAG,EAAE,QAAQ,EAAE,GAAG,KAAG,GAAG,QAAM;CAAG,IAAI,IAAE;AAAE,MAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,KAAG,EAAE,OAAK,KAAK;UAAY,EAAE,OAAK,EAAE,GAAG;UAAY,EAAE,OAAK,EAAE,OAAK,KAAI,IAAE,GAAG,QAAO;AAAE,QAAO,IAAE,IAAE,KAAG;;AAAG,SAAS,GAAG,GAAE,IAAE,GAAE;CAAC,IAAI,IAAE,GAAE,IAAE;AAAG,MAAI,IAAI,KAAK,EAAE,KAAG,MAAI,KAAI;EAAC,IAAI,IAAE,IAAE,IAAE;AAAE,OAAG,IAAI,OAAO,EAAE,EAAC,KAAG;OAAO,MAAG,GAAE;AAAI,QAAO;;AAAE,SAAS,GAAG,GAAE,GAAE,GAAE,GAAE,GAAE;CAAC,IAAI,IAAE,EAAE,MAAK,IAAE,EAAE,SAAO,MAAK,IAAE,EAAE,GAAG,QAAQ,EAAE,MAAM,mBAAkB,KAAK;AAAC,GAAE,MAAM,SAAO,CAAC;CAAE,IAAI,IAAE;EAAC,MAAK,EAAE,GAAG,OAAO,EAAE,KAAG,MAAI,UAAQ;EAAO,KAAI;EAAE,MAAK;EAAE,OAAM;EAAE,MAAK;EAAE,QAAO,EAAE,aAAa,EAAE;EAAC;AAAC,QAAO,EAAE,MAAM,SAAO,CAAC,GAAE;;AAAE,SAAS,GAAG,GAAE,GAAE,GAAE;CAAC,IAAI,IAAE,EAAE,MAAM,EAAE,MAAM,uBAAuB;AAAC,KAAG,MAAI,KAAK,QAAO;CAAE,IAAI,IAAE,EAAE;AAAG,QAAO,EAAE,MAAM,KACppB,CAAC,KAAI,MAAG;EAAC,IAAI,IAAE,EAAE,MAAM,EAAE,MAAM,eAAe;AAAC,MAAG,MAAI,KAAK,QAAO;EAAE,IAAG,CAAC,KAAG;AAAE,SAAO,EAAE,UAAQ,EAAE,SAAO,EAAE,MAAM,EAAE,OAAO,GAAC;GAAG,CAAC,KAAK,KAClI;;AAAC,IAAI,IAAE,MAAK;CAAC;CAAQ;CAAM;CAAM,YAAY,GAAE;AAAC,OAAK,UAAQ,KAAG;;CAAE,MAAM,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,QAAQ,KAAK,EAAE;AAAC,MAAG,KAAG,EAAE,GAAG,SAAO,EAAE,QAAM;GAAC,MAAK;GAAQ,KAAI,EAAE;GAAG;;CAAC,KAAK,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,KAAK,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,KAAK,QAAQ,WAAS,EAAE,KAAG,GAAE,EAAE,GAAG;AAAmD,UAAM;IAAC,MAAK;IAAO,KAAI;IAAE,gBAAe;IAAW,MAAnG,EAAE,QAAQ,KAAK,MAAM,MAAM,kBAAiB,GAA6D;IAAC;;;CAAE,OAAO,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,OAAO,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,EAAE,IAAG,IAAE,GAAG,GAAE,EAAE,MAAI,IAAG,KAAK,MAAM;AAAC,UAAM;IAAC,MAAK;IAAO,KAAI;IAAE,MAAK,EAAE,KAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,OAAO,gBAAe,KAAK,GAAC,EAAE;IAAG,MAAK;IAAE;;;CAAE,QAAQ,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,QAAQ,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,EAAE,GAAG,MAAM;AAAC,OAAG,KAAK,MAAM,MAAM,WAAW,KAAK,EAAE,EAAC;IAAC,IAAI,IAAE,EAAE,GAAE,IAAI;AAAC,KAAC,KAAK,QAAQ,YAAU,CAAC,KAAG,KAAK,MAAM,MAAM,gBAAgB,KAAK,EAAE,MAAI,IAAE,EAAE,MAAM;;AAAE,UAAM;IAAC,MAAK;IAAU,KAAI,EAAE,EAAE,IAAG,KAC5yB;IAAC,OAAM,EAAE,GAAG;IAAO,MAAK;IAAE,QAAO,KAAK,MAAM,OAAO,EAAE;IAAC;;;CAAE,GAAG,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,GAAG,KAAK,EAAE;AAAC,MAAG,EAAE,QAAM;GAAC,MAAK;GAAK,KAAI,EAAE,EAAE,IAAG,KACjI;GAAC;;CAAC,WAAW,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,WAAW,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,EAAE,EAAE,IAAG,KAC7E,CAAC,MAAM,KACP,EAAC,IAAE,IAAG,IAAE,IAAG,IAAE,EAAE;AAAC,UAAK,EAAE,SAAO,IAAG;IAAC,IAAI,IAAE,CAAC,GAAE,IAAE,EAAE,EAAC;AAAE,SAAI,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,KAAG,KAAK,MAAM,MAAM,gBAAgB,KAAK,EAAE,GAAG,CAAC,GAAE,KAAK,EAAE,GAAG,EAAC,IAAE,CAAC;aAAU,CAAC,EAAE,GAAE,KAAK,EAAE,GAAG;QAAM;AAAM,QAAE,EAAE,MAAM,EAAE;IAAC,IAAI,IAAE,EAAE,KAAK,KACvM,EAAC,IAAE,EAAE,QAAQ,KAAK,MAAM,MAAM,yBAAwB,WAChD,CAAC,QAAQ,KAAK,MAAM,MAAM,0BAAyB,GAAG;AAAC,QAAE,IAAE,GAAG,EAAE;EACtE,MAAI,GAAE,IAAE,IAAE,GAAG,EAAE;EACf,MAAI;IAAE,IAAI,IAAE,KAAK,MAAM,MAAM;AAAI,QAAG,KAAK,MAAM,MAAM,MAAI,CAAC,GAAE,KAAK,MAAM,YAAY,GAAE,GAAE,CAAC,EAAE,EAAC,KAAK,MAAM,MAAM,MAAI,GAAE,EAAE,WAAS,EAAE;IAAM,IAAI,IAAE,EAAE,GAAG,GAAG;AAAC,QAAG,GAAG,SAAO,OAAO;AAAM,QAAG,GAAG,SAAO,cAAa;KAAC,IAAI,IAAE,GAAE,IAAE,EAAE,MAAI,OACzN,EAAE,KAAK,KACP,EAAC,IAAE,KAAK,WAAW,EAAE;AAAC,OAAE,EAAE,SAAO,KAAG,GAAE,IAAE,EAAE,UAAU,GAAE,EAAE,SAAO,EAAE,IAAI,OAAO,GAAC,EAAE,KAAI,IAAE,EAAE,UAAU,GAAE,EAAE,SAAO,EAAE,KAAK,OAAO,GAAC,EAAE;AAAK;eAAc,GAAG,SAAO,QAAO;KAAC,IAAI,IAAE,GAAE,IAAE,EAAE,MAAI,OAClL,EAAE,KAAK,KACP,EAAC,IAAE,KAAK,KAAK,EAAE;AAAC,OAAE,EAAE,SAAO,KAAG,GAAE,IAAE,EAAE,UAAU,GAAE,EAAE,SAAO,EAAE,IAAI,OAAO,GAAC,EAAE,KAAI,IAAE,EAAE,UAAU,GAAE,EAAE,SAAO,EAAE,IAAI,OAAO,GAAC,EAAE,KAAI,IAAE,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KACnK;AAAC;;;AAAU,UAAM;IAAC,MAAK;IAAa,KAAI;IAAE,QAAO;IAAE,MAAK;IAAE;;;CAAE,KAAK,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,KAAK,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,EAAE,GAAG,MAAM,EAAC,IAAE,EAAE,SAAO,GAAE,IAAE;IAAC,MAAK;IAAO,KAAI;IAAG,SAAQ;IAAE,OAAM,IAAE,CAAC,EAAE,MAAM,GAAE,GAAG,GAAC;IAAG,OAAM,CAAC;IAAE,OAAM,EAAE;IAAC;AAAC,OAAE,IAAE,aAAa,EAAE,MAAM,GAAG,KAAG,KAAK,KAAI,KAAK,QAAQ,aAAW,IAAE,IAAE,IAAE;GAAS,IAAI,IAAE,KAAK,MAAM,MAAM,cAAc,EAAE,EAAC,IAAE,CAAC;AAAE,UAAK,IAAG;IAAC,IAAI,IAAE,CAAC,GAAE,IAAE,IAAG,IAAE;AAAG,QAAG,EAAE,IAAE,EAAE,KAAK,EAAE,KAAG,KAAK,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;AAAM,QAAE,EAAE,IAAG,IAAE,EAAE,UAAU,EAAE,OAAO;IAAC,IAAI,IAAE,GAAG,EAAE,GAAG,MAAM,MAC1d,EAAE,CAAC,IAAG,EAAE,GAAG,OAAO,EAAC,IAAE,EAAE,MAAM,MAC7B,EAAE,CAAC,IAAG,IAAE,CAAC,EAAE,MAAM,EAAC,IAAE;AAAE,QAAG,KAAK,QAAQ,YAAU,IAAE,GAAE,IAAE,EAAE,WAAW,IAAE,IAAE,IAAE,EAAE,GAAG,SAAO,KAAG,IAAE,EAAE,OAAO,KAAK,MAAM,MAAM,aAAa,EAAC,IAAE,IAAE,IAAE,IAAE,GAAE,IAAE,EAAE,MAAM,EAAE,EAAC,KAAG,EAAE,GAAG,SAAQ,KAAG,KAAK,MAAM,MAAM,UAAU,KAAK,EAAE,KAAG,KAAG,IAAE,MACtN,IAAE,EAAE,UAAU,EAAE,SAAO,EAAE,EAAC,IAAE,CAAC,IAAG,CAAC,GAAE;KAAC,IAAI,IAAE,KAAK,MAAM,MAAM,gBAAgB,EAAE,EAAC,IAAG,KAAK,MAAM,MAAM,QAAQ,EAAE,EAAC,IAAG,KAAK,MAAM,MAAM,iBAAiB,EAAE,EAAC,IAAG,KAAK,MAAM,MAAM,kBAAkB,EAAE,EAAC,IAAG,KAAK,MAAM,MAAM,eAAe,EAAE,EAAC,KAAG,KAAK,MAAM,MAAM,qBAAqB,EAAE;AAAC,YAAK,IAAG;MAAC,IAAI,IAAE,EAAE,MAAM,MACvS,EAAE,CAAC,IAAG;AAAE,UAAG,IAAE,GAAE,KAAK,QAAQ,YAAU,IAAE,EAAE,QAAQ,KAAK,MAAM,MAAM,oBAAmB,KAAK,EAAC,IAAE,KAAG,IAAE,EAAE,QAAQ,KAAK,MAAM,MAAM,eAAc,OAAO,EAAC,EAAG,KAAK,EAAE,IAAE,EAAG,KAAK,EAAE,IAAE,EAAG,KAAK,EAAE,IAAE,GAAG,KAAK,EAAE,IAAE,EAAE,KAAK,EAAE,IAAE,EAAG,KAAK,EAAE,CAAC;AAAM,UAAG,EAAE,OAAO,KAAK,MAAM,MAAM,aAAa,IAAE,KAAG,CAAC,EAAE,MAAM,CAAC,MAAG,OAC5R,EAAE,MAAM,EAAE;WAAK;AAAC,WAAG,KAAG,EAAE,QAAQ,KAAK,MAAM,MAAM,eAAc,OAAO,CAAC,OAAO,KAAK,MAAM,MAAM,aAAa,IAAE,KAAG,EAAG,KAAK,EAAE,IAAE,EAAG,KAAK,EAAE,IAAE,EAAG,KAAK,EAAE,CAAC;AAAM,YAAG,OAC7J;;AAAE,UAAE,CAAC,EAAE,MAAM,EAAC,KAAG,IAAE,MACnB,IAAE,EAAE,UAAU,EAAE,SAAO,EAAE,EAAC,IAAE,EAAE,MAAM,EAAE;;;AAAE,MAAE,UAAQ,IAAE,EAAE,QAAM,CAAC,IAAE,KAAK,MAAM,MAAM,gBAAgB,KAAK,EAAE,KAAG,IAAE,CAAC,KAAI,EAAE,MAAM,KAAK;KAAC,MAAK;KAAY,KAAI;KAAE,MAAK,CAAC,CAAC,KAAK,QAAQ,OAAK,KAAK,MAAM,MAAM,WAAW,KAAK,EAAE;KAAC,OAAM,CAAC;KAAE,MAAK;KAAE,QAAO,EAAE;KAAC,CAAC,EAAC,EAAE,OAAK;;GAAE,IAAI,IAAE,EAAE,MAAM,GAAG,GAAG;AAAC,OAAG,EAAE,GAAE,MAAI,EAAE,IAAI,SAAS,EAAC,EAAE,OAAK,EAAE,KAAK,SAAS;OAAM;AAAO,KAAE,MAAI,EAAE,IAAI,SAAS;AAAC,QAAI,IAAI,KAAK,EAAE,OAAM;AAAC,SAAK,MAAM,MAAM,MAAI,CAAC,GAAE,EAAE,SAAO,KAAK,MAAM,YAAY,EAAE,MAAK,EAAE,CAAC;IAAC,IAAI,IAAE,EAAE,OAAO;AAAG,QAAG,EAAE,SAAO,GAAG,SAAO,UAAQ,GAAG,SAAO,cAAa;AAAC,OAAE,OAAK,EAAE,KAAK,QAAQ,KAAK,MAAM,MAAM,iBAAgB,GAAG,EAAC,EAAE,MAAI,EAAE,IAAI,QAAQ,KAAK,MAAM,MAAM,iBAAgB,GAAG,EAAC,EAAE,OAAK,EAAE,KAAK,QAAQ,KAAK,MAAM,MAAM,iBAAgB,GAAG;AAAC,UAAI,IAAI,IAAE,KAAK,MAAM,YAAY,SAAO,GAAE,KAAG,GAAE,IAAI,KAAG,KAAK,MAAM,MAAM,WAAW,KAAK,KAAK,MAAM,YAAY,GAAG,IAAI,EAAC;AAAC,WAAK,MAAM,YAAY,GAAG,MAAI,KAAK,MAAM,YAAY,GAAG,IAAI,QAAQ,KAAK,MAAM,MAAM,iBAAgB,GAAG;AAAC;;KAAM,IAAI,IAAE,KAAK,MAAM,MAAM,iBAAiB,KAAK,EAAE,IAAI;AAAC,SAAG,GAAE;MAAC,IAAI,IAAE;OAAC,MAAK;OAAW,KAAI,EAAE,KAAG;OAAI,SAAQ,EAAE,OAAK;OAAM;AAAC,QAAE,UAAQ,EAAE,SAAQ,EAAE,QAAM,EAAE,OAAO,MAAI,CAAC,aAAY,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,KAAK,IAAE,YAAW,EAAE,OAAO,MAAI,EAAE,OAAO,GAAG,UAAQ,EAAE,OAAO,GAAG,MAAI,EAAE,MAAI,EAAE,OAAO,GAAG,KAAI,EAAE,OAAO,GAAG,OAAK,EAAE,MAAI,EAAE,OAAO,GAAG,MAAK,EAAE,OAAO,GAAG,OAAO,QAAQ,EAAE,IAAE,EAAE,OAAO,QAAQ;OAAC,MAAK;OAAY,KAAI,EAAE;OAAI,MAAK,EAAE;OAAI,QAAO,CAAC,EAAE;OAAC,CAAC,GAAC,EAAE,OAAO,QAAQ,EAAE;;UAAO,CAAS,EAAE,SAAK,CAAC;AAAG,QAAG,CAAC,EAAE,OAAM;KAAC,IAAI,IAAE,EAAE,OAAO,QAAO,MAAG,EAAE,SAAO,QAAQ;AAA+D,OAAE,QAA9D,EAAE,SAAO,KAAG,EAAE,MAAK,MAAG,KAAK,MAAM,MAAM,QAAQ,KAAK,EAAE,IAAI,CAAC;;;AAAY,OAAG,EAAE,MAAM,MAAI,IAAI,KAAK,EAAE,OAAM;AAAC,MAAE,QAAM,CAAC;AAAE,SAAI,IAAI,KAAK,EAAE,OAAO,GAAE,SAAO,WAAS,EAAE,OAAK;;AAAa,UAAO;;;CAAG,KAAK,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,KAAK,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,GAAE,EAAE,GAAG;AAAC,UAAM;IAAC,MAAK;IAAO,OAAM,CAAC;IAAE,KAAI;IAAE,KAAI,EAAE,OAAK,SAAO,EAAE,OAAK,YAAU,EAAE,OAAK;IAAQ,MAAK;IAAE;;;CAAE,IAAI,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,EAAE,GAAG,aAAa,CAAC,QAAQ,KAAK,MAAM,MAAM,qBAAoB,IAAI,EAAC,IAAE,EAAE,KAAG,EAAE,GAAG,QAAQ,KAAK,MAAM,MAAM,cAAa,KAAK,CAAC,QAAQ,KAAK,MAAM,OAAO,gBAAe,KAAK,GAAC,IAAG,IAAE,EAAE,KAAG,EAAE,GAAG,UAAU,GAAE,EAAE,GAAG,SAAO,EAAE,CAAC,QAAQ,KAAK,MAAM,OAAO,gBAAe,KAAK,GAAC,EAAE;AAAG,UAAM;IAAC,MAAK;IAAM,KAAI;IAAE,KAAI,EAAE,EAAE,IAAG,KACrmE;IAAC,MAAK;IAAE,OAAM;IAAE;;;CAAE,MAAM,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,MAAM,KAAK,EAAE;AAAC,MAAG,CAAC,KAAG,CAAC,KAAK,MAAM,MAAM,eAAe,KAAK,EAAE,GAAG,CAAC;EAAO,IAAI,IAAE,GAAE,EAAE,GAAG,EAAC,IAAE,EAAE,GAAG,QAAQ,KAAK,MAAM,MAAM,iBAAgB,GAAG,CAAC,MAAM,IAAI,EAAC,IAAE,EAAE,IAAI,MAAM,GAAC,EAAE,GAAG,QAAQ,KAAK,MAAM,MAAM,mBAAkB,GAAG,CAAC,MAAM,KAChR,GAAC,EAAE,EAAC,IAAE;GAAC,MAAK;GAAQ,KAAI,EAAE,EAAE,IAAG,KAC/B;GAAC,QAAO,EAAE;GAAC,OAAM,EAAE;GAAC,MAAK,EAAE;GAAC;AAAC,MAAG,EAAE,WAAS,EAAE,QAAO;AAAC,QAAI,IAAI,KAAK,EAAE,MAAK,MAAM,MAAM,gBAAgB,KAAK,EAAE,GAAC,EAAE,MAAM,KAAK,QAAQ,GAAC,KAAK,MAAM,MAAM,iBAAiB,KAAK,EAAE,GAAC,EAAE,MAAM,KAAK,SAAS,GAAC,KAAK,MAAM,MAAM,eAAe,KAAK,EAAE,GAAC,EAAE,MAAM,KAAK,OAAO,GAAC,EAAE,MAAM,KAAK,KAAK;AAAC,QAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,GAAE,OAAO,KAAK;IAAC,MAAK,EAAE;IAAG,QAAO,KAAK,MAAM,OAAO,EAAE,GAAG;IAAC,QAAO,CAAC;IAAE,OAAM,EAAE,MAAM;IAAG,CAAC;AAAC,QAAI,IAAI,KAAK,EAAE,GAAE,KAAK,KAAK,GAAE,GAAE,EAAE,OAAO,OAAO,CAAC,KAAK,GAAE,OAAK;IAAC,MAAK;IAAE,QAAO,KAAK,MAAM,OAAO,EAAE;IAAC,QAAO,CAAC;IAAE,OAAM,EAAE,MAAM;IAAG,EAAE,CAAC;AAAC,UAAO;;;CAAG,SAAS,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,SAAS,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,EAAE,GAAG,MAAM;AAAC,UAAM;IAAC,MAAK;IAAU,KAAI,EAAE,EAAE,IAAG,KAC1nB;IAAC,OAAM,EAAE,GAAG,OAAO,EAAE,KAAG,MAAI,IAAE;IAAE,MAAK;IAAE,QAAO,KAAK,MAAM,OAAO,EAAE;IAAC;;;CAAE,UAAU,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,UAAU,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,EAAE,GAAG,OAAO,EAAE,GAAG,SAAO,EAAE,KAAG,OACpK,EAAE,GAAG,MAAM,GAAE,GAAG,GAAC,EAAE;AAAG,UAAM;IAAC,MAAK;IAAY,KAAI,EAAE;IAAG,MAAK;IAAE,QAAO,KAAK,MAAM,OAAO,EAAE;IAAC;;;CAAE,KAAK,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,MAAM,KAAK,KAAK,EAAE;AAAC,MAAG,EAAE,QAAM;GAAC,MAAK;GAAO,KAAI,EAAE;GAAG,MAAK,EAAE;GAAG,QAAO,KAAK,MAAM,OAAO,EAAE,GAAG;GAAC;;CAAC,OAAO,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,OAAO,OAAO,KAAK,EAAE;AAAC,MAAG,EAAE,QAAM;GAAC,MAAK;GAAS,KAAI,EAAE;GAAG,MAAK,EAAE;GAAG;;CAAC,IAAI,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE;AAAC,MAAG,EAAE,QAAM,CAAC,KAAK,MAAM,MAAM,UAAQ,KAAK,MAAM,MAAM,UAAU,KAAK,EAAE,GAAG,GAAC,KAAK,MAAM,MAAM,SAAO,CAAC,IAAE,KAAK,MAAM,MAAM,UAAQ,KAAK,MAAM,MAAM,QAAQ,KAAK,EAAE,GAAG,KAAG,KAAK,MAAM,MAAM,SAAO,CAAC,IAAG,CAAC,KAAK,MAAM,MAAM,cAAY,KAAK,MAAM,MAAM,kBAAkB,KAAK,EAAE,GAAG,GAAC,KAAK,MAAM,MAAM,aAAW,CAAC,IAAE,KAAK,MAAM,MAAM,cAAY,KAAK,MAAM,MAAM,gBAAgB,KAAK,EAAE,GAAG,KAAG,KAAK,MAAM,MAAM,aAAW,CAAC,IAAG;GAAC,MAAK;GAAO,KAAI,EAAE;GAAG,QAAO,KAAK,MAAM,MAAM;GAAO,YAAW,KAAK,MAAM,MAAM;GAAW,OAAM,CAAC;GAAE,MAAK,EAAE;GAAG;;CAAC,KAAK,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,OAAO,KAAK,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,EAAE,GAAG,MAAM;AAAC,OAAG,CAAC,KAAK,QAAQ,YAAU,KAAK,MAAM,MAAM,kBAAkB,KAAK,EAAE,EAAC;AAAC,QAAG,CAAC,KAAK,MAAM,MAAM,gBAAgB,KAAK,EAAE,CAAC;IAAO,IAAI,IAAE,EAAE,EAAE,MAAM,GAAE,GAAG,EAAC,KAAK;AAAC,SAAI,EAAE,SAAO,EAAE,UAAQ,KAAI,EAAE;UAAW;IAAC,IAAI,IAAE,GAAG,EAAE,IAAG,KAAK;AAAC,QAAG,MAAI,GAAG;AAAO,QAAG,IAAE,IAAG;KAAC,IAAI,KAAG,EAAE,GAAG,QAAQ,IAAI,KAAG,IAAE,IAAE,KAAG,EAAE,GAAG,SAAO;AAAE,OAAE,KAAG,EAAE,GAAG,UAAU,GAAE,EAAE,EAAC,EAAE,KAAG,EAAE,GAAG,UAAU,GAAE,EAAE,CAAC,MAAM,EAAC,EAAE,KAAG;;;GAAI,IAAI,IAAE,EAAE,IAAG,IAAE;AAAG,OAAG,KAAK,QAAQ,UAAS;IAAC,IAAI,IAAE,KAAK,MAAM,MAAM,kBAAkB,KAAK,EAAE;AAAC,UAAI,IAAE,EAAE,IAAG,IAAE,EAAE;SAAS,KAAE,EAAE,KAAG,EAAE,GAAG,MAAM,GAAE,GAAG,GAAC;AAAG,UAAO,IAAE,EAAE,MAAM,EAAC,KAAK,MAAM,MAAM,kBAAkB,KAAK,EAAE,KAAG,AAA8E,IAA9E,KAAK,QAAQ,YAAU,CAAC,KAAK,MAAM,MAAM,gBAAgB,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAE,GAAG,GAAE,GAAG,GAAE;IAAC,MAAK,KAAG,EAAE,QAAQ,KAAK,MAAM,OAAO,gBAAe,KAAK;IAAC,OAAM,KAAG,EAAE,QAAQ,KAAK,MAAM,OAAO,gBAAe,KAAK;IAAC,EAAC,EAAE,IAAG,KAAK,OAAM,KAAK,MAAM;;;CAAE,QAAQ,GAAE,GAAE;EAAC,IAAI;AAAE,OAAI,IAAE,KAAK,MAAM,OAAO,QAAQ,KAAK,EAAE,MAAI,IAAE,KAAK,MAAM,OAAO,OAAO,KAAK,EAAE,GAAE;GAAC,IAAqE,IAAE,GAAhE,EAAE,MAAI,EAAE,IAAI,QAAQ,KAAK,MAAM,MAAM,qBAAoB,IAAU,CAAC,aAAa;AAAE,OAAG,CAAC,GAAE;IAAC,IAAI,IAAE,EAAE,GAAG,OAAO,EAAE;AAAC,WAAM;KAAC,MAAK;KAAO,KAAI;KAAE,MAAK;KAAE;;AAAC,UAAO,GAAG,GAAE,GAAE,EAAE,IAAG,KAAK,OAAM,KAAK,MAAM;;;CAAE,SAAS,GAAE,GAAE,IAAE,IAAG;EAAC,IAAI,IAAE,KAAK,MAAM,OAAO,eAAe,KAAK,EAAE;AAAI,SAAC,KAAG,CAAC,EAAE,MAAI,CAAC,EAAE,MAAI,CAAC,EAAE,MAAI,CAAC,EAAE,MAAI,EAAE,MAAI,EAAE,MAAM,KAAK,MAAM,MAAM,oBAAoB,MAAW,EAAE,EAAE,MAAI,EAAE,OAAS,CAAC,KAAG,KAAK,MAAM,OAAO,YAAY,KAAK,EAAE,GAAC;GAAC,IAAI,IAAE,CAAC,GAAG,EAAE,GAAG,CAAC,SAAO,GAAE,GAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,EAAE,GAAG,OAAK,MAAI,KAAK,MAAM,OAAO,oBAAkB,KAAK,MAAM,OAAO;AAAkB,QAAI,EAAE,YAAU,GAAE,IAAE,EAAE,MAAM,KAAG,EAAE,SAAO,EAAE,GAAE,IAAE,EAAE,KAAK,EAAE,MAAI,OAAM;AAAC,QAAG,IAAE,EAAE,MAAI,EAAE,MAAI,EAAE,MAAI,EAAE,MAAI,EAAE,MAAI,EAAE,IAAG,CAAC,EAAE;AAAS,QAAG,IAAE,CAAC,GAAG,EAAE,CAAC,QAAO,EAAE,MAAI,EAAE,IAAG;AAAC,UAAG;AAAE;gBAAkB,EAAE,MAAI,EAAE,OAAK,IAAE,KAAG,GAAG,IAAE,KAAG,IAAG;AAAC,UAAG;AAAE;;AAAS,QAAG,KAAG,GAAE,IAAE,EAAE;AAAS,QAAE,KAAK,IAAI,GAAE,IAAE,IAAE,EAAE;IAAC,IAAI,IAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAO,IAAE,EAAE,MAAM,GAAE,IAAE,EAAE,QAAM,IAAE,EAAE;AAAC,QAAG,KAAK,IAAI,GAAE,EAAE,GAAC,GAAE;KAAC,IAAI,IAAE,EAAE,MAAM,GAAE,GAAG;AAAC,YAAM;MAAC,MAAK;MAAK,KAAI;MAAE,MAAK;MAAE,QAAO,KAAK,MAAM,aAAa,EAAE;MAAC;;IAAC,IAAI,IAAE,EAAE,MAAM,GAAE,GAAG;AAAC,WAAM;KAAC,MAAK;KAAS,KAAI;KAAE,MAAK;KAAE,QAAO,KAAK,MAAM,aAAa,EAAE;KAAC;;;;CAAG,SAAS,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,OAAO,KAAK,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,EAAE,GAAG,QAAQ,KAAK,MAAM,MAAM,mBAAkB,IAAI,EAAC,IAAE,KAAK,MAAM,MAAM,aAAa,KAAK,EAAE,EAAC,IAAE,KAAK,MAAM,MAAM,kBAAkB,KAAK,EAAE,IAAE,KAAK,MAAM,MAAM,gBAAgB,KAAK,EAAE;AAAC,UAAO,KAAG,MAAI,IAAE,EAAE,UAAU,GAAE,EAAE,SAAO,EAAE,GAAE;IAAC,MAAK;IAAW,KAAI,EAAE;IAAG,MAAK;IAAE;;;CAAE,GAAG,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,OAAO,GAAG,KAAK,EAAE;AAAC,MAAG,EAAE,QAAM;GAAC,MAAK;GAAK,KAAI,EAAE;GAAG;;CAAC,IAAI,GAAE,GAAE,IAAE,IAAG;EAAC,IAAI,IAAE,KAAK,MAAM,OAAO,UAAU,KAAK,EAAE;AAAK,YAAY,CAAE,EAAE,MAAS,CAAC,KAAG,KAAK,MAAM,OAAO,YAAY,KAAK,EAAE,GAAC;GAAC,IAAI,IAAE,CAAC,GAAG,EAAE,GAAG,CAAC,SAAO,GAAE,GAAE,GAAE,IAAE,GAAE,IAAE,KAAK,MAAM,OAAO;AAAU,QAAI,EAAE,YAAU,GAAE,IAAE,EAAE,MAAM,KAAG,EAAE,SAAO,EAAE,GAAE,IAAE,EAAE,KAAK,EAAE,MAAI,OAAM;AAAC,QAAG,IAAE,EAAE,MAAI,EAAE,MAAI,EAAE,MAAI,EAAE,MAAI,EAAE,MAAI,EAAE,IAAG,CAAC,MAAI,IAAE,CAAC,GAAG,EAAE,CAAC,QAAO,MAAI,GAAG;AAAS,QAAG,EAAE,MAAI,EAAE,IAAG;AAAC,UAAG;AAAE;;AAAS,QAAG,KAAG,GAAE,IAAE,EAAE;AAAS,QAAE,KAAK,IAAI,GAAE,IAAE,EAAE;IAAC,IAAI,IAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAO,IAAE,EAAE,MAAM,GAAE,IAAE,EAAE,QAAM,IAAE,EAAE,EAAC,IAAE,EAAE,MAAM,GAAE,CAAC,EAAE;AAAC,WAAM;KAAC,MAAK;KAAM,KAAI;KAAE,MAAK;KAAE,QAAO,KAAK,MAAM,aAAa,EAAE;KAAC;;;;CAAG,SAAS,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,OAAO,SAAS,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,GAAE;AAAE,UAAO,EAAE,OAAK,OAAK,IAAE,EAAE,IAAG,IAAE,YAAU,MAAI,IAAE,EAAE,IAAG,IAAE,IAAG;IAAC,MAAK;IAAO,KAAI,EAAE;IAAG,MAAK;IAAE,MAAK;IAAE,QAAO,CAAC;KAAC,MAAK;KAAO,KAAI;KAAE,MAAK;KAAE,CAAC;IAAC;;;CAAE,IAAI,GAAE;EAAC,IAAI;AAAE,MAAG,IAAE,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,EAAC;GAAC,IAAI,GAAE;AAAE,OAAG,EAAE,OAAK,IAAI,KAAE,EAAE,IAAG,IAAE,YAAU;QAAM;IAAC,IAAI;AAAE;AAAG,SAAE,EAAE,IAAG,EAAE,KAAG,KAAK,MAAM,OAAO,WAAW,KAAK,EAAE,GAAG,GAAG,MAAI;WAAS,MAAI,EAAE;AAAI,QAAE,EAAE,IAAG,AAA+B,IAA/B,EAAE,OAAK,SAAS,YAAU,EAAE,KAAK,EAAE;;AAAG,UAAM;IAAC,MAAK;IAAO,KAAI,EAAE;IAAG,MAAK;IAAE,MAAK;IAAE,QAAO,CAAC;KAAC,MAAK;KAAO,KAAI;KAAE,MAAK;KAAE,CAAC;IAAC;;;CAAE,WAAW,GAAE;EAAC,IAAI,IAAE,KAAK,MAAM,OAAO,KAAK,KAAK,EAAE;AAAC,MAAG,GAAE;GAAC,IAAI,IAAE,KAAK,MAAM,MAAM;AAAW,UAAM;IAAC,MAAK;IAAO,KAAI,EAAE;IAAG,MAAK,EAAE;IAAG,SAAQ;IAAE;;;GAAQ,IAAE,MAAM,EAAC;CAAC;CAAO;CAAQ;CAAM;CAAY;CAAU,YAAY,GAAE;AAAC,OAAK,SAAO,EAAE,EAAC,KAAK,OAAO,QAAM,OAAO,OAAO,KAAK,EAAC,KAAK,UAAQ,KAAG,GAAE,KAAK,QAAQ,YAAU,KAAK,QAAQ,aAAW,IAAI,GAAC,EAAC,KAAK,YAAU,KAAK,QAAQ,WAAU,KAAK,UAAU,UAAQ,KAAK,SAAQ,KAAK,UAAU,QAAM,MAAK,KAAK,cAAY,EAAE,EAAC,KAAK,QAAM;GAAC,QAAO,CAAC;GAAE,YAAW,CAAC;GAAE,KAAI,CAAC;GAAE;EAAC,IAAI,IAAE;GAAC,OAAM;GAAE,OAAM,EAAE;GAAO,QAAO,EAAE;GAAO;AAAC,OAAK,QAAQ,YAAU,EAAE,QAAM,EAAE,UAAS,EAAE,SAAO,EAAE,YAAU,KAAK,QAAQ,QAAM,EAAE,QAAM,EAAE,KAAI,KAAK,QAAQ,SAAO,EAAE,SAAO,EAAE,SAAO,EAAE,SAAO,EAAE,MAAK,KAAK,UAAU,QAAM;;CAAE,WAAW,QAAO;AAAC,SAAM;GAAC,OAAM;GAAE,QAAO;GAAE;;CAAC,OAAO,IAAI,GAAE,GAAE;AAAC,SAAO,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;;CAAC,OAAO,UAAU,GAAE,GAAE;AAAC,SAAO,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE;;CAAC,IAAI,GAAE;AAAC,MAAE,EAAE,QAAQ,EAAE,gBAAe,KACnmK,EAAC,KAAK,YAAY,GAAE,KAAK,OAAO;AAAC,OAAI,IAAI,IAAE,GAAE,IAAE,KAAK,YAAY,QAAO,KAAI;GAAC,IAAI,IAAE,KAAK,YAAY;AAAG,QAAK,aAAa,EAAE,KAAI,EAAE,OAAO;;AAAC,SAAO,KAAK,cAAY,EAAE,EAAC,KAAK;;CAAO,YAAY,GAAE,IAAE,EAAE,EAAC,IAAE,CAAC,GAAE;AAAC,OAAK,UAAU,QAAM,MAAK,KAAK,QAAQ,aAAW,IAAE,EAAE,QAAQ,EAAE,eAAc,OAAO,CAAC,QAAQ,EAAE,WAAU,GAAG;EAAE,IAAI,IAAE;AAAI,SAAK,IAAG;AAAC,OAAG,EAAE,SAAO,EAAE,KAAE,EAAE;QAAW;AAAC,SAAK,kBAAkB,EAAE,WAAW,EAAE,CAAC;AAAC;;GAAM,IAAI;AAAE,OAAG,KAAK,QAAQ,YAAY,OAAO,MAAK,OAAI,IAAE,EAAE,KAAK,EAAC,OAAM,MAAK,EAAC,GAAE,EAAE,KAAG,IAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE,EAAC,CAAC,KAAG,CAAC,EAAE,CAAC;AAAS,OAAG,IAAE,KAAK,UAAU,MAAM,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO;IAAC,IAAI,IAAE,EAAE,GAAG,GAAG;AAAC,MAAE,IAAI,WAAS,KAAG,MAAI,KAAK,IAAE,EAAE,OAAK,OACzoB,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,KAAK,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO;IAAC,IAAI,IAAE,EAAE,GAAG,GAAG;AAAC,OAAG,SAAO,eAAa,GAAG,SAAO,UAAQ,EAAE,QAAM,EAAE,IAAI,SAAS,KAC3J,GAAC,KAAG,QACH,EAAE,KAAI,EAAE,QAAM,OACf,EAAE,MAAK,KAAK,YAAY,GAAG,GAAG,CAAC,MAAI,EAAE,QAAM,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,OAAO,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,QAAQ,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,GAAG,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,WAAW,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,KAAK,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,KAAK,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,IAAI,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO;IAAC,IAAI,IAAE,EAAE,GAAG,GAAG;AAAC,OAAG,SAAO,eAAa,GAAG,SAAO,UAAQ,EAAE,QAAM,EAAE,IAAI,SAAS,KACtpB,GAAC,KAAG,QACH,EAAE,KAAI,EAAE,QAAM,OACf,EAAE,KAAI,KAAK,YAAY,GAAG,GAAG,CAAC,MAAI,EAAE,QAAM,KAAK,OAAO,MAAM,EAAE,SAAO,KAAK,OAAO,MAAM,EAAE,OAAK;KAAC,MAAK,EAAE;KAAK,OAAM,EAAE;KAAM,EAAC,EAAE,KAAK,EAAE;AAAE;;AAAS,OAAG,IAAE,KAAK,UAAU,MAAM,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,SAAS,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;GAAS,IAAI,IAAE;AAAE,OAAG,KAAK,QAAQ,YAAY,YAAW;IAAC,IAAI,IAAE,UAAI,IAAE,EAAE,MAAM,EAAE,EAAC;AAAE,SAAK,QAAQ,WAAW,WAAW,SAAQ,MAAG;AAAC,SAAE,EAAE,KAAK,EAAC,OAAM,MAAK,EAAC,EAAE,EAAC,OAAO,KAAG,YAAU,KAAG,MAAI,IAAE,KAAK,IAAI,GAAE,EAAE;MAAG,EAAC,IAAE,YAAK,KAAG,MAAI,IAAE,EAAE,UAAU,GAAE,IAAE,EAAE;;AAAE,OAAG,KAAK,MAAM,QAAM,IAAE,KAAK,UAAU,UAAU,EAAE,GAAE;IAAC,IAAI,IAAE,EAAE,GAAG,GAAG;AAAC,SAAG,GAAG,SAAO,eAAa,EAAE,QAAM,EAAE,IAAI,SAAS,KACloB,GAAC,KAAG,QACH,EAAE,KAAI,EAAE,QAAM,OACf,EAAE,MAAK,KAAK,YAAY,KAAK,EAAC,KAAK,YAAY,GAAG,GAAG,CAAC,MAAI,EAAE,QAAM,EAAE,KAAK,EAAE,EAAC,IAAE,EAAE,WAAS,EAAE,QAAO,IAAE,EAAE,UAAU,EAAE,IAAI,OAAO;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,KAAK,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO;IAAC,IAAI,IAAE,EAAE,GAAG,GAAG;AAAC,OAAG,SAAO,UAAQ,EAAE,QAAM,EAAE,IAAI,SAAS,KACxP,GAAC,KAAG,QACH,EAAE,KAAI,EAAE,QAAM,OACf,EAAE,MAAK,KAAK,YAAY,KAAK,EAAC,KAAK,YAAY,GAAG,GAAG,CAAC,MAAI,EAAE,QAAM,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,GAAE;AAAC,SAAK,kBAAkB,EAAE,WAAW,EAAE,CAAC;AAAC;;;AAAO,SAAO,KAAK,MAAM,MAAI,CAAC,GAAE;;CAAE,OAAO,GAAE,IAAE,EAAE,EAAC;AAAC,SAAO,KAAK,YAAY,KAAK;GAAC,KAAI;GAAE,QAAO;GAAE,CAAC,EAAC;;CAAE,aAAa,GAAE,IAAE,EAAE,EAAC;AAAC,OAAK,UAAU,QAAM;EAAK,IAAI,IAAE,GAAE,IAAE;AAAK,MAAG,KAAK,OAAO,OAAM;GAAC,IAAI,IAAE,OAAO,KAAK,KAAK,OAAO,MAAM;AAAC,OAAG,EAAE,SAAO,EAAE,SAAM,IAAE,KAAK,UAAU,MAAM,OAAO,cAAc,KAAK,EAAE,MAAI,MAAM,GAAE,SAAS,EAAE,GAAG,MAAM,EAAE,GAAG,YAAY,IAAI,GAAC,GAAE,GAAG,CAAC,KAAG,IAAE,EAAE,MAAM,GAAE,EAAE,MAAM,GAAC,MAAI,IAAI,OAAO,EAAE,GAAG,SAAO,EAAE,GAAC,MAAI,EAAE,MAAM,KAAK,UAAU,MAAM,OAAO,cAAc,UAAU;;AAAE,UAAM,IAAE,KAAK,UAAU,MAAM,OAAO,eAAe,KAAK,EAAE,MAAI,MAAM,KAAE,EAAE,MAAM,GAAE,EAAE,MAAM,GAAC,OAAK,EAAE,MAAM,KAAK,UAAU,MAAM,OAAO,eAAe,UAAU;EAAC,IAAI;AAAE,UAAM,IAAE,KAAK,UAAU,MAAM,OAAO,UAAU,KAAK,EAAE,MAAI,MAAM,KAAE,EAAE,KAAG,EAAE,GAAG,SAAO,GAAE,IAAE,EAAE,MAAM,GAAE,EAAE,QAAM,EAAE,GAAC,MAAI,IAAI,OAAO,EAAE,GAAG,SAAO,IAAE,EAAE,GAAC,MAAI,EAAE,MAAM,KAAK,UAAU,MAAM,OAAO,UAAU,UAAU;AAAC,MAAE,KAAK,QAAQ,OAAO,cAAc,KAAK,EAAC,OAAM,MAAK,EAAC,EAAE,IAAE;EAAE,IAAI,IAAE,CAAC,GAAE,IAAE,IAAG,IAAE;AAAI,SAAK,IAAG;AAAC,OAAG,EAAE,SAAO,EAAE,KAAE,EAAE;QAAW;AAAC,SAAK,kBAAkB,EAAE,WAAW,EAAE,CAAC;AAAC;;AAAM,SAAI,IAAE,KAAI,IAAE,CAAC;GAAE,IAAI;AAAE,OAAG,KAAK,QAAQ,YAAY,QAAQ,MAAK,OAAI,IAAE,EAAE,KAAK,EAAC,OAAM,MAAK,EAAC,GAAE,EAAE,KAAG,IAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE,EAAC,CAAC,KAAG,CAAC,EAAE,CAAC;AAAS,OAAG,IAAE,KAAK,UAAU,OAAO,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,IAAI,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,KAAK,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,QAAQ,GAAE,KAAK,OAAO,MAAM,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO;IAAC,IAAI,IAAE,EAAE,GAAG,GAAG;AAAC,MAAE,SAAO,UAAQ,GAAG,SAAO,UAAQ,EAAE,OAAK,EAAE,KAAI,EAAE,QAAM,EAAE,QAAM,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,SAAS,GAAE,GAAE,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,SAAS,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,GAAG,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,IAAI,GAAE,GAAE,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,IAAE,KAAK,UAAU,SAAS,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,CAAC,KAAK,MAAM,WAAS,IAAE,KAAK,UAAU,IAAI,EAAE,GAAE;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,KAAK,EAAE;AAAC;;GAAS,IAAI,IAAE;AAAE,OAAG,KAAK,QAAQ,YAAY,aAAY;IAAC,IAAI,IAAE,UAAI,IAAE,EAAE,MAAM,EAAE,EAAC;AAAE,SAAK,QAAQ,WAAW,YAAY,SAAQ,MAAG;AAAC,SAAE,EAAE,KAAK,EAAC,OAAM,MAAK,EAAC,EAAE,EAAC,OAAO,KAAG,YAAU,KAAG,MAAI,IAAE,KAAK,IAAI,GAAE,EAAE;MAAG,EAAC,IAAE,YAAK,KAAG,MAAI,IAAE,EAAE,UAAU,GAAE,IAAE,EAAE;;AAAE,OAAG,IAAE,KAAK,UAAU,WAAW,EAAE,EAAC;AAAC,QAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAC,EAAE,IAAI,MAAM,GAAG,KAAG,QAAM,IAAE,EAAE,IAAI,MAAM,GAAG,GAAE,IAAE,CAAC;IAAE,IAAI,IAAE,EAAE,GAAG,GAAG;AAAC,OAAG,SAAO,UAAQ,EAAE,OAAK,EAAE,KAAI,EAAE,QAAM,EAAE,QAAM,EAAE,KAAK,EAAE;AAAC;;AAAS,OAAG,GAAE;AAAC,SAAK,kBAAkB,EAAE,WAAW,EAAE,CAAC;AAAC;;;AAAO,SAAO;;CAAE,kBAAkB,GAAE;EAAC,IAAI,IAAE,4BAA0B;AAAE,MAAG,KAAK,QAAQ,OAAO,SAAQ,MAAM,EAAE;MAAM,OAAU,MAAM,EAAE;;GAAO,IAAE,MAAK;CAAC;CAAQ;CAAO,YAAY,GAAE;AAAC,OAAK,UAAQ,KAAG;;CAAE,MAAM,GAAE;AAAC,SAAM;;CAAG,KAAK,EAAC,MAAK,GAAE,MAAK,GAAE,SAAQ,KAAG;EAAC,IAAI,KAAG,KAAG,IAAI,MAAM,EAAE,cAAc,GAAG,IAAG,IAAE,EAAE,QAAQ,EAAE,eAAc,GAAG,GAAC;AACr5F,SAAO,IAAE,iCAA8B,EAAE,EAAE,GAAC,SAAM,IAAE,IAAE,EAAE,GAAE,CAAC,EAAE,IAAE,oBAC/D,iBAAe,IAAE,IAAE,EAAE,GAAE,CAAC,EAAE,IAAE;;CAC5B,WAAW,EAAC,QAAO,KAAG;AAAC,SAAM;EAC7B,KAAK,OAAO,MAAM,EAAE,CAAC;;;CACrB,KAAK,EAAC,MAAK,KAAG;AAAC,SAAO;;CAAE,IAAI,GAAE;AAAC,SAAM;;CAAG,QAAQ,EAAC,QAAO,GAAE,OAAM,KAAG;AAAC,SAAM,KAAK,EAAE,GAAG,KAAK,OAAO,YAAY,EAAE,CAAC,KAAK,EAAE;;;CACtH,GAAG,GAAE;AAAC,SAAM;;CACZ,KAAK,GAAE;EAAC,IAAI,IAAE,EAAE,SAAQ,IAAE,EAAE,OAAM,IAAE;AAAG,OAAI,IAAI,IAAE,GAAE,IAAE,EAAE,MAAM,QAAO,KAAI;GAAC,IAAI,IAAE,EAAE,MAAM;AAAG,QAAG,KAAK,SAAS,EAAE;;EAAC,IAAI,IAAE,IAAE,OAAK,MAAK,IAAE,KAAG,MAAI,IAAE,cAAW,IAAE,OAAI;AAAG,SAAM,MAAI,IAAE,IAAE,QAC7K,IAAE,OAAK,IAAE;;CACT,SAAS,GAAE;AAAC,SAAM,OAAO,KAAK,OAAO,MAAM,EAAE,OAAO,CAAC;;;CACrD,SAAS,EAAC,SAAQ,KAAG;AAAC,SAAM,aAAW,IAAE,kBAAc,MAAI;;CAAgC,UAAU,EAAC,QAAO,KAAG;AAAC,SAAM,MAAM,KAAK,OAAO,YAAY,EAAE,CAAC;;;CACxJ,MAAM,GAAE;EAAC,IAAI,IAAE,IAAG,IAAE;AAAG,OAAI,IAAI,IAAE,GAAE,IAAE,EAAE,OAAO,QAAO,IAAI,MAAG,KAAK,UAAU,EAAE,OAAO,GAAG;AAAC,OAAG,KAAK,SAAS,EAAC,MAAK,GAAE,CAAC;EAAC,IAAI,IAAE;AAAG,OAAI,IAAI,IAAE,GAAE,IAAE,EAAE,KAAK,QAAO,KAAI;GAAC,IAAI,IAAE,EAAE,KAAK;AAAG,OAAE;AAAG,QAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,MAAG,KAAK,UAAU,EAAE,GAAG;AAAC,QAAG,KAAK,SAAS,EAAC,MAAK,GAAE,CAAC;;AAAC,SAAO,AAAI,MAAE,UAAU,EAAE,WAAW,uBAEpS,IAAE,eACF,IAAE;;CACF,SAAS,EAAC,MAAK,KAAG;AAAC,SAAM;EACzB,EAAE;;;CACF,UAAU,GAAE;EAAC,IAAI,IAAE,KAAK,OAAO,YAAY,EAAE,OAAO,EAAC,IAAE,EAAE,SAAO,OAAK;AAAK,UAAO,EAAE,QAAM,IAAI,EAAE,UAAU,EAAE,MAAM,MAAI,IAAI,EAAE,MAAI,IAAE,KAAK,EAAE;;;CACxI,OAAO,EAAC,QAAO,KAAG;AAAC,SAAM,WAAW,KAAK,OAAO,YAAY,EAAE,CAAC;;CAAW,GAAG,EAAC,QAAO,KAAG;AAAC,SAAM,OAAO,KAAK,OAAO,YAAY,EAAE,CAAC;;CAAO,SAAS,EAAC,MAAK,KAAG;AAAC,SAAM,SAAS,EAAE,GAAE,CAAC,EAAE,CAAC;;CAAS,GAAG,GAAE;AAAC,SAAM;;CAAO,IAAI,EAAC,QAAO,KAAG;AAAC,SAAM,QAAQ,KAAK,OAAO,YAAY,EAAE,CAAC;;CAAQ,KAAK,EAAC,MAAK,GAAE,OAAM,GAAE,QAAO,KAAG;EAAC,IAAI,IAAE,KAAK,OAAO,YAAY,EAAE,EAAC,IAAE,GAAE,EAAE;AAAC,MAAG,MAAI,KAAK,QAAO;AAAE,MAAE;EAAE,IAAI,IAAE,eAAY,IAAE;AAAI,SAAO,MAAI,KAAG,cAAW,EAAE,EAAE,GAAC,OAAK,KAAG,MAAI,IAAE,QAAO;;CAAE,MAAM,EAAC,MAAK,GAAE,OAAM,GAAE,MAAK,GAAE,QAAO,KAAG;AAAC,QAAI,IAAE,KAAK,OAAO,YAAY,GAAE,KAAK,OAAO,aAAa;EAAE,IAAI,IAAE,GAAE,EAAE;AAAC,MAAG,MAAI,KAAK,QAAO,EAAE,EAAE;AAAC,MAAE;EAAE,IAAI,IAAE,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC;AAAG,SAAO,MAAI,KAAG,WAAW,EAAE,EAAE,CAAC,KAAI,KAAG,KAAI;;CAAE,KAAK,GAAE;AAAC,SAAM,YAAW,KAAG,EAAE,SAAO,KAAK,OAAO,YAAY,EAAE,OAAO,GAAC,aAAY,KAAG,EAAE,UAAQ,EAAE,OAAK,EAAE,EAAE,KAAK;;GAAO,IAAE,MAAK;CAAC,OAAO,EAAC,MAAK,KAAG;AAAC,SAAO;;CAAE,GAAG,EAAC,MAAK,KAAG;AAAC,SAAO;;CAAE,SAAS,EAAC,MAAK,KAAG;AAAC,SAAO;;CAAE,IAAI,EAAC,MAAK,KAAG;AAAC,SAAO;;CAAE,KAAK,EAAC,MAAK,KAAG;AAAC,SAAO;;CAAE,KAAK,EAAC,MAAK,KAAG;AAAC,SAAO;;CAAE,KAAK,EAAC,MAAK,KAAG;AAAC,SAAM,KAAG;;CAAE,MAAM,EAAC,MAAK,KAAG;AAAC,SAAM,KAAG;;CAAE,KAAI;AAAC,SAAM;;CAAG,SAAS,EAAC,KAAI,KAAG;AAAC,SAAO;;GAAQ,IAAE,MAAM,EAAC;CAAC;CAAQ;CAAS;CAAa,YAAY,GAAE;AAAC,OAAK,UAAQ,KAAG,GAAE,KAAK,QAAQ,WAAS,KAAK,QAAQ,YAAU,IAAI,GAAC,EAAC,KAAK,WAAS,KAAK,QAAQ,UAAS,KAAK,SAAS,UAAQ,KAAK,SAAQ,KAAK,SAAS,SAAO,MAAK,KAAK,eAAa,IAAI,GAAC;;CAAC,OAAO,MAAM,GAAE,GAAE;AAAC,SAAO,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE;;CAAC,OAAO,YAAY,GAAE,GAAE;AAAC,SAAO,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE;;CAAC,MAAM,GAAE;AAAC,OAAK,SAAS,SAAO;EAAK,IAAI,IAAE;AAAG,OAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI;GAAC,IAAI,IAAE,EAAE;AAAG,OAAG,KAAK,QAAQ,YAAY,YAAY,EAAE,OAAM;IAAC,IAAI,IAAE,GAAE,IAAE,KAAK,QAAQ,WAAW,UAAU,EAAE,MAAM,KAAK,EAAC,QAAO,MAAK,EAAC,EAAE;AAAC,QAAG,MAAI,CAAC,KAAG,CAAC;KAAC;KAAQ;KAAK;KAAU;KAAO;KAAQ;KAAa;KAAO;KAAO;KAAM;KAAY;KAAO,CAAC,SAAS,EAAE,KAAK,EAAC;AAAC,UAAG,KAAG;AAAG;;;GAAU,IAAI,IAAE;AAAE,WAAO,EAAE,MAAT;IAAe,KAAI;AAAS,UAAG,KAAK,SAAS,MAAM,EAAE;AAAC;IAAM,KAAI;AAAM,UAAG,KAAK,SAAS,GAAG,EAAE;AAAC;IAAM,KAAI;AAAW,UAAG,KAAK,SAAS,QAAQ,EAAE;AAAC;IAAM,KAAI;AAAQ,UAAG,KAAK,SAAS,KAAK,EAAE;AAAC;IAAM,KAAI;AAAS,UAAG,KAAK,SAAS,MAAM,EAAE;AAAC;IAAM,KAAI;AAAc,UAAG,KAAK,SAAS,WAAW,EAAE;AAAC;IAAM,KAAI;AAAQ,UAAG,KAAK,SAAS,KAAK,EAAE;AAAC;IAAM,KAAI;AAAY,UAAG,KAAK,SAAS,SAAS,EAAE;AAAC;IAAM,KAAI;AAAQ,UAAG,KAAK,SAAS,KAAK,EAAE;AAAC;IAAM,KAAI;AAAO,UAAG,KAAK,SAAS,IAAI,EAAE;AAAC;IAAM,KAAI;AAAa,UAAG,KAAK,SAAS,UAAU,EAAE;AAAC;IAAM,KAAI;AAAQ,UAAG,KAAK,SAAS,KAAK,EAAE;AAAC;IAAM,SAAQ;KAAC,IAAI,IAAE,kBAAe,EAAE,OAAK;AAAwB,SAAG,KAAK,QAAQ,OAAO,QAAO,QAAQ,MAAM,EAAE,EAAC;AAAG,WAAU,MAAM,EAAE;;;;AAAG,SAAO;;CAAE,YAAY,GAAE,IAAE,KAAK,UAAS;AAAC,OAAK,SAAS,SAAO;EAAK,IAAI,IAAE;AAAG,OAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI;GAAC,IAAI,IAAE,EAAE;AAAG,OAAG,KAAK,QAAQ,YAAY,YAAY,EAAE,OAAM;IAAC,IAAI,IAAE,KAAK,QAAQ,WAAW,UAAU,EAAE,MAAM,KAAK,EAAC,QAAO,MAAK,EAAC,EAAE;AAAC,QAAG,MAAI,CAAC,KAAG,CAAC;KAAC;KAAS;KAAO;KAAO;KAAQ;KAAS;KAAK;KAAW;KAAK;KAAM;KAAO,CAAC,SAAS,EAAE,KAAK,EAAC;AAAC,UAAG,KAAG;AAAG;;;GAAU,IAAI,IAAE;AAAE,WAAO,EAAE,MAAT;IAAe,KAAI;AAAU,UAAG,EAAE,KAAK,EAAE;AAAC;IAAM,KAAI;AAAQ,UAAG,EAAE,KAAK,EAAE;AAAC;IAAM,KAAI;AAAQ,UAAG,EAAE,KAAK,EAAE;AAAC;IAAM,KAAI;AAAS,UAAG,EAAE,MAAM,EAAE;AAAC;IAAM,KAAI;AAAY,UAAG,EAAE,SAAS,EAAE;AAAC;IAAM,KAAI;AAAU,UAAG,EAAE,OAAO,EAAE;AAAC;IAAM,KAAI;AAAM,UAAG,EAAE,GAAG,EAAE;AAAC;IAAM,KAAI;AAAY,UAAG,EAAE,SAAS,EAAE;AAAC;IAAM,KAAI;AAAM,UAAG,EAAE,GAAG,EAAE;AAAC;IAAM,KAAI;AAAO,UAAG,EAAE,IAAI,EAAE;AAAC;IAAM,KAAI;AAAQ,UAAG,EAAE,KAAK,EAAE;AAAC;IAAM,SAAQ;KAAC,IAAI,IAAE,kBAAe,EAAE,OAAK;AAAwB,SAAG,KAAK,QAAQ,OAAO,QAAO,QAAQ,MAAM,EAAE,EAAC;AAAG,WAAU,MAAM,EAAE;;;;AAAG,SAAO;;GAAQ,IAAE,MAAK;CAAC;CAAQ;CAAM,YAAY,GAAE;AAAC,OAAK,UAAQ,KAAG;;CAAE,OAAO,mBAAiB,IAAI,IAAI;EAAC;EAAa;EAAc;EAAmB;EAAe,CAAC;CAAC,OAAO,+BAA6B,IAAI,IAAI;EAAC;EAAa;EAAc;EAAmB,CAAC;CAAC,WAAW,GAAE;AAAC,SAAO;;CAAE,YAAY,GAAE;AAAC,SAAO;;CAAE,iBAAiB,GAAE;AAAC,SAAO;;CAAE,aAAa,GAAE;AAAC,SAAO;;CAAE,aAAa,IAAE,KAAK,OAAM;AAAC,SAAO,IAAE,EAAE,MAAI,EAAE;;CAAU,cAAc,IAAE,KAAK,OAAM;AAAC,SAAO,IAAE,EAAE,QAAM,EAAE;;GACx+G,IAAE,IAAI,MAD2/G;CAAC,WAAS,GAAG;CAAC,UAAQ,KAAK;CAAW,QAAM,KAAK,cAAc,CAAC,EAAE;CAAC,cAAY,KAAK,cAAc,CAAC,EAAE;CAAC,SAAO;CAAE,WAAS;CAAE,eAAa;CAAE,QAAM;CAAE,YAAU;CAAE,QAAM;CAAE,YAAY,GAAG,GAAE;AAAC,OAAK,IAAI,GAAG,EAAE;;CAAC,WAAW,GAAE,GAAE;EAAC,IAAI,IAAE,EAAE;AAAC,OAAI,IAAI,KAAK,EAAE,SAAO,IAAE,EAAE,OAAO,EAAE,KAAK,MAAK,EAAE,CAAC,EAAC,EAAE,MAApC;GAA0C,KAAI,SAAQ;IAAC,IAAI,IAAE;AAAE,SAAI,IAAI,KAAK,EAAE,OAAO,KAAE,EAAE,OAAO,KAAK,WAAW,EAAE,QAAO,EAAE,CAAC;AAAC,SAAI,IAAI,KAAK,EAAE,KAAK,MAAI,IAAI,KAAK,EAAE,KAAE,EAAE,OAAO,KAAK,WAAW,EAAE,QAAO,EAAE,CAAC;AAAC;;GAAM,KAAI,QAAO;IAAC,IAAI,IAAE;AAAE,QAAE,EAAE,OAAO,KAAK,WAAW,EAAE,OAAM,EAAE,CAAC;AAAC;;GAAM,SAAQ;IAAC,IAAI,IAAE;AAAE,SAAK,SAAS,YAAY,cAAc,EAAE,QAAM,KAAK,SAAS,WAAW,YAAY,EAAE,MAAM,SAAQ,MAAG;KAAC,IAAI,IAAE,EAAE,GAAG,KAAK,SAAI;AAAC,SAAE,EAAE,OAAO,KAAK,WAAW,GAAE,EAAE,CAAC;MAAE,GAAC,EAAE,WAAS,IAAE,EAAE,OAAO,KAAK,WAAW,EAAE,QAAO,EAAE,CAAC;;;AAAG,SAAO;;CAAE,IAAI,GAAG,GAAE;EAAC,IAAI,IAAE,KAAK,SAAS,cAAY;GAAC,WAAU,EAAE;GAAC,aAAY,EAAE;GAAC;AAAC,SAAO,EAAE,SAAQ,MAAG;GAAC,IAAI,IAAE,EAAC,GAAG,GAAE;AAAC,OAAG,EAAE,QAAM,KAAK,SAAS,SAAO,EAAE,SAAO,CAAC,GAAE,EAAE,eAAa,EAAE,WAAW,SAAQ,MAAG;AAAC,QAAG,CAAC,EAAE,KAAK,OAAU,MAAM,0BAA0B;AAAC,QAAG,cAAa,GAAE;KAAC,IAAI,IAAE,EAAE,UAAU,EAAE;AAAM,SAAE,EAAE,UAAU,EAAE,QAAM,SAAS,GAAG,GAAE;MAAC,IAAI,IAAE,EAAE,SAAS,MAAM,MAAK,EAAE;AAAC,aAAO,MAAI,CAAC,MAAI,IAAE,EAAE,MAAM,MAAK,EAAE,GAAE;SAAG,EAAE,UAAU,EAAE,QAAM,EAAE;;AAAS,QAAG,eAAc,GAAE;AAAC,SAAG,CAAC,EAAE,SAAO,EAAE,UAAQ,WAAS,EAAE,UAAQ,SAAS,OAAU,MAAM,8CAA8C;KAAC,IAAI,IAAE,EAAE,EAAE;AAAO,SAAE,EAAE,QAAQ,EAAE,UAAU,GAAC,EAAE,EAAE,SAAO,CAAC,EAAE,UAAU,EAAC,EAAE,UAAQ,EAAE,UAAQ,UAAQ,EAAE,aAAW,EAAE,WAAW,KAAK,EAAE,MAAM,GAAC,EAAE,aAAW,CAAC,EAAE,MAAM,GAAC,EAAE,UAAQ,aAAW,EAAE,cAAY,EAAE,YAAY,KAAK,EAAE,MAAM,GAAC,EAAE,cAAY,CAAC,EAAE,MAAM;;AAAG,qBAAgB,KAAG,EAAE,gBAAc,EAAE,YAAY,EAAE,QAAM,EAAE;KAAc,EAAC,EAAE,aAAW,IAAG,EAAE,UAAS;IAAC,IAAI,IAAE,KAAK,SAAS,YAAU,IAAI,EAAE,KAAK,SAAS;AAAC,SAAI,IAAI,KAAK,EAAE,UAAS;AAAC,SAAG,EAAE,KAAK,GAAG,OAAU,MAAM,aAAa,EAAE,kBAAkB;AAAC,SAAG,CAAC,WAAU,SAAS,CAAC,SAAS,EAAE,CAAC;KAAS,IAAI,IAAE,GAAE,IAAE,EAAE,SAAS,IAAG,IAAE,EAAE;AAAG,OAAE,MAAI,GAAG,MAAI;MAAC,IAAI,IAAE,EAAE,MAAM,GAAE,EAAE;AAAC,aAAO,MAAI,CAAC,MAAI,IAAE,EAAE,MAAM,GAAE,EAAE,GAAE,KAAG;;;AAAI,MAAE,WAAS;;AAAE,OAAG,EAAE,WAAU;IAAC,IAAI,IAAE,KAAK,SAAS,aAAW,IAAI,EAAE,KAAK,SAAS;AAAC,SAAI,IAAI,KAAK,EAAE,WAAU;AAAC,SAAG,EAAE,KAAK,GAAG,OAAU,MAAM,cAAc,EAAE,kBAAkB;AAAC,SAAG;MAAC;MAAU;MAAQ;MAAQ,CAAC,SAAS,EAAE,CAAC;KAAS,IAAI,IAAE,GAAE,IAAE,EAAE,UAAU,IAAG,IAAE,EAAE;AAAG,OAAE,MAAI,GAAG,MAAI;MAAC,IAAI,IAAE,EAAE,MAAM,GAAE,EAAE;AAAC,aAAO,MAAI,CAAC,MAAI,IAAE,EAAE,MAAM,GAAE,EAAE,GAAE;;;AAAG,MAAE,YAAU;;AAAE,OAAG,EAAE,OAAM;IAAC,IAAI,IAAE,KAAK,SAAS,SAAO,IAAI,GAAC;AAAC,SAAI,IAAI,KAAK,EAAE,OAAM;AAAC,SAAG,EAAE,KAAK,GAAG,OAAU,MAAM,SAAS,EAAE,kBAAkB;AAAC,SAAG,CAAC,WAAU,QAAQ,CAAC,SAAS,EAAE,CAAC;KAAS,IAAI,IAAE,GAAE,IAAE,EAAE,MAAM,IAAG,IAAE,EAAE;AAAG,OAAE,iBAAiB,IAAI,EAAE,GAAC,EAAE,MAAG,MAAG;AAAC,UAAG,KAAK,SAAS,SAAO,EAAE,6BAA6B,IAAI,EAAE,CAAC,SAAO,YAAS;OAAC,IAAI,IAAE,MAAM,EAAE,KAAK,GAAE,EAAE;AAAC,cAAO,EAAE,KAAK,GAAE,EAAE;UAAI;MAAC,IAAI,IAAE,EAAE,KAAK,GAAE,EAAE;AAAC,aAAO,EAAE,KAAK,GAAE,EAAE;SAAE,EAAE,MAAI,GAAG,MAAI;AAAC,UAAG,KAAK,SAAS,MAAM,SAAO,YAAS;OAAC,IAAI,IAAE,MAAM,EAAE,MAAM,GAAE,EAAE;AAAC,cAAO,MAAI,CAAC,MAAI,IAAE,MAAM,EAAE,MAAM,GAAE,EAAE,GAAE;UAAK;MAAC,IAAI,IAAE,EAAE,MAAM,GAAE,EAAE;AAAC,aAAO,MAAI,CAAC,MAAI,IAAE,EAAE,MAAM,GAAE,EAAE,GAAE;;;AAAG,MAAE,QAAM;;AAAE,OAAG,EAAE,YAAW;IAAC,IAAI,IAAE,KAAK,SAAS,YAAW,IAAE,EAAE;AAAW,MAAE,aAAW,SAAS,GAAE;KAAC,IAAI,IAAE,EAAE;AAAC,YAAO,EAAE,KAAK,EAAE,KAAK,MAAK,EAAE,CAAC,EAAC,MAAI,IAAE,EAAE,OAAO,EAAE,KAAK,MAAK,EAAE,CAAC,GAAE;;;AAAG,QAAK,WAAS;IAAC,GAAG,KAAK;IAAS,GAAG;IAAE;IAAE,EAAC;;CAAK,WAAW,GAAE;AAAC,SAAO,KAAK,WAAS;GAAC,GAAG,KAAK;GAAS,GAAG;GAAE,EAAC;;CAAK,MAAM,GAAE,GAAE;AAAC,SAAO,EAAE,IAAI,GAAE,KAAG,KAAK,SAAS;;CAAC,OAAO,GAAE,GAAE;AAAC,SAAO,EAAE,MAAM,GAAE,KAAG,KAAK,SAAS;;CAAC,cAAc,GAAE;AAAC,UAAO,GAAE,MAAI;GAAC,IAAI,IAAE,EAAC,GAAG,GAAE,EAAC,IAAE;IAAC,GAAG,KAAK;IAAS,GAAG;IAAE,EAAC,IAAE,KAAK,QAAQ,CAAC,CAAC,EAAE,QAAO,CAAC,CAAC,EAAE,MAAM;AAAC,OAAG,KAAK,SAAS,UAAQ,CAAC,KAAG,EAAE,UAAQ,CAAC,EAAE,QAAO,EAAE,gBAAI,MAAM,qIAAqI,CAAC;AAAC,OAAG,OAAO,IAAE,OAAK,MAAI,KAAK,QAAO,EAAE,gBAAI,MAAM,iDAAiD,CAAC;AAAC,OAAG,OAAO,KAAG,SAAS,QAAO,EAAE,gBAAI,MAAM,0CAAwC,OAAO,UAAU,SAAS,KAAK,EAAE,GAAC,oBAAoB,CAAC;AAAC,OAAG,EAAE,UAAQ,EAAE,MAAM,UAAQ,GAAE,EAAE,MAAM,QAAM,IAAG,EAAE,MAAM,SAAO,YAAS;IAAC,IAAI,IAAE,EAAE,QAAM,MAAM,EAAE,MAAM,WAAW,EAAE,GAAC,GAAE,IAAE,OAAM,EAAE,QAAM,MAAM,EAAE,MAAM,aAAa,EAAE,GAAC,IAAE,EAAE,MAAI,EAAE,WAAW,GAAE,EAAE,EAAC,IAAE,EAAE,QAAM,MAAM,EAAE,MAAM,iBAAiB,EAAE,GAAC;AAAE,MAAE,cAAY,MAAM,QAAQ,IAAI,KAAK,WAAW,GAAE,EAAE,WAAW,CAAC;IAAC,IAAI,IAAE,OAAM,EAAE,QAAM,MAAM,EAAE,MAAM,cAAc,EAAE,GAAC,IAAE,EAAE,QAAM,EAAE,aAAa,GAAE,EAAE;AAAC,WAAO,EAAE,QAAM,MAAM,EAAE,MAAM,YAAY,EAAE,GAAC;OAAK,CAAC,MAAM,EAAE;AAAC,OAAG;AAAC,MAAE,UAAQ,IAAE,EAAE,MAAM,WAAW,EAAE;IAAE,IAAI,KAAG,EAAE,QAAM,EAAE,MAAM,aAAa,EAAE,GAAC,IAAE,EAAE,MAAI,EAAE,WAAW,GAAE,EAAE;AAAC,MAAE,UAAQ,IAAE,EAAE,MAAM,iBAAiB,EAAE,GAAE,EAAE,cAAY,KAAK,WAAW,GAAE,EAAE,WAAW;IAAC,IAAI,KAAG,EAAE,QAAM,EAAE,MAAM,cAAc,EAAE,GAAC,IAAE,EAAE,QAAM,EAAE,aAAa,GAAE,EAAE;AAAC,WAAO,EAAE,UAAQ,IAAE,EAAE,MAAM,YAAY,EAAE,GAAE;YAAQ,GAAE;AAAC,WAAO,EAAE,EAAE;;;;CAAG,QAAQ,GAAE,GAAE;AAAC,UAAO,MAAG;AAAC,OAAG,EAAE,WAAS,+DAC7mQ,GAAE;IAAC,IAAI,IAAE,mCAAiC,EAAE,EAAE,UAAQ,IAAG,CAAC,EAAE,GAAC;AAAS,WAAO,IAAE,QAAQ,QAAQ,EAAE,GAAC;;AAAE,OAAG,EAAE,QAAO,QAAQ,OAAO,EAAE;AAAC,SAAM;;;GAAgB;AAAC,SAAS,EAAE,GAAE,GAAE;AAAC,QAAO,EAAE,MAAM,GAAE,EAAE;;AAAC,EAAE,UAAQ,EAAE,aAAW,SAAS,GAAE;AAAC,QAAO,EAAE,WAAW,EAAE,EAAC,EAAE,WAAS,EAAE,UAAS,GAAE,EAAE,SAAS,EAAC;GAAG,EAAE,cAAY,GAAE,EAAE,WAAS,GAAE,EAAE,MAAI,SAAS,GAAG,GAAE;AAAC,QAAO,EAAE,IAAI,GAAG,EAAE,EAAC,EAAE,WAAS,EAAE,UAAS,GAAE,EAAE,SAAS,EAAC;GAAG,EAAE,aAAW,SAAS,GAAE,GAAE;AAAC,QAAO,EAAE,WAAW,GAAE,EAAE;GAAE,EAAE,cAAY,EAAE,aAAY,EAAE,SAAO,GAAE,EAAE,SAAO,EAAE,OAAM,EAAE,WAAS,GAAE,EAAE,eAAa,GAAE,EAAE,QAAM,GAAE,EAAE,QAAM,EAAE,KAAI,EAAE,YAAU,GAAE,EAAE,QAAM,GAAE,EAAE,QAAM,GAAS,EAAE,SAAW,EAAE,YAAc,EAAE,KAAO,EAAE,YAAc,EAAE,aAAoB,EAAE,OAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;EC7DtuB,IAAM,IAAQ,GAiBV,IACA;EACJ,SAAS,KAAc;AAOnB,UANA,AACI,MAAiB,OAAO,oEAAW,MAAM,OACrC,EAAI,QAAQ,WAAW,EAAE,aAAa,IAAO,CAAA,EACtC,EAAI,SACd,EAEE;;EAGX,IAAI,IAAoE;EACxE,SAAS,IAAY;AAIjB,UAHA,AACI,MAAe,OAAO,0DAAS,MAAM,MAAQ,EAAI,QAAO,EAErD;;EAKX,IAAM,KACF,sGACE,KAAiB;EAEvB,SAAS,EAAgB,GAAsB;AAC3C,UAAO,EACF,QAAQ,MAAM,QAAO,CACrB,QAAQ,MAAM,OAAM,CACpB,QAAQ,MAAM,OAAM;;EAG7B,SAAS,EACL,GACA,GACM;AAEN,UAAO,2CADS,EAAgB,EACkB,CAAQ,kBAAkB,EAAY;;AAmD5F,EAhDA,EAAO,IAAI,EACP,YAAY,CACR;GACI,MAAM;GACN,OAAO;GACP,QAAQ,MAAQ;IACZ,IAAM,IAAM,EAAI,QAAQ,IAAG;AACvB,cAAQ,OACR,MAAQ,KAAK,EAAI,OAAO,IAAM,EAAE,KAAK,KAAK,QAAO;;GAGzD,UAAU,GAAK;IACX,IAAM,IAAQ,EAAI,MAAM,GAAe;AAClC,UACL,QAAO;KACH,MAAM;KACN,KAAK,EAAM;KACX,MAAM,EAAM,GAAG,MAAM;KACrB,aAAa,EAAM,GAAG,WAAW;KACrC;;GAEJ,SAAS,GAAO;AACZ,WAAO,EAAuB,EAAM,MAAM,EAAM,YAAW;;GAElE,EACD;GACI,MAAM;GACN,OAAO;GACP,UAAU,GAAK;IACX,IAAM,IAAQ,EAAI,MAAM,GAAc;AACjC,UACL,QAAO;KACH,MAAM;KACN,KAAK,EAAM;KACX,MAAM,EAAM,GAAG,MAAM;KACrB,aAAa,EAAM,GAAG,WAAW;KACrC;;GAEJ,SAAS,GAAO;AACZ,WACI,EAAuB,EAAM,MAAM,EAAM,YAAY,GACrD;;GAGX,CACJ,EACJ,CAAA,EAED,EAAO,IAAI,EACP,YAAY,CACR;GACI,MAAM;GACN,OAAO;GACP,QAAQ,MAAQ,EAAI,QAAQ,aAAa;GACzC,UAAU,GAAK;IACX,IAAM,IAAQ,oCAAoC,KAAK,EAAG;AAC1D,QAAI,CAAC,EAAO;IACZ,IAAM,IAAQ;KACV,MAAM;KACN,KAAK,EAAM;KACX,MAAM,EAAM,GAAG,MAAM;KACrB,QAAQ,EAAA;KACZ;AAEA,WADA,KAAK,MAAM,YAAY,EAAM,MAAM,EAAM,OAAM,EACxC;;GAEX,SAAS,GAAO;AACZ,WAAO,+BAA+B,KAAK,OAAO,MAAM,EAAM,UAAU,EAAE,CAAC,CAAC;;GAEnF,CACJ,EACJ,CAAA;EAID,IAAM,IAAW,IAAI,EAAO,UAAS;AAWrC,EATA,EAAS,OAAO,SAAU,EAAE,SAAM,UAAO,aAAU;GAC/C,IAAM,IAAO,KAAK,OAAO,YAAY,EAAM;AAK3C,UAAO,YAAY,EAAK,GAJN,IAAQ,WAAW,EAAM,KAAK,KAC5B,EAAW,KAAQ,GAAE,GACnC,KACA,iDAC6C,GAAG,EAAK;KAG/D,EAAS,QAAQ,SAAU,GAAO;AAC9B,UAAO,8BAA8B,EAAO,SAAS,UAAU,MAAM,KAAK,MAAM,EAAM,CAAC;;EAG3F,IAAM,IACF;AAEJ,IAAS,QAAQ,EAAE,cACX,EAAiB,KAAK,EAAK,GACpB,wBAAwB,EAAK,UAEjC,cAAc,EAAK;EAK9B,SAAS,GAAyB,GAAoB;AAClD,UAAO,EACF,QAAQ,wBAAwB,GAAG,MAAY,KAAK,EAAQ,IAAG,CAC/D,QAAQ,wBAAwB,GAAG,MAAY,IAAI,EAAQ,GAAE,CAC7D,QAAQ,oBAAoB,QAAO;;EAO5C,SAAS,GAAgB,GAAoB;GACzC,IAAM,oBAAS,IAAI,KAAY,EACzB,IAAU,oCACZ;AACJ,WAAQ,IAAa,EAAQ,KAAK,EAAG,MAAM,MACvC,MACI,IAAI,IAAI,EAAW,OACnB,IAAI,EAAW,QAAQ,EAAW,GAAG,QACrC,IAEA,GAAO,IAAI,EAAC;AAIpB,UAAO,EACF,QACG,yBACC,GAAO,GAAQ,MAAmB;AAC/B,QAAI,EAAO,IAAI,EAAO,CAAE,QAAO;AAC/B,QAAI;AAEA,YADA,KAAK,MAAM,EAAK,EACT;YACH;AACJ,YAAO;;KAGnB,CACC,QAAQ,WAAW,OAAM;;EAGlC,IAAM,IAA+C;GACjD;GACA;GACA;GACJ,EAIM,IAAe,EAA+B,YAAW,EAEzD,IAAO,QAAe;GACxB,IAAM,IAAK,EAAc,QAAQ,GAAM,MAAO,EAAG,EAAK,EAAE,EAAM,SAAQ;AACtE,UAAO,EAAO,MAAM,GAAI;IACpB,OAAO;IACP,QAAQ;IACR;IACH,CAAC;IACL;EAID,eAAe,KAAgB;AAC3B,OAAI,EAAM,QAAS;AAEnB,SAAM,GAAS;GACf,IAAM,IAAQ,EAAa,OAAO,iBAC9B,mCACJ;AACA,OAAI,CAAC,GAAO,OAAQ;GAEpB,IAAM,IAAU,MAAM,IAAY,EAE5B,IAAU,SAAS,cAAc,MAAK;AAG5C,GAFA,EAAQ,MAAM,UACV,uDACJ,SAAS,KAAK,YAAY,EAAO;AAEjC,OAAI;AACA,SAAK,IAAM,KAAQ,MAAM,KAAK,EAAM,EAAE;AAClC,SAAI,CAAC,EAAK,YAAa;KACvB,IAAM,IAAO,EAAK,aAAa,MAAK;AAC/B,WAEL,KAAI;MACA,IAAM,EAAE,WAAQ,MAAM,EAAQ,OAC1B,KAAK,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,IACxC,GACA,EACJ;AACA,MAAI,EAAK,gBACL,EAAK,YAAY,GACjB,EAAK,aAAa,iBAAiB,OAAM;aAEzC;;aAIN;AACN,MAAQ,QAAO;;;EAIvB,eAAe,KAAgB;AAC3B,SAAM,GAAS;GACf,IAAM,IAAS,EAAa,OAAO,iBAC/B,mDACJ;AACA,OAAI,CAAC,GAAQ,OAAQ;GAErB,IAAM,KAAQ,MAAM,OAAO,8DAA4B;AACvD,QAAK,IAAM,KAAS,EAEhB,CADA,EAAK,iBAAiB,EAAK,EAC3B,EAAM,aAAa,oBAAoB,OAAM;;EAIrD,eAAe,KAAc;AACzB,SAAM,GAAS;GACf,IAAM,IACF,EAAa,OAAO,iBAA8B,iBAAgB;AACtE,OAAI,CAAC,GAAO,OAAQ;GAEpB,IAAM,IAAQ,MAAM,GAAU;AAC9B,KACI,8DACA,EAAc,EAAa,MAAM,CACrC;AAEA,QAAK,IAAM,KAAQ,MAAM,KAAK,EAAM,EAAE;AAClC,QAAI,CAAC,EAAK,YAAa;IACvB,IAAM,IAAM,EAAK,QAAQ;AACzB,QAAI,CAAC,EAAK;IACV,IAAM,IAAc,EAAK,QAAQ,YAAY;AAC7C,QAAI;AAKA,KAJA,EAAK,YAAY,EAAM,eAAe,GAAK;MACvC,cAAc;MACd;MACH,CAAA,EACD,EAAK,UAAU,OAAO,gBAAe;YACjC;;;AAQhB,EAFA,EAAM,CAAC,SAAY,EAAM,QAAQ,EAAE,IAAe,EAAE,WAAW,IAAM,CAAA,EACrE,EAAM,GAAM,IAAe,EAAE,WAAW,IAAM,CAAA,EAC9C,EAAM,GAAM,IAAa,EAAE,WAAW,IAAM,CAAA;EAI5C,IAAI,IAAgB;EAEpB,SAAS,GAAmB,GAAc,GAAgC;GACtE,IAAM,IAAO,SAAS,cAAc,OAAM;AAa1C,UAZA,EAAK,MAAM,UAAU,gBAAgB,EAAM,UAAU,GAAG,EAAM,kBAAkB,YAAY,EAAM,+BAClG,EAAK,cAAc,GACnB,EAAK,iBACD,sBACM;IACF,IAAM,IAAS,EAAK;AACf,UACL,EAAO,aAAa,SAAS,eAAe,EAAK,EAAE,EAAI,EACvD,EAAO,WAAU;MAErB,EAAE,MAAM,IAAM,CAClB,EACO;;EAGX,SAAS,GACL,GACA,GACA,GACA,GACM;GACN,IAAI,IAAM,GACJ,IAAQ,EAAK,MAAM,QAAO;AAChC,QAAK,IAAM,KAAQ,EACV,QACL;QAAI,QAAQ,KAAK,EAAK,EAAE;AACpB,OAAO,aAAa,SAAS,eAAe,EAAK,EAAE,EAAO;AAC1D;;AAGJ,IADA,EAAO,aAAa,GAAmB,GAAM,IAAM,GAAG,EAAE,EAAO,EAC/D;;AAEJ,UAAO;;EAGX,SAAS,GAAiB,GAA2B;GACjD,IAAM,IAAS,SAAS,iBAAiB,GAAM,WAAW,WAAW,EACjE,WAAW,GAAM;AAIb,WAHI,EAAK,eAAe,QAAQ,4BAA4B,GACjD,WAAW,gBAEf,WAAW;MAEzB,CAAA,EACK,IAAgB,EAAC;AACvB,UAAO,EAAO,UAAU,EACpB,GAAM,KAAK,EAAO,YAAmB;AAEzC,UAAO;;EAGX,SAAS,IAAqB;AAC1B,OAAI,CAAC,EAAa,SAAS,CAAC,EAAM,WAAW,CAAC,EAAM,UAAW;GAE/D,IAAM,IAAY,GAAiB,EAAa,MAAK,EACjD,IAAY,GACZ,IAAU;AAEd,QAAK,IAAM,KAAY,GAAW;IAC9B,IAAM,IAAO,EAAS,eAAe,IAC/B,IAAY,GACZ,IAAU,IAAY,EAAK;AAGjC,QAFA,IAAY,GAER,KAAW,EAAe;IAE9B,IAAM,IAAS,EAAS;AACxB,QAAI,CAAC,EAAQ;AAGb,QAAI,KAAa,GAAe;KAC5B,IAAM,IAAM,EAAS;AAErB,KADA,EAAO,YAAY,EAAQ,EAC3B,IAAU,GAAoB,GAAM,GAAQ,GAAK,EAAO;AACxD;;IAIJ,IAAM,IAAU,IAAgB,GAC1B,IAAc,EAAS,UAAU,EAAO,EACxC,IAAU,EAAY,eAAe,IACrC,IAAM,EAAY;AAExB,IADA,EAAO,YAAY,EAAW,EAC9B,IAAU,GAAoB,GAAS,GAAQ,GAAK,EAAO;;AAG/D,OAAgB;;SAGpB,EACI,GACA,YAAY;AAER,GADA,MAAM,GAAS,EACf,GAAmB;KAEvB,EAAE,WAAW,IAAM,CACvB,EAEA,QACU,EAAM,WACX,GAAQ,MAAW;AAChB,IAAI,CAAC,KAAW,KAAU,EAAO,SAAS,EAAO,YAC7C,IAAgB;IAG5B,kBAIA,EAAyC,OAAA;GAApC,KAAI;GAAY,WAAQ,EAAA"}
@@ -1,7 +1,7 @@
1
- import { Bt as e, C as t, E as n, Gt as r, Z as i, _ as a, ft as o, v as s, w as c, x as l, y as u, yt as d, z as f } from "./vue.runtime.esm-bundler-BmggS4HU.js";
2
- import { c as p } from "./index.es-CUjDCkXD.js";
3
- import { i as m } from "./dist-BTnzL-m0.js";
4
- import { t as h } from "./PkStreamingMarkdown-rIdQh5_D.js";
1
+ import { Bt as e, C as t, E as n, Gt as r, Z as i, _ as a, ft as o, v as s, w as c, x as l, y as u, yt as d, z as f } from "./vue.runtime.esm-bundler-Dq29dQrz.js";
2
+ import { c as p } from "./index.es-7fUi-rc0.js";
3
+ import { i as m } from "./dist-yqV26MWM.js";
4
+ import { t as h } from "./PkStreamingMarkdown-gIAvEY1t.js";
5
5
  //#region ../../packages/components/src/chat/PkCode.vue?vue&type=script&setup=true&lang.ts
6
6
  var g = ["innerHTML"], _ = /* @__PURE__ */ n({
7
7
  inheritAttrs: !1,
@@ -87,4 +87,4 @@ var g = ["innerHTML"], _ = /* @__PURE__ */ n({
87
87
  //#endregion
88
88
  export { C as default };
89
89
 
90
- //# sourceMappingURL=PkToolShowArtifact-CeLgwZBA.js.map
90
+ //# sourceMappingURL=PkToolShowArtifact-BwW4Yn6k.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PkToolShowArtifact-CeLgwZBA.js","names":["$attrs","$t"],"sources":["../../../../packages/components/src/chat/PkCode.vue","../../../../packages/components/src/chat/PkCode.vue","../../../../packages/components/src/chat/PkToolShowArtifact.vue","../../../../packages/components/src/chat/PkToolShowArtifact.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue'\n\n defineOptions({\n inheritAttrs: false,\n })\n\n const props = defineProps<{\n code: unknown\n language: string\n line?: boolean\n }>()\n\n const highlightedHtml = ref('')\n\n const hasCode = computed(() => {\n if (typeof props.code === 'string') {\n return props.code\n }\n return JSON.stringify(props.code, null, 2)\n })\n\n async function highlight() {\n const hljs = (await import('highlight.js/lib/common')).default\n try {\n const result = props.language\n ? hljs.highlight(hasCode.value, { language: props.language })\n : hljs.highlightAuto(hasCode.value)\n highlightedHtml.value = result.value\n } catch {\n highlightedHtml.value = hasCode.value\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n }\n }\n\n watch(hasCode, highlight, { immediate: true })\n</script>\n\n<template>\n <pre\n :class=\"\n $attrs.class\n ? $attrs.class\n : 'font-mono leading-snug text-smaller bg-surface-1'\n \">\n <code :class=\"['hljs', line ? 'whitespace-pre-line' : 'whitespace-pre', language]\" v-html=\"highlightedHtml\"></code>\n </pre>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue'\n\n defineOptions({\n inheritAttrs: false,\n })\n\n const props = defineProps<{\n code: unknown\n language: string\n line?: boolean\n }>()\n\n const highlightedHtml = ref('')\n\n const hasCode = computed(() => {\n if (typeof props.code === 'string') {\n return props.code\n }\n return JSON.stringify(props.code, null, 2)\n })\n\n async function highlight() {\n const hljs = (await import('highlight.js/lib/common')).default\n try {\n const result = props.language\n ? hljs.highlight(hasCode.value, { language: props.language })\n : hljs.highlightAuto(hasCode.value)\n highlightedHtml.value = result.value\n } catch {\n highlightedHtml.value = hasCode.value\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n }\n }\n\n watch(hasCode, highlight, { immediate: true })\n</script>\n\n<template>\n <pre\n :class=\"\n $attrs.class\n ? $attrs.class\n : 'font-mono leading-snug text-smaller bg-surface-1'\n \">\n <code :class=\"['hljs', line ? 'whitespace-pre-line' : 'whitespace-pre', language]\" v-html=\"highlightedHtml\"></code>\n </pre>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useClipboard } from '@vueuse/core'\n import PkCode from './PkCode.vue'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n\n const { copy, copied } = useClipboard()\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n title: string\n content: string\n artifactType: string\n language?: string\n }\n }\n return part\n })\n\n const artifactTypeLabel = computed(() => {\n const labels: Record<string, string> = {\n code: 'Code',\n document: 'Document',\n markdown: 'Markdown',\n json: 'JSON',\n xml: 'XML',\n csv: 'CSV',\n html: 'HTML',\n yaml: 'YAML',\n sql: 'SQL',\n text: 'Text',\n }\n if (!toolPart.value.input?.artifactType) {\n return 'Artifact'\n }\n return labels[toolPart.value.input.artifactType] || 'Artifact'\n })\n\n const languageLabel = computed(() => {\n if (!toolPart.value.input?.language) {\n return ''\n }\n return ` (${toolPart.value.input.language})`\n })\n\n const isCodeType = computed(() => {\n return (\n toolPart.value.input?.artifactType === 'code' ||\n toolPart.value.input?.artifactType === 'json' ||\n toolPart.value.input?.artifactType === 'xml' ||\n toolPart.value.input?.artifactType === 'yaml' ||\n toolPart.value.input?.artifactType === 'html' ||\n toolPart.value.input?.artifactType === 'sql'\n )\n })\n\n const isMarkdownType = computed(() => {\n return toolPart.value.input?.artifactType === 'markdown'\n })\n\n const codeLanguage = computed(() => {\n if (toolPart.value.input?.language) {\n return toolPart.value.input.language\n }\n // Map artifact types to highlight.js languages\n const languageMap: Record<string, string> = {\n json: 'json',\n xml: 'xml',\n yaml: 'yaml',\n html: 'html',\n sql: 'sql',\n }\n if (!toolPart.value.input?.artifactType) {\n return 'plaintext'\n }\n return languageMap[toolPart.value.input.artifactType] || 'plaintext'\n })\n</script>\n\n<template>\n <div class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 font-bold bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex justify-between items-center\">\n <div class=\"flex flex-col items-start gap-4\">\n <span>{{ toolPart?.input?.title }}</span>\n <span class=\"text-10 opacity-60 font-normal\">\n {{ artifactTypeLabel }}{{ languageLabel }}\n </span>\n </div>\n <VvButton\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n modifiers=\"action-quiet-small\"\n :title=\"$t('action.copy')\"\n class=\"shrink-0\"\n @click=\"copy(toolPart?.input?.content || '')\" />\n </div>\n <div class=\"px-sm py-10\">\n <PkCode\n v-if=\"isCodeType\"\n :code=\"toolPart?.input?.content\"\n :language=\"codeLanguage\" />\n <PkStreamingMarkdown\n v-else-if=\"isMarkdownType\"\n :markdown=\"toolPart?.input?.content\"\n class=\"wysiwyg text-word-2\" />\n <pre\n v-else\n class=\"text-word-2 whitespace-pre-wrap break-words\"\n :class=\"{\n italic:\n toolPart?.input?.artifactType === 'document' ||\n toolPart?.input?.artifactType === 'text',\n }\"\n >{{ toolPart?.input?.content }}</pre\n >\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useClipboard } from '@vueuse/core'\n import PkCode from './PkCode.vue'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n\n const { copy, copied } = useClipboard()\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n title: string\n content: string\n artifactType: string\n language?: string\n }\n }\n return part\n })\n\n const artifactTypeLabel = computed(() => {\n const labels: Record<string, string> = {\n code: 'Code',\n document: 'Document',\n markdown: 'Markdown',\n json: 'JSON',\n xml: 'XML',\n csv: 'CSV',\n html: 'HTML',\n yaml: 'YAML',\n sql: 'SQL',\n text: 'Text',\n }\n if (!toolPart.value.input?.artifactType) {\n return 'Artifact'\n }\n return labels[toolPart.value.input.artifactType] || 'Artifact'\n })\n\n const languageLabel = computed(() => {\n if (!toolPart.value.input?.language) {\n return ''\n }\n return ` (${toolPart.value.input.language})`\n })\n\n const isCodeType = computed(() => {\n return (\n toolPart.value.input?.artifactType === 'code' ||\n toolPart.value.input?.artifactType === 'json' ||\n toolPart.value.input?.artifactType === 'xml' ||\n toolPart.value.input?.artifactType === 'yaml' ||\n toolPart.value.input?.artifactType === 'html' ||\n toolPart.value.input?.artifactType === 'sql'\n )\n })\n\n const isMarkdownType = computed(() => {\n return toolPart.value.input?.artifactType === 'markdown'\n })\n\n const codeLanguage = computed(() => {\n if (toolPart.value.input?.language) {\n return toolPart.value.input.language\n }\n // Map artifact types to highlight.js languages\n const languageMap: Record<string, string> = {\n json: 'json',\n xml: 'xml',\n yaml: 'yaml',\n html: 'html',\n sql: 'sql',\n }\n if (!toolPart.value.input?.artifactType) {\n return 'plaintext'\n }\n return languageMap[toolPart.value.input.artifactType] || 'plaintext'\n })\n</script>\n\n<template>\n <div class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 font-bold bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex justify-between items-center\">\n <div class=\"flex flex-col items-start gap-4\">\n <span>{{ toolPart?.input?.title }}</span>\n <span class=\"text-10 opacity-60 font-normal\">\n {{ artifactTypeLabel }}{{ languageLabel }}\n </span>\n </div>\n <VvButton\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n modifiers=\"action-quiet-small\"\n :title=\"$t('action.copy')\"\n class=\"shrink-0\"\n @click=\"copy(toolPart?.input?.content || '')\" />\n </div>\n <div class=\"px-sm py-10\">\n <PkCode\n v-if=\"isCodeType\"\n :code=\"toolPart?.input?.content\"\n :language=\"codeLanguage\" />\n <PkStreamingMarkdown\n v-else-if=\"isMarkdownType\"\n :markdown=\"toolPart?.input?.content\"\n class=\"wysiwyg text-word-2\" />\n <pre\n v-else\n class=\"text-word-2 whitespace-pre-wrap break-words\"\n :class=\"{\n italic:\n toolPart?.input?.artifactType === 'document' ||\n toolPart?.input?.artifactType === 'text',\n }\"\n >{{ toolPart?.input?.content }}</pre\n >\n </div>\n </div>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"PkToolShowArtifact-BwW4Yn6k.js","names":["$attrs","$t"],"sources":["../../../../packages/components/src/chat/PkCode.vue","../../../../packages/components/src/chat/PkCode.vue","../../../../packages/components/src/chat/PkToolShowArtifact.vue","../../../../packages/components/src/chat/PkToolShowArtifact.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue'\n\n defineOptions({\n inheritAttrs: false,\n })\n\n const props = defineProps<{\n code: unknown\n language: string\n line?: boolean\n }>()\n\n const highlightedHtml = ref('')\n\n const hasCode = computed(() => {\n if (typeof props.code === 'string') {\n return props.code\n }\n return JSON.stringify(props.code, null, 2)\n })\n\n async function highlight() {\n const hljs = (await import('highlight.js/lib/common')).default\n try {\n const result = props.language\n ? hljs.highlight(hasCode.value, { language: props.language })\n : hljs.highlightAuto(hasCode.value)\n highlightedHtml.value = result.value\n } catch {\n highlightedHtml.value = hasCode.value\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n }\n }\n\n watch(hasCode, highlight, { immediate: true })\n</script>\n\n<template>\n <pre\n :class=\"\n $attrs.class\n ? $attrs.class\n : 'font-mono leading-snug text-smaller bg-surface-1'\n \">\n <code :class=\"['hljs', line ? 'whitespace-pre-line' : 'whitespace-pre', language]\" v-html=\"highlightedHtml\"></code>\n </pre>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue'\n\n defineOptions({\n inheritAttrs: false,\n })\n\n const props = defineProps<{\n code: unknown\n language: string\n line?: boolean\n }>()\n\n const highlightedHtml = ref('')\n\n const hasCode = computed(() => {\n if (typeof props.code === 'string') {\n return props.code\n }\n return JSON.stringify(props.code, null, 2)\n })\n\n async function highlight() {\n const hljs = (await import('highlight.js/lib/common')).default\n try {\n const result = props.language\n ? hljs.highlight(hasCode.value, { language: props.language })\n : hljs.highlightAuto(hasCode.value)\n highlightedHtml.value = result.value\n } catch {\n highlightedHtml.value = hasCode.value\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n }\n }\n\n watch(hasCode, highlight, { immediate: true })\n</script>\n\n<template>\n <pre\n :class=\"\n $attrs.class\n ? $attrs.class\n : 'font-mono leading-snug text-smaller bg-surface-1'\n \">\n <code :class=\"['hljs', line ? 'whitespace-pre-line' : 'whitespace-pre', language]\" v-html=\"highlightedHtml\"></code>\n </pre>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useClipboard } from '@vueuse/core'\n import PkCode from './PkCode.vue'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n\n const { copy, copied } = useClipboard()\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n title: string\n content: string\n artifactType: string\n language?: string\n }\n }\n return part\n })\n\n const artifactTypeLabel = computed(() => {\n const labels: Record<string, string> = {\n code: 'Code',\n document: 'Document',\n markdown: 'Markdown',\n json: 'JSON',\n xml: 'XML',\n csv: 'CSV',\n html: 'HTML',\n yaml: 'YAML',\n sql: 'SQL',\n text: 'Text',\n }\n if (!toolPart.value.input?.artifactType) {\n return 'Artifact'\n }\n return labels[toolPart.value.input.artifactType] || 'Artifact'\n })\n\n const languageLabel = computed(() => {\n if (!toolPart.value.input?.language) {\n return ''\n }\n return ` (${toolPart.value.input.language})`\n })\n\n const isCodeType = computed(() => {\n return (\n toolPart.value.input?.artifactType === 'code' ||\n toolPart.value.input?.artifactType === 'json' ||\n toolPart.value.input?.artifactType === 'xml' ||\n toolPart.value.input?.artifactType === 'yaml' ||\n toolPart.value.input?.artifactType === 'html' ||\n toolPart.value.input?.artifactType === 'sql'\n )\n })\n\n const isMarkdownType = computed(() => {\n return toolPart.value.input?.artifactType === 'markdown'\n })\n\n const codeLanguage = computed(() => {\n if (toolPart.value.input?.language) {\n return toolPart.value.input.language\n }\n // Map artifact types to highlight.js languages\n const languageMap: Record<string, string> = {\n json: 'json',\n xml: 'xml',\n yaml: 'yaml',\n html: 'html',\n sql: 'sql',\n }\n if (!toolPart.value.input?.artifactType) {\n return 'plaintext'\n }\n return languageMap[toolPart.value.input.artifactType] || 'plaintext'\n })\n</script>\n\n<template>\n <div class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 font-bold bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex justify-between items-center\">\n <div class=\"flex flex-col items-start gap-4\">\n <span>{{ toolPart?.input?.title }}</span>\n <span class=\"text-10 opacity-60 font-normal\">\n {{ artifactTypeLabel }}{{ languageLabel }}\n </span>\n </div>\n <VvButton\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n modifiers=\"action-quiet-small\"\n :title=\"$t('action.copy')\"\n class=\"shrink-0\"\n @click=\"copy(toolPart?.input?.content || '')\" />\n </div>\n <div class=\"px-sm py-10\">\n <PkCode\n v-if=\"isCodeType\"\n :code=\"toolPart?.input?.content\"\n :language=\"codeLanguage\" />\n <PkStreamingMarkdown\n v-else-if=\"isMarkdownType\"\n :markdown=\"toolPart?.input?.content\"\n class=\"wysiwyg text-word-2\" />\n <pre\n v-else\n class=\"text-word-2 whitespace-pre-wrap break-words\"\n :class=\"{\n italic:\n toolPart?.input?.artifactType === 'document' ||\n toolPart?.input?.artifactType === 'text',\n }\"\n >{{ toolPart?.input?.content }}</pre\n >\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useClipboard } from '@vueuse/core'\n import PkCode from './PkCode.vue'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n\n const { copy, copied } = useClipboard()\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n title: string\n content: string\n artifactType: string\n language?: string\n }\n }\n return part\n })\n\n const artifactTypeLabel = computed(() => {\n const labels: Record<string, string> = {\n code: 'Code',\n document: 'Document',\n markdown: 'Markdown',\n json: 'JSON',\n xml: 'XML',\n csv: 'CSV',\n html: 'HTML',\n yaml: 'YAML',\n sql: 'SQL',\n text: 'Text',\n }\n if (!toolPart.value.input?.artifactType) {\n return 'Artifact'\n }\n return labels[toolPart.value.input.artifactType] || 'Artifact'\n })\n\n const languageLabel = computed(() => {\n if (!toolPart.value.input?.language) {\n return ''\n }\n return ` (${toolPart.value.input.language})`\n })\n\n const isCodeType = computed(() => {\n return (\n toolPart.value.input?.artifactType === 'code' ||\n toolPart.value.input?.artifactType === 'json' ||\n toolPart.value.input?.artifactType === 'xml' ||\n toolPart.value.input?.artifactType === 'yaml' ||\n toolPart.value.input?.artifactType === 'html' ||\n toolPart.value.input?.artifactType === 'sql'\n )\n })\n\n const isMarkdownType = computed(() => {\n return toolPart.value.input?.artifactType === 'markdown'\n })\n\n const codeLanguage = computed(() => {\n if (toolPart.value.input?.language) {\n return toolPart.value.input.language\n }\n // Map artifact types to highlight.js languages\n const languageMap: Record<string, string> = {\n json: 'json',\n xml: 'xml',\n yaml: 'yaml',\n html: 'html',\n sql: 'sql',\n }\n if (!toolPart.value.input?.artifactType) {\n return 'plaintext'\n }\n return languageMap[toolPart.value.input.artifactType] || 'plaintext'\n })\n</script>\n\n<template>\n <div class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 font-bold bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex justify-between items-center\">\n <div class=\"flex flex-col items-start gap-4\">\n <span>{{ toolPart?.input?.title }}</span>\n <span class=\"text-10 opacity-60 font-normal\">\n {{ artifactTypeLabel }}{{ languageLabel }}\n </span>\n </div>\n <VvButton\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n modifiers=\"action-quiet-small\"\n :title=\"$t('action.copy')\"\n class=\"shrink-0\"\n @click=\"copy(toolPart?.input?.content || '')\" />\n </div>\n <div class=\"px-sm py-10\">\n <PkCode\n v-if=\"isCodeType\"\n :code=\"toolPart?.input?.content\"\n :language=\"codeLanguage\" />\n <PkStreamingMarkdown\n v-else-if=\"isMarkdownType\"\n :markdown=\"toolPart?.input?.content\"\n class=\"wysiwyg text-word-2\" />\n <pre\n v-else\n class=\"text-word-2 whitespace-pre-wrap break-words\"\n :class=\"{\n italic:\n toolPart?.input?.artifactType === 'document' ||\n toolPart?.input?.artifactType === 'text',\n }\"\n >{{ toolPart?.input?.content }}</pre\n >\n </div>\n </div>\n</template>\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { $ as e, C as t, E as n, Gt as r, O as i, Vt as a, _ as o, b as s, v as c, w as l, x as u, yt as d, z as f } from "./vue.runtime.esm-bundler-BmggS4HU.js";
2
- import { n as p } from "./vue-i18n-KvYvoek4.js";
3
- import { c as m, n as h, o as g, r as _, s as v } from "./index.es-CUjDCkXD.js";
4
- import { n as y } from "./src-C_wl-KYN.js";
5
- import { i as b } from "./dist-BTnzL-m0.js";
1
+ import { $ as e, C as t, E as n, Gt as r, O as i, Vt as a, _ as o, b as s, v as c, w as l, x as u, yt as d, z as f } from "./vue.runtime.esm-bundler-Dq29dQrz.js";
2
+ import { n as p } from "./vue-i18n-DAH6nDTN.js";
3
+ import { c as m, n as h, o as g, r as _, s as v } from "./index.es-7fUi-rc0.js";
4
+ import { n as y } from "./src-BfoQF6Z3.js";
5
+ import { i as b } from "./dist-yqV26MWM.js";
6
6
  //#region ../../packages/components/src/chat/PkToolShowCalendarEvent.vue?vue&type=script&setup=true&lang.ts
7
7
  var x = {
8
8
  key: 0,
@@ -142,4 +142,4 @@ var x = {
142
142
  //#endregion
143
143
  export { I as default };
144
144
 
145
- //# sourceMappingURL=PkToolShowCalendarEvent-cQpAAE3a.js.map
145
+ //# sourceMappingURL=PkToolShowCalendarEvent-BEqn5iEb.js.map