vibe64 0.1.26 → 0.1.28

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 (111) hide show
  1. package/dist/assets/{VRadioGroup-D6WRdUau.js → VRadioGroup-BuRMvs7d.js} +1 -1
  2. package/dist/assets/{VTabs-BGX5dGoS.js → VTabs-CQq9CAuT.js} +1 -1
  3. package/dist/assets/{VTextarea-CD6H_mtJ.js → VTextarea-Duvzvmjq.js} +1 -1
  4. package/dist/assets/{Vibe64AsyncModuleState-Cel3OePx.js → Vibe64AsyncModuleState-DuuzlJDp.js} +1 -1
  5. package/dist/assets/{Vibe64AuthSettingsButton-CMMeacsl.js → Vibe64AuthSettingsButton-CKOCL-kl.js} +1 -1
  6. package/dist/assets/{Vibe64DashboardShell-C2UhX2ke.js → Vibe64DashboardShell-DMT8aOp1.js} +1 -1
  7. package/dist/assets/{Vibe64DatabaseWorkspace-C43TE5-O.js → Vibe64DatabaseWorkspace-CqH0zfFZ.js} +1 -1
  8. package/dist/assets/{Vibe64OutputControls-BmzH2ASf.js → Vibe64OutputControls-DDILWOYb.js} +1 -1
  9. package/dist/assets/{Vibe64RepositoryWorkspace-CT9tkvHh.js → Vibe64RepositoryWorkspace-D11BZHtF.js} +1 -1
  10. package/dist/assets/Vibe64SessionFiles-BSoB7Xrs.js +1 -0
  11. package/dist/assets/{Vibe64SessionFiles-CH5PCxwg.css → Vibe64SessionFiles-DVux69YS.css} +1 -1
  12. package/dist/assets/{Vibe64SubsystemsView-DNx-pZp8.js → Vibe64SubsystemsView-tLlxmK3M.js} +1 -1
  13. package/dist/assets/{Vibe64SystemWorldView-UdNJZbqX.js → Vibe64SystemWorldView-8og8TPyL.js} +1 -1
  14. package/dist/assets/{_sessionId_-DZTmI19N.js → _sessionId_-Dts6gv4W.js} +1 -1
  15. package/dist/assets/{_sessionTool_-CugJWIK4.js → _sessionTool_-bHJUlHCW.js} +1 -1
  16. package/dist/assets/_slug_-B3fqw8Sl.js +12 -0
  17. package/dist/assets/_slug_-DfHqx2_b.css +1 -0
  18. package/dist/assets/{dashboard-D4NXqPY1.js → dashboard-CcD6GIaB.js} +1 -1
  19. package/dist/assets/{definitions-CyUCoqu-.js → definitions-ChGXm26a.js} +1 -1
  20. package/dist/assets/{error-kYKTA8fu.js → error-CStS-Kbt.js} +1 -1
  21. package/dist/assets/{index-hy7AAm-B.js → index-B262pg9q.js} +1 -1
  22. package/dist/assets/{index-DX6Rm6jZ.js → index-B_grpOta.js} +1 -1
  23. package/dist/assets/{index-Cpt19GIW.js → index-BtHA_DX9.js} +1 -1
  24. package/dist/assets/{index-SBc6H2In.js → index-C4KnwA0g.js} +4 -4
  25. package/dist/assets/{index-DeRx59Iq.js → index-CC7BFJAg.js} +1 -1
  26. package/dist/assets/{index-6Kv-7k0S.js → index-CKFrWxnr.js} +1 -1
  27. package/dist/assets/{index-BDe3NnFP.js → index-CPG-_bMW.js} +1 -1
  28. package/dist/assets/{index-CuEZOpKL.js → index-CV9pOpbQ.js} +1 -1
  29. package/dist/assets/{index-D4p1hWbM.js → index-DIQxSy1c.js} +1 -1
  30. package/dist/assets/{index-D5vnCntG.js → index-DVaJ8fEr.js} +1 -1
  31. package/dist/assets/{index-BGu7hfTb.js → index-DtGqjUin.js} +1 -1
  32. package/dist/assets/{index-Cca4WXur.js → index-YQALXwL4.js} +1 -1
  33. package/dist/assets/{placement-Nw6LF6xp.js → placement-Cyt3SnRe.js} +1 -1
  34. package/dist/assets/{studioGateApi-B2eiydiA.js → studioGateApi-BwBnOYBp.js} +1 -1
  35. package/dist/assets/{useArchivedVibe64Sessions-LeGda1Y9.js → useArchivedVibe64Sessions-_FKt1-qN.js} +1 -1
  36. package/dist/assets/{useVibe64ConversationLog-BPyKYbvH.js → useVibe64ConversationLog-BjnpqM9K.js} +1 -1
  37. package/dist/assets/{useVibe64ProjectScope-n5T5l2pY.js → useVibe64ProjectScope-DcDkjbLT.js} +1 -1
  38. package/dist/assets/{useVibe64SessionData-BToODuTg.js → useVibe64SessionData-BHLSmuPm.js} +1 -1
  39. package/dist/assets/{useVibe64SessionSelection-D1wXIWTm.js → useVibe64SessionSelection-G6KQKJxb.js} +1 -1
  40. package/dist/assets/{vibe64RepositoryRealtime-Xo7aIksE.js → vibe64RepositoryRealtime-C2WPn5do.js} +1 -1
  41. package/dist/assets/{vibe64SessionInfo-Dy_4bL3a.js → vibe64SessionInfo-8kuxgD5r.js} +1 -1
  42. package/dist/assets/{vibe64SessionPanelModel-5UED-6V-.js → vibe64SessionPanelModel-DDaXjAJ_.js} +1 -1
  43. package/dist/assets/{vibe64SessionRequestConfig-B7Llggdb.js → vibe64SessionRequestConfig-uGWcyQY6.js} +1 -1
  44. package/dist/assets/{vibe64SessionToolDefinitions-C4maKOfp.js → vibe64SessionToolDefinitions-D5CgOIqa.js} +1 -1
  45. package/dist/assets/{vueRefOrGetterValue-_KqAOFjr.js → vueRefOrGetterValue-CV9c3oBd.js} +1 -1
  46. package/dist/index.html +1 -1
  47. package/node_modules/@jskit-ai/connector-google-calendar/package.json +3 -3
  48. package/node_modules/@jskit-ai/connector-google-calendar/patterns/calendar-cli/example/package.json +4 -4
  49. package/node_modules/@jskit-ai/connectors-catalog/package.json +3 -3
  50. package/node_modules/@jskit-ai/connectors-catalog/test/dbt-semantic-layer.test.js +3 -0
  51. package/node_modules/@jskit-ai/connectors-catalog/test/google-ads.test.js +3 -0
  52. package/node_modules/@jskit-ai/connectors-catalog/test/salesforce.test.js +3 -0
  53. package/node_modules/@jskit-ai/connectors-catalog/test/xero.test.js +3 -0
  54. package/node_modules/@jskit-ai/connectors-core/package.json +4 -4
  55. package/node_modules/@jskit-ai/http-web/package.json +6 -6
  56. package/node_modules/@jskit-ai/kernel/package.json +1 -1
  57. package/node_modules/@jskit-ai/kernel/server/runtime/fastifyBootstrap.js +50 -10
  58. package/node_modules/@jskit-ai/kernel/server/runtime/fastifyBootstrap.test.js +38 -0
  59. package/node_modules/@jskit-ai/kernel/shared/support/normalize.js +8 -0
  60. package/node_modules/@jskit-ai/kernel/shared/support/normalize.test.js +10 -0
  61. package/node_modules/@jskit-ai/payments-core/package.json +1 -1
  62. package/node_modules/@jskit-ai/realtime/package.json +3 -3
  63. package/node_modules/@jskit-ai/realtime/patterns/realtime-application/example/package.json +2 -2
  64. package/node_modules/@jskit-ai/resource-core/package.json +2 -2
  65. package/node_modules/@jskit-ai/resource-crud-core/package.json +3 -3
  66. package/node_modules/@jskit-ai/shell-web/package.json +2 -2
  67. package/node_modules/@jskit-ai/uploads-runtime/package.json +2 -2
  68. package/node_modules/@local/current-app/package.json +1 -1
  69. package/node_modules/@local/main/package.json +2 -2
  70. package/node_modules/@local/studio-health/package.json +1 -1
  71. package/node_modules/@local/vibe64-accounts/package.json +3 -3
  72. package/node_modules/@local/vibe64-core/package.json +1 -1
  73. package/node_modules/@local/vibe64-database-tools/package.json +3 -3
  74. package/node_modules/@local/vibe64-project/package.json +1 -1
  75. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProvider.js +34 -0
  76. package/node_modules/@local/vibe64-sessions/package.json +1 -1
  77. package/node_modules/@local/vibe64-sessions/src/server/sessionRenewal.js +4 -1
  78. package/node_modules/@local/vibe64-source-editor/package.json +5 -5
  79. package/node_modules/@local/vibe64-system-graph/package.json +3 -3
  80. package/node_modules/@local/vibe64-terminals/package.json +2 -2
  81. package/node_modules/@local/vibe64-terminals/src/server/agent/providers/codexSessionAgentProvider.js +6 -0
  82. package/node_modules/@local/vibe64-terminals/src/server/agent/sessionAgentManager.js +16 -0
  83. package/node_modules/@local/vibe64-terminals/src/server/codexTerminal.js +180 -64
  84. package/node_modules/@local/vibe64-terminals/src/server/registerRoutes.js +12 -0
  85. package/node_modules/@local/vibe64-terminals/src/server/service.js +57 -16
  86. package/node_modules/@local/vibe64-terminals/src/server/sessionPromptHints.js +9 -1
  87. package/node_modules/@local/vibe64-terminals/src/server/sessionSaveCommitMessage.js +1 -1
  88. package/package.json +15 -15
  89. package/packages/current-app/package.json +1 -1
  90. package/packages/main/package.json +2 -2
  91. package/packages/studio-health/package.json +1 -1
  92. package/packages/vibe64-accounts/package.json +3 -3
  93. package/packages/vibe64-core/package.json +1 -1
  94. package/packages/vibe64-database-tools/package.json +3 -3
  95. package/packages/vibe64-project/package.json +1 -1
  96. package/packages/vibe64-runtime/src/server/codexAppServerProvider.js +34 -0
  97. package/packages/vibe64-sessions/package.json +1 -1
  98. package/packages/vibe64-sessions/src/server/sessionRenewal.js +4 -1
  99. package/packages/vibe64-source-editor/package.json +5 -5
  100. package/packages/vibe64-system-graph/package.json +3 -3
  101. package/packages/vibe64-terminals/package.json +2 -2
  102. package/packages/vibe64-terminals/src/server/agent/providers/codexSessionAgentProvider.js +6 -0
  103. package/packages/vibe64-terminals/src/server/agent/sessionAgentManager.js +16 -0
  104. package/packages/vibe64-terminals/src/server/codexTerminal.js +180 -64
  105. package/packages/vibe64-terminals/src/server/registerRoutes.js +12 -0
  106. package/packages/vibe64-terminals/src/server/service.js +57 -16
  107. package/packages/vibe64-terminals/src/server/sessionPromptHints.js +9 -1
  108. package/packages/vibe64-terminals/src/server/sessionSaveCommitMessage.js +1 -1
  109. package/dist/assets/Vibe64SessionFiles-BS5MW7Qz.js +0 -1
  110. package/dist/assets/_slug_-BzRzebKA.js +0 -12
  111. package/dist/assets/_slug_-Q7ibe3SE.css +0 -1
@@ -0,0 +1 @@
1
+ import{c0 as genericComponent,c1 as useRender,d as createBaseVNode,c2 as normalizeStyle,$ as normalizeClass,c3 as propsFactory,c4 as makeComponentProps,c5 as useLink,c6 as useTextColor,e as createVNode,N as mergeProps,A as computed,c7 as useDimension,c8 as makeTagProps,c9 as makeRouterProps,ca as pick,cb as makeDimensionProps,cc as useBackgroundColor,cd as useDensity,ce as useRounded,cf as provideDefaults,h as VIcon,cg as VDefaultsProvider,F as Fragment,ch as IconValue,ci as makeRoundedProps,cj as makeDensityProps,ck as toRef,_ as _export_sfc,a as openBlock,c as createElementBlock,b as createBlock,w as withCtx,j as createTextVNode,t as toDisplayString,n as VBtn,I as VAlert,r as createCommentVNode,K as VSkeletonLoader,y as renderList,i as unref,cl as mdiStar,P as usePaths,E as useCommand,R as ROUTE_VISIBILITY_PUBLIC,Q as VIBE64_SURFACE_ID,G as resolveStudioRequestUrl,H as watch,cm as getCurrentScope,ag as onScopeDispose,B as ref,bz as reactive,V as VCard,k as VCardText,l as VCardActions,cn as mdiDownload,z as VSpacer,p as VDialog,o as onMounted,C as onBeforeUnmount,ad as resolveDynamicComponent,bu as VProgressLinear,co as mdiCloseCircleOutline,aj as mdiRefresh,ab as mdiClose,aA as mdiCheckCircleOutline,q as mdiAlertCircleOutline,cp as mdiFileOutline,a6 as nextTick,af as useUiFeedback,f as useId,J as renderSlot,a3 as withModifiers,cq as resolveComponent,cr as mdiImageOutline,aB as mdiRobotOutline,av as mdiInformationOutline,bR as mdiAccountOutline,ai as VChip,bF as mdiChevronRight,cs as mdiStop,b8 as mdiSend,ct as mdiFileDocumentOutline,cu as mdiFolderOutline,a$ as VList,b0 as VListItem,ac as mdiStarOutline,cv as mdiFilePlusOutline,cw as mdiContentCopy,b3 as mdiDotsVertical,O as VMenu,cx as mdiDotsHorizontal,M as useRealtimeEvent,L as getHttpWebClient,a7 as useDisplay,cy as mdiFileCodeOutline,a_ as mdiContentSaveOutline,cz as mdiUndoVariant,cA as mdiRedoVariant,a8 as withKeys,cB as mdiFileSearchOutline,a9 as VTextField,aa as mdiMagnify,aC as withDirectives,aD as vShow,bI as mdiChevronLeft,cC as mdiRestore,cD as mdiCollapseAllOutline,g as VCardTitle,bA as scopedDevelopmentApiUrl,aI as readLocalStorageJson,aH as writeLocalStorageJson,bf as writeClipboardText,cE as stableLocalStorageKeyPart,cF as mdiUpload,be as mdiArrowLeft,cG as mdiFolderPlusOutline,ba as mdiPencilOutline,cH as mdiDeleteOutline,cI as mdiSourceRepository,cJ as mdiTrayArrowUp,cK as mdiArchiveClockOutline}from"./index-C4KnwA0g.js";import{e as conversationAttachmentReference,f as conversationAttachmentContentType,a as normalizeVibe64ConversationAttachments,g as normalizeThinkingMessageText,h as vibe64AgentExecutionProfileAuditSnapshot}from"./useVibe64ConversationLog-BjnpqM9K.js";import{b as vibe64ApiError,a as vibe64ApiResponseError}from"./vibe64ApiResponses-COQ3JIKv.js";import{S as StateEffect,g as getPanel,E as EditorSelection,s as showDialog,a as EditorView,b as StateField,c as showPanel,P as Prec,d as codePointAt,e as codePointSize,F as Facet,f as combineConfig,h as EditorState,V as ViewPlugin,D as Decoration,R as RangeSetBuilder,i as fromCodePoint,j as crelt,r as runScopeHandlers,C as CharCategory,k as findClusterBreak,L as LRParser,l as ExternalTokenizer,m as LocalTokenGroup,n as ContextTracker,o as styleTags,t as tags$1,p as LanguageSupport,q as ifNotIn,u as completeFromList,v as sublanguageProp,w as LRLanguage,x as indentNodeProp,y as flatIndent,z as continuedIndent,A as delimitedIndent,B as foldNodeProp,G as foldInside,H as snippetCompletion,I as syntaxTree,J as defineLanguageFacet,N as NodeWeakMap,K as IterMode,M as parseMixed,O as bracketMatchingHandle,Q as Parser,T as NodeType,U as NodeProp,W as Tag,X as NodeSet,Y as Tree,Z as keymap,_ as foldService,$ as countColumn,a0 as Language,a1 as indentUnit,a2 as CompletionContext,a3 as languageDataProp,a4 as LanguageDescription,a5 as ParseContext,a6 as lineNumbers,a7 as highlightActiveLineGutter,a8 as history,a9 as drawSelection,aa as dropCursor,ab as indentOnInput,ac as syntaxHighlighting,ad as bracketMatching,ae as rectangularSelection,af as crosshairCursor,ag as indentWithTab,ah as defaultKeymap,ai as historyKeymap,aj as Compartment,ak as undo,al as redo,am as defaultHighlightStyle,an as StreamLanguage}from"./index-BYZl5lR4.js";import{c as VIBE64_SESSIONS_API_SUFFIX,h as vibe64AgentAttachmentFilePath,x as vibe64AgentAttachmentPath,y as vibe64SourceEditorChangesStreamPath,u as VIBE64_SOURCE_EDITOR_FILE_CHANGED_EVENT,z as VIBE64_SOURCE_EDITOR_SYNC_READY_EVENT,A as VIBE64_SOURCE_EDITOR_SYNC_ERROR_EVENT,B as vibe64SourceEditorTreePath,C as vibe64SourceEditorFilePath,D as vibe64SourceEditorExplanationStopPath,E as vibe64SourceEditorExplanationFollowupsStreamPath,F as vibe64SourceEditorResolvePathPath,G as vibe64SourceEditorExplanationsStreamPath,H as vibe64SourceEditorCreateFilePath,I as vibe64SourceEditorExplanationPath,J as vibe64SourceEditorSearchPath,K as vibe64SourceEditorFilesPath,L as vibe64SourceEditorExplanationsCleanupPath,M as vibe64SourceEditorDownloadPath}from"./vibe64SessionRequestConfig-uGWcyQY6.js";import{r as readRefOrGetterValue}from"./vueRefOrGetterValue-CV9c3oBd.js";import{a as vibe64BrowserTabOriginId,b as vibe64RealtimePayloadFromCurrentTab}from"./vibe64BrowserTabOrigin-DDSCqr3B.js";import{a as vibe64SessionDebugLog,b as vibe64SessionDebugError}from"./vibe64SessionPanelModel-DDaXjAJ_.js";import{D as Diff}from"./base-DDNBxAg7.js";import{V as VTextarea}from"./VTextarea-Duvzvmjq.js";import{a as VTab,V as VTabs}from"./VTabs-CQq9CAuT.js";const makeVBreadcrumbsDividerProps=propsFactory({divider:[Number,String],...makeComponentProps()},"VBreadcrumbsDivider");const VBreadcrumbsDivider=genericComponent()({name:"VBreadcrumbsDivider",props:makeVBreadcrumbsDividerProps(),setup(props,{slots}){useRender(()=>{var _a;return createBaseVNode("li",{"aria-hidden":"true","class":normalizeClass(["v-breadcrumbs-divider",props.class]),"style":normalizeStyle(props.style)},[((_a=slots==null?void 0:slots.default)==null?void 0:_a.call(slots))??props.divider])});return{}}});const makeVBreadcrumbsItemProps=propsFactory({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...makeComponentProps(),...pick(makeDimensionProps(),["width","maxWidth"]),...makeRouterProps(),...makeTagProps({tag:"li"})},"VBreadcrumbsItem");const VBreadcrumbsItem=genericComponent()({name:"VBreadcrumbsItem",props:makeVBreadcrumbsItemProps(),setup(props,{slots,attrs}){const link=useLink(props,attrs);const isActive=computed(()=>{var _a;return props.active||((_a=link.isActive)==null?void 0:_a.value)});const{dimensionStyles}=useDimension(props);const{textColorClasses,textColorStyles}=useTextColor(()=>isActive.value?props.activeColor:props.color);useRender(()=>{return createVNode(props.tag,{"class":normalizeClass(["v-breadcrumbs-item",{"v-breadcrumbs-item--active":isActive.value,"v-breadcrumbs-item--disabled":props.disabled,[`${props.activeClass}`]:isActive.value&&props.activeClass},textColorClasses.value,props.class]),"style":normalizeStyle([textColorStyles.value,dimensionStyles.value,props.style]),"aria-current":isActive.value?"page":void 0},{default:()=>{var _a,_b;return[!link.isLink.value?((_a=slots.default)==null?void 0:_a.call(slots))??props.title:createBaseVNode("a",mergeProps({"class":"v-breadcrumbs-item--link","onClick":link.navigate.value},link.linkProps),[((_b=slots.default)==null?void 0:_b.call(slots))??props.title])]}})});return{}}});const makeVBreadcrumbsProps=propsFactory({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:IconValue,items:{type:Array,default:()=>[]},...makeComponentProps(),...makeDensityProps(),...makeRoundedProps(),...makeTagProps({tag:"ul"})},"VBreadcrumbs");const VBreadcrumbs=genericComponent()({name:"VBreadcrumbs",props:makeVBreadcrumbsProps(),setup(props,{slots}){const{backgroundColorClasses,backgroundColorStyles}=useBackgroundColor(()=>props.bgColor);const{densityClasses}=useDensity(props);const{roundedClasses,roundedStyles}=useRounded(props);provideDefaults({VBreadcrumbsDivider:{divider:toRef(()=>props.divider)},VBreadcrumbsItem:{activeClass:toRef(()=>props.activeClass),activeColor:toRef(()=>props.activeColor),color:toRef(()=>props.color),disabled:toRef(()=>props.disabled)}});const items=computed(()=>props.items.map(item=>{return typeof item==="string"?{item:{title:item},raw:item}:{item,raw:item}}));useRender(()=>{const hasPrepend=!!(slots.prepend||props.icon);return createVNode(props.tag,{"class":normalizeClass(["v-breadcrumbs",backgroundColorClasses.value,densityClasses.value,roundedClasses.value,props.class]),"style":normalizeStyle([backgroundColorStyles.value,roundedStyles.value,props.style])},{default:()=>{var _a;return[hasPrepend&&createBaseVNode("li",{"key":"prepend","class":"v-breadcrumbs__prepend"},[!slots.prepend?createVNode(VIcon,{"key":"prepend-icon","start":true,"icon":props.icon},null):createVNode(VDefaultsProvider,{"key":"prepend-defaults","disabled":!props.icon,"defaults":{VIcon:{icon:props.icon,start:true}}},slots.prepend)]),items.value.map(({item,raw},index,array)=>{var _a2;return createBaseVNode(Fragment,null,[((_a2=slots.item)==null?void 0:_a2.call(slots,{item,index}))??createVNode(VBreadcrumbsItem,mergeProps({"key":index,"disabled":index>=array.length-1},typeof item==="string"?{title:item}:item),{default:slots.title?()=>{var _a3;return(_a3=slots.title)==null?void 0:_a3.call(slots,{item,index})}:void 0}),index<array.length-1&&createVNode(VBreadcrumbsDivider,null,{default:slots.divider?()=>{var _a3;return(_a3=slots.divider)==null?void 0:_a3.call(slots,{item:raw,index})}:void 0})])}),(_a=slots.default)==null?void 0:_a.call(slots)]}})});return{}}});const _hoisted_1$c={key:2,class:"starred-files-list__empty"};const _hoisted_2$c={key:3,class:"starred-files-list__empty"};const _hoisted_3$a={key:4,"aria-label":"Starred files"};const _hoisted_4$a=["aria-label","disabled","title","onClick"];const _hoisted_5$8={key:0};const _hoisted_6$8={key:1};const _sfc_main$d={__name:"Vibe64StarredFilesList",props:{bookmarks:{type:Object,required:true},compact:{type:Boolean,default:false},files:{type:Array,default:null}},emits:["open-file"],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const displayedFiles=computed(()=>props.files??props.bookmarks.files.value);return(_ctx,_cache)=>{return openBlock(),createElementBlock("div",{class:normalizeClass(["starred-files-list",{"starred-files-list--compact":__props.compact}])},[__props.bookmarks.error.value?(openBlock(),createBlock(VAlert,{key:0,density:"compact",type:"error",variant:"tonal"},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.bookmarks.error.value)+" ",1),createVNode(VBtn,{size:"small",variant:"text",onClick:__props.bookmarks.refresh},{default:withCtx(()=>[..._cache[0]||(_cache[0]=[createTextVNode("Retry",-1)])]),_:1},8,["onClick"])]),_:1})):createCommentVNode("",true),__props.bookmarks.loading.value&&!__props.bookmarks.files.value.length?(openBlock(),createBlock(VSkeletonLoader,{key:1,type:__props.compact?"list-item@2":"list-item-two-line@2"},null,8,["type"])):!__props.bookmarks.files.value.length?(openBlock(),createElementBlock("p",_hoisted_1$c," Star files in Files to keep them handy while chatting. Only you see your stars. ")):!displayedFiles.value.length?(openBlock(),createElementBlock("p",_hoisted_2$c,"No matching starred files.")):(openBlock(),createElementBlock("ul",_hoisted_3$a,[(openBlock(true),createElementBlock(Fragment,null,renderList(displayedFiles.value,file=>{return openBlock(),createElementBlock("li",{key:file.path},[createBaseVNode("button",{class:"starred-files-list__open","aria-label":__props.compact?file.path:void 0,disabled:!file.available,title:file.available?file.path:`${file.path}: ${file.reason}`,type:"button",onClick:$event=>emit("open-file",file.path)},[createBaseVNode("strong",null,toDisplayString(file.path.split("/").at(-1)),1),!__props.compact?(openBlock(),createElementBlock("span",_hoisted_5$8,toDisplayString(file.path),1)):createCommentVNode("",true),!__props.compact&&!file.available?(openBlock(),createElementBlock("span",_hoisted_6$8,toDisplayString(file.reason||"Not found in this session"),1)):createCommentVNode("",true)],8,_hoisted_4$a),createVNode(VBtn,{"aria-label":`Unstar ${file.path}`,disabled:__props.bookmarks.pendingPaths.value.includes(file.path),icon:unref(mdiStar),size:"small",title:"Unstar file",variant:"text",onClick:$event=>__props.bookmarks.toggle(file.path)},null,8,["aria-label","disabled","icon","onClick"])])}),128))]))],2)}}};const Vibe64StarredFilesList=_export_sfc(_sfc_main$d,[["__scopeId","data-v-8ce15272"]]);const ATTACHMENT_UPLOAD_ERROR="Assistant attachment could not be uploaded.";function normalizeSessionId(sessionId=""){return String(sessionId||"").trim()}function missingSessionResponse(){return{error:"Vibe64 session id is required.",ok:false}}function missingAttachmentResponse(){return{error:"Attachment id is required.",ok:false}}function attachmentUploadAbortError(){const error=new Error("Attachment upload was cancelled.");error.name="AbortError";return error}function attachmentUploadPayload(request){const response=request==null?void 0:request.response;if(response&&typeof response==="object"){return response}const source=typeof response==="string"?response:String((request==null?void 0:request.responseText)||"");if(!source.trim()){return null}try{return JSON.parse(source)}catch{return null}}function attachmentUploadProgress(event={},fileSize=0){const totalBytes=Number.isFinite(Number(fileSize))?Math.max(0,Number(fileSize)):0;const transportTotal=event.lengthComputable===true&&Number.isFinite(Number(event.total))?Math.max(0,Number(event.total)):0;if(transportTotal<1){return{bytesSent:0,progress:null,totalBytes}}const transportLoaded=Number.isFinite(Number(event.loaded))?Number(event.loaded):0;const progress=Math.min(1,Math.max(0,transportLoaded/transportTotal));return{bytesSent:Math.min(totalBytes,Math.floor(totalBytes*progress)),progress,totalBytes}}function uploadAttachmentRequest({file,onProgress=null,path,signal=null}={}){return new Promise((resolve,reject)=>{var _a,_b,_c;if(signal==null?void 0:signal.aborted){reject(attachmentUploadAbortError());return}let request;try{request=new globalThis.XMLHttpRequest}catch{reject(new Error(`${ATTACHMENT_UPLOAD_ERROR} Browser upload support is unavailable.`));return}let settled=false;const progressHandler=event=>{if(typeof onProgress!=="function"){return}try{onProgress(attachmentUploadProgress(event,file.size))}catch{}};const cleanup=()=>{var _a2,_b2,_c2;(_a2=signal==null?void 0:signal.removeEventListener)==null?void 0:_a2.call(signal,"abort",abortHandler);(_c2=(_b2=request.upload)==null?void 0:_b2.removeEventListener)==null?void 0:_c2.call(_b2,"progress",progressHandler);request.onload=null;request.onerror=null;request.onabort=null;request.ontimeout=null};const settle=(callback,value)=>{if(settled){return}settled=true;cleanup();callback(value)};const abortHandler=()=>{request.abort();settle(reject,attachmentUploadAbortError())};try{const body=new FormData;body.append("file",file,String(file.name||"attachment"));request.open("POST",resolveStudioRequestUrl(path),true);request.onload=()=>{const payload=attachmentUploadPayload(request);if(request.status>=200&&request.status<300){if(payload&&typeof payload==="object"){settle(resolve,payload);return}settle(reject,new Error("Assistant attachment upload returned an invalid response."));return}const error=vibe64ApiError(payload||{},`${ATTACHMENT_UPLOAD_ERROR} (HTTP ${request.status||"unknown"})`);error.status=Number(request.status||0);error.statusCode=error.status;settle(reject,error)};request.onerror=()=>{settle(reject,new Error(`${ATTACHMENT_UPLOAD_ERROR} Check your connection and try again.`))};request.onabort=()=>{settle(reject,attachmentUploadAbortError())};request.ontimeout=()=>{settle(reject,new Error(`${ATTACHMENT_UPLOAD_ERROR} The request timed out.`))};(_b=(_a=request.upload)==null?void 0:_a.addEventListener)==null?void 0:_b.call(_a,"progress",progressHandler);(_c=signal==null?void 0:signal.addEventListener)==null?void 0:_c.call(signal,"abort",abortHandler,{once:true});if(signal==null?void 0:signal.aborted){abortHandler();return}request.withCredentials=true;request.setRequestHeader("Accept","application/json");request.send(body)}catch(error){settle(reject,error instanceof Error?error:new Error(ATTACHMENT_UPLOAD_ERROR))}})}function useVibe64AttachmentCommands(){const paths=usePaths();const sessionsApiPath=computed(()=>paths.api(VIBE64_SESSIONS_API_SUFFIX,{surface:VIBE64_SURFACE_ID}));const deleteAttachmentCommand=useCommand({access:"never",apiSuffix:VIBE64_SESSIONS_API_SUFFIX,buildCommandOptions:(_payload,{context})=>({method:"DELETE",path:vibe64AgentAttachmentFilePath(sessionsApiPath.value,context.sessionId,context.attachmentId)}),fallbackRunError:"Assistant attachment could not be removed.",messages:{error:"Assistant attachment could not be removed."},ownershipFilter:ROUTE_VISIBILITY_PUBLIC,placementSource:"vibe64.agent-attachment.delete",suppressSuccessMessage:true,surfaceId:VIBE64_SURFACE_ID,writeMethod:"DELETE"});async function deleteAttachment(sessionId="",attachmentId=""){const normalizedSessionId=normalizeSessionId(sessionId);if(!normalizedSessionId){return missingSessionResponse()}const normalizedAttachmentId=String(attachmentId||"").trim();if(!normalizedAttachmentId){return missingAttachmentResponse()}return await deleteAttachmentCommand.run({attachmentId:normalizedAttachmentId,sessionId:normalizedSessionId})}async function uploadAttachment(sessionId="",file=null,{onProgress=null,signal=null}={}){const normalizedSessionId=normalizeSessionId(sessionId);if(!normalizedSessionId){return missingSessionResponse()}if(!file||typeof file.arrayBuffer!=="function"){return{error:"Attachment file is required.",ok:false}}return await uploadAttachmentRequest({file,onProgress,path:vibe64AgentAttachmentPath(sessionsApiPath.value,normalizedSessionId),signal})}return{deleteAttachment,uploadAttachment}}function codexAttachmentSessionId(sessionId){return String(readRefOrGetterValue(sessionId)||"").trim()}function codexAttachmentUploadAllowed(canUpload){return readRefOrGetterValue(canUpload)!==false}function codexAttachmentFiles(fileList=[]){return Array.from(fileList||[]).filter(file=>file&&file.size>=0)}function codexAttachmentFilesFromTransferItems(items=[]){return codexAttachmentFiles(Array.from(items||[]).map(item=>{if((item==null?void 0:item.kind)!=="file"||typeof item.getAsFile!=="function"){return null}return item.getAsFile()}))}function codexAttachmentFilesFromDropEvent(event){const dataTransfer=event==null?void 0:event.dataTransfer;const itemFiles=codexAttachmentFilesFromTransferItems(dataTransfer==null?void 0:dataTransfer.items);if(itemFiles.length>0){return itemFiles}return codexAttachmentFiles(dataTransfer==null?void 0:dataTransfer.files)}function codexAttachmentFilesFromClipboardItems(items=[]){return codexAttachmentFilesFromTransferItems(items)}function codexAttachmentFilesFromPasteEvent(event){const clipboardData=event==null?void 0:event.clipboardData;const itemFiles=codexAttachmentFilesFromClipboardItems(clipboardData==null?void 0:clipboardData.items);if(itemFiles.length>0){return itemFiles}return codexAttachmentFiles(clipboardData==null?void 0:clipboardData.files)}function codexAttachmentEventHasFiles(event){const dataTransfer=event==null?void 0:event.dataTransfer;return codexAttachmentFilesFromDropEvent(event).length>0||Array.from((dataTransfer==null?void 0:dataTransfer.items)||[]).some(item=>(item==null?void 0:item.kind)==="file")||Array.from((dataTransfer==null?void 0:dataTransfer.types)||[]).some(type=>type==="Files"||type==="application/x-moz-file")}function codexAttachmentClipboardText(event){var _a;if(typeof((_a=event==null?void 0:event.clipboardData)==null?void 0:_a.getData)!=="function"){return""}return String(event.clipboardData.getData("text/plain")||"")}function codexAttachmentClipboardLocalFileReference(event){const clipboardData=event==null?void 0:event.clipboardData;if(!clipboardData||typeof clipboardData.getData!=="function"){return""}const types=Array.from(clipboardData.types||[]);const text=[clipboardData.getData("x-special/gnome-copied-files"),clipboardData.getData("text/uri-list"),clipboardData.getData("text/plain")].map(value=>String(value||"").trim()).filter(Boolean).join("\n");if(types.includes("Files")||types.includes("application/x-moz-file")||types.includes("x-special/gnome-copied-files")||/^file:/imu.test(text)){return text||"file://"}return""}function attachmentUploadError(attachment={}){var _a,_b;return(attachment==null?void 0:attachment.error)||((_b=(_a=attachment==null?void 0:attachment.errors)==null?void 0:_a[0])==null?void 0:_b.message)||""}function attachmentIdentity(attachment={}){return String((attachment==null?void 0:attachment.clientId)||(attachment==null?void 0:attachment.attachmentId)||(attachment==null?void 0:attachment.path)||(attachment==null?void 0:attachment.fileName)||"")}async function deliverUploadedAttachments(onUploaded,uploaded=[]){if(uploaded.length>0){return await onUploaded(uploaded)}return null}const AGENT_ATTACHMENT_MAX_BYTES=1e8;const AGENT_ATTACHMENT_MAX_ITEMS=10;const AGENT_ATTACHMENT_UPLOAD_CONCURRENCY=2;const AGENT_ATTACHMENT_UNRESOLVED_PHASES=new Set(["preparing","queued","uploading","delivering","failed"]);let attachmentClientSequence=0;function nextAttachmentClientId(){attachmentClientSequence+=1;return`attachment-${Date.now().toString(36)}-${attachmentClientSequence.toString(36)}`}function attachmentFileName(file={}){return String((file==null?void 0:file.name)||"attachment")}function attachmentUploadResult(upload=null){if(upload&&typeof upload.then==="function"){return{cancel:typeof upload.cancel==="function"?()=>upload.cancel():null,promise:upload}}if((upload==null?void 0:upload.promise)&&typeof upload.promise.then==="function"){const cancel=typeof upload.abort==="function"?()=>upload.abort():typeof upload.cancel==="function"?()=>upload.cancel():null;return{cancel,promise:upload.promise}}return{cancel:null,promise:Promise.resolve(upload)}}function attachmentProgress(progress={},possibleTotal,fallbackTotal=0){const directNumericProgress=typeof progress==="number"?progress:null;const progressObject=progress&&typeof progress==="object"?progress:{};const totalBytes=Math.max(0,Number(progressObject.totalBytes??progressObject.total??possibleTotal??fallbackTotal)||0);const bytesValue=progressObject.bytesSent??progressObject.loaded??progressObject.uploadedBytes??directNumericProgress;const bytesKnown=bytesValue!==null&&bytesValue!==void 0&&bytesValue!=="";let bytesSent=bytesKnown?Number(bytesValue)||0:0;const directPercent=progressObject.percent;let percent2=directPercent!==null&&directPercent!==void 0&&directPercent!==""?Number(directPercent):null;const progressValue=progressObject.progress;if(!Number.isFinite(percent2)&&progressValue!==null&&progressValue!==void 0&&progressValue!==""){const numericProgressValue=Number(progressValue);if(Number.isFinite(numericProgressValue)){percent2=numericProgressValue<=1?numericProgressValue*100:numericProgressValue}}if(!Number.isFinite(percent2)){percent2=bytesKnown&&totalBytes>0?bytesSent/totalBytes*100:null}if(percent2!==null){percent2=Math.max(0,Math.min(100,percent2))}if(totalBytes>0){const inferredBytes=percent2===null?0:totalBytes*percent2/100;bytesSent=Math.max(0,Math.min(totalBytes,bytesSent||inferredBytes))}else{bytesSent=Math.max(0,bytesSent)}return{bytesSent,percent:percent2,totalBytes}}function attachmentReceipt(row,uploaded={}){return{...uploaded,attachmentId:String((uploaded==null?void 0:uploaded.attachmentId)||""),clientId:row.clientId,fileName:String((uploaded==null?void 0:uploaded.fileName)||row.fileName),sessionId:row.sessionId,size:Number((uploaded==null?void 0:uploaded.size)??row.size)||0}}function useAgentAttachments({canUpload=()=>true,deleteAttachment=null,onError=null,onUploaded=async()=>null,sessionId,uploadAttachment}={}){const attachments=ref([]);const queueItems=ref([]);const dragDepth=ref(0);const status=ref("");const activeUploadCount=ref(0);const uploadQueue=[];const rowsById=new Map;const activeAttempts=new Map;const cleanupTasks=new Set;const receiptCleanupById=new Map;const cleanedReceiptIds=new Set;let disposed=false;let stopSessionWatch=null;const dragActive=computed(()=>dragDepth.value>0);const uploading=computed(()=>activeUploadCount.value>0||queueItems.value.some(item=>["preparing","uploading","delivering"].includes(item.phase)));const hasUnresolved=computed(()=>queueItems.value.some(item=>AGENT_ATTACHMENT_UNRESOLVED_PHASES.has(item.phase)));const canSubmit=computed(()=>!hasUnresolved.value);const retainedItemCount=computed(()=>queueItems.value.filter(item=>item.phase!=="cancelled").length);const atCapacity=computed(()=>retainedItemCount.value>=AGENT_ATTACHMENT_MAX_ITEMS);const canAddFiles=computed(()=>Boolean(!disposed&&codexAttachmentSessionId(sessionId)&&codexAttachmentUploadAllowed(canUpload)&&!atCapacity.value&&typeof uploadAttachment==="function"));const aggregateProgress=computed(()=>{const retainedItems=queueItems.value.filter(item=>item.phase!=="cancelled");const totalBytes=retainedItems.reduce((sum,item)=>sum+item.totalBytes,0);const bytesSent=retainedItems.reduce((sum,item)=>sum+item.bytesSent,0);return{bytesSent,percent:totalBytes>0?Math.round(bytesSent/totalBytes*100):0,totalBytes}});function reportAttachmentError(error,fallbackMessage="Attachment upload failed.",{notify=true}={}){const message=String((error==null?void 0:error.message)||error||fallbackMessage);status.value=message;if(notify&&typeof onError==="function"){try{onError(error||new Error(message),fallbackMessage)}catch{}}return message}function resetDragState(){dragDepth.value=0}function clearStatus(){status.value=""}function createWaiter(row){let resolve=null;const promise=new Promise(currentResolve=>{resolve=currentResolve});row.waiter={promise,resolve,settled:false};return row.waiter}function settleWaiter(row,value=null,waiter=row.waiter){if(!waiter||waiter.settled){return}waiter.settled=true;waiter.resolve(value)}function canonicalRow(attachment={}){const identity=attachmentIdentity(attachment);return identity?rowsById.get(identity)||queueItems.value.find(row=>attachmentIdentity(row)===identity||row.attachmentId===identity):null}function trackCleanup(task){const cleanup=Promise.resolve(task).catch(error=>{reportAttachmentError(error,"Attachment cleanup failed.");return false});cleanupTasks.add(cleanup);cleanup.finally(()=>cleanupTasks.delete(cleanup));return cleanup}async function deleteUploadedAttachment(currentSessionId,attachment={}){const attachmentId=String((attachment==null?void 0:attachment.attachmentId)||"").trim();if(!attachmentId||typeof deleteAttachment!=="function"){return false}const response=await deleteAttachment(currentSessionId,attachmentId);if((response==null?void 0:response.ok)===false){throw new Error(attachmentUploadError(response)||"Attachment cleanup failed.")}return true}function cleanupReceipt(currentSessionId,receipt={}){const attachmentId=String((receipt==null?void 0:receipt.attachmentId)||"").trim();const cleanupId=`${currentSessionId}:${attachmentId}`;if(!attachmentId){return Promise.resolve(false)}if(cleanedReceiptIds.has(cleanupId)){return Promise.resolve(false)}if(receiptCleanupById.has(cleanupId)){return receiptCleanupById.get(cleanupId)}const cleanup=trackCleanup(deleteUploadedAttachment(currentSessionId,receipt)).then(deleted=>{if(deleted){cleanedReceiptIds.add(cleanupId)}return deleted});receiptCleanupById.set(cleanupId,cleanup);cleanup.finally(()=>receiptCleanupById.delete(cleanupId));return cleanup}function updateProgress(row,progress,total){if(!row.retained||row.phase!=="uploading"){return}const next=attachmentProgress(progress,total,row.totalBytes);row.bytesSent=Math.max(row.bytesSent,next.bytesSent);row.totalBytes=next.totalBytes||row.totalBytes;if(next.percent!==null){row.progress=Math.max(Number(row.progress)||0,next.percent)}}function removeReadyReceipt(row){const removed=attachments.value.filter(attachment=>attachment.clientId===row.clientId);attachments.value=attachments.value.filter(attachment=>attachment.clientId!==row.clientId);return removed}async function handOffUploadedAttachment(row,receipt,waiter=row.waiter){const token=Symbol(`${row.clientId}-handoff`);row.activeHandoffToken=token;row.phase="delivering";if(!attachments.value.some(attachment=>attachment.clientId===row.clientId)){attachments.value.push(receipt)}try{const handoff=await deliverUploadedAttachments(onUploaded,[receipt]);const accepted=(handoff==null?void 0:handoff.accepted)===true;if(row.activeHandoffToken!==token||!row.retained||row.phase==="cancelled"){removeReadyReceipt(row);if(!accepted){await cleanupReceipt(row.sessionId,receipt)}settleWaiter(row,null,waiter);return null}row.activeHandoffToken=null;row.error="";row.failureStage="";if(accepted){removeReadyReceipt(row);row.retained=false;rowsById.delete(row.clientId);queueItems.value=queueItems.value.filter(candidate=>candidate.clientId!==row.clientId);settleWaiter(row,receipt,waiter);return receipt}row.phase="ready";settleWaiter(row,receipt,waiter);return receipt}catch(error){if(row.activeHandoffToken!==token||!row.retained||row.phase==="cancelled"){await cleanupReceipt(row.sessionId,receipt);settleWaiter(row,null,waiter);return null}row.activeHandoffToken=null;removeReadyReceipt(row);row.error=String((error==null?void 0:error.message)||error||"Uploaded attachment could not be used.");row.failureStage="handoff";row.phase="failed";settleWaiter(row,null,waiter);reportAttachmentError(error,"Uploaded attachment could not be used.",{notify:false});return null}}async function finishUploadAttempt(attempt,uploaded,uploadError=null){activeAttempts.delete(attempt.token);activeUploadCount.value=activeAttempts.size;pumpQueue();const{row}=attempt;const isCurrentAttempt=row.activeToken===attempt.token;const uploadSucceeded=Boolean(!uploadError&&uploaded&&uploaded.ok!==false&&String(uploaded.attachmentId||"").trim());if(!isCurrentAttempt||!row.retained||disposed){if(uploadSucceeded){await cleanupReceipt(attempt.sessionId,uploaded)}settleWaiter(row,null,attempt.waiter);pumpQueue();return}row.activeToken=null;if(uploadSucceeded){const receipt=attachmentReceipt(row,uploaded);row.receipt=receipt;row.attachmentId=receipt.attachmentId;row.path=String(receipt.path||"");row.bytesSent=row.totalBytes;row.progress=100;row.error="";row.failureStage="";await handOffUploadedAttachment(row,receipt,attempt.waiter)}else{const error=uploadError||new Error(attachmentUploadError(uploaded)||"Attachment upload failed.");row.error=String((error==null?void 0:error.message)||error||"Attachment upload failed.");row.failureStage="upload";row.phase="failed";settleWaiter(row,null,attempt.waiter);reportAttachmentError(error,"Attachment upload failed.",{notify:false})}pumpQueue()}function startUpload(row){const token=Symbol(row.clientId);const abortController=typeof AbortController==="function"?new AbortController:null;const attempt={abortController,cancel:null,row,sessionId:row.sessionId,settled:null,token,waiter:row.waiter};row.activeToken=token;row.phase="uploading";row.error="";activeAttempts.set(token,attempt);activeUploadCount.value=activeAttempts.size;try{const transport=attachmentUploadResult(uploadAttachment(row.sessionId,row.file,{onProgress:(progress,total)=>updateProgress(row,progress,total),signal:abortController==null?void 0:abortController.signal}));attempt.cancel=transport.cancel;attempt.settled=transport.promise.then(uploaded=>finishUploadAttempt(attempt,uploaded),error=>finishUploadAttempt(attempt,null,error))}catch(error){attempt.settled=finishUploadAttempt(attempt,null,error)}}function pumpQueue(){if(disposed){return}while(activeAttempts.size<AGENT_ATTACHMENT_UPLOAD_CONCURRENCY&&uploadQueue.length>0){const row=uploadQueue.shift();if(!(row==null?void 0:row.retained)||row.phase!=="queued"){continue}startUpload(row)}}function cancelAttachment(attachment={}){var _a,_b,_c;const row=canonicalRow(attachment);if(!row||!row.retained||!["preparing","queued","uploading"].includes(row.phase)){return false}const token=row.activeToken;row.activeToken=null;row.activeHandoffToken=null;row.phase="cancelled";row.error="";const receipt=row.receipt;removeReadyReceipt(row);if(receipt){void cleanupReceipt(row.sessionId,receipt)}row.receipt=null;row.failureStage="";settleWaiter(row,null);const attempt=token?activeAttempts.get(token):null;try{(_a=row.producerAbortController)==null?void 0:_a.abort();(_b=attempt==null?void 0:attempt.abortController)==null?void 0:_b.abort();(_c=attempt==null?void 0:attempt.cancel)==null?void 0:_c.call(attempt)}catch{}row.producerAbortController=null;row.producerToken=null;pumpQueue();return true}function retryAttachment(attachment={}){const row=canonicalRow(attachment);if(!row||!row.retained||!["failed","cancelled"].includes(row.phase)||row.sessionId!==codexAttachmentSessionId(sessionId)||!codexAttachmentUploadAllowed(canUpload)||typeof uploadAttachment!=="function"){return Promise.resolve(null)}if(row.phase==="cancelled"&&retainedItemCount.value>=AGENT_ATTACHMENT_MAX_ITEMS){reportAttachmentError(`A message can keep at most ${AGENT_ATTACHMENT_MAX_ITEMS} attachments.`);return Promise.resolve(null)}if(row.failureStage==="handoff"&&row.receipt){row.error="";row.phase="uploading";const waiter2=createWaiter(row);void handOffUploadedAttachment(row,row.receipt,waiter2);return waiter2.promise}if(row.producer&&!row.file){const waiter2=createWaiter(row);startAttachmentProducer(row);return waiter2.promise}if(row.size>AGENT_ATTACHMENT_MAX_BYTES){row.error=`${row.fileName} is larger than the 100 MB attachment limit.`;row.failureStage="validation";row.phase="failed";reportAttachmentError(row.error,"Attachment upload failed.",{notify:false});return Promise.resolve(null)}row.bytesSent=0;row.progress=null;row.error="";row.failureStage="";row.phase="queued";const waiter=createWaiter(row);uploadQueue.push(row);pumpQueue();return waiter.promise}function detachRow(row){if(["preparing","queued","uploading"].includes(row.phase)){cancelAttachment(row)}row.retained=false;rowsById.delete(row.clientId);settleWaiter(row,null)}function removeAttachment(attachment={}){const row=canonicalRow(attachment);if(!row){return[]}const removedReceipts=removeReadyReceipt(row);const removed=removedReceipts.length>0?removedReceipts:[row];const receiptToClean=removedReceipts[0]||row.receipt;detachRow(row);queueItems.value=queueItems.value.filter(candidate=>candidate.clientId!==row.clientId);if(receiptToClean){void cleanupReceipt(row.sessionId,receiptToClean)}return removed}function clearAttachments({accepted=true,attachmentIds=null}={}){if(!accepted){return abandonAttachments()}const selectedIds=Array.isArray(attachmentIds)?new Set(attachmentIds):null;const cleared=attachments.value.filter(attachment=>!selectedIds||selectedIds.has(attachment.attachmentId));const readyIds=new Set(cleared.map(attachment=>attachment.clientId));const remaining=[];for(const row of[...queueItems.value]){if(selectedIds&&!readyIds.has(row.clientId)){remaining.push(row);continue}if(readyIds.has(row.clientId)){row.retained=false;rowsById.delete(row.clientId);continue}detachRow(row);if(row.receipt){void cleanupReceipt(row.sessionId,row.receipt)}}attachments.value=attachments.value.filter(attachment=>!readyIds.has(attachment.clientId));queueItems.value=remaining;return cleared}async function abandonAttachments({onlySessionId=""}={}){const normalizedSessionId=String(onlySessionId||"").trim();const rows=queueItems.value.filter(row=>!normalizedSessionId||row.sessionId===normalizedSessionId);const rowIds=new Set(rows.map(row=>row.clientId));const readyReceipts=rows.map(row=>row.receipt).filter(Boolean);const attempts=[...activeAttempts.values()].filter(attempt=>rowIds.has(attempt.row.clientId));for(const row of rows){detachRow(row)}queueItems.value=queueItems.value.filter(row=>!rowIds.has(row.clientId));attachments.value=attachments.value.filter(attachment=>!rowIds.has(attachment.clientId));const readyCleanup=readyReceipts.map(attachment=>cleanupReceipt(attachment.sessionId,attachment));await Promise.allSettled([...readyCleanup,...attempts.map(attempt=>attempt.settled).filter(Boolean)]);await waitForAttachmentCleanup();return rows}async function waitForAttachmentCleanup(){while(cleanupTasks.size>0){await Promise.allSettled([...cleanupTasks])}}async function disposeAttachments(){if(disposed){await waitForAttachmentCleanup();return[]}disposed=true;stopSessionWatch==null?void 0:stopSessionWatch();stopSessionWatch=null;return abandonAttachments()}function handleDragEnter(event){if(!codexAttachmentEventHasFiles(event)){return}dragDepth.value+=1;if(event==null?void 0:event.dataTransfer){event.dataTransfer.dropEffect="copy"}}function handleDragOver(event){if(event==null?void 0:event.dataTransfer){event.dataTransfer.dropEffect="copy"}}function handleDragLeave(){dragDepth.value=Math.max(0,dragDepth.value-1)}function createQueueRow({currentSessionId,file=null,fileName="attachment",phase="queued",producer=null,size=0}={}){const normalizedSize=Number((file==null?void 0:file.size)??size)||0;const row=reactive({activeHandoffToken:null,activeToken:null,attachmentId:"",bytesSent:0,clientId:nextAttachmentClientId(),error:"",failureStage:"",file,fileName:file?attachmentFileName(file):String(fileName||"attachment"),path:"",phase,producer,producerAbortController:null,producerToken:null,progress:null,receipt:null,retained:true,sessionId:currentSessionId,size:normalizedSize,totalBytes:normalizedSize,waiter:null});rowsById.set(row.clientId,row);queueItems.value.push(row);createWaiter(row);return row}function queuePreparedFile(row,file,waiter=row.waiter){const preparedFile=codexAttachmentFiles([file])[0];if(!preparedFile){throw new Error("The prepared attachment did not produce a file.")}row.file=preparedFile;row.fileName=attachmentFileName(preparedFile);row.size=Number(preparedFile.size)||0;row.totalBytes=row.size;if(row.size>AGENT_ATTACHMENT_MAX_BYTES){row.error=`${row.fileName} is larger than the 100 MB attachment limit.`;row.failureStage="validation";row.phase="failed";settleWaiter(row,null,waiter);reportAttachmentError(row.error,"Attachment upload failed.",{notify:false});return false}row.phase="queued";uploadQueue.push(row);pumpQueue();return true}function startAttachmentProducer(row){const token=Symbol(`${row.clientId}-producer`);const waiter=row.waiter;const abortController=typeof AbortController==="function"?new AbortController:null;row.file=null;row.producerAbortController=abortController;row.producerToken=token;row.phase="preparing";row.error="";row.failureStage="";row.producerSettled=Promise.resolve().then(()=>row.producer({signal:abortController==null?void 0:abortController.signal})).then(file=>{if(row.producerToken!==token||!row.retained||disposed){settleWaiter(row,null,waiter);return null}row.producerAbortController=null;row.producerToken=null;try{queuePreparedFile(row,file,waiter)}catch(error){row.error=String((error==null?void 0:error.message)||error||"Attachment preparation failed.");row.failureStage="preparing";row.phase="failed";settleWaiter(row,null,waiter);reportAttachmentError(error,"Attachment preparation failed.",{notify:false})}return file},error=>{if(row.producerToken!==token||!row.retained||disposed){settleWaiter(row,null,waiter);return null}row.producerAbortController=null;row.producerToken=null;if((error==null?void 0:error.name)==="AbortError"){row.phase="cancelled";row.error=""}else{row.error=String((error==null?void 0:error.message)||error||"Attachment preparation failed.");row.failureStage="preparing";row.phase="failed";reportAttachmentError(error,"Attachment preparation failed.",{notify:false})}settleWaiter(row,null,waiter);return null})}function uploadFileProducer({fileName="Preparing attachment…",produce}={}){const currentSessionId=codexAttachmentSessionId(sessionId);if(!canAddFiles.value||typeof produce!=="function"){if(atCapacity.value){reportAttachmentError(`A message can keep at most ${AGENT_ATTACHMENT_MAX_ITEMS} attachments.`)}return Promise.resolve(null)}status.value="";const row=createQueueRow({currentSessionId,fileName,phase:"preparing",producer:produce});const waiter=row.waiter;startAttachmentProducer(row);return waiter.promise}async function uploadFiles(files=[]){const uploadableFiles=codexAttachmentFiles(files);const currentSessionId=codexAttachmentSessionId(sessionId);if(uploadableFiles.length<1||!currentSessionId||disposed||!codexAttachmentUploadAllowed(canUpload)||typeof uploadAttachment!=="function"){return[]}status.value="";const availableSlots=Math.max(0,AGENT_ATTACHMENT_MAX_ITEMS-retainedItemCount.value);const acceptedFiles=uploadableFiles.slice(0,availableSlots);if(acceptedFiles.length<uploadableFiles.length){reportAttachmentError(`A message can keep at most ${AGENT_ATTACHMENT_MAX_ITEMS} attachments.`)}const waiters=[];for(const file of acceptedFiles){const row=createQueueRow({currentSessionId,file});const waiter=row.waiter;waiters.push(waiter.promise);if(row.size>AGENT_ATTACHMENT_MAX_BYTES){row.error=`${row.fileName} is larger than the 100 MB attachment limit.`;row.failureStage="validation";row.phase="failed";settleWaiter(row,null);reportAttachmentError(row.error,"Attachment upload failed.",{notify:false})}else{uploadQueue.push(row)}}pumpQueue();const settled=await Promise.all(waiters);return settled.filter(attachment=>attachment&&attachments.value.some(candidate=>candidate.clientId===attachment.clientId))}async function handleDrop(event){resetDragState();return uploadFiles(codexAttachmentFilesFromDropEvent(event))}async function handlePaste(event){var _a;const files=codexAttachmentFilesFromPasteEvent(event);if(files.length<1){if(codexAttachmentClipboardLocalFileReference(event)){reportAttachmentError("Copied local files cannot be pasted from this browser. Drop the file or use Attach files.")}return[]}if(!codexAttachmentClipboardText(event)){(_a=event==null?void 0:event.preventDefault)==null?void 0:_a.call(event)}return uploadFiles(files)}stopSessionWatch=watch(()=>codexAttachmentSessionId(sessionId),(nextSessionId,previousSessionId)=>{if(nextSessionId!==previousSessionId&&previousSessionId){void abandonAttachments({onlySessionId:previousSessionId})}},{flush:"sync"});if(getCurrentScope()){onScopeDispose(()=>{void disposeAttachments()})}return{abandonAttachments,aggregateProgress,attachments,atCapacity,canAddFiles,cancelAttachment,canSubmit,clearAttachments,clearStatus,disposeAttachments,dragActive,hasUnresolved,handleDragEnter,handleDragLeave,handleDragOver,handleDrop,handlePaste,queueItems,removeAttachment,resetDragState,retryAttachment,status,uploading,uploadFiles,uploadFileProducer,waitForAttachmentCleanup}}function parseIntegrationSetupRequest(message){if((message==null?void 0:message.role)!=="assistant"||typeof message.text!=="string")return null;const lines=message.text.replace(/\r\n/gu,"\n").split("\n");let fence=null;for(let index=0;index<lines.length;index+=1){const line=lines[index];if(fence){const closing=/^ {0,3}(`{3,}|~{3,})\s*$/u.exec(line);if(!closing||closing[1][0]!==fence.character||closing[1].length<fence.length)continue;if(fence.request){if(lines.slice(index+1).some(tail=>tail.trim()))return null;const payload=lines.slice(fence.start+1,index).join("\n");if(payload.length>1024)return null;let value;try{value=JSON.parse(payload)}catch{return null}if(!value||Array.isArray(value)||typeof value!=="object"||Object.keys(value).length!==1||typeof value.integrationId!=="string"||!value.integrationId.trim()||value.integrationId.length>200||/[\p{Cc}\p{Cf}]/u.test(value.integrationId))return null;return{integrationId:value.integrationId,text:lines.slice(0,fence.start).join("\n").trimEnd()}}fence=null;continue}const opening=/^ {0,3}(`{3,}|~{3,})(.*)$/u.exec(line);if(opening)fence={character:opening[1][0],length:opening[1].length,start:index,request:opening[1]==="```"&&opening[2]==="vibe64-integration"}}return null}function labelComposerAttachments(attachments=[]){let images=0;let files=0;return attachments.map(attachment=>({...attachment,reference:conversationAttachmentReference(attachment,conversationAttachmentContentType(attachment.fileName).startsWith("image/")?++images:++files)}))}function updateComposerAttachmentReferences(text,previous,next){const replacements=new Map(previous.filter(attachment=>attachment.reference).map(attachment=>{var _a;return[attachment.reference,((_a=next.find(candidate=>candidate.attachmentId===attachment.attachmentId))==null?void 0:_a.reference)||""]}));return String(text||"").replace(/\[(?:Image|File) #[1-9][0-9]{0,3}\]/gu,reference=>replacements.has(reference)?replacements.get(reference):reference)}function attachmentSizeLabel(size){const bytes=Number(size);if(!Number.isFinite(bytes)||bytes<0){return""}if(bytes<1024){return`${bytes} B`}if(bytes<1024*1024){return`${(bytes/1024).toFixed(1)} KB`}return`${(bytes/(1024*1024)).toFixed(1)} MB`}const _hoisted_1$b=["alt","src"];const _hoisted_2$b={key:1};const _sfc_main$c={__name:"Vibe64AttachmentDialog",props:{attachment:{type:Object,default:null},sessionId:{type:String,required:true}},emits:["close"],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const paths=usePaths();const imageFailed=ref(false);const url=computed(()=>{var _a;return resolveStudioRequestUrl(vibe64AgentAttachmentFilePath(paths.api(VIBE64_SESSIONS_API_SUFFIX,{surface:VIBE64_SURFACE_ID}),props.sessionId,(_a=props.attachment)==null?void 0:_a.attachmentId))});const imageSupported=computed(()=>{var _a;return conversationAttachmentContentType((_a=props.attachment)==null?void 0:_a.fileName).startsWith("image/")});watch(()=>props.attachment,()=>{imageFailed.value=false});return(_ctx,_cache)=>{return openBlock(),createBlock(VDialog,{"model-value":Boolean(__props.attachment),"max-width":"960","onUpdate:modelValue":_cache[2]||(_cache[2]=$event=>!$event&&emit("close"))},{default:withCtx(()=>[__props.attachment?(openBlock(),createBlock(VCard,{key:0,title:__props.attachment.fileName},{default:withCtx(()=>[createVNode(VCardText,null,{default:withCtx(()=>[imageSupported.value&&!imageFailed.value?(openBlock(),createElementBlock("img",{key:url.value,alt:__props.attachment.fileName,class:"vibe64-attachment-preview",src:`${url.value}?inline=1`,onError:_cache[0]||(_cache[0]=$event=>imageFailed.value=true)},null,40,_hoisted_1$b)):(openBlock(),createElementBlock("p",_hoisted_2$b,"Preview is unavailable for this file. You can download it below."))]),_:1}),createVNode(VCardActions,null,{default:withCtx(()=>[createVNode(VBtn,{href:url.value,download:__props.attachment.fileName,"prepend-icon":unref(mdiDownload),variant:"tonal"},{default:withCtx(()=>[..._cache[3]||(_cache[3]=[createTextVNode("Download",-1)])]),_:1},8,["href","download","prepend-icon"]),createVNode(VSpacer),createVNode(VBtn,{onClick:_cache[1]||(_cache[1]=$event=>emit("close"))},{default:withCtx(()=>[..._cache[4]||(_cache[4]=[createTextVNode("Close",-1)])]),_:1})]),_:1})]),_:1},8,["title"])):createCommentVNode("",true)]),_:1},8,["model-value"])}}};const Vibe64AttachmentDialog=_export_sfc(_sfc_main$c,[["__scopeId","data-v-6a1bbc16"]]);const _hoisted_1$a=["aria-busy"];const _hoisted_2$a={class:"vibe64-attachment-queue__summary"};const _hoisted_3$9={class:"vibe64-attachment-queue__limit"};const _hoisted_4$9={class:"vibe64-attachment-queue__items"};const _hoisted_5$7={class:"vibe64-attachment-queue__content"};const _hoisted_6$7={class:"vibe64-attachment-queue__primary"};const _hoisted_7$5={class:"vibe64-attachment-queue__size"};const _hoisted_8$5={class:"vibe64-attachment-queue__secondary"};const _hoisted_9$5={key:0};const _hoisted_10$5={key:0,"aria-hidden":"true",class:"vibe64-attachment-queue__progress vibe64-attachment-queue__progress--stationary rounded-pill"};const _hoisted_11$5={key:2,class:"vibe64-attachment-queue__error",role:"alert"};const _hoisted_12$3={class:"vibe64-attachment-queue__actions"};const _hoisted_13$3={class:"vibe64-attachment-queue__announcement","aria-atomic":"true","aria-live":"polite",role:"status"};const _sfc_main$b={__name:"Vibe64AttachmentQueue",props:{sessionId:{default:"",type:String},items:{default:()=>[],type:Array},joined:{default:true,type:Boolean},maximumFiles:{default:10,type:Number}},emits:["cancel","remove","retry"],setup(__props,{emit:__emit}){const emit=__emit;const props=__props;const selectedAttachment=ref(null);watch(()=>props.sessionId,()=>{selectedAttachment.value=null});const activePhases=new Set(["queued","preparing","uploading","delivering"]);const queueRoot=ref(null);const reducedMotion=ref(false);const actionElements=new Map;let reducedMotionMediaQuery=null;const retainedItems=computed(()=>props.items.filter(item=>itemPhase(item)!=="cancelled"));const completedCount=computed(()=>props.items.filter(item=>itemPhase(item)==="ready").length);const hasUnresolved=computed(()=>props.items.some(item=>activePhases.has(itemPhase(item))));const aggregatePercent=computed(()=>{if(!retainedItems.value.length){return 0}const totalSize=retainedItems.value.reduce((sum,item)=>sum+Math.max(0,Number(item.size)||0),0);if(retainedItems.value.some(item=>activePhases.has(itemPhase(item))&&itemPercent(item)===null)){return null}if(totalSize<1){return Math.round(completedCount.value/retainedItems.value.length*100)}const sent=retainedItems.value.reduce((sum,item)=>{if(itemPhase(item)==="ready"){return sum+Math.max(0,Number(item.size)||0)}return sum+Math.min(Math.max(0,Number(item.bytesSent)||0),Math.max(0,Number(item.size)||0))},0);return Math.min(100,Math.max(0,Math.round(sent/totalSize*100)))});const aggregateLabel=computed(()=>{const total=retainedItems.value.length;const active=props.items.filter(item=>activePhases.has(itemPhase(item))).length;const failed=props.items.filter(item=>itemPhase(item)==="failed").length;const cancelled=props.items.filter(item=>itemPhase(item)==="cancelled").length;if(active){return aggregatePercent.value===null?`${completedCount.value} of ${total} ready · in progress`:`${completedCount.value} of ${total} ready · ${aggregatePercent.value}%`}if(failed){return`${completedCount.value} of ${total} ready · ${failed} ${failed===1?"needs":"need"} attention`}if(cancelled){return`${completedCount.value} ready · ${cancelled} cancelled`}return`${completedCount.value} of ${total} ready`});const announcement=computed(()=>{const messages=[];const failed=props.items.filter(item=>itemPhase(item)==="failed").length;if(failed){messages.push(`${attachmentCountLabel(failed)} ${failed===1?"needs":"need"} attention.`)}const active=props.items.filter(item=>activePhases.has(itemPhase(item))).length;if(active){messages.push(`${attachmentCountLabel(active)} ${active===1?"is":"are"} in progress.`)}const cancelled=props.items.filter(item=>itemPhase(item)==="cancelled").length;if(cancelled){messages.push(`${attachmentCountLabel(cancelled)} cancelled.`)}if(completedCount.value){messages.push(`${attachmentCountLabel(completedCount.value)} ready.`)}return messages.join(" ")});function attachmentCountLabel(count2=0){return`${count2} attachment${count2===1?"":"s"}`}function itemKey(item={}){return String(item.clientId||item.id||item.attachmentId||item.fileName||"attachment")}function itemName(item={}){var _a;return String(item.fileName||((_a=item.file)==null?void 0:_a.name)||"attachment")}function itemPhase(item={}){return String(item.phase||item.status||"queued")}function itemPercent(item={}){if(itemPhase(item)==="ready"){return 100}if(itemPhase(item)==="delivering"){return 100}if(itemPhase(item)==="queued"){return 0}const progressValue=item.percent??item.progress;const directPercent=progressValue===null||progressValue===void 0||progressValue===""?null:Number(progressValue);if(directPercent!==null&&Number.isFinite(directPercent)){return Math.min(100,Math.max(0,Math.round(directPercent)))}const size=Number(item.size)||0;return size>0&&Number(item.bytesSent)>0?Math.min(100,Math.max(0,Math.round((Number(item.bytesSent)||0)/size*100))):null}function itemProgressVisible(item={}){return activePhases.has(itemPhase(item))}function itemProgressIndeterminate(item={}){return itemProgressVisible(item)&&itemPercent(item)===null}function itemProgressValue(item={}){return itemPercent(item)??0}function itemProgressStationary(item={}){return reducedMotion.value&&itemProgressVisible(item)&&itemPercent(item)===null}function itemBytesLabel(item={}){const size=Math.max(0,Number(item.size)||0);const sent=Math.min(Math.max(0,Number(item.bytesSent)||0),size);const percent2=itemPercent(item);return percent2===null?`${attachmentSizeLabel(sent)} / ${attachmentSizeLabel(size)}`:`${attachmentSizeLabel(sent)} / ${attachmentSizeLabel(size)} · ${percent2}%`}function itemStatusLabel(item={}){const labels={cancelled:"Cancelled",delivering:"Sending to Codex",failed:item.failureStage==="preparing"?"Preparation failed":item.failureStage==="handoff"?"Sending failed":"Upload failed",preparing:"Preparing",queued:"Queued",ready:"Ready",uploading:"Uploading"};return labels[itemPhase(item)]||"Queued"}function itemCancelable(item={}){return["preparing","queued","uploading"].includes(itemPhase(item))}function actionKey(item={},action=""){return`${itemKey(item)}:${action}`}function actionElement(element=null){return(element==null?void 0:element.$el)||element||null}function setActionElement(item={},action="",element=null){const key=actionKey(item,action);if(element){actionElements.set(key,element);return}actionElements.delete(key)}function focusItemAction(item={}){var _a;for(const action of["cancel","retry","remove"]){const target=actionElement(actionElements.get(actionKey(item,action)));if(target&&!target.disabled){(_a=target.focus)==null?void 0:_a.call(target);return true}}return false}function fallbackFocusContainer(){var _a,_b,_c;return((_b=(_a=queueRoot.value)==null?void 0:_a.closest)==null?void 0:_b.call(_a,".studio-autopilot-prompt-textarea, .vibe64-terminal-surface"))||((_c=queueRoot.value)==null?void 0:_c.parentElement)||null}async function handleAction(action,item,index){var _a,_b,_c;const fallbackContainer=fallbackFocusContainer();emit(action,item);await nextTick();const retainedItem=props.items.find(candidate=>itemKey(candidate)===itemKey(item));if(retainedItem&&focusItemAction(retainedItem)){return}const neighbour=props.items[index]||props.items[index-1];if(neighbour&&focusItemAction(neighbour)){return}const terminalToggle=((_a=fallbackContainer==null?void 0:fallbackContainer.classList)==null?void 0:_a.contains("vibe64-terminal-surface"))?fallbackContainer.querySelector("button[aria-controls^='vibe64-terminal-body-']:not([disabled])"):null;const fallbackTarget=terminalToggle||((_b=fallbackContainer==null?void 0:fallbackContainer.querySelector)==null?void 0:_b.call(fallbackContainer,"textarea:not([disabled]), [contenteditable='true'], button:not([disabled])"));(_c=fallbackTarget==null?void 0:fallbackTarget.focus)==null?void 0:_c.call(fallbackTarget)}function itemIcon(item={}){if(itemPhase(item)==="ready"){return mdiCheckCircleOutline}if(itemPhase(item)==="failed"){return mdiAlertCircleOutline}return mdiFileOutline}function itemColor(item={}){if(itemPhase(item)==="ready"){return"success"}if(itemPhase(item)==="failed"){return"error"}return"primary"}function updateReducedMotionPreference(){reducedMotion.value=(reducedMotionMediaQuery==null?void 0:reducedMotionMediaQuery.matches)===true}if(typeof window!=="undefined"&&typeof window.matchMedia==="function"){reducedMotionMediaQuery=window.matchMedia("(prefers-reduced-motion: reduce)");updateReducedMotionPreference()}onMounted(()=>{var _a;if(!reducedMotionMediaQuery){return}if(typeof reducedMotionMediaQuery.addEventListener==="function"){reducedMotionMediaQuery.addEventListener("change",updateReducedMotionPreference)}else{(_a=reducedMotionMediaQuery.addListener)==null?void 0:_a.call(reducedMotionMediaQuery,updateReducedMotionPreference)}});onBeforeUnmount(()=>{var _a;if(typeof(reducedMotionMediaQuery==null?void 0:reducedMotionMediaQuery.removeEventListener)==="function"){reducedMotionMediaQuery.removeEventListener("change",updateReducedMotionPreference)}else{(_a=reducedMotionMediaQuery==null?void 0:reducedMotionMediaQuery.removeListener)==null?void 0:_a.call(reducedMotionMediaQuery,updateReducedMotionPreference)}reducedMotionMediaQuery=null});return(_ctx,_cache)=>{return __props.items.length?(openBlock(),createElementBlock("section",{key:0,ref_key:"queueRoot",ref:queueRoot,class:normalizeClass(["vibe64-attachment-queue",{"vibe64-attachment-queue--standalone":!__props.joined}]),"aria-busy":hasUnresolved.value?"true":void 0,"aria-label":"Message attachments"},[createBaseVNode("header",_hoisted_2$a,[createBaseVNode("span",null,toDisplayString(aggregateLabel.value),1),createBaseVNode("span",_hoisted_3$9,toDisplayString(retainedItems.value.length)+" / "+toDisplayString(__props.maximumFiles),1)]),createBaseVNode("ol",_hoisted_4$9,[(openBlock(true),createElementBlock(Fragment,null,renderList(__props.items,(item,index)=>{return openBlock(),createElementBlock("li",{key:itemKey(item),class:normalizeClass(["vibe64-attachment-queue__item",`vibe64-attachment-queue__item--${itemPhase(item)}`])},[createVNode(VIcon,{class:"vibe64-attachment-queue__icon",color:itemColor(item),icon:itemIcon(item),size:"18",onClick:$event=>item.attachmentId&&__props.sessionId&&(selectedAttachment.value=item.receipt||item)},null,8,["color","icon","onClick"]),createBaseVNode("div",_hoisted_5$7,[createBaseVNode("div",_hoisted_6$7,[(openBlock(),createBlock(resolveDynamicComponent(item.attachmentId&&__props.sessionId?"button":"span"),{type:item.attachmentId&&__props.sessionId?"button":void 0,class:"vibe64-attachment-queue__name",title:itemName(item),onClick:$event=>item.attachmentId&&__props.sessionId&&(selectedAttachment.value=item.receipt||item)},{default:withCtx(()=>{var _a;return[createTextVNode(toDisplayString((_a=item.receipt)==null?void 0:_a.reference)+" "+toDisplayString(itemName(item)),1)]}),_:2},1032,["type","title","onClick"])),createBaseVNode("span",_hoisted_7$5,toDisplayString(unref(attachmentSizeLabel)(item.size)),1)]),createBaseVNode("div",_hoisted_8$5,[createBaseVNode("span",null,toDisplayString(itemStatusLabel(item)),1),itemProgressVisible(item)?(openBlock(),createElementBlock("span",_hoisted_9$5,toDisplayString(itemBytesLabel(item)),1)):createCommentVNode("",true)]),itemProgressStationary(item)?(openBlock(),createElementBlock("div",_hoisted_10$5)):itemProgressVisible(item)?(openBlock(),createBlock(VProgressLinear,{key:1,"aria-label":`Upload progress for ${itemName(item)}`,class:"vibe64-attachment-queue__progress",color:"primary",height:"3",indeterminate:itemProgressIndeterminate(item),"model-value":itemProgressValue(item),rounded:""},null,8,["aria-label","indeterminate","model-value"])):createCommentVNode("",true),item.error?(openBlock(),createElementBlock("span",_hoisted_11$5,toDisplayString(item.error),1)):createCommentVNode("",true)]),createBaseVNode("div",_hoisted_12$3,[itemCancelable(item)?(openBlock(),createBlock(VBtn,{key:0,ref_for:true,ref:element=>setActionElement(item,"cancel",element),"aria-label":`Cancel ${itemName(item)}`,class:"vibe64-attachment-queue__action",icon:unref(mdiCloseCircleOutline),size:"small",title:`Cancel ${itemName(item)}`,type:"button",variant:"text",onClick:$event=>handleAction("cancel",item,index)},null,8,["aria-label","icon","title","onClick"])):createCommentVNode("",true),itemPhase(item)==="failed"||itemPhase(item)==="cancelled"?(openBlock(),createBlock(VBtn,{key:1,ref_for:true,ref:element=>setActionElement(item,"retry",element),"aria-label":`Retry ${itemName(item)}`,class:"vibe64-attachment-queue__action",icon:unref(mdiRefresh),size:"small",title:`Retry ${itemName(item)}`,type:"button",variant:"text",onClick:$event=>handleAction("retry",item,index)},null,8,["aria-label","icon","title","onClick"])):createCommentVNode("",true),itemPhase(item)==="ready"||itemPhase(item)==="failed"||itemPhase(item)==="cancelled"?(openBlock(),createBlock(VBtn,{key:2,ref_for:true,ref:element=>setActionElement(item,"remove",element),"aria-label":`Remove ${itemName(item)}`,class:"vibe64-attachment-queue__action",icon:unref(mdiClose),size:"small",title:`Remove ${itemName(item)}`,type:"button",variant:"text",onClick:$event=>handleAction("remove",item,index)},null,8,["aria-label","icon","title","onClick"])):createCommentVNode("",true)])],2)}),128))]),createBaseVNode("span",_hoisted_13$3,toDisplayString(announcement.value),1),selectedAttachment.value?(openBlock(),createBlock(Vibe64AttachmentDialog,{key:0,attachment:selectedAttachment.value,"session-id":__props.sessionId,onClose:_cache[0]||(_cache[0]=$event=>selectedAttachment.value=null)},null,8,["attachment","session-id"])):createCommentVNode("",true)],10,_hoisted_1$a)):createCommentVNode("",true)}}};const Vibe64AttachmentQueue=_export_sfc(_sfc_main$b,[["__scopeId","data-v-295b8d25"]]);const _hoisted_1$9=["disabled"];const _hoisted_2$9={key:1,class:"studio-autopilot-prompt-textarea__input-start"};const _hoisted_3$8=["aria-describedby","aria-label","disabled","placeholder","rows","value"];const _hoisted_4$8={key:2,class:"studio-autopilot-prompt-textarea__footer"};const _hoisted_5$6={key:0,class:"studio-autopilot-prompt-textarea__details"};const _hoisted_6$6={key:0,class:"studio-autopilot-prompt-textarea__hint"};const _sfc_main$a=Object.assign({inheritAttrs:false},{__name:"Vibe64AutopilotPromptTextarea",props:{ariaLabel:{default:"",type:String},attachmentsEnabled:{default:true,type:Boolean},autoGrow:{default:true,type:Boolean},disabled:{default:false,type:Boolean},describedBy:{default:"",type:String},errorMessages:{default:()=>[],type:[Array,String]},hint:{default:"",type:String},label:{default:"",type:String},modelValue:{default:"",type:String},persistentHint:{default:false,type:Boolean},placeholderAffectsHeight:{default:true,type:Boolean},placeholder:{default:"",type:String},rows:{default:4,type:[Number,String]},density:{default:"default",type:String},submitOnEnter:{default:false,type:Boolean},submitEnabled:{default:true,type:Boolean},tabToSubmit:{default:false,type:Boolean},sessionId:{default:"",type:String},variant:{default:"outlined",type:String}},emits:["attachment-state-change","attachments-change","blur","escape","focus","input-activity","submit","tab-to-submit","update:modelValue"],setup(__props,{expose:__expose,emit:__emit}){const emit=__emit;const props=__props;const attachmentCommands=useVibe64AttachmentCommands();const uploadAttachment=attachmentCommands.uploadAttachment;const attachmentFeedback=useUiFeedback({source:"vibe64.agent-attachment.upload.feedback"});const attachments=useAgentAttachments({canUpload:()=>props.attachmentsEnabled&&!props.disabled,deleteAttachment:attachmentCommands.deleteAttachment,onError:attachmentFeedback.error,onUploaded:async uploaded=>{const labeled=labelComposerAttachments(uploadedAttachments.value);for(const attachment of uploadedAttachments.value){attachment.reference=labeled.find(item=>item.attachmentId===attachment.attachmentId).reference}const textarea=textareaRef.value;const text=(textarea==null?void 0:textarea.value)??props.modelValue;const position=(textarea==null?void 0:textarea.selectionEnd)??text.length;const references=uploaded.map(attachment=>attachment.reference).join(" ");const before=text.slice(0,position);const after=text.slice(position);const inserted=`${before&&!/\s$/u.test(before)?" ":""}${references} `;const value=before+inserted+after;if(textarea){textarea.value=value;textarea.setSelectionRange(position+inserted.length,position+inserted.length)}emit("update:modelValue",value);queueResizeTextarea();emit("attachments-change",[...uploadedAttachments.value])},sessionId:computed(()=>props.sessionId),uploadAttachment});const dragActive=attachments.dragActive;const uploadedAttachments=attachments.attachments;const attachmentUploading=attachments.uploading;const queueItems=attachments.queueItems;const attachmentState=computed(()=>Object.freeze({atCapacity:attachments.atCapacity.value,canAddFiles:attachments.canAddFiles.value,canSubmit:attachments.canSubmit.value,count:queueItems.value.length,hasUnresolved:attachments.hasUnresolved.value,uploading:attachmentUploading.value}));const fileInput=ref(null);const textareaRef=ref(null);const textareaId=`studio-autopilot-prompt-${useId()}`;let resizeFrame=0;let preserveHeightForNextModelValueChange=false;const canUseFilePicker=computed(()=>Boolean(attachments.canAddFiles.value));const combinedErrorMessages=computed(()=>{return Array.isArray(props.errorMessages)?props.errorMessages:[props.errorMessages].filter(Boolean)});const hintVisible=computed(()=>Boolean(props.hint&&(props.persistentHint||combinedErrorMessages.value.length<1)));const detailsVisible=computed(()=>Boolean(combinedErrorMessages.value.length||hintVisible.value));const textareaAriaLabel=computed(()=>props.ariaLabel?props.ariaLabel:void 0);function emitAttachmentsChanged(){emit("attachments-change",[...uploadedAttachments.value])}function resizeTextarea(){if(!props.autoGrow){return}const textarea=textareaRef.value;if(!textarea){return}if(!props.placeholderAffectsHeight&&!textarea.value){return}const style=window.getComputedStyle(textarea);const minHeight=Number.parseFloat(style.minHeight)||0;const maxHeight=Number.parseFloat(style.maxHeight)||Number.POSITIVE_INFINITY;textarea.style.height="auto";const contentHeight=Math.max(textarea.scrollHeight,minHeight);const targetHeight=Math.min(contentHeight,maxHeight);textarea.style.height=`${targetHeight}px`;textarea.style.overflowY=contentHeight>targetHeight+1?"auto":"hidden"}function queueResizeTextarea(){if(!props.autoGrow||typeof window==="undefined"){return}if(resizeFrame){window.cancelAnimationFrame(resizeFrame)}resizeFrame=window.requestAnimationFrame(()=>{resizeFrame=0;resizeTextarea()})}function preserveHeightForNextModelValue(){const textarea=textareaRef.value;if(!props.autoGrow||!textarea){return false}if(resizeFrame){window.cancelAnimationFrame(resizeFrame);resizeFrame=0}preserveHeightForNextModelValueChange=true;textarea.style.height=`${textarea.getBoundingClientRect().height}px`;textarea.style.overflowY="auto";return true}function handleTextareaInput(event={}){var _a;preserveHeightForNextModelValueChange=false;emit("input-activity");emit("update:modelValue",String(((_a=event==null?void 0:event.target)==null?void 0:_a.value)||""));queueResizeTextarea()}function handleTextareaFocus(event={}){emit("focus",event)}function handleTextareaBlur(event={}){emit("blur",event)}function handleTextareaKeydown(event={}){if(event.key==="Escape"){emit("escape",event);return}if(props.tabToSubmit&&props.submitEnabled&&String(props.modelValue||"").trim()&&attachments.canSubmit.value&&event.key==="Tab"&&!event.shiftKey&&!event.altKey&&!event.ctrlKey&&!event.metaKey){event.preventDefault();emit("tab-to-submit");return}if(event.key==="Enter"&&!props.submitOnEnter){event.stopPropagation();return}if(!props.submitOnEnter||event.key!=="Enter"||event.shiftKey||event.altKey||event.ctrlKey||event.metaKey||event.isComposing||!props.submitEnabled||!attachments.canSubmit.value){return}event.preventDefault();emit("submit")}function removeUploadedAttachment(attachment={}){const previous=uploadedAttachments.value.map(item=>({...item}));const removed=attachments.removeAttachment(attachment);if(!removed.length){return}const next=labelComposerAttachments(uploadedAttachments.value);for(const item of uploadedAttachments.value){item.reference=next.find(candidate=>candidate.attachmentId===item.attachmentId).reference}const textarea=textareaRef.value;const value=updateComposerAttachmentReferences((textarea==null?void 0:textarea.value)??props.modelValue,previous,next);if(textarea)textarea.value=value;emit("update:modelValue",value);emitAttachmentsChanged()}function clearAttachments({attachmentIds=null}={}){var _a;if(!queueItems.value.length){return false}const previous=uploadedAttachments.value.map(item=>({...item}));attachments.clearAttachments({accepted:true,attachmentIds});const labeled=labelComposerAttachments(uploadedAttachments.value);for(const attachment of uploadedAttachments.value){attachment.reference=labeled.find(item=>item.attachmentId===attachment.attachmentId).reference}const remainingIds=new Set(labeled.map(attachment=>attachment.attachmentId));const text=((_a=textareaRef.value)==null?void 0:_a.value)??props.modelValue;const value=updateComposerAttachmentReferences(text,previous.filter(attachment=>remainingIds.has(attachment.attachmentId)),labeled);if(value!==text){if(textareaRef.value)textareaRef.value.value=value;emit("update:modelValue",value)}emitAttachmentsChanged();return true}function attachmentsCanSubmit(){return attachments.canSubmit.value}async function attachFiles(files=[]){return attachments.uploadFiles(files)}async function attachFileProducer(options={}){const uploaded=await attachments.uploadFileProducer(options);return uploaded?[uploaded]:[]}async function handleFileInputChange(event={}){var _a;const files=Array.from(((_a=event==null?void 0:event.target)==null?void 0:_a.files)||[]);if(event==null?void 0:event.target){event.target.value=""}await attachments.uploadFiles(files)}function handleDrop(event){void attachments.handleDrop(event)}function openFilePicker(){var _a;if(!canUseFilePicker.value){return false}(_a=fileInput.value)==null?void 0:_a.click();return true}function focusTextarea(options={preventScroll:true}){var _a,_b;(_b=(_a=textareaRef.value)==null?void 0:_a.focus)==null?void 0:_b.call(_a,options)}const handleDragEnter=attachments.handleDragEnter;const handleDragOver=attachments.handleDragOver;const handleDragLeave=attachments.handleDragLeave;const handlePaste=attachments.handlePaste;onMounted(queueResizeTextarea);onBeforeUnmount(()=>{if(resizeFrame&&typeof window!=="undefined"){window.cancelAnimationFrame(resizeFrame);resizeFrame=0}});watch(()=>[props.autoGrow,props.modelValue,props.placeholder,props.placeholderAffectsHeight,props.rows],(values2,previousValues=[])=>{const modelValueChanged=values2[1]!==previousValues[1];if(preserveHeightForNextModelValueChange&&modelValueChanged){preserveHeightForNextModelValueChange=false;return}queueResizeTextarea()});watch(attachmentState,state=>{emit("attachment-state-change",state)},{immediate:true});__expose({attachmentState,attachmentsCanSubmit,attachFileProducer,attachFiles,canSubmit:attachments.canSubmit,clearAttachments,focus:focusTextarea,openFilePicker,preserveHeightForNextModelValue,queueItems});return(_ctx,_cache)=>{return openBlock(),createElementBlock("div",{class:normalizeClass(["studio-autopilot-prompt-textarea",{"studio-autopilot-prompt-textarea--compact":__props.density==="compact","studio-autopilot-prompt-textarea--dragging":unref(dragActive),"studio-autopilot-prompt-textarea--has-attachments":unref(queueItems).length,"studio-autopilot-prompt-textarea--has-footer":_ctx.$slots.footer,"studio-autopilot-prompt-textarea--has-input-start":_ctx.$slots["input-start"]}]),onDragenter:_cache[1]||(_cache[1]=withModifiers((...args)=>unref(handleDragEnter)&&unref(handleDragEnter)(...args),["prevent"])),onDragover:_cache[2]||(_cache[2]=withModifiers((...args)=>unref(handleDragOver)&&unref(handleDragOver)(...args),["prevent"])),onDragleave:_cache[3]||(_cache[3]=withModifiers((...args)=>unref(handleDragLeave)&&unref(handleDragLeave)(...args),["prevent"])),onDrop:withModifiers(handleDrop,["prevent"])},[createBaseVNode("input",{ref_key:"fileInput",ref:fileInput,class:"studio-autopilot-prompt-textarea__file-input",disabled:!canUseFilePicker.value,multiple:"",type:"file",onChange:handleFileInputChange},null,40,_hoisted_1$9),createVNode(Vibe64AttachmentQueue,{"session-id":__props.sessionId,items:unref(queueItems),onCancel:unref(attachments).cancelAttachment,onRemove:removeUploadedAttachment,onRetry:unref(attachments).retryAttachment},null,8,["session-id","items","onCancel","onRetry"]),createBaseVNode("div",{class:normalizeClass(["studio-autopilot-prompt-textarea__field",{"studio-autopilot-prompt-textarea__field--disabled":__props.disabled}])},[__props.label?(openBlock(),createElementBlock("label",{key:0,class:"studio-autopilot-prompt-textarea__label",for:textareaId},toDisplayString(__props.label),1)):createCommentVNode("",true),_ctx.$slots["input-start"]?(openBlock(),createElementBlock("div",_hoisted_2$9,[renderSlot(_ctx.$slots,"input-start",{},void 0,true)])):createCommentVNode("",true),createBaseVNode("textarea",{id:textareaId,ref_key:"textareaRef",ref:textareaRef,"aria-describedby":__props.describedBy||void 0,"aria-label":textareaAriaLabel.value,class:"studio-autopilot-prompt-textarea__input",disabled:__props.disabled,placeholder:__props.placeholder,rows:__props.rows,value:__props.modelValue,onBlur:handleTextareaBlur,onFocus:handleTextareaFocus,onInput:handleTextareaInput,onKeydown:handleTextareaKeydown,onPaste:_cache[0]||(_cache[0]=(...args)=>unref(handlePaste)&&unref(handlePaste)(...args))},null,40,_hoisted_3$8),_ctx.$slots.footer?(openBlock(),createElementBlock("div",_hoisted_4$8,[renderSlot(_ctx.$slots,"footer",{attachmentState:attachmentState.value},void 0,true)])):createCommentVNode("",true)],2),detailsVisible.value?(openBlock(),createElementBlock("div",_hoisted_5$6,[(openBlock(true),createElementBlock(Fragment,null,renderList(combinedErrorMessages.value,message=>{return openBlock(),createElementBlock("div",{key:message,class:"studio-autopilot-prompt-textarea__error"},toDisplayString(message),1)}),128)),hintVisible.value?(openBlock(),createElementBlock("div",_hoisted_6$6,toDisplayString(__props.hint),1)):createCommentVNode("",true)])):createCommentVNode("",true)],34)}}});const Vibe64AutopilotPromptTextarea=_export_sfc(_sfc_main$a,[["__scopeId","data-v-891f780a"]]);const DEFAULT_SETTLE_DELAYS_MS=[0,80];function readElement(value){return unref(value)||null}function hasWindowTimer(name){return typeof window!=="undefined"&&typeof window[name]==="function"}function waitForLayoutFrame(){if(typeof window==="undefined"||typeof window.requestAnimationFrame!=="function"){return Promise.resolve()}return new Promise(resolve=>{window.requestAnimationFrame(resolve)})}function normalizedScrollBehavior(value=""){return value==="smooth"?"smooth":"auto"}function scrollElementToBottom(targetElement,behavior="auto"){if(behavior==="smooth"&&typeof targetElement.scrollTo==="function"){targetElement.scrollTo({behavior,top:targetElement.scrollHeight});return}targetElement.scrollTop=targetElement.scrollHeight}function useScrollToBottom({anchor=null,enabled=true,scrollAnchorIntoView=true,settleDelaysMs=DEFAULT_SETTLE_DELAYS_MS,target}={}){const scheduledTimers=new Set;let disposed=false;let scheduleVersion=0;function isEnabled(){return unref(enabled)!==false}function clearScheduledTimers(){if(hasWindowTimer("clearTimeout")){scheduledTimers.forEach(timer=>{window.clearTimeout(timer)})}scheduledTimers.clear()}function clearScheduledScrolls(){scheduleVersion+=1;clearScheduledTimers()}function scrollNow(options={}){var _a,_b;if(disposed||!isEnabled()){return}const targetElement=readElement(target);if(!targetElement){return}const behavior=normalizedScrollBehavior(options==null?void 0:options.behavior);scrollElementToBottom(targetElement,behavior);if(scrollAnchorIntoView!==false){const anchorOptions={block:"end"};if(behavior==="smooth"){anchorOptions.behavior=behavior}(_b=(_a=readElement(anchor))==null?void 0:_a.scrollIntoView)==null?void 0:_b.call(_a,anchorOptions)}scrollElementToBottom(targetElement,behavior)}function scheduleScroll(delayMs,options={},version=scheduleVersion){if(disposed||version!==scheduleVersion||!isEnabled()||!hasWindowTimer("setTimeout")){return}const timer=window.setTimeout(()=>{scheduledTimers.delete(timer);if(version!==scheduleVersion){return}scrollNow(options)},delayMs);scheduledTimers.add(timer)}async function scrollAfterLayout(options={}){if(disposed||!isEnabled()){return}const version=scheduleVersion+1;scheduleVersion=version;clearScheduledTimers();await nextTick();if(version!==scheduleVersion){return}scrollNow(options);await waitForLayoutFrame();if(version!==scheduleVersion){return}scrollNow(options);clearScheduledTimers();settleDelaysMs.forEach(delayMs=>{scheduleScroll(delayMs,options,version)})}onBeforeUnmount(()=>{disposed=true;clearScheduledScrolls()});return{clearScheduledScrolls,scrollAfterLayout,scrollNow}}function parseLongTextReviewBlocks(value,options={}){const lines=expandCompactPipeTableLines(String(value||"").replace(/\r\n/gu,"\n").split("\n"));const blocks=[];let paragraphLines=[];let listBlock=null;let codeLines=null;let detailsBlock=null;const preserveParagraphLineBreaks=options.preserveParagraphLineBreaks===true;const parseDetailsOpening=(trimmed="")=>{if(trimmed==="<details>"){return{closed:false,remainder:"",summary:"Details"}}const inlineMatch=trimmed.match(/^<details>\s*<summary>\s*(.*?)\s*<\/summary>\s*(.*)$/u);if(!inlineMatch){return null}let remainder=inlineMatch[2]||"";let closed=false;const closingMatch=remainder.match(/^(.*?)\s*<\/details>$/u);if(closingMatch){remainder=closingMatch[1]||"";closed=true}return{closed,remainder:remainder.trim(),summary:inlineMatch[1].trim()||"Details"}};const flushParagraph=()=>{const text=preserveParagraphLineBreaks?paragraphLines.join("\n").trim():paragraphLines.join(" ").replace(/\s+/gu," ").trim();paragraphLines=[];if(text){blocks.push({text,type:"paragraph"})}};const flushList=()=>{if(listBlock==null?void 0:listBlock.items.length){blocks.push(listBlock)}listBlock=null};const flushCode=()=>{if(codeLines){blocks.push({text:codeLines.join("\n").replace(/\n+$/u,""),type:"code"})}codeLines=null};const flushDetails=()=>{if(detailsBlock){blocks.push({blocks:parseLongTextReviewBlocks(detailsBlock.lines.join("\n"),options),summary:detailsBlock.summary||"Details",type:"details"})}detailsBlock=null};for(let lineIndex=0;lineIndex<lines.length;lineIndex+=1){const rawLine=lines[lineIndex];const line=rawLine.replace(/\s+$/u,"");const trimmed=line.trim();if(detailsBlock){const summaryMatch=trimmed.match(/^<summary>\s*(.*?)\s*<\/summary>$/u);const closingMatch=trimmed.match(/^(.*?)\s*<\/details>$/u);if(/^<\/details>$/u.test(trimmed)){flushDetails()}else if(closingMatch){const beforeClose=closingMatch[1].trim();if(beforeClose){detailsBlock.lines.push(beforeClose)}flushDetails()}else if(summaryMatch){detailsBlock.summary=summaryMatch[1].trim()||detailsBlock.summary}else{detailsBlock.lines.push(line)}continue}if(codeLines){if(/^```/u.test(trimmed)){flushCode()}else{codeLines.push(line)}continue}if(/^```/u.test(trimmed)){flushParagraph();flushList();codeLines=[];continue}const detailsOpening=parseDetailsOpening(trimmed);if(detailsOpening){flushParagraph();flushList();detailsBlock={lines:detailsOpening.remainder?[detailsOpening.remainder]:[],summary:detailsOpening.summary};if(detailsOpening.closed){flushDetails()}continue}if(!trimmed){flushParagraph();flushList();continue}const tableBlock=parsePipeTableAt(lines,lineIndex);if(tableBlock){flushParagraph();flushList();blocks.push(tableBlock.block);lineIndex=tableBlock.endIndex;continue}const headingMatch=trimmed.match(/^(#{1,6})\s+(.+)$/u);if(headingMatch){flushParagraph();flushList();blocks.push({level:headingMatch[1].length,text:headingMatch[2].trim(),type:"heading"});continue}const unorderedMatch=trimmed.match(/^[-*+•]\s+(.*)$/u);const orderedMatch=trimmed.match(/^\d+[.)]\s+(.*)$/u);if(unorderedMatch||orderedMatch){flushParagraph();const type=orderedMatch?"ol":"ul";if(!listBlock||listBlock.type!==type){flushList();listBlock={items:[],type}}listBlock.items.push({text:((orderedMatch==null?void 0:orderedMatch[1])||(unorderedMatch==null?void 0:unorderedMatch[1])||"").trim()});continue}flushList();paragraphLines.push(trimmed)}flushParagraph();flushList();flushCode();flushDetails();return blocks}function expandCompactPipeTableLines(lines=[]){return lines.flatMap(line=>{const text=String(line||"");const trimmed=text.trim();const compactRowBoundaries=text.match(/\|\s+\|/gu)||[];if(!trimmed.startsWith("|")||compactRowBoundaries.length<2){return[line]}const expandedLines=text.replace(/\|\s+\|/gu,"|\n|").split("\n");if(!tableAlignments(parsePipeTableRow(expandedLines[1]))){return[line]}return expandedLines})}function parsePipeTableAt(lines=[],startIndex=0){const headers=parsePipeTableRow(lines[startIndex]);const alignments=tableAlignments(parsePipeTableRow(lines[startIndex+1]));if(!headers||!alignments||headers.length!==alignments.length){return null}if(!headers.some(header=>header)){return null}const rows=[];let rowIndex=startIndex+2;while(rowIndex<lines.length){const row=parsePipeTableRow(lines[rowIndex]);if(!row||row.length!==headers.length){break}rows.push(row);rowIndex+=1}return{block:{alignments,headers,rows,type:"table"},endIndex:rowIndex-1}}function parsePipeTableRow(value=""){const trimmed=String(value||"").trim();if(!trimmed.startsWith("|")||!trimmed.includes("|",1)){return null}const cells=trimmed.replace(/^\|/u,"").replace(/\|$/u,"").split("|").map(cell=>cell.trim());return cells.length>=2?cells:null}function tableAlignments(cells=null){if(!Array.isArray(cells)||!cells.length){return null}const alignments=[];for(const cell of cells){const marker=String(cell||"").replace(/\s+/gu,"");if(!/^:?-{3,}:?$/u.test(marker)){return null}if(marker.startsWith(":")&&marker.endsWith(":")){alignments.push("center")}else if(marker.endsWith(":")){alignments.push("right")}else{alignments.push("left")}}return alignments}function pushInlineTextPart(parts=[],text=""){if(!text){return}const previous=parts.at(-1);if((previous==null?void 0:previous.type)==="text"){previous.text+=text;return}parts.push({text,type:"text"})}function closingMarkdownBracketIndex(text="",start=0){let depth=1;for(let index=start+1;index<text.length;index+=1){const character=text[index];if(character==="\\"){index+=1;continue}if(character==="["){depth+=1}else if(character==="]"){depth-=1;if(depth===0){return index}}}return-1}function closingMarkdownDestinationIndex(text="",start=0){for(let index=start+1;index<text.length;index+=1){if(text[index]==="\\"){index+=1;continue}if(text[index]===")"){return index}}return-1}function normalizeMarkdownLinkHref(value=""){const href=String(value||"").trim().replace(/^<|>$/gu,"");const protocolText=href.replace(/[\u0000-\u0020\u007f]/gu,"");return/^(?:javascript|vbscript|data):/iu.test(protocolText)?"":href}function markdownLinkAt(text="",start=0){if(text[start]!=="["){return null}const labelEnd=closingMarkdownBracketIndex(text,start);if(labelEnd===-1||text[labelEnd+1]!=="("){return null}const destinationStart=labelEnd+1;const destinationEnd=closingMarkdownDestinationIndex(text,destinationStart);if(destinationEnd===-1){return null}const label=text.slice(start+1,labelEnd);const href=normalizeMarkdownLinkHref(text.slice(destinationStart+1,destinationEnd));if(!label||!href){return null}return{end:destinationEnd+1,href,text:label}}function parseLongTextInlineParts(value=""){const text=String(value||"");const parts=[];let cursor=0;while(cursor<text.length){if(text[cursor]==="["){const link=markdownLinkAt(text,cursor);if(link){parts.push({href:link.href,text:link.text,type:"link"});cursor=link.end;continue}}if(text[cursor]==="`"){const end=text.indexOf("`",cursor+1);if(end>cursor+1){parts.push({text:text.slice(cursor+1,end),type:"code"});cursor=end+1;continue}}if(text.startsWith("**",cursor)){const end=text.indexOf("**",cursor+2);if(end>cursor+2){parts.push({text:text.slice(cursor+2,end),type:"strong"});cursor=end+2;continue}}pushInlineTextPart(parts,text[cursor]);cursor+=1}return parts.length?parts:[{text,type:"text"}]}const _hoisted_1$8={key:0};const _hoisted_2$8={key:1};const _hoisted_3$7=["href","onClick"];const _hoisted_4$7={key:3};const _sfc_main$9={__name:"LongTextInlineParts",props:{text:{default:"",type:String}},emits:["link-click"],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const parts=computed(()=>parseLongTextInlineParts(props.text));function partKey(part,partIndex){return`${part.type}:${partIndex}:${part.text}`}function handleLinkClick(event,part={}){emit("link-click",{event,href:part.href||"",text:part.text||""})}return(_ctx,_cache)=>{return openBlock(true),createElementBlock(Fragment,null,renderList(parts.value,(part,partIndex)=>{return openBlock(),createElementBlock(Fragment,{key:partKey(part,partIndex)},[part.type==="strong"?(openBlock(),createElementBlock("strong",_hoisted_1$8,toDisplayString(part.text),1)):part.type==="code"?(openBlock(),createElementBlock("code",_hoisted_2$8,toDisplayString(part.text),1)):part.type==="link"?(openBlock(),createElementBlock("a",{key:2,href:part.href,onClick:$event=>handleLinkClick($event,part)},toDisplayString(part.text),9,_hoisted_3$7)):(openBlock(),createElementBlock("span",_hoisted_4$7,toDisplayString(part.text),1))],64)}),128)}}};const LongTextInlineParts=_export_sfc(_sfc_main$9,[["__scopeId","data-v-8ab73515"]]);const _hoisted_1$7={key:2,class:"studio-long-text-review__code"};const _hoisted_2$7={key:3,class:"studio-long-text-review__table-wrap",role:"region","aria-label":"Table",tabindex:"0"};const _hoisted_3$6={class:"studio-long-text-review__table"};const _hoisted_4$6={key:4,class:"studio-long-text-review__details"};const _hoisted_5$5={class:"studio-long-text-review__details-summary"};const _hoisted_6$5={key:5,class:"studio-long-text-review__paragraph"};const _sfc_main$8={__name:"LongTextPreviewBlocks",props:{blocks:{type:Array,required:true},compact:{type:Boolean,default:false}},emits:["link-click"],setup(__props,{emit:__emit}){const emit=__emit;function isListBlock(block){return block.type==="ul"||block.type==="ol"}function blockKey(block,blockIndex){return`${block.type}:${blockIndex}`}function headingTag(level){if(level<=1){return"h3"}if(level===2){return"h4"}return"h5"}function tableCellClass(block={},columnIndex=0){const alignment=Array.isArray(block.alignments)?block.alignments[columnIndex]:"";return{"studio-long-text-review__table-cell--center":alignment==="center","studio-long-text-review__table-cell--right":alignment==="right"}}return(_ctx,_cache)=>{const _component_LongTextPreviewBlocks=resolveComponent("LongTextPreviewBlocks",true);return openBlock(),createElementBlock("div",{class:normalizeClass(["studio-long-text-review__blocks",{"studio-long-text-review__blocks--compact":__props.compact}])},[(openBlock(true),createElementBlock(Fragment,null,renderList(__props.blocks,(block,blockIndex)=>{return openBlock(),createElementBlock(Fragment,{key:blockKey(block,blockIndex)},[block.type==="heading"?(openBlock(),createBlock(resolveDynamicComponent(headingTag(block.level)),{key:0,class:"studio-long-text-review__heading"},{default:withCtx(()=>[createVNode(LongTextInlineParts,{text:block.text,onLinkClick:_cache[0]||(_cache[0]=$event=>emit("link-click",$event))},null,8,["text"])]),_:2},1024)):isListBlock(block)?(openBlock(),createBlock(resolveDynamicComponent(block.type),{key:1,class:"studio-long-text-review__list"},{default:withCtx(()=>[(openBlock(true),createElementBlock(Fragment,null,renderList(block.items,(item,itemIndex)=>{return openBlock(),createElementBlock("li",{key:`item:${blockIndex}:${itemIndex}`},[createVNode(LongTextInlineParts,{text:item.text,onLinkClick:_cache[1]||(_cache[1]=$event=>emit("link-click",$event))},null,8,["text"])])}),128))]),_:2},1024)):block.type==="code"?(openBlock(),createElementBlock("pre",_hoisted_1$7,[createBaseVNode("code",null,toDisplayString(block.text),1)])):block.type==="table"?(openBlock(),createElementBlock("div",_hoisted_2$7,[createBaseVNode("table",_hoisted_3$6,[createBaseVNode("thead",null,[createBaseVNode("tr",null,[(openBlock(true),createElementBlock(Fragment,null,renderList(block.headers,(header,columnIndex)=>{return openBlock(),createElementBlock("th",{key:`header:${blockIndex}:${columnIndex}`,class:normalizeClass(tableCellClass(block,columnIndex)),scope:"col"},[createVNode(LongTextInlineParts,{text:header,onLinkClick:_cache[2]||(_cache[2]=$event=>emit("link-click",$event))},null,8,["text"])],2)}),128))])]),createBaseVNode("tbody",null,[(openBlock(true),createElementBlock(Fragment,null,renderList(block.rows,(row,rowIndex)=>{return openBlock(),createElementBlock("tr",{key:`row:${blockIndex}:${rowIndex}`},[(openBlock(true),createElementBlock(Fragment,null,renderList(row,(cell,columnIndex)=>{return openBlock(),createElementBlock("td",{key:`cell:${blockIndex}:${rowIndex}:${columnIndex}`,class:normalizeClass(tableCellClass(block,columnIndex))},[createVNode(LongTextInlineParts,{text:cell,onLinkClick:_cache[3]||(_cache[3]=$event=>emit("link-click",$event))},null,8,["text"])],2)}),128))])}),128))])])])):block.type==="details"?(openBlock(),createElementBlock("details",_hoisted_4$6,[createBaseVNode("summary",_hoisted_5$5,[createVNode(LongTextInlineParts,{text:block.summary||"Details",onLinkClick:_cache[4]||(_cache[4]=$event=>emit("link-click",$event))},null,8,["text"])]),createVNode(_component_LongTextPreviewBlocks,{class:"studio-long-text-review__details-body",compact:"",blocks:block.blocks||[],onLinkClick:_cache[5]||(_cache[5]=$event=>emit("link-click",$event))},null,8,["blocks"])])):(openBlock(),createElementBlock("p",_hoisted_6$5,[createVNode(LongTextInlineParts,{text:block.text,onLinkClick:_cache[6]||(_cache[6]=$event=>emit("link-click",$event))},null,8,["text"])]))],64)}),128))],2)}}};const LongTextPreviewBlocks=_export_sfc(_sfc_main$8,[["__scopeId","data-v-ca244d36"]]);const _hoisted_1$6={class:"vibe64-conversation-progress"};const _hoisted_2$6=["aria-expanded"];const _sfc_main$7={__name:"Vibe64ConversationProgress",props:{messages:{type:Array,default:()=>[]},pending:{type:Boolean,default:false},previewLimit:{type:Number,default:2}},setup(__props){const props=__props;const expanded=ref(false);const previewCount=computed(()=>props.pending?props.previewLimit:0);const visibleMessages=computed(()=>{if(expanded.value){return props.messages}return previewCount.value>0?props.messages.slice(-previewCount.value):[]});const toggleLabel=computed(()=>{if(expanded.value){return previewCount.value>0?`Show latest ${previewCount.value} progress updates`:"Hide progress updates"}return`Show all ${props.messages.length} progress ${props.messages.length===1?"update":"updates"}`});return(_ctx,_cache)=>{return openBlock(),createElementBlock("div",_hoisted_1$6,[__props.messages.length>previewCount.value?(openBlock(),createElementBlock("button",{key:0,"aria-expanded":expanded.value,class:"vibe64-conversation-progress__toggle",type:"button",onClick:_cache[0]||(_cache[0]=$event=>expanded.value=!expanded.value)},toDisplayString(toggleLabel.value),9,_hoisted_2$6)):createCommentVNode("",true),(openBlock(true),createElementBlock(Fragment,null,renderList(visibleMessages.value,(message,index)=>{return openBlock(),createElementBlock("div",{key:message.key||message.id||index,class:"vibe64-conversation-progress__message"},toDisplayString(message.text),1)}),128))])}}};const Vibe64ConversationProgress=_export_sfc(_sfc_main$7,[["__scopeId","data-v-87423c09"]]);const _hoisted_1$5={key:0,"aria-label":"Attached files",class:"vibe64-conversation-attachments"};const _hoisted_2$5={class:"vibe64-conversation-attachments__details"};const _hoisted_3$5=["title"];const _hoisted_4$5={key:0,class:"vibe64-conversation-attachments__size text-label-small"};const _sfc_main$6={__name:"Vibe64ConversationAttachments",props:{sessionId:{default:"",type:String},items:{default:()=>[],type:Array}},setup(__props){const props=__props;const selectedAttachment=ref(null);watch(()=>props.sessionId,()=>{selectedAttachment.value=null});const attachments=computed(()=>normalizeVibe64ConversationAttachments(props.items));const imageFilePattern=/\.(?:avif|bmp|gif|heic|heif|jpe?g|png|svg|webp)$/iu;function attachmentIcon(attachment={}){return imageFilePattern.test(String(attachment.fileName||""))?mdiImageOutline:mdiFileOutline}function attachmentKey(attachment={},index=0){return`${index}:${attachment.fileName}:${attachment.size??""}`}return(_ctx,_cache)=>{return attachments.value.length?(openBlock(),createElementBlock("ul",_hoisted_1$5,[(openBlock(true),createElementBlock(Fragment,null,renderList(attachments.value,(attachment,index)=>{return openBlock(),createElementBlock("li",{key:attachmentKey(attachment,index),class:"vibe64-conversation-attachments__item"},[(openBlock(),createBlock(resolveDynamicComponent(attachment.attachmentId&&__props.sessionId?"button":"span"),{type:attachment.attachmentId&&__props.sessionId?"button":void 0,class:"vibe64-conversation-attachments__open",onClick:$event=>attachment.attachmentId&&__props.sessionId&&(selectedAttachment.value=attachment)},{default:withCtx(()=>[createVNode(VIcon,{"aria-hidden":"true",class:"vibe64-conversation-attachments__icon",icon:attachmentIcon(attachment),size:"19"},null,8,["icon"]),createBaseVNode("span",_hoisted_2$5,[createBaseVNode("span",{class:"vibe64-conversation-attachments__name text-body-small font-weight-medium",title:attachment.fileName},toDisplayString(attachment.reference)+" "+toDisplayString(attachment.fileName),9,_hoisted_3$5),unref(attachmentSizeLabel)(attachment.size)?(openBlock(),createElementBlock("span",_hoisted_4$5,toDisplayString(unref(attachmentSizeLabel)(attachment.size)),1)):createCommentVNode("",true)])]),_:2},1032,["type","onClick"]))])}),128)),selectedAttachment.value?(openBlock(),createBlock(Vibe64AttachmentDialog,{key:0,attachment:selectedAttachment.value,"session-id":__props.sessionId,onClose:_cache[0]||(_cache[0]=$event=>selectedAttachment.value=null)},null,8,["attachment","session-id"])):createCommentVNode("",true)])):createCommentVNode("",true)}}};const Vibe64ConversationAttachments=_export_sfc(_sfc_main$6,[["__scopeId","data-v-b26baf0f"]]);const ANSWER_CHOICE_MIN_COUNT=2;const ANSWER_CHOICE_MAX_COUNT=6;const ANSWER_CHOICE_LABEL_MAX_LENGTH=96;const ANSWER_CHOICE_VALUE_MAX_LENGTH=320;function inactiveAnswerChoiceSugar(){return{choices:[]}}function normalizedChoiceText(value=""){return String(value||"").trim().replace(/\s+/gu," ")}function answerChoiceHeadingLine(line=""){return/^(possible answers|choices):$/iu.test(String(line||"").trim())}function answerChoiceLineText(line=""){const match=String(line||"").trim().match(/^[-*]\s+(.+)$/u);return match?normalizedChoiceText(match[1]):""}function answerChoiceFromLine(line=""){const text=answerChoiceLineText(line);if(!text||text.length>ANSWER_CHOICE_VALUE_MAX_LENGTH){return null}const recommendedMatch=text.match(/^(.{1,96}?)\s+\(recommended\)$/iu);if(recommendedMatch){const label=normalizedChoiceText(recommendedMatch[1]);return label?{label,recommended:true,value:label}:null}const colonMatch=text.match(/^([^:]{1,96}):\s+(.+)$/u);if(colonMatch){const label=normalizedChoiceText(colonMatch[1]);const value=normalizedChoiceText(colonMatch[2]);return label&&value?{label,value}:null}const parentheticalMatch=text.match(/^(.{1,96}?)\s+\(([^()]+)\)$/u);if(parentheticalMatch){const rawLabel=normalizedChoiceText(parentheticalMatch[1]);const markdownTokenMatch=rawLabel.match(/^(?:`([^`]+)`|\*\*([^*]+)\*\*)$/u);const label=normalizedChoiceText((markdownTokenMatch==null?void 0:markdownTokenMatch[1])||(markdownTokenMatch==null?void 0:markdownTokenMatch[2])||rawLabel);if(markdownTokenMatch){return label?{label,value:label}:null}const value=normalizedChoiceText(parentheticalMatch[2]);return label&&value?{label,value}:null}return{label:text,value:text}}function validAnswerChoice(choice={}){return Boolean(choice&&choice.label&&choice.value&&choice.label.length<=ANSWER_CHOICE_LABEL_MAX_LENGTH&&choice.value.length<=ANSWER_CHOICE_VALUE_MAX_LENGTH)}function parseAnswerChoicePrompt(value=""){const lines=String(value||"").replace(/\r\n/gu,"\n").split("\n");if(lines.some(line=>{const match=String(line||"").trim().match(/^\[(?:Q)?\d+\]\s+(.+)/iu);return match&&/\?(?:[*_`”"'’)\]]*)$/u.test(match[1].trim())})){return inactiveAnswerChoiceSugar()}const headingIndex=lines.findIndex(answerChoiceHeadingLine);if(headingIndex<0){return inactiveAnswerChoiceSugar()}const choices=[];for(let index=headingIndex+1;index<lines.length;index+=1){const line=lines[index];if(!String(line||"").trim()){continue}const choice=answerChoiceFromLine(line);if(!choice){if(choices.length){break}return inactiveAnswerChoiceSugar()}choices.push(choice)}const uniqueValues=new Set(choices.map(choice=>choice.value));if(choices.length<ANSWER_CHOICE_MIN_COUNT||choices.length>ANSWER_CHOICE_MAX_COUNT||uniqueValues.size!==choices.length||choices.some(choice=>!validAnswerChoice(choice))){return inactiveAnswerChoiceSugar()}return{choices}}const UI_QUESTION_FIELD_PREFIX="__ui_question_";function inactiveNumberedQuestionSugar(){return{intro:"",outro:"",questions:[]}}function numberedQuestionMarkerMatch(line=""){return String(line||"").match(/^\[(?:Q)?(\d+)\]\s+(.+)$/iu)}function trailingAnswerChoiceHeadingLine(line=""){return/^(possible answers|choices):$/iu.test(String(line||"").trim())}function trailingAnswerChoiceLine(line=""){return/^[-*]\s+.+/u.test(String(line||"").trim())}function numberedQuestionLabelLooksLikeQuestion(label=""){return/\?(?:[*_`”"'’)\]]*)(?:\s|$)/u.test(String(label||"").trim())}function validNumberedQuestions(questions=[]){return questions.every(question2=>question2.choices.length>0||numberedQuestionLabelLooksLikeQuestion(question2.label))}function numberedQuestionChoice(line=""){const choice=answerChoiceFromLine(line);if(!choice){return null}const label=String(choice.label||"").trim();const selectLabel=label.split(/(?:\s*[—–]\s*|\s+-\s+)/u,1)[0].trim()||label;return{...choice,recommended:choice.recommended===true,selectLabel}}function trailingAnswerChoiceBlock(lines=[],startIndex=0){if(!trailingAnswerChoiceHeadingLine(lines[startIndex])){return null}const choices=[];let nextIndex=startIndex+1;while(nextIndex<lines.length&&trailingAnswerChoiceLine(lines[nextIndex])){const choice=numberedQuestionChoice(lines[nextIndex]);if(!choice){return null}choices.push(choice);nextIndex+=1}const uniqueValues=new Set(choices.map(choice=>choice.value));if(choices.length<2||choices.length>6||uniqueValues.size!==choices.length){return null}return{choices,nextIndex}}function questionForMarkerMatch(match=[],index=0){const numberText=String(match[1]||"");const number=Number(numberText);const label=String(match[2]||"").trim();if(!Number.isSafeInteger(number)||number!==index+1||String(number)!==numberText||!label){return null}return{choices:[],label,name:`${UI_QUESTION_FIELD_PREFIX}${number}`,number}}function parseLineNumberedQuestionPrompt(value=""){const lines=String(value||"").split(/\r?\n/u).map(line=>line.trim()).filter(Boolean);if(!lines.length){return inactiveNumberedQuestionSugar()}const intro=[];const outro=[];const questions=[];for(let index=0;index<lines.length;){const line=lines[index];const match=numberedQuestionMarkerMatch(line);if(!match){if(!questions.length){intro.push(line);index+=1;continue}const choiceBlock=trailingAnswerChoiceBlock(lines,index);if(choiceBlock){const question3=questions.at(-1);if(question3.choices.length){return inactiveNumberedQuestionSugar()}question3.choices=choiceBlock.choices;index=choiceBlock.nextIndex;continue}const trailingLines=lines.slice(index);if(trailingLines.some(trailingLine=>trailingAnswerChoiceHeadingLine(trailingLine))||trailingLines.some(trailingLine=>numberedQuestionMarkerMatch(trailingLine))){return inactiveNumberedQuestionSugar()}outro.push(...trailingLines);break}const question2=questionForMarkerMatch(match,questions.length);if(!question2){return inactiveNumberedQuestionSugar()}questions.push(question2);index+=1}if(!questions.length||!validNumberedQuestions(questions)){return inactiveNumberedQuestionSugar()}return{intro:intro.join("\n"),outro:outro.join("\n"),questions}}function parseInlineNumberedQuestionPrompt(value=""){const source=String(value||"").replace(/\r\n/gu,"\n").trim();const firstMarker=source.search(/\[(?:Q)?\d+\]\s+/iu);if(firstMarker<0){return inactiveNumberedQuestionSugar()}const intro=source.slice(0,firstMarker).trim();const questionText=source.slice(firstMarker).trim();if(!questionText||questionText.includes("\n")){return inactiveNumberedQuestionSugar()}const markerPattern=/\[(?:Q)?(\d+)\]\s+/giu;const markers=[...questionText.matchAll(markerPattern)];if(markers.length<2||markers[0].index!==0){return inactiveNumberedQuestionSugar()}const questions=[];for(const[index,match]of markers.entries()){const labelStart=match.index+match[0].length;const nextMarker=markers[index+1];const labelEnd=nextMarker?nextMarker.index:questionText.length;const question2=questionForMarkerMatch([match[0],match[1],questionText.slice(labelStart,labelEnd)],questions.length);if(!question2){return inactiveNumberedQuestionSugar()}questions.push(question2)}if(!validNumberedQuestions(questions)){return inactiveNumberedQuestionSugar()}return{intro,outro:"",questions}}function parseNumberedQuestionPrompt(value=""){const inlineQuestions=parseInlineNumberedQuestionPrompt(value);return inlineQuestions.questions.length?inlineQuestions:parseLineNumberedQuestionPrompt(value)}function numberedQuestionSubmissionText(questions=[],values2={}){return questions.map(question2=>`[${question2.number}] ${String(values2[question2.name]||"").trim()}`).join("\n")}function normalizeSourceRoot(value=""){return String(value||"").trim().replace(/\/+$/u,"")}function safeDecodePath(value=""){try{return decodeURIComponent(String(value||""))}catch{return String(value||"")}}function stripFileUrl(value=""){const text=String(value||"").trim();if(!text.startsWith("file://")){return text}try{return new URL(text).pathname}catch{return text.replace(/^file:\/\//u,"")}}function splitLineSuffix(value=""){const text=String(value||"").trim();const match=text.match(/^(.*?)(?::(\d+)(?:-\d+)?)(?::(\d+))?$/u);if(!match){return{column:0,line:0,path:text}}return{column:Number(match[3]||0)||0,line:Number(match[2]||0)||0,path:match[1]}}function normalizeRelativeSourcePath(value=""){const normalized=String(value||"").trim().replaceAll("\\","/").replace(/^\.\/+/u,"").replace(/\/+/gu,"/");if(!normalized||normalized==="."||normalized===".."||normalized.startsWith("../")||normalized.startsWith("/")||/^[A-Za-z][A-Za-z0-9+.-]*:/u.test(normalized)){return""}return normalized}function sessionRelativeSourcePath(value=""){const normalized=String(value||"").trim().replaceAll("\\","/").replace(/\/+/gu,"/");const match=normalized.match(/(?:^|\/)sessions\/active\/[^/]+\/(?:source|worktree)\/(.+)$/u);return match?normalizeRelativeSourcePath(match[1]):""}function sourceEditorLinkTarget({href="",sourceRoot="",text=""}={}){const root=normalizeSourceRoot(sourceRoot);const candidate=safeDecodePath(stripFileUrl(href||text)).replace(/^<|>$/gu,"").trim();if(!candidate||/^(https?:|mailto:|#)/iu.test(candidate)){return null}const withLocation=splitLineSuffix(candidate);const normalizedPath=withLocation.path.replace(/\/+$/u,"");if(root&&(normalizedPath===root||normalizedPath.startsWith(`${root}/`))){return{column:withLocation.column,line:withLocation.line,path:normalizedPath.slice(root.length+1)}}const sessionRelativePath=sessionRelativeSourcePath(withLocation.path);if(sessionRelativePath){return{column:withLocation.column,line:withLocation.line,path:sessionRelativePath}}const relativePath=normalizeRelativeSourcePath(withLocation.path);if(!relativePath){return null}return{column:withLocation.column,line:withLocation.line,path:relativePath}}const DEFAULT_SCROLL_FOLLOW_THRESHOLD_PX=48;function numericElementValue(value){const number=Number(value);return Number.isFinite(number)?number:0}function scrollDistanceFromBottom(element=null){if(!element){return 0}return Math.max(0,numericElementValue(element.scrollHeight)-numericElementValue(element.scrollTop)-numericElementValue(element.clientHeight))}function scrollElementNearBottom(element=null,thresholdPx=DEFAULT_SCROLL_FOLLOW_THRESHOLD_PX){const threshold=Math.max(0,numericElementValue(thresholdPx));return scrollDistanceFromBottom(element)<=threshold}const _hoisted_1$4={key:2,class:"studio-conversation-log__settling","aria-hidden":"true"};const _hoisted_2$4={key:0,class:"studio-conversation-log__welcome",role:"status"};const _hoisted_3$4={class:"studio-conversation-log__assistant-header"};const _hoisted_4$4={class:"studio-conversation-log__avatar studio-conversation-log__avatar--assistant"};const _hoisted_5$4={class:"studio-conversation-log__message-header"};const _hoisted_6$4={key:1,class:"studio-conversation-log__load-more"};const _hoisted_7$4={key:0,class:"studio-conversation-log__load-more-error"};const _hoisted_8$4={key:0,class:"studio-conversation-log__system"};const _hoisted_9$4={class:"studio-conversation-log__system-body"};const _hoisted_10$4={class:"studio-conversation-log__system-meta"};const _hoisted_11$4={key:0};const _hoisted_12$2={key:1,class:"studio-conversation-log__message-row studio-conversation-log__message-row--user"};const _hoisted_13$2={class:"studio-conversation-log__message studio-conversation-log__message--user"};const _hoisted_14$1={class:"studio-conversation-log__user-content"};const _hoisted_15$1=["aria-expanded","onClick"];const _hoisted_16$1={key:1,class:"studio-conversation-log__message-footer studio-conversation-log__message-footer--user"};const _hoisted_17$1={key:0};const _hoisted_18$1={key:2,class:"studio-conversation-log__optimistic-failure"};const _hoisted_19$1={class:"studio-conversation-log__optimistic-actions"};const _hoisted_20$1={class:"studio-conversation-log__avatar studio-conversation-log__avatar--user"};const _hoisted_21$1=["data-message-role"];const _hoisted_22$1={class:"studio-conversation-log__assistant-header"};const _hoisted_23$1={class:"studio-conversation-log__avatar studio-conversation-log__avatar--assistant"};const _hoisted_24$1={class:"studio-conversation-log__message-header"};const _hoisted_25$1={class:"studio-conversation-log__message studio-conversation-log__message--assistant"};const _hoisted_26$1={key:1,class:"studio-conversation-log__questions"};const _hoisted_27$1={class:"studio-conversation-log__question-number"};const _hoisted_28$1={class:"studio-conversation-log__question-content"};const _hoisted_29$1={class:"studio-conversation-log__question-text"};const _hoisted_30$1={key:0,class:"studio-conversation-log__question-choices"};const _hoisted_31$1={key:0};const _hoisted_32$1={key:3,role:"status"};const _hoisted_33$1={key:4,role:"status"};const _hoisted_34$1=["href"];const _hoisted_35$1={key:0,class:"studio-conversation-log__message-footer studio-conversation-log__message-footer--assistant"};const USER_MESSAGE_COLLAPSE_MIN_CHARACTERS=360;const USER_MESSAGE_PREVIEW_MAX_CHARACTERS=280;const USER_MESSAGE_PREVIEW_MAX_LINES=4;const DISPLAY_MESSAGE_CACHE_LIMIT=500;const USER_SCROLL_INTENT_RESET_MS=600;const _sfc_main$5={__name:"Vibe64ConversationLog",props:{integrationConnections:{default:()=>({}),type:Object},integrationActionPending:{default:null,type:Object},integrationActionError:{default:null,type:Object},integrationRequestsEnabled:{default:false,type:Boolean},sessionId:{default:"",type:String},assistantLabel:{default:"Codex",type:String},error:{default:"",type:String},followLatestKey:{default:0,type:[Number,String]},hasMoreBefore:{default:false,type:Boolean},loading:{default:false,type:Boolean},loadingMore:{default:false,type:Boolean},loadMoreError:{default:"",type:String},reloadable:{default:false,type:Boolean},reloading:{default:false,type:Boolean},scrollKey:{default:"",type:[Number,String]},sourceRoot:{default:"",type:String},turns:{default:()=>[],type:Array},variant:{default:"main",validator:value=>["main","task"].includes(value),type:String},visible:{default:false,type:Boolean},welcomeMessage:{default:"",type:String}},emits:["cancel-turn","edit-turn","load-more","open-integration","skip-integration","resume-integration","connect-integration","check-integration","cancel-integration","open-source-file","reload","resend-turn"],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;let recoverySession="";const recoveredRequests=new Set;watch(()=>[props.sessionId,props.visible,props.integrationRequestsEnabled,props.integrationActionPending,props.turns],()=>{const key=props.visible&&props.integrationRequestsEnabled?props.sessionId:"";if(key!==recoverySession){recoverySession=key;recoveredRequests.clear()}if(!key||props.integrationActionPending)return;const turn=props.turns.find(entry=>{var _a;return!entry.pending&&((_a=entry.integrationSetup)==null?void 0:_a.outcome)==="pending"&&!recoveredRequests.has(`${entry.turnId}/${entry.integrationSetup.requestId}`)});if(!turn)return;recoveredRequests.add(`${turn.turnId}/${turn.integrationSetup.requestId}`);emit("check-integration",{sessionId:key,turnId:turn.turnId,requestId:turn.integrationSetup.requestId})},{immediate:true});const bodyElement=ref(null);const bottomElement=ref(null);const expandedUserMessages=ref(new Set);const followingLatest=ref(true);const initialScrollSettled=ref(false);const userScrollIntent=ref(false);const displayMessageCache=new Map;let liveScrollFrame=0;let userScrollIntentTimer=null;let initialScrollVersion=0;let loadMoreScrollSnapshot=null;let loadMoreRequestVersion=0;let pendingTailFollow=false;const KEYBOARD_SCROLL_KEYS=new Set([" ","ArrowDown","ArrowUp","End","Home","PageDown","PageUp","Spacebar"]);const timeFormatter=new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"});function displayTime(value=""){const date=new Date(String(value||""));if(Number.isNaN(date.getTime())){return""}return timeFormatter.format(date)}function userMessagePreviewText(value=""){const text=String(value||"");const characters=[...text];const lines=text.split(/\r\n?|\n/u);if(characters.length<=USER_MESSAGE_COLLAPSE_MIN_CHARACTERS&&lines.length<=USER_MESSAGE_PREVIEW_MAX_LINES){return""}const firstLines=lines.slice(0,USER_MESSAGE_PREVIEW_MAX_LINES).join("\n");const preview=[...firstLines].slice(0,USER_MESSAGE_PREVIEW_MAX_CHARACTERS).join("").trimEnd();return preview?`${preview}…`:""}function displayMessage(message=null,{allowNumberedQuestions=false,preserveParagraphLineBreaks=false,previewUserMessage=false}={},cacheKey=""){if(!message){return null}const normalizedCacheKey=String(cacheKey||"").trim();const cached=normalizedCacheKey?displayMessageCache.get(normalizedCacheKey):null;if(cached&&cached.allowNumberedQuestions===allowNumberedQuestions&&cached.attachments===message.attachments&&cached.at===message.at&&cached.messageId===message.messageId&&cached.preserveParagraphLineBreaks===preserveParagraphLineBreaks&&cached.previewUserMessage===previewUserMessage&&cached.role===message.role&&cached.text===message.text){return cached.value}const integrationRequest=parseIntegrationSetupRequest(message);const messageText=integrationRequest?integrationRequest.text:message.text;const questionInput=allowNumberedQuestions?parseNumberedQuestionPrompt(messageText):{intro:"",outro:"",questions:[]};const hasQuestions=questionInput.questions.length>0;const previewText=previewUserMessage?userMessagePreviewText(message.text):"";const value={...message,integrationRequest,blocks:parseLongTextReviewBlocks(hasQuestions?questionInput.intro:messageText,{preserveParagraphLineBreaks}),outroBlocks:parseLongTextReviewBlocks(hasQuestions?questionInput.outro:"",{preserveParagraphLineBreaks}),previewBlocks:previewText?parseLongTextReviewBlocks(previewText,{preserveParagraphLineBreaks:true}):null,questions:hasQuestions?questionInput.questions:[],displayAt:displayTime(message.at)};if(normalizedCacheKey){if(displayMessageCache.size>=DISPLAY_MESSAGE_CACHE_LIMIT&&!displayMessageCache.has(normalizedCacheKey)){displayMessageCache.delete(displayMessageCache.keys().next().value)}displayMessageCache.set(normalizedCacheKey,{allowNumberedQuestions,attachments:message.attachments,at:message.at,messageId:message.messageId,preserveParagraphLineBreaks,previewUserMessage,role:message.role,text:message.text,value})}return value}function displayThinkingMessage(message=null){if(!message){return null}const text=normalizeThinkingMessageText(message.text);if(!text){return null}return{...message,text,displayAt:displayTime(message.at)}}function conversationAgentMessages(turn={}){if(Array.isArray(turn.messages)){return turn.messages.filter(message=>["assistant","commentary","thinking"].includes(String((message==null?void 0:message.role)||"").trim()))}return[...Array.isArray(turn.thinking)?turn.thinking:[],...Array.isArray(turn.commentary)?turn.commentary:[],turn.assistant].filter(Boolean)}function conversationMessageKey(message={},index=0){return[String(message.messageId||"").trim(),String(message.role||"").trim(),String(message.at||"").trim(),index].join(":")}function displayAgentTimeline(turn={},turnKey=""){const timeline=[];for(const[index,message]of conversationAgentMessages(turn).entries()){const role=String((message==null?void 0:message.role)||"").trim();if(role==="thinking"){const displayed=displayThinkingMessage(message);if(!displayed){continue}const keyedMessage={...displayed,key:conversationMessageKey(message,index)};const previous=timeline.at(-1);if((previous==null?void 0:previous.role)==="thinking"){previous.messages.push(keyedMessage);continue}timeline.push({key:`thinking:${keyedMessage.key}`,messages:[keyedMessage],role});continue}timeline.push({key:conversationMessageKey(message,index),message:displayMessage(message,{allowNumberedQuestions:true},`${turnKey}:agent:${conversationMessageKey(message,index)}`),role})}return timeline}function handleLongTextLinkClick(payload={}){var _a,_b;const target=sourceEditorLinkTarget({href:payload.href,sourceRoot:props.sourceRoot,text:payload.text});if(!target){return}(_b=(_a=payload.event)==null?void 0:_a.preventDefault)==null?void 0:_b.call(_a);emit("open-source-file",target)}const displayTurns=computed(()=>(Array.isArray(props.turns)?props.turns:[]).map((turn,index)=>{const turnId=String(turn.turnId||index+1);return{integrationSetup:turn.integrationSetup,agentTimeline:displayAgentTimeline(turn,turnId),optimistic:turn.optimistic&&typeof turn.optimistic==="object"&&!Array.isArray(turn.optimistic)?turn.optimistic:null,pending:turn.pending===true,system:displayMessage(turn.system,{},`${turnId}:system`),turnId,user:displayMessage(turn.user,{preserveParagraphLineBreaks:true,previewUserMessage:true},`${turnId}:user`)}}).filter(turn=>turn.system||turn.user||turn.agentTimeline.length));function userMessageCollapsible(message=null){return Array.isArray(message==null?void 0:message.previewBlocks)}function userMessageExpanded(turn={}){return expandedUserMessages.value.has(String(turn.turnId||""))}function toggleExpandedKey(expandedKeys,key){const next=new Set(expandedKeys.value);if(next.has(key)){next.delete(key)}else{next.add(key)}expandedKeys.value=next}function toggleUserMessage(turn={}){const key=String(turn.turnId||"");if(!key){return}toggleExpandedKey(expandedUserMessages,key)}const loadingIndicatorVisible=computed(()=>Boolean(props.loading&&!displayTurns.value.length));const initialScrollPending=computed(()=>Boolean(props.visible&&displayTurns.value.length&&!initialScrollSettled.value));function messageScrollKey(message=null){if(!message){return"empty"}return[message.messageId||"",message.role||"",message.at||"",String(message.text||"")].join("/")}function agentTimelineScrollKey(timeline=[]){return(Array.isArray(timeline)?timeline:[]).map(entry=>(entry==null?void 0:entry.role)==="thinking"?(entry.messages||[]).map(messageScrollKey).join("+"):messageScrollKey(entry==null?void 0:entry.message)).join("|")}function latestRenderedTailScrollKey(turns=[]){var _a,_b,_c;const turn=Array.isArray(turns)?turns.at(-1):null;if(!turn){return""}const timeline=Array.isArray(turn.agentTimeline)?turn.agentTimeline:[];return[turn.turnId,messageScrollKey(turn.system),messageScrollKey(turn.user),((_a=turn.optimistic)==null?void 0:_a.id)||"",((_b=turn.optimistic)==null?void 0:_b.status)||"",((_c=turn.optimistic)==null?void 0:_c.error)||"",turn.pending?"pending":"settled",agentTimelineScrollKey(timeline)].join(":")}const timelineScrollTrigger=computed(()=>[props.visible?"visible":"hidden",props.error?"error":"body",loadingIndicatorVisible.value?"loading":"ready",displayTurns.value.length?"has-turns":"empty",props.scrollKey].join(":"));const latestRenderedTailKey=computed(()=>latestRenderedTailScrollKey(displayTurns.value));const autoScrollEnabled=computed(()=>Boolean(props.visible&&followingLatest.value));const{clearScheduledScrolls,scrollAfterLayout:scrollToLatestMessage,scrollNow:scrollToLatestMessageNow}=useScrollToBottom({anchor:bottomElement,enabled:autoScrollEnabled,scrollAnchorIntoView:false,target:bodyElement});function clearUserScrollIntent(){if(userScrollIntentTimer&&typeof window!=="undefined"&&typeof window.clearTimeout==="function"){window.clearTimeout(userScrollIntentTimer)}userScrollIntentTimer=null;userScrollIntent.value=false}function resumePendingTailFollow(){const shouldResume=pendingTailFollow&&followingLatest.value;pendingTailFollow=false;if(shouldResume){queueLiveBottomScroll()}}function markUserScrollIntent(){userScrollIntent.value=true;clearLiveBottomScroll();clearScheduledScrolls();if(userScrollIntentTimer&&typeof window!=="undefined"&&typeof window.clearTimeout==="function"){window.clearTimeout(userScrollIntentTimer)}if(typeof window==="undefined"||typeof window.setTimeout!=="function"){return}userScrollIntentTimer=window.setTimeout(()=>{userScrollIntentTimer=null;userScrollIntent.value=false;resumePendingTailFollow()},USER_SCROLL_INTENT_RESET_MS)}function markKeyboardScrollIntent(event={}){if(!KEYBOARD_SCROLL_KEYS.has(String(event.key||""))||event.defaultPrevented){return}const target=event.target;const tagName=String((target==null?void 0:target.tagName)||"").toLowerCase();if((target==null?void 0:target.isContentEditable)||["input","select","textarea"].includes(tagName)||[" ","Spacebar"].includes(event.key)&&["a","button"].includes(tagName)){return}markUserScrollIntent()}function scrollToLatestMessageAfterLayout({behavior="auto",force=false}={}){if(force){followingLatest.value=true;clearUserScrollIntent()}return scrollToLatestMessage({behavior})}function queueInitialBottomScroll(){const version=initialScrollVersion+1;initialScrollVersion=version;initialScrollSettled.value=false;void scrollToLatestMessageAfterLayout({behavior:"auto",force:true}).finally(()=>{if(initialScrollVersion===version){initialScrollSettled.value=true}})}function queueLiveBottomScroll({force=false}={}){if(userScrollIntent.value&&!force){pendingTailFollow=true;return}if(force){pendingTailFollow=false;followingLatest.value=true;clearUserScrollIntent()}if(liveScrollFrame){return}if(typeof window==="undefined"||typeof window.requestAnimationFrame!=="function"){void scrollToLatestMessageAfterLayout({behavior:"auto"});return}liveScrollFrame=window.requestAnimationFrame(()=>{liveScrollFrame=0;scrollToLatestMessageNow({behavior:"auto"})})}function clearLiveBottomScroll(){if(liveScrollFrame&&typeof window!=="undefined"&&typeof window.cancelAnimationFrame==="function"){window.cancelAnimationFrame(liveScrollFrame)}liveScrollFrame=0}function updateLatestFollowFromScroll(event={}){const target=(event==null?void 0:event.currentTarget)||bodyElement.value;const shouldFollow=scrollElementNearBottom(target);if(!shouldFollow&&!userScrollIntent.value&&followingLatest.value){return}followingLatest.value=shouldFollow;if(shouldFollow){clearUserScrollIntent();resumePendingTailFollow();return}if(!shouldFollow){clearLiveBottomScroll();clearScheduledScrolls()}}function requestLoadMore(){if(!props.hasMoreBefore||props.loadingMore){return}followingLatest.value=false;pendingTailFollow=false;markUserScrollIntent();const element=bodyElement.value;const version=loadMoreRequestVersion+1;loadMoreRequestVersion=version;loadMoreScrollSnapshot=element?{scrollHeight:element.scrollHeight,scrollKey:props.scrollKey,scrollTop:element.scrollTop,version}:null;emit("load-more",{complete:({changed=false}={})=>{void completeLoadMoreRequest(version,changed)}})}function clearLoadMoreScrollSnapshot(){loadMoreRequestVersion+=1;loadMoreScrollSnapshot=null}async function completeLoadMoreRequest(version,changed){const snapshot=loadMoreScrollSnapshot;if(!snapshot||snapshot.version!==version){return}if(!changed||snapshot.scrollKey!==props.scrollKey){clearLoadMoreScrollSnapshot();return}await nextTick();if((loadMoreScrollSnapshot==null?void 0:loadMoreScrollSnapshot.version)!==version){return}const element=bodyElement.value;if(element){element.scrollTop=snapshot.scrollTop+(element.scrollHeight-snapshot.scrollHeight)}clearLoadMoreScrollSnapshot()}onBeforeUnmount(()=>{clearLiveBottomScroll();clearUserScrollIntent();clearLoadMoreScrollSnapshot()});watch(()=>[timelineScrollTrigger.value,latestRenderedTailKey.value],([timelineKey,value],[previousTimelineKey,previous]=[])=>{if(timelineKey!==previousTimelineKey){return}if(!value||value===previous){return}queueLiveBottomScroll({force:false})},{flush:"post"});watch(()=>[props.scrollKey,props.followLatestKey],([scrollKey,value],[previousScrollKey,previous]=[])=>{if(scrollKey!==previousScrollKey||value===previous){return}queueLiveBottomScroll({force:true})},{flush:"post"});watch(timelineScrollTrigger,()=>{clearLoadMoreScrollSnapshot();queueInitialBottomScroll()},{flush:"post",immediate:true});return(_ctx,_cache)=>{return __props.visible?(openBlock(),createElementBlock("section",{key:0,class:normalizeClass(["studio-conversation-log",`studio-conversation-log--${__props.variant}`]),"aria-label":"Conversation history"},[__props.reloadable?(openBlock(),createBlock(VBtn,{key:0,"aria-label":__props.reloading?"Reloading chat":"Reload chat",class:"studio-conversation-log__reload",disabled:__props.reloading,icon:unref(mdiRefresh),size:"x-small",title:__props.reloading?"Reloading chat":"Reload chat",type:"button",variant:"text",onClick:_cache[0]||(_cache[0]=$event=>emit("reload"))},null,8,["aria-label","disabled","icon","title"])):createCommentVNode("",true),loadingIndicatorVisible.value&&!__props.reloadable?(openBlock(),createBlock(VSkeletonLoader,{key:1,"aria-label":"Loading conversation",class:"studio-conversation-log__loading-skeleton",type:"list-item-avatar-two-line@3"})):createCommentVNode("",true),initialScrollPending.value?(openBlock(),createElementBlock("div",_hoisted_1$4,[createVNode(VSkeletonLoader,{"aria-label":"Preparing conversation",class:"studio-conversation-log__settling-skeleton",type:"list-item-avatar-two-line@3"})])):createCommentVNode("",true),__props.error?(openBlock(),createBlock(VAlert,{key:3,density:"compact",type:"warning",variant:"tonal"},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.error),1)]),_:1})):(openBlock(),createElementBlock("div",{key:4,ref_key:"bodyElement",ref:bodyElement,"aria-label":"Conversation messages",class:normalizeClass(["studio-conversation-log__body",{"studio-conversation-log__body--settling":initialScrollPending.value}]),tabindex:"0",onKeydownCapture:markKeyboardScrollIntent,onPointerdown:withModifiers(markUserScrollIntent,["self"]),onScrollPassive:updateLatestFollowFromScroll,onTouchmovePassive:markUserScrollIntent,onWheelPassive:markUserScrollIntent},[__props.welcomeMessage?(openBlock(),createElementBlock("div",_hoisted_2$4,[createBaseVNode("div",_hoisted_3$4,[createBaseVNode("span",_hoisted_4$4,[createVNode(VIcon,{icon:unref(mdiRobotOutline),size:"16"},null,8,["icon"])]),createBaseVNode("div",_hoisted_5$4,[createBaseVNode("span",null,toDisplayString(__props.assistantLabel),1)])]),createBaseVNode("p",null,toDisplayString(__props.welcomeMessage),1)])):createCommentVNode("",true),__props.hasMoreBefore||__props.loadingMore||__props.loadMoreError?(openBlock(),createElementBlock("div",_hoisted_6$4,[createVNode(VBtn,{color:"primary",disabled:__props.loadingMore||!__props.hasMoreBefore,size:"x-small",type:"button",variant:"tonal",onClick:requestLoadMore},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.loadingMore?"Loading older messages…":"Load older messages"),1)]),_:1},8,["disabled"]),__props.loadMoreError?(openBlock(),createElementBlock("div",_hoisted_7$4,toDisplayString(__props.loadMoreError),1)):createCommentVNode("",true)])):createCommentVNode("",true),(openBlock(true),createElementBlock(Fragment,null,renderList(displayTurns.value,turn=>{var _a;return openBlock(),createElementBlock("article",{key:turn.turnId,class:"studio-conversation-log__turn"},[turn.system?(openBlock(),createElementBlock("div",_hoisted_8$4,[createVNode(VIcon,{class:"studio-conversation-log__system-icon",icon:unref(mdiInformationOutline),size:"15"},null,8,["icon"]),createBaseVNode("div",_hoisted_9$4,[createBaseVNode("div",_hoisted_10$4,[_cache[1]||(_cache[1]=createBaseVNode("span",null,"Status",-1)),turn.system.displayAt?(openBlock(),createElementBlock("time",_hoisted_11$4,toDisplayString(turn.system.displayAt),1)):createCommentVNode("",true)]),createVNode(LongTextPreviewBlocks,{compact:"",blocks:turn.system.blocks,onLinkClick:handleLongTextLinkClick},null,8,["blocks"])])])):createCommentVNode("",true),turn.user?(openBlock(),createElementBlock("div",_hoisted_12$2,[createBaseVNode("div",_hoisted_13$2,[createBaseVNode("div",_hoisted_14$1,[createVNode(LongTextPreviewBlocks,{blocks:userMessageExpanded(turn)?turn.user.blocks:turn.user.previewBlocks||turn.user.blocks,onLinkClick:handleLongTextLinkClick},null,8,["blocks"])]),userMessageCollapsible(turn.user)?(openBlock(),createElementBlock("button",{key:0,"aria-expanded":userMessageExpanded(turn),class:"studio-conversation-log__user-content-toggle",type:"button",onClick:$event=>toggleUserMessage(turn)},toDisplayString(userMessageExpanded(turn)?"Show less":"Read more"),9,_hoisted_15$1)):createCommentVNode("",true),createVNode(Vibe64ConversationAttachments,{items:turn.user.attachments,"session-id":__props.sessionId},null,8,["items","session-id"]),turn.user.displayAt?(openBlock(),createElementBlock("div",_hoisted_16$1,[turn.user.displayAt?(openBlock(),createElementBlock("time",_hoisted_17$1,toDisplayString(turn.user.displayAt),1)):createCommentVNode("",true)])):createCommentVNode("",true),((_a=turn.optimistic)==null?void 0:_a.status)==="failed"?(openBlock(),createElementBlock("div",_hoisted_18$1,[createBaseVNode("span",null,toDisplayString(turn.optimistic.error||"Message could not be sent."),1),createBaseVNode("div",_hoisted_19$1,[createVNode(VBtn,{color:"primary",size:"x-small",type:"button",variant:"tonal",onClick:$event=>emit("resend-turn",turn.optimistic.id)},{default:withCtx(()=>[..._cache[2]||(_cache[2]=[createTextVNode(" Resend ",-1)])]),_:1},8,["onClick"]),createVNode(VBtn,{size:"x-small",type:"button",variant:"text",onClick:$event=>emit("cancel-turn",turn.optimistic.id)},{default:withCtx(()=>[..._cache[3]||(_cache[3]=[createTextVNode(" Cancel ",-1)])]),_:1},8,["onClick"]),createVNode(VBtn,{size:"x-small",type:"button",variant:"text",onClick:$event=>emit("edit-turn",turn.optimistic.id)},{default:withCtx(()=>[..._cache[4]||(_cache[4]=[createTextVNode(" Edit ",-1)])]),_:1},8,["onClick"])])])):createCommentVNode("",true)]),createBaseVNode("span",_hoisted_20$1,[createVNode(VIcon,{icon:unref(mdiAccountOutline),size:"15"},null,8,["icon"])])])):createCommentVNode("",true),(openBlock(true),createElementBlock(Fragment,null,renderList(turn.agentTimeline,entry=>{return openBlock(),createElementBlock(Fragment,{key:entry.key},[entry.role==="thinking"?(openBlock(),createBlock(Vibe64ConversationProgress,{key:`${turn.turnId}:${turn.pending?"active":"completed"}:${entry.key}`,class:"studio-conversation-log__thinking",messages:entry.messages,pending:turn.pending},null,8,["messages","pending"])):(openBlock(),createElementBlock("div",{key:1,class:"studio-conversation-log__message-row studio-conversation-log__message-row--assistant","data-message-role":entry.role},[createBaseVNode("div",_hoisted_22$1,[createBaseVNode("span",_hoisted_23$1,[createVNode(VIcon,{icon:unref(mdiRobotOutline),size:"16"},null,8,["icon"])]),createBaseVNode("div",_hoisted_24$1,[createBaseVNode("span",null,toDisplayString(__props.assistantLabel),1)])]),createBaseVNode("div",_hoisted_25$1,[entry.message.blocks.length?(openBlock(),createBlock(LongTextPreviewBlocks,{key:0,blocks:entry.message.blocks,onLinkClick:handleLongTextLinkClick},null,8,["blocks"])):createCommentVNode("",true),entry.message.questions.length?(openBlock(),createElementBlock("ol",_hoisted_26$1,[(openBlock(true),createElementBlock(Fragment,null,renderList(entry.message.questions,question2=>{return openBlock(),createElementBlock("li",{key:question2.name,class:"studio-conversation-log__question"},[createBaseVNode("span",_hoisted_27$1,toDisplayString(question2.number),1),createBaseVNode("div",_hoisted_28$1,[createBaseVNode("span",_hoisted_29$1,[createVNode(LongTextInlineParts,{text:question2.label,onLinkClick:handleLongTextLinkClick},null,8,["text"])]),question2.choices.length?(openBlock(),createElementBlock("ul",_hoisted_30$1,[(openBlock(true),createElementBlock(Fragment,null,renderList(question2.choices,choice=>{return openBlock(),createElementBlock("li",{key:choice.value},[createVNode(LongTextInlineParts,{text:choice.label,onLinkClick:handleLongTextLinkClick},null,8,["text"]),choice.recommended?(openBlock(),createElementBlock("span",_hoisted_31$1," · Recommended")):createCommentVNode("",true)])}),128))])):createCommentVNode("",true)])])}),128))])):createCommentVNode("",true),entry.message.outroBlocks.length?(openBlock(),createBlock(LongTextPreviewBlocks,{key:2,blocks:entry.message.outroBlocks,onLinkClick:handleLongTextLinkClick},null,8,["blocks"])):createCommentVNode("",true),entry.message.integrationRequest?(openBlock(),createBlock(VCard,{key:3,class:"mt-3",variant:"outlined"},{default:withCtx(()=>{var _a2,_b,_c;return[createVNode(VCardText,{class:"text-break"},{default:withCtx(()=>[createTextVNode(" Configure integration: "+toDisplayString(entry.message.integrationRequest.integrationId),1)]),_:2},1024),createVNode(VCardActions,null,{default:withCtx(()=>{var _a3,_b2,_c2,_d,_e,_f,_g,_h,_i,_j;return[createVNode(VBtn,{disabled:turn.pending||!__props.integrationRequestsEnabled,"min-height":"48",onClick:$event=>{var _a4;return emit("open-integration",{sessionId:__props.sessionId,turnId:turn.turnId,requestId:(_a4=turn.integrationSetup)==null?void 0:_a4.requestId,integrationId:entry.message.integrationRequest.integrationId})}},{default:withCtx(()=>[..._cache[5]||(_cache[5]=[createTextVNode(" Configure ",-1)])]),_:1},8,["disabled","onClick"]),((_a3=turn.integrationSetup)==null?void 0:_a3.outcome)==="pending"&&((_b2=__props.integrationConnections[turn.integrationSetup.requestId])==null?void 0:_b2.status)!=="configuration-only"?(openBlock(),createBlock(VBtn,{key:0,disabled:turn.pending||!__props.integrationRequestsEnabled||Boolean(__props.integrationActionPending),loading:((_c2=__props.integrationActionPending)==null?void 0:_c2.turnId)===turn.turnId,"min-height":"48",onClick:$event=>{var _a4;return emit(((_a4=__props.integrationConnections[turn.integrationSetup.requestId])==null?void 0:_a4.status)==="pending"?"check-integration":"connect-integration",{sessionId:__props.sessionId,turnId:turn.turnId,requestId:turn.integrationSetup.requestId})}},{default:withCtx(()=>{var _a4;return[createTextVNode(toDisplayString(((_a4=__props.integrationConnections[turn.integrationSetup.requestId])==null?void 0:_a4.status)==="pending"?"Check connection":"Connect"),1)]}),_:2},1032,["disabled","loading","onClick"])):createCommentVNode("",true),((_d=turn.integrationSetup)==null?void 0:_d.outcome)==="completed"&&((_e=turn.integrationSetup.continuation)==null?void 0:_e.status)!=="accepted"?(openBlock(),createBlock(VBtn,{key:1,disabled:turn.pending||!__props.integrationRequestsEnabled||Boolean(__props.integrationActionPending),loading:((_f=__props.integrationActionPending)==null?void 0:_f.turnId)===turn.turnId,"min-height":"48",onClick:$event=>emit("resume-integration",{sessionId:__props.sessionId,turnId:turn.turnId,requestId:turn.integrationSetup.requestId})},{default:withCtx(()=>[..._cache[6]||(_cache[6]=[createTextVNode(" Check continuation ",-1)])]),_:1},8,["disabled","loading","onClick"])):createCommentVNode("",true),((_g=turn.integrationSetup)==null?void 0:_g.outcome)==="pending"?(openBlock(),createBlock(VBtn,{key:2,disabled:turn.pending||!__props.integrationRequestsEnabled||Boolean(__props.integrationActionPending),loading:((_h=__props.integrationActionPending)==null?void 0:_h.turnId)===turn.turnId,"min-height":"48",onClick:$event=>emit("skip-integration",{sessionId:__props.sessionId,turnId:turn.turnId,requestId:turn.integrationSetup.requestId})},{default:withCtx(()=>[..._cache[7]||(_cache[7]=[createTextVNode(" Skip ",-1)])]),_:1},8,["disabled","loading","onClick"])):createCommentVNode("",true),((_i=turn.integrationSetup)==null?void 0:_i.outcome)==="skipped"?(openBlock(),createElementBlock("span",_hoisted_32$1,"Skipped")):createCommentVNode("",true),((_j=turn.integrationSetup)==null?void 0:_j.outcome)==="completed"?(openBlock(),createElementBlock("span",_hoisted_33$1,"Setup completed")):createCommentVNode("",true)]}),_:2},1024),((_a2=turn.integrationSetup)==null?void 0:_a2.outcome)==="pending"&&__props.integrationConnections[turn.integrationSetup.requestId]?(openBlock(),createBlock(VCardText,{key:0,role:"status"},{default:withCtx(()=>[__props.integrationConnections[turn.integrationSetup.requestId].status==="pending"?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode("a",{href:__props.integrationConnections[turn.integrationSetup.requestId].authorizationUrl,target:"_blank",rel:"noopener noreferrer"},"Continue with provider",8,_hoisted_34$1),createVNode(VBtn,{disabled:!__props.integrationRequestsEnabled||Boolean(__props.integrationActionPending),"min-height":"48",onClick:$event=>emit("cancel-integration",{sessionId:__props.sessionId,turnId:turn.turnId,requestId:turn.integrationSetup.requestId})},{default:withCtx(()=>[..._cache[8]||(_cache[8]=[createTextVNode(" Cancel connection ",-1)])]),_:1},8,["disabled","onClick"])],64)):__props.integrationConnections[turn.integrationSetup.requestId].status==="configuration-only"?(openBlock(),createElementBlock(Fragment,{key:1},[createTextVNode("This integration uses public settings and has no account to connect. Choose Configure to edit them and prepare the application's implementation request. Skip dismisses this connection request; it does not verify tracking.")],64)):__props.integrationConnections[turn.integrationSetup.requestId].status==="unconfigured"?(openBlock(),createElementBlock(Fragment,{key:2},[createTextVNode("Choose Configure to complete the application's setup.")],64)):(openBlock(),createElementBlock(Fragment,{key:3},[createTextVNode(toDisplayString(__props.integrationConnections[turn.integrationSetup.requestId].status),1)],64))]),_:2},1024)):createCommentVNode("",true),((_b=turn.integrationSetup)==null?void 0:_b.outcome)==="completed"?(openBlock(),createBlock(VCardText,{key:1,role:"status"},{default:withCtx(()=>{var _a3,_b2;return[((_a3=turn.integrationSetup.continuation)==null?void 0:_a3.status)==="accepted"?(openBlock(),createElementBlock(Fragment,{key:0},[createTextVNode("Assistant continuation accepted.")],64)):((_b2=turn.integrationSetup.continuation)==null?void 0:_b2.status)==="sending"?(openBlock(),createElementBlock(Fragment,{key:1},[createTextVNode("Assistant delivery is not yet confirmed. Check continuation to inspect delivery without sending it again.")],64)):(openBlock(),createElementBlock(Fragment,{key:2},[createTextVNode("Assistant continuation is pending. Check continuation to resume.")],64))]}),_:2},1024)):createCommentVNode("",true),((_c=__props.integrationActionError)==null?void 0:_c.turnId)===turn.turnId?(openBlock(),createBlock(VCardText,{key:2,role:"alert"},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.integrationActionError.message),1)]),_:1})):createCommentVNode("",true)]}),_:2},1024)):createCommentVNode("",true)]),entry.message.displayAt?(openBlock(),createElementBlock("div",_hoisted_35$1,[createBaseVNode("time",null,toDisplayString(entry.message.displayAt),1)])):createCommentVNode("",true)],8,_hoisted_21$1))],64)}),128))])}),128)),createBaseVNode("div",{ref_key:"bottomElement",ref:bottomElement,class:"studio-conversation-log__bottom","aria-hidden":"true"},null,512)],34))],2)):createCommentVNode("",true)}}};const Vibe64ConversationLog=_export_sfc(_sfc_main$5,[["__scopeId","data-v-54776e37"]]);const basicNormalize=typeof String.prototype.normalize=="function"?x=>x.normalize("NFKD"):x=>x;class SearchCursor{constructor(text,query,from=0,to=text.length,normalize,test){this.test=test;this.value={from:0,to:0,precise:false};this.done=false;this.matches=[];this.buffer="";this.bufferPos=0;this.iter=text.iterRange(from,to);this.bufferStart=from;this.normalize=normalize?x=>normalize(basicNormalize(x)):basicNormalize;this.query=this.normalize(query)}peek(){if(this.bufferPos==this.buffer.length){this.bufferStart+=this.buffer.length;this.iter.next();if(this.iter.done)return-1;this.bufferPos=0;this.buffer=this.iter.value}return codePointAt(this.buffer,this.bufferPos)}next(){while(this.matches.length)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let next=this.peek();if(next<0){this.done=true;return this}let str=fromCodePoint(next),start=this.bufferStart+this.bufferPos;this.bufferPos+=codePointSize(next);let norm=this.normalize(str);if(norm.length)for(let i=0,pos=start,posPrecise=true;;i++){let code=norm.charCodeAt(i);let match=this.match(code,pos,posPrecise,this.bufferPos+this.bufferStart,i==norm.length-1);if(match){this.value=match;return this}if(i==norm.length-1)break;if(posPrecise&&i<str.length&&str.charCodeAt(i)==code)pos++;else posPrecise=false}}}match(code,pos,posPrecise,end,endPrecise){let match=null;for(let i=0;i<this.matches.length;){let partial=this.matches[i],keep=false;if(this.query.charCodeAt(partial.index)==code){if(partial.index==this.query.length-1){match={from:partial.from,to:end,precise:endPrecise&&partial.precise}}else{partial.index++;keep=true}}if(keep)i++;else this.matches.splice(i,1)}if(this.query.charCodeAt(0)==code){if(this.query.length==1)match={from:pos,to:end,precise:posPrecise&&endPrecise};else this.matches.push({from:pos,index:1,precise:posPrecise})}if(match&&this.test&&!this.test(match.from,match.to,this.buffer,this.bufferStart))match=null;return match}}if(typeof Symbol!="undefined")SearchCursor.prototype[Symbol.iterator]=function(){return this};const empty={from:-1,to:-1,match:/.*/.exec(""),precise:true};const baseFlags="gm"+(/x/.unicode==null?"":"u");class RegExpCursor{constructor(text,query,options,from=0,to=text.length){this.text=text;this.to=to;this.curLine="";this.done=false;this.value=empty;if(/\\[sWDnr]|\n|\r|\[\^/.test(query))return new MultilineRegExpCursor(text,query,options,from,to);this.re=new RegExp(query,baseFlags+((options===null||options===void 0?void 0:options.ignoreCase)?"i":""));this.test=options===null||options===void 0?void 0:options.test;this.iter=text.iter();let startLine=text.lineAt(from);this.curLineStart=startLine.from;this.matchPos=toCharEnd(text,from);this.getLine(this.curLineStart)}getLine(skip){this.iter.next(skip);if(this.iter.lineBreak){this.curLine=""}else{this.curLine=this.iter.value;if(this.curLineStart+this.curLine.length>this.to)this.curLine=this.curLine.slice(0,this.to-this.curLineStart);this.iter.next()}}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1;if(this.curLineStart>this.to)this.curLine="";else this.getLine(0)}next(){for(let off=this.matchPos-this.curLineStart;;){this.re.lastIndex=off;let match=this.matchPos<=this.to&&this.re.exec(this.curLine);if(match){let from=this.curLineStart+match.index,to=from+match[0].length;this.matchPos=toCharEnd(this.text,to+(from==to?1:0));if(from==this.curLineStart+this.curLine.length)this.nextLine();if((from<to||from>this.value.to)&&(!this.test||this.test(from,to,match))){this.value={from,to,precise:true,match};return this}off=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to){this.nextLine();off=0}else{this.done=true;return this}}}}const flattened=new WeakMap;class FlattenedDoc{constructor(from,text){this.from=from;this.text=text}get to(){return this.from+this.text.length}static get(doc,from,to){let cached=flattened.get(doc);if(!cached||cached.from>=to||cached.to<=from){let flat=new FlattenedDoc(from,doc.sliceString(from,to));flattened.set(doc,flat);return flat}if(cached.from==from&&cached.to==to)return cached;let{text,from:cachedFrom}=cached;if(cachedFrom>from){text=doc.sliceString(from,cachedFrom)+text;cachedFrom=from}if(cached.to<to)text+=doc.sliceString(cached.to,to);flattened.set(doc,new FlattenedDoc(cachedFrom,text));return new FlattenedDoc(from,text.slice(from-cachedFrom,to-cachedFrom))}}class MultilineRegExpCursor{constructor(text,query,options,from,to){this.text=text;this.to=to;this.done=false;this.value=empty;this.matchPos=toCharEnd(text,from);this.re=new RegExp(query,baseFlags+((options===null||options===void 0?void 0:options.ignoreCase)?"i":""));this.test=options===null||options===void 0?void 0:options.test;this.flat=FlattenedDoc.get(text,from,this.chunkEnd(from+5e3))}chunkEnd(pos){return pos>=this.to?this.to:this.text.lineAt(pos).to}next(){for(;;){let off=this.re.lastIndex=this.matchPos-this.flat.from;let match=this.re.exec(this.flat.text);if(match&&!match[0]&&match.index==off){this.re.lastIndex=off+1;match=this.re.exec(this.flat.text)}if(match){let from=this.flat.from+match.index,to=from+match[0].length;if((this.flat.to>=this.to||match.index+match[0].length<=this.flat.text.length-10)&&(!this.test||this.test(from,to,match))){this.value={from,to,precise:true,match};this.matchPos=toCharEnd(this.text,to+(from==to?1:0));return this}}if(this.flat.to==this.to){this.done=true;return this}this.flat=FlattenedDoc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}if(typeof Symbol!="undefined"){RegExpCursor.prototype[Symbol.iterator]=MultilineRegExpCursor.prototype[Symbol.iterator]=function(){return this}}function validRegExp(source){try{new RegExp(source,baseFlags);return true}catch(_a){return false}}function toCharEnd(text,pos){if(pos>=text.length)return pos;let line=text.lineAt(pos),next;while(pos<line.to&&(next=line.text.charCodeAt(pos-line.from))>=56320&&next<57344)pos++;return pos}const gotoLine=view=>{let{state}=view;let line=String(state.doc.lineAt(view.state.selection.main.head).number);let{close,result}=showDialog(view,{label:state.phrase("Go to line"),input:{type:"text",name:"line",value:line},focus:true,submitLabel:state.phrase("go")});result.then(form=>{let match=form&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(form.elements["line"].value);if(!match){view.dispatch({effects:close});return}let startLine=state.doc.lineAt(state.selection.main.head);let[,sign,ln,cl,percent2]=match;let col=cl?+cl.slice(1):0;let line2=ln?+ln:startLine.number;if(ln&&percent2){let pc=line2/100;if(sign)pc=pc*(sign=="-"?-1:1)+startLine.number/state.doc.lines;line2=Math.round(state.doc.lines*pc)}else if(ln&&sign){line2=line2*(sign=="-"?-1:1)+startLine.number}let docLine=state.doc.line(Math.max(1,Math.min(state.doc.lines,line2)));let selection=EditorSelection.cursor(docLine.from+Math.max(0,Math.min(col,docLine.length)));view.dispatch({effects:[close,EditorView.scrollIntoView(selection.from,{y:"center"})],selection})});return true};const selectWord=({state,dispatch})=>{let{selection}=state;let newSel=EditorSelection.create(selection.ranges.map(range=>state.wordAt(range.head)||EditorSelection.cursor(range.head)),selection.mainIndex);if(newSel.eq(selection))return false;dispatch(state.update({selection:newSel}));return true};function findNextOccurrence(state,query){let{main,ranges}=state.selection;let word=state.wordAt(main.head),fullWord=word&&word.from==main.from&&word.to==main.to;for(let cycled=false,cursor=new SearchCursor(state.doc,query,ranges[ranges.length-1].to);;){cursor.next();if(cursor.done){if(cycled)return null;cursor=new SearchCursor(state.doc,query,0,Math.max(0,ranges[ranges.length-1].from-1));cycled=true}else{if(cycled&&ranges.some(r=>r.from==cursor.value.from))continue;if(fullWord){let word2=state.wordAt(cursor.value.from);if(!word2||word2.from!=cursor.value.from||word2.to!=cursor.value.to)continue}return cursor.value}}}const selectNextOccurrence=({state,dispatch})=>{let{ranges}=state.selection;if(ranges.some(sel=>sel.from===sel.to))return selectWord({state,dispatch});let searchedText=state.sliceDoc(ranges[0].from,ranges[0].to);if(state.selection.ranges.some(r=>state.sliceDoc(r.from,r.to)!=searchedText))return false;let range=findNextOccurrence(state,searchedText);if(!range)return false;dispatch(state.update({selection:state.selection.addRange(EditorSelection.range(range.from,range.to),false),effects:EditorView.scrollIntoView(range.to)}));return true};const searchConfigFacet=Facet.define({combine(configs){return combineConfig(configs,{top:false,caseSensitive:false,literal:false,regexp:false,wholeWord:false,createPanel:view=>new SearchPanel(view),scrollToMatch:range=>EditorView.scrollIntoView(range)})}});class SearchQuery{constructor(config){this.search=config.search;this.caseSensitive=!!config.caseSensitive;this.literal=!!config.literal;this.regexp=!!config.regexp;this.replace=config.replace||"";this.valid=!!this.search&&(!this.regexp||validRegExp(this.search));this.unquoted=this.unquote(this.search);this.wholeWord=!!config.wholeWord;this.test=config.test}unquote(text){return this.literal?text:text.replace(/\\([nrt\\])/g,(_,ch)=>ch=="n"?"\n":ch=="r"?"\r":ch=="t"?" ":"\\")}eq(other){return this.search==other.search&&this.replace==other.replace&&this.caseSensitive==other.caseSensitive&&this.regexp==other.regexp&&this.wholeWord==other.wholeWord&&this.test==other.test}create(){return this.regexp?new RegExpQuery(this):new StringQuery(this)}getCursor(state,from=0,to){let st=state.doc?state:EditorState.create({doc:state});if(to==null)to=st.doc.length;return this.regexp?regexpCursor(this,st,from,to):stringCursor(this,st,from,to)}}class QueryType{constructor(spec){this.spec=spec}}function wrapStringTest(test,state,inner){return(from,to,buffer,bufferPos)=>{if(inner&&!inner(from,to,buffer,bufferPos))return false;let match=from>=bufferPos&&to<=bufferPos+buffer.length?buffer.slice(from-bufferPos,to-bufferPos):state.doc.sliceString(from,to);return test(match,state,from,to)}}function stringCursor(spec,state,from,to){let test;if(spec.wholeWord)test=stringWordTest(state.doc,state.charCategorizer(state.selection.main.head));if(spec.test)test=wrapStringTest(spec.test,state,test);return new SearchCursor(state.doc,spec.unquoted,from,to,spec.caseSensitive?void 0:x=>x.toLowerCase(),test)}function stringWordTest(doc,categorizer){return(from,to,buf,bufPos)=>{if(bufPos>from||bufPos+buf.length<to){bufPos=Math.max(0,from-2);buf=doc.sliceString(bufPos,Math.min(doc.length,to+2))}return(categorizer(charBefore(buf,from-bufPos))!=CharCategory.Word||categorizer(charAfter(buf,from-bufPos))!=CharCategory.Word)&&(categorizer(charAfter(buf,to-bufPos))!=CharCategory.Word||categorizer(charBefore(buf,to-bufPos))!=CharCategory.Word)}}class StringQuery extends QueryType{constructor(spec){super(spec)}nextMatch(state,curFrom,curTo){let cursor=stringCursor(this.spec,state,curTo,state.doc.length).nextOverlapping();if(cursor.done){let end=Math.min(state.doc.length,curFrom+this.spec.unquoted.length);cursor=stringCursor(this.spec,state,0,end).nextOverlapping()}return cursor.done||cursor.value.from==curFrom&&cursor.value.to==curTo?null:cursor.value}prevMatchInRange(state,from,to){for(let pos=to;;){let start=Math.max(from,pos-1e4-this.spec.unquoted.length);let cursor=stringCursor(this.spec,state,start,pos),range=null;while(!cursor.nextOverlapping().done)range=cursor.value;if(range)return range;if(start==from)return null;pos-=1e4}}prevMatch(state,curFrom,curTo){let found=this.prevMatchInRange(state,0,curFrom);if(!found)found=this.prevMatchInRange(state,Math.max(0,curTo-this.spec.unquoted.length),state.doc.length);return found&&(found.from!=curFrom||found.to!=curTo)?found:null}getReplacement(_result){return this.spec.unquote(this.spec.replace)}matchAll(state,limit){let cursor=stringCursor(this.spec,state,0,state.doc.length),ranges=[];while(!cursor.next().done){if(ranges.length>=limit)return null;ranges.push(cursor.value)}return ranges}highlight(state,from,to,add){let cursor=stringCursor(this.spec,state,Math.max(0,from-this.spec.unquoted.length),Math.min(to+this.spec.unquoted.length,state.doc.length));while(!cursor.next().done)add(cursor.value.from,cursor.value.to)}}function wrapRegexpTest(test,state,inner){return(from,to,match)=>{return(!inner||inner(from,to,match))&&test(match[0],state,from,to)}}function regexpCursor(spec,state,from,to){let test;if(spec.wholeWord)test=regexpWordTest(state.charCategorizer(state.selection.main.head));if(spec.test)test=wrapRegexpTest(spec.test,state,test);return new RegExpCursor(state.doc,spec.search,{ignoreCase:!spec.caseSensitive,test},from,to)}function charBefore(str,index){return str.slice(findClusterBreak(str,index,false),index)}function charAfter(str,index){return str.slice(index,findClusterBreak(str,index))}function regexpWordTest(categorizer){return(_from,_to,match)=>!match[0].length||(categorizer(charBefore(match.input,match.index))!=CharCategory.Word||categorizer(charAfter(match.input,match.index))!=CharCategory.Word)&&(categorizer(charAfter(match.input,match.index+match[0].length))!=CharCategory.Word||categorizer(charBefore(match.input,match.index+match[0].length))!=CharCategory.Word)}class RegExpQuery extends QueryType{nextMatch(state,curFrom,curTo){let cursor=regexpCursor(this.spec,state,curTo,state.doc.length).next();if(cursor.done)cursor=regexpCursor(this.spec,state,0,curFrom).next();return cursor.done?null:cursor.value}prevMatchInRange(state,from,to){for(let size=1;;size++){let start=Math.max(from,to-size*1e4);let cursor=regexpCursor(this.spec,state,start,to),range=null;while(!cursor.next().done)range=cursor.value;if(range&&(start==from||range.from>start+10))return range;if(start==from)return null}}prevMatch(state,curFrom,curTo){return this.prevMatchInRange(state,0,curFrom)||this.prevMatchInRange(state,curTo,state.doc.length)}getReplacement(result){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(m,i)=>{if(i=="&")return result.match[0];if(i=="$")return"$";for(let l=i.length;l>0;l--){let n=+i.slice(0,l);if(n>0&&n<result.match.length)return result.match[n]+i.slice(l)}return m})}matchAll(state,limit){let cursor=regexpCursor(this.spec,state,0,state.doc.length),ranges=[];while(!cursor.next().done){if(ranges.length>=limit)return null;ranges.push(cursor.value)}return ranges}highlight(state,from,to,add){let cursor=regexpCursor(this.spec,state,Math.max(0,from-250),Math.min(to+250,state.doc.length));while(!cursor.next().done)add(cursor.value.from,cursor.value.to)}}const setSearchQuery=StateEffect.define();const togglePanel=StateEffect.define();const searchState=StateField.define({create(state){return new SearchState(defaultQuery(state).create(),null)},update(value,tr){for(let effect of tr.effects){if(effect.is(setSearchQuery))value=new SearchState(effect.value.create(),value.panel);else if(effect.is(togglePanel))value=new SearchState(value.query,effect.value?createSearchPanel:null)}return value},provide:f=>showPanel.from(f,val=>val.panel)});class SearchState{constructor(query,panel){this.query=query;this.panel=panel}}const matchMark=Decoration.mark({class:"cm-searchMatch"});const selectedMatchMark=Decoration.mark({class:"cm-searchMatch cm-searchMatch-selected"});const searchHighlighter=ViewPlugin.fromClass(class{constructor(view){this.view=view;this.decorations=this.highlight(view.state.field(searchState))}update(update){let state=update.state.field(searchState);if(state!=update.startState.field(searchState)||update.docChanged||update.selectionSet||update.viewportChanged)this.decorations=this.highlight(state)}highlight({query,panel}){if(!panel||!query.spec.valid)return Decoration.none;let{view}=this;let builder=new RangeSetBuilder;for(let i=0,ranges=view.visibleRanges,l=ranges.length;i<l;i++){let{from,to}=ranges[i];while(i<l-1&&to>ranges[i+1].from-2*250)to=ranges[++i].to;query.highlight(view.state,from,to,(from2,to2)=>{let selected=view.state.selection.ranges.some(r=>r.from==from2&&r.to==to2);builder.add(from2,to2,selected?selectedMatchMark:matchMark)})}return builder.finish()}},{decorations:v=>v.decorations});function searchCommand(f){return view=>{let state=view.state.field(searchState,false);return state&&state.query.spec.valid?f(view,state):openSearchPanel(view)}}const findNext=searchCommand((view,{query})=>{let{to}=view.state.selection.main;let next=query.nextMatch(view.state,to,to);if(!next)return false;let selection=EditorSelection.single(next.from,next.to);let config=view.state.facet(searchConfigFacet);view.dispatch({selection,effects:[announceMatch(view,next),config.scrollToMatch(selection.main,view)],userEvent:"select.search"});selectSearchInput(view);return true});const findPrevious=searchCommand((view,{query})=>{let{state}=view,{from}=state.selection.main;let prev=query.prevMatch(state,from,from);if(!prev)return false;let selection=EditorSelection.single(prev.from,prev.to);let config=view.state.facet(searchConfigFacet);view.dispatch({selection,effects:[announceMatch(view,prev),config.scrollToMatch(selection.main,view)],userEvent:"select.search"});selectSearchInput(view);return true});const selectMatches=searchCommand((view,{query})=>{let ranges=query.matchAll(view.state,1e3);if(!ranges||!ranges.length)return false;view.dispatch({selection:EditorSelection.create(ranges.map(r=>EditorSelection.range(r.from,r.to))),userEvent:"select.search.matches"});return true});const selectSelectionMatches=({state,dispatch})=>{let sel=state.selection;if(sel.ranges.length>1||sel.main.empty)return false;let{from,to}=sel.main;let ranges=[],main=0;for(let cur=new SearchCursor(state.doc,state.sliceDoc(from,to));!cur.next().done;){if(ranges.length>1e3)return false;if(cur.value.from==from)main=ranges.length;ranges.push(EditorSelection.range(cur.value.from,cur.value.to))}dispatch(state.update({selection:EditorSelection.create(ranges,main),userEvent:"select.search.matches"}));return true};const replaceNext=searchCommand((view,{query})=>{let{state}=view,{from,to}=state.selection.main;if(state.readOnly)return false;let match=query.nextMatch(state,from,from);if(!match)return false;let next=match;let changes=[],selection,replacement;let effects=[];if(!next.precise){next=query.nextMatch(state,next.from,next.to)}else if(next.from==from&&next.to==to){replacement=state.toText(query.getReplacement(next));changes.push({from:next.from,to:next.to,insert:replacement});next=query.nextMatch(state,next.from,next.to);effects.push(EditorView.announce.of(state.phrase("replaced match on line $",state.doc.lineAt(from).number)+"."))}let changeSet=view.state.changes(changes);if(next){selection=EditorSelection.single(next.from,next.to).map(changeSet);effects.push(announceMatch(view,next));effects.push(state.facet(searchConfigFacet).scrollToMatch(selection.main,view))}view.dispatch({changes:changeSet,selection,effects,userEvent:"input.replace"});return true});const replaceAll=searchCommand((view,{query})=>{if(view.state.readOnly)return false;let changes=[];for(let match of query.matchAll(view.state,1e9)){let{from,to,precise}=match;if(precise)changes.push({from,to,insert:query.getReplacement(match)})}if(!changes.length)return false;let announceText=view.state.phrase("replaced $ matches",changes.length)+".";view.dispatch({changes,effects:EditorView.announce.of(announceText),userEvent:"input.replace.all"});return true});function createSearchPanel(view){return view.state.facet(searchConfigFacet).createPanel(view)}function defaultQuery(state,fallback2){var _a,_b,_c,_d,_e;let sel=state.selection.main;let selText=sel.empty||sel.to>sel.from+100?"":state.sliceDoc(sel.from,sel.to);if(fallback2&&!selText)return fallback2;let config=state.facet(searchConfigFacet);return new SearchQuery({search:((_a=fallback2===null||fallback2===void 0?void 0:fallback2.literal)!==null&&_a!==void 0?_a:config.literal)?selText:selText.replace(/\n/g,"\\n"),caseSensitive:(_b=fallback2===null||fallback2===void 0?void 0:fallback2.caseSensitive)!==null&&_b!==void 0?_b:config.caseSensitive,literal:(_c=fallback2===null||fallback2===void 0?void 0:fallback2.literal)!==null&&_c!==void 0?_c:config.literal,regexp:(_d=fallback2===null||fallback2===void 0?void 0:fallback2.regexp)!==null&&_d!==void 0?_d:config.regexp,wholeWord:(_e=fallback2===null||fallback2===void 0?void 0:fallback2.wholeWord)!==null&&_e!==void 0?_e:config.wholeWord})}function getSearchInput(view){let panel=getPanel(view,createSearchPanel);return panel&&panel.dom.querySelector("[main-field]")}function selectSearchInput(view){let input=getSearchInput(view);if(input&&input==view.root.activeElement)input.select()}const openSearchPanel=view=>{let state=view.state.field(searchState,false);if(state&&state.panel){let searchInput=getSearchInput(view);if(searchInput&&searchInput!=view.root.activeElement){let query=defaultQuery(view.state,state.query.spec);if(query.valid)view.dispatch({effects:setSearchQuery.of(query)});searchInput.focus();searchInput.select()}}else{view.dispatch({effects:[togglePanel.of(true),state?setSearchQuery.of(defaultQuery(view.state,state.query.spec)):StateEffect.appendConfig.of(searchExtensions)]})}return true};const closeSearchPanel=view=>{let state=view.state.field(searchState,false);if(!state||!state.panel)return false;let panel=getPanel(view,createSearchPanel);if(panel&&panel.dom.contains(view.root.activeElement))view.focus();view.dispatch({effects:togglePanel.of(false)});return true};const searchKeymap=[{key:"Mod-f",run:openSearchPanel,scope:"editor search-panel"},{key:"F3",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:true},{key:"Mod-g",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:true},{key:"Escape",run:closeSearchPanel,scope:"editor search-panel"},{key:"Mod-Shift-l",run:selectSelectionMatches},{key:"Mod-Alt-g",run:gotoLine},{key:"Mod-d",run:selectNextOccurrence,preventDefault:true}];class SearchPanel{constructor(view){this.view=view;let query=this.query=view.state.field(searchState).query.spec;this.commit=this.commit.bind(this);this.searchField=crelt("input",{value:query.search,placeholder:phrase(view,"Find"),"aria-label":phrase(view,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit});this.replaceField=crelt("input",{value:query.replace,placeholder:phrase(view,"Replace"),"aria-label":phrase(view,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit});this.caseField=crelt("input",{type:"checkbox",name:"case",form:"",checked:query.caseSensitive,onchange:this.commit});this.reField=crelt("input",{type:"checkbox",name:"re",form:"",checked:query.regexp,onchange:this.commit});this.wordField=crelt("input",{type:"checkbox",name:"word",form:"",checked:query.wholeWord,onchange:this.commit});function button(name,onclick,content){return crelt("button",{class:"cm-button",name,onclick,type:"button"},content)}this.dom=crelt("div",{onkeydown:e=>this.keydown(e),class:"cm-search"},[this.searchField,button("next",()=>findNext(view),[phrase(view,"next")]),button("prev",()=>findPrevious(view),[phrase(view,"previous")]),button("select",()=>selectMatches(view),[phrase(view,"all")]),crelt("label",null,[this.caseField,phrase(view,"match case")]),crelt("label",null,[this.reField,phrase(view,"regexp")]),crelt("label",null,[this.wordField,phrase(view,"by word")]),...view.state.readOnly?[]:[crelt("br"),this.replaceField,button("replace",()=>replaceNext(view),[phrase(view,"replace")]),button("replaceAll",()=>replaceAll(view),[phrase(view,"replace all")])],crelt("button",{name:"close",onclick:()=>closeSearchPanel(view),"aria-label":phrase(view,"close"),type:"button"},["×"])])}commit(){let query=new SearchQuery({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});if(!query.eq(this.query)){this.query=query;this.view.dispatch({effects:setSearchQuery.of(query)})}}keydown(e){if(runScopeHandlers(this.view,e,"search-panel")){e.preventDefault()}else if(e.keyCode==13&&e.target==this.searchField){e.preventDefault();(e.shiftKey?findPrevious:findNext)(this.view)}else if(e.keyCode==13&&e.target==this.replaceField){e.preventDefault();replaceNext(this.view)}}update(update){for(let tr of update.transactions)for(let effect of tr.effects){if(effect.is(setSearchQuery)&&!effect.value.eq(this.query))this.setQuery(effect.value)}}setQuery(query){this.query=query;this.searchField.value=query.search;this.replaceField.value=query.replace;this.caseField.checked=query.caseSensitive;this.reField.checked=query.regexp;this.wordField.checked=query.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(searchConfigFacet).top}}function phrase(view,phrase2){return view.state.phrase(phrase2)}const AnnounceMargin=30;const Break=/[\s\.,:;?!]/;function announceMatch(view,{from,to}){let line=view.state.doc.lineAt(from),lineEnd2=view.state.doc.lineAt(to).to;let start=Math.max(line.from,from-AnnounceMargin),end=Math.min(lineEnd2,to+AnnounceMargin);let text=view.state.sliceDoc(start,end);if(start!=line.from){for(let i=0;i<AnnounceMargin;i++)if(!Break.test(text[i+1])&&Break.test(text[i])){text=text.slice(i);break}}if(end!=lineEnd2){for(let i=text.length-1;i>text.length-AnnounceMargin;i--)if(!Break.test(text[i-1])&&Break.test(text[i])){text=text.slice(0,i);break}}return EditorView.announce.of(`${view.state.phrase("current match")}. ${text} ${view.state.phrase("on line")} ${line.number}.`)}const baseTheme=EditorView.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}});const searchExtensions=[searchState,Prec.low(searchHighlighter),baseTheme];const noSemi=316;const noSemiType=317;const incdec=1;const incdecPrefix=2;const questionDot=3;const JSXStartTag=4;const insertSemi=318;const spaces=320;const newline$1=321;const LineComment=5;const BlockComment=6;const Dialect_jsx=0;const space$2=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];const braceR=125;const semicolon=59;const slash$1=47;const star=42;const plus=43;const minus=45;const lt=60;const comma=44;const question$1=63;const dot=46;const bracketL$1=91;const trackNewline=new ContextTracker({start:false,shift(context,term){return term==LineComment||term==BlockComment||term==spaces?context:term==newline$1},strict:false});const insertSemicolon=new ExternalTokenizer((input,stack)=>{let{next}=input;if(next==braceR||next==-1||stack.context)input.acceptToken(insertSemi)},{contextual:true,fallback:true});const noSemicolon=new ExternalTokenizer((input,stack)=>{let{next}=input,after;if(space$2.indexOf(next)>-1)return;if(next==slash$1&&((after=input.peek(1))==slash$1||after==star))return;if(next!=braceR&&next!=semicolon&&next!=-1&&!stack.context)input.acceptToken(noSemi)},{contextual:true});const noSemicolonType=new ExternalTokenizer((input,stack)=>{if(input.next==bracketL$1&&!stack.context)input.acceptToken(noSemiType)},{contextual:true});const operatorToken=new ExternalTokenizer((input,stack)=>{let{next}=input;if(next==plus||next==minus){input.advance();if(next==input.next){input.advance();let mayPostfix=!stack.context&&stack.canShift(incdec);input.acceptToken(mayPostfix?incdec:incdecPrefix)}}else if(next==question$1&&input.peek(1)==dot){input.advance();input.advance();if(input.next<48||input.next>57)input.acceptToken(questionDot)}},{contextual:true});function identifierChar(ch,start){return ch>=65&&ch<=90||ch>=97&&ch<=122||ch==95||ch>=192||!start&&ch>=48&&ch<=57}const jsx=new ExternalTokenizer((input,stack)=>{if(input.next!=lt||!stack.dialectEnabled(Dialect_jsx))return;input.advance();if(input.next==slash$1)return;let back=0;while(space$2.indexOf(input.next)>-1){input.advance();back++}if(identifierChar(input.next,true)){input.advance();back++;while(identifierChar(input.next,false)){input.advance();back++}while(space$2.indexOf(input.next)>-1){input.advance();back++}if(input.next==comma)return;for(let i=0;;i++){if(i==7){if(!identifierChar(input.next,true))return;break}if(input.next!="extends".charCodeAt(i))break;input.advance();back++}}input.acceptToken(JSXStartTag,-back)});const jsHighlight=styleTags({"get set async static":tags$1.modifier,"for while do if else switch try catch finally return throw break continue default case defer":tags$1.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":tags$1.operatorKeyword,"let var const using function class extends":tags$1.definitionKeyword,"import export from":tags$1.moduleKeyword,"with debugger new":tags$1.keyword,TemplateString:tags$1.special(tags$1.string),super:tags$1.atom,BooleanLiteral:tags$1.bool,this:tags$1.self,null:tags$1.null,Star:tags$1.modifier,VariableName:tags$1.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":tags$1.function(tags$1.variableName),VariableDefinition:tags$1.definition(tags$1.variableName),Label:tags$1.labelName,PropertyName:tags$1.propertyName,PrivatePropertyName:tags$1.special(tags$1.propertyName),"CallExpression/MemberExpression/PropertyName":tags$1.function(tags$1.propertyName),"FunctionDeclaration/VariableDefinition":tags$1.function(tags$1.definition(tags$1.variableName)),"ClassDeclaration/VariableDefinition":tags$1.definition(tags$1.className),"NewExpression/VariableName":tags$1.className,PropertyDefinition:tags$1.definition(tags$1.propertyName),PrivatePropertyDefinition:tags$1.definition(tags$1.special(tags$1.propertyName)),UpdateOp:tags$1.updateOperator,"LineComment Hashbang":tags$1.lineComment,BlockComment:tags$1.blockComment,Number:tags$1.number,String:tags$1.string,Escape:tags$1.escape,ArithOp:tags$1.arithmeticOperator,LogicOp:tags$1.logicOperator,BitOp:tags$1.bitwiseOperator,CompareOp:tags$1.compareOperator,RegExp:tags$1.regexp,Equals:tags$1.definitionOperator,Arrow:tags$1.function(tags$1.punctuation),": Spread":tags$1.punctuation,"( )":tags$1.paren,"[ ]":tags$1.squareBracket,"{ }":tags$1.brace,"InterpolationStart InterpolationEnd":tags$1.special(tags$1.brace),".":tags$1.derefOperator,", ;":tags$1.separator,"@":tags$1.meta,TypeName:tags$1.typeName,TypeDefinition:tags$1.definition(tags$1.typeName),"type enum interface implements namespace module declare":tags$1.definitionKeyword,"abstract global Privacy readonly override":tags$1.modifier,"is keyof unique infer asserts":tags$1.operatorKeyword,JSXAttributeValue:tags$1.attributeValue,JSXText:tags$1.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":tags$1.angleBracket,"JSXIdentifier JSXNameSpacedName":tags$1.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":tags$1.attributeName,"JSXBuiltin/JSXIdentifier":tags$1.standard(tags$1.tagName)});const spec_identifier$2={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546};const spec_word={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401};const spec_LessThan={__proto__:null,"<":193};const parser$5=LRParser.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-E<j-E<jO9kQ`O,5=_O!$rQ`O,5=_O!$wQlO,5;ZO!&zQMhO'#EkO!(eQ`O,5;ZO!(jQlO'#DyO!(tQpO,5;dO!(|QpO,5;dO%[QlO,5;dOOQ['#FT'#FTOOQ['#FV'#FVO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eOOQ['#FZ'#FZO!)[QlO,5;tOOQ!0Lf,5;y,5;yOOQ!0Lf,5;z,5;zOOQ!0Lf,5;|,5;|O%[QlO'#IpO!+_Q!0LrO,5<iO%[QlO,5;eO!&zQMhO,5;eO!+|QMhO,5;eO!-nQMhO'#E^O%[QlO,5;wOOQ!0Lf,5;{,5;{O!-uQ,UO'#FjO!.rQ,UO'#KXO!.^Q,UO'#KXO!.yQ,UO'#KXOOQO'#KX'#KXO!/_Q,UO,5<SOOOW,5<`,5<`O!/pQlO'#FvOOOW'#Io'#IoO7VO7dO,5<QO!/wQ,UO'#FxOOQ!0Lf,5<Q,5<QO!0hQ$IUO'#CyOOQ!0Lh'#C}'#C}O!0{O#@ItO'#DRO!1iQMjO,5<eO!1pQ`O,5<hO!3YQ(CWO'#GXO!3jQ`O'#GYO!3oQ`O'#GYO!5_Q(CWO'#G^O!6dQpO'#GbOOQO'#Gn'#GnO!,TQMhO'#GmOOQO'#Gp'#GpO!,TQMhO'#GoO!7VQ$IUO'#JlOOQ!0Lh'#Jl'#JlO!7aQ`O'#JkO!7oQ`O'#JjO!7wQ`O'#CuOOQ!0Lh'#C{'#C{O!8YQ`O'#C}OOQ!0Lh'#DV'#DVOOQ!0Lh'#DX'#DXO!8_Q`O,5<eO1SQ`O'#DZO!,TQMhO'#GPO!,TQMhO'#GRO!8gQ`O'#GTO!8lQ`O'#GUO!3oQ`O'#G[O!,TQMhO'#GaO<]Q`O'#JkO!8qQ`O'#EqO!9`Q`O,5<gOOQ!0Lb'#Cr'#CrO!9hQ`O'#ErO!:bQpO'#EsOOQ!0Lb'#KR'#KRO!:iQ!0LrO'#KaO9uQ!0LrO,5=cO`QlO,5>tOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!<hQ!0MxO,5:bO!:]QpO,5:`O!?RQ!0MxO,5:jO%[QlO,5:jO!AiQ!0MxO,5:lOOQO,5@z,5@zO!BYQMhO,5=_O!BhQ!0LrO'#JiO9`Q`O'#JiO!ByQ!0LrO,59ZO!CUQpO,59ZO!C^QMhO,59ZO:dQMhO,59ZO!CiQ`O,5;ZO!CqQ`O'#HbO!DVQ`O'#KdO%[QlO,5;}O!:]QpO,5<PO!D_Q`O,5=zO!DdQ`O,5=zO!DiQ`O,5=zO!DwQ`O,5=zO9uQ!0LrO,5=zO<]Q`O,5=jOOQO'#Cy'#CyO!EOQpO,5=gO!EWQMhO,5=hO!EcQ`O,5=jO!EhQ!bO,5=mO!EpQ`O'#K`O?YQ`O'#HWO9kQ`O'#HYO!EuQ`O'#HYO:dQMhO'#H[O!EzQ`O'#H[OOQ[,5=p,5=pO!FPQ`O'#H]O!FbQ`O'#CoO!FgQ`O,59PO!FqQ`O,59PO!HvQlO,59POOQ[,59P,59PO!IWQ!0LrO,59PO%[QlO,59PO!KcQlO'#HeOOQ['#Hf'#HfOOQ['#Hg'#HgO`QlO,5=}O!KyQ`O,5=}O`QlO,5>TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-E<f-E<fO#)kQ!0MSO,5;RODWQpO,5:rO#)uQpO,5:rODWQpO,5;RO!ByQ!0LrO,5:rOOQ!0Lb'#Ej'#EjOOQO,5;R,5;RO%[QlO,5;RO#*SQ!0LrO,5;RO#*_Q!0LrO,5;RO!CUQpO,5:rOOQO,5;X,5;XO#*mQ!0LrO,5;RPOOO'#I^'#I^P#+RO&2DjO,58|POOO,58|,58|OOOO-E<^-E<^OOQ!0Lh1G.p1G.pOOOO-E<_-E<_OOOO,59},59}O#+^Q!bO,59}OOOO-E<a-E<aOOQ!0Lf1G/g1G/gO#+cQ!fO,5?OO+}QlO,5?OOOQO,5?U,5?UO#+mQlO'#IdOOQO-E<b-E<bO#+zQ`O,5@`O#,SQ!fO,5@`O#,ZQ`O,5@nOOQ!0Lf1G/m1G/mO%[QlO,5@oO#,cQ`O'#IjOOQO-E<h-E<hO#,ZQ`O,5@nOOQ!0Lb1G0x1G0xOOQ!0Ln1G/x1G/xOOQ!0Ln1G0Y1G0YO%[QlO,5@lO#,wQ!0LrO,5@lO#-YQ!0LrO,5@lO#-aQ`O,5@kO9eQ`O,5@kO#-iQ`O,5@kO#-wQ`O'#ImO#-aQ`O,5@kOOQ!0Lb1G0w1G0wO!(tQpO,5:uO!)PQpO,5:uOOQS,5:w,5:wO#.iQdO,5:wO#.qQMhO1G2yO9kQ`O1G2yOOQ!0Lf1G0u1G0uO#/PQ!0MxO1G0uO#0UQ!0MvO,5;VOOQ!0Lh'#GW'#GWO#0rQ!0MzO'#JlO!$wQlO1G0uO#2}Q!fO'#JwO%[QlO'#JwO#3XQ`O,5:eOOQ!0Lh'#D_'#D_OOQ!0Lf1G1O1G1OO%[QlO1G1OOOQ!0Lf1G1f1G1fO#3^Q`O1G1OO#5rQ!0MxO1G1PO#5yQ!0MxO1G1PO#8aQ!0MxO1G1PO#8hQ!0MxO1G1PO#;OQ!0MxO1G1PO#=fQ!0MxO1G1PO#=mQ!0MxO1G1PO#=tQ!0MxO1G1PO#@[Q!0MxO1G1PO#@cQ!0MxO1G1PO#BpQ?MtO'#CiO#DkQ?MtO1G1`O#DrQ?MtO'#JsO#EVQ!0MxO,5?[OOQ!0Lb-E<n-E<nO#GdQ!0MxO1G1PO#HaQ!0MzO1G1POOQ!0Lf1G1P1G1PO#IdQMjO'#J|O#InQ`O,5:xO#IsQ!0MxO1G1cO#JgQ,UO,5<WO#JoQ,UO,5<XO#JwQ,UO'#FoO#K`Q`O'#FnOOQO'#KY'#KYOOQO'#In'#InO#KeQ,UO1G1nOOQ!0Lf1G1n1G1nOOOW1G1y1G1yO#KvQ?MtO'#JrO#LQQ`O,5<bO!)[QlO,5<bOOOW-E<m-E<mOOQ!0Lf1G1l1G1lO#LVQpO'#KXOOQ!0Lf,5<d,5<dO#L_QpO,5<dO#LdQMhO'#DTOOOO'#Ib'#IbO#LkO#@ItO,59mOOQ!0Lh,59m,59mO%[QlO1G2PO!8lQ`O'#IrO#LvQ`O,5<zOOQ!0Lh,5<w,5<wO!,TQMhO'#IuO#MdQMjO,5=XO!,TQMhO'#IwO#NVQMjO,5=ZO!&zQMhO,5=]OOQO1G2S1G2SO#NaQ!dO'#CrO#NtQ(CWO'#ErO$ |QpO'#GbO$!dQ!dO,5<sO$!kQ`O'#K[O9eQ`O'#K[O$!yQ`O,5<uO$#aQ!dO'#C{O!,TQMhO,5<tO$#kQ`O'#GZO$$PQ`O,5<tO$$UQ!dO'#GWO$$cQ!dO'#K]O$$mQ`O'#K]O!&zQMhO'#K]O$$rQ`O,5<xO$$wQlO'#JvO$%RQpO'#GcO#$`QpO'#GcO$%dQ`O'#GgO!3oQ`O'#GkO$%iQ!0LrO'#ItO$%tQpO,5<|OOQ!0Lp,5<|,5<|O$%{QpO'#GcO$&YQpO'#GdO$&kQpO'#GdO$&pQMjO,5=XO$'QQMjO,5=ZOOQ!0Lh,5=^,5=^O!,TQMhO,5@VO!,TQMhO,5@VO$'bQ`O'#IyO$'vQ`O,5@UO$(OQ`O,59aOOQ!0Lh,59i,59iO$(TQ`O,5@VO$)TQ$IYO,59uOOQ!0Lh'#Jp'#JpO$)vQMjO,5<kO$*iQMjO,5<mO@zQ`O,5<oOOQ!0Lh,5<p,5<pO$*sQ`O,5<vO$*xQMjO,5<{O$+YQ`O'#KPO!$wQlO1G2RO$+_Q`O1G2RO9eQ`O'#KSO9eQ`O'#EtO%[QlO'#EtO9eQ`O'#I{O$+dQ!0LrO,5@{OOQ[1G2}1G2}OOQ[1G4`1G4`OOQ!0Lf1G/|1G/|OOQ!0Lf1G/z1G/zO$-fQ!0MxO1G0UOOQ[1G2y1G2yO!&zQMhO1G2yO%[QlO1G2yO#.tQ`O1G2yO$/jQMhO'#EkOOQ!0Lb,5@T,5@TO$/wQ!0LrO,5@TOOQ[1G.u1G.uO!ByQ!0LrO1G.uO!CUQpO1G.uO!C^QMhO1G.uO$0YQ`O1G0uO$0_Q`O'#CiO$0jQ`O'#KeO$0rQ`O,5=|O$0wQ`O'#KeO$0|Q`O'#KeO$1[Q`O'#JRO$1jQ`O,5AOO$1rQ!fO1G1iOOQ!0Lf1G1k1G1kO9kQ`O1G3fO@zQ`O1G3fO$1yQ`O1G3fO$2OQ`O1G3fO!DiQ`O1G3fO9uQ!0LrO1G3fOOQ[1G3f1G3fO!EcQ`O1G3UO!&zQMhO1G3RO$2TQ`O1G3ROOQ[1G3S1G3SO!&zQMhO1G3SO$2YQ`O1G3SO$2bQpO'#HQOOQ[1G3U1G3UO!6_QpO'#I}O!EhQ!bO1G3XOOQ[1G3X1G3XOOQ[,5=r,5=rO$2jQMhO,5=tO9kQ`O,5=tO$%dQ`O,5=vO9`Q`O,5=vO!CUQpO,5=vO!C^QMhO,5=vO:dQMhO,5=vO$2xQ`O'#KcO$3TQ`O,5=wOOQ[1G.k1G.kO$3YQ!0LrO1G.kO@zQ`O1G.kO$3eQ`O1G.kO9uQ!0LrO1G.kO$5mQ!fO,5AQO$5zQ`O,5AQO9eQ`O,5AQO$6VQlO,5>PO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5<iO$BOQ!fO1G4jOOQO1G4p1G4pO%[QlO,5?OO$BYQ`O1G5zO$BbQ`O1G6YO$BjQ!fO1G6ZO9eQ`O,5?UO$BtQ!0MxO1G6WO%[QlO1G6WO$CUQ!0LrO1G6WO$CgQ`O1G6VO$CgQ`O1G6VO9eQ`O1G6VO$CoQ`O,5?XO9eQ`O,5?XOOQO,5?X,5?XO$DTQ`O,5?XO$+YQ`O,5?XOOQO-E<k-E<kOOQS1G0a1G0aOOQS1G0c1G0cO#.lQ`O1G0cOOQ[7+(e7+(eO!&zQMhO7+(eO%[QlO7+(eO$DcQ`O7+(eO$DnQMhO7+(eO$D|Q!0MzO,5=XO$GXQ!0MzO,5=ZO$IdQ!0MzO,5=XO$KuQ!0MzO,5=ZO$NWQ!0MzO,59uO%!]Q!0MzO,5<kO%$hQ!0MzO,5<mO%&sQ!0MzO,5<{OOQ!0Lf7+&a7+&aO%)UQ!0MxO7+&aO%)xQlO'#IfO%*VQ`O,5@cO%*_Q!fO,5@cOOQ!0Lf1G0P1G0PO%*iQ`O7+&jOOQ!0Lf7+&j7+&jO%*nQ?MtO,5:fO%[QlO7+&zO%*xQ?MtO,5:bO%+VQ?MtO,5:jO%+aQ?MtO,5:lO%+kQMhO'#IiO%+uQ`O,5@hOOQ!0Lh1G0d1G0dOOQO1G1r1G1rOOQO1G1s1G1sO%+}Q!jO,5<ZO!)[QlO,5<YOOQO-E<l-E<lOOQ!0Lf7+'Y7+'YOOOW7+'e7+'eOOOW1G1|1G1|O%,YQ`O1G1|OOQ!0Lf1G2O1G2OOOOO,59o,59oO%,_Q!dO,59oOOOO-E<`-E<`OOQ!0Lh1G/X1G/XO%,fQ!0MxO7+'kOOQ!0Lh,5?^,5?^O%-YQMhO1G2fP%-aQ`O'#IrPOQ!0Lh-E<p-E<pO%-}QMjO,5?aOOQ!0Lh-E<s-E<sO%.pQMjO,5?cOOQ!0Lh-E<u-E<uO%.zQ!dO1G2wO%/RQ!dO'#CrO%/iQMhO'#KSO$$wQlO'#JvOOQ!0Lh1G2_1G2_O%/sQ`O'#IqO%0[Q`O,5@vO%0[Q`O,5@vO%0dQ`O,5@vO%0oQ`O,5@vOOQO1G2a1G2aO%0}QMjO1G2`O$+YQ`O'#K[O!,TQMhO1G2`O%1_Q(CWO'#IsO%1lQ`O,5@wO!&zQMhO,5@wO%1tQ!dO,5@wOOQ!0Lh1G2d1G2dO%4UQ!fO'#CiO%4`Q`O,5=POOQ!0Lb,5<},5<}O%4hQpO,5<}OOQ!0Lb,5=O,5=OOCwQ`O,5<}O%4sQpO,5<}OOQ!0Lb,5=R,5=RO$+YQ`O,5=VOOQO,5?`,5?`OOQO-E<r-E<rOOQ!0Lp1G2h1G2hO#$`QpO,5<}O$$wQlO,5=PO%5RQ`O,5=OO%5^QpO,5=OO!,TQMhO'#IuO%6WQMjO1G2sO!,TQMhO'#IwO%6yQMjO1G2uO%7TQMjO1G5qO%7_QMjO1G5qOOQO,5?e,5?eOOQO-E<w-E<wOOQO1G.{1G.{O!,TQMhO1G5qO!,TQMhO1G5qO!:]QpO,59wO%[QlO,59wOOQ!0Lh,5<j,5<jO%7lQ`O1G2ZO!,TQMhO1G2bO%7qQ!0MxO7+'mOOQ!0Lf7+'m7+'mO!$wQlO7+'mO%8eQ`O,5;`OOQ!0Lb,5?g,5?gOOQ!0Lb-E<y-E<yO%8jQ!dO'#K^O#(ZQ`O7+(eO4UQ!fO7+(eO$DfQ`O7+(eO%8tQ!0MvO'#CiO%9XQ!0MvO,5=SO%9lQ`O,5=SO%9tQ`O,5=SOOQ!0Lb1G5o1G5oOOQ[7+$a7+$aO!ByQ!0LrO7+$aO!CUQpO7+$aO!$wQlO7+&aO%9yQ`O'#JQO%:bQ`O,5APOOQO1G3h1G3hO9kQ`O,5APO%:bQ`O,5APO%:jQ`O,5APOOQO,5?m,5?mOOQO-E=P-E=POOQ!0Lf7+'T7+'TO%:oQ`O7+)QO9uQ!0LrO7+)QO9kQ`O7+)QO@zQ`O7+)QO%:tQ`O7+)QOOQ[7+)Q7+)QOOQ[7+(p7+(pO%:yQ!0MvO7+(mO!&zQMhO7+(mO!E^Q`O7+(nOOQ[7+(n7+(nO!&zQMhO7+(nO%;TQ`O'#KbO%;`Q`O,5=lOOQO,5?i,5?iOOQO-E<{-E<{OOQ[7+(s7+(sO%<rQpO'#HZOOQ[1G3`1G3`O!&zQMhO1G3`O%[QlO1G3`O%<yQ`O1G3`O%=UQMhO1G3`O9uQ!0LrO1G3bO$%dQ`O1G3bO9`Q`O1G3bO!CUQpO1G3bO!C^QMhO1G3bO%=dQ`O'#JPO%=xQ`O,5@}O%>QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-E<c-E<cOOQO,5?V,5?VOOQO-E<i-E<iO!CUQpO1G/sOOQO-E<e-E<eOOQ!0Ln1G0]1G0]OOQ!0Lf7+%u7+%uO#(ZQ`O7+%uOOQ!0Lf7+&`7+&`O?YQ`O7+&`O!CUQpO7+&`OOQO7+%x7+%xO$AlQ!0MxO7+&XOOQO7+&X7+&XO%[QlO7+&XO%@nQ!0LrO7+&XO!ByQ!0LrO7+%xO!CUQpO7+%xO%@yQ!0LrO7+&XO%AXQ!0MxO7++rO%[QlO7++rO%AiQ`O7++qO%AiQ`O7++qOOQO1G4s1G4sO9eQ`O1G4sO%AqQ`O1G4sOOQS7+%}7+%}O#(ZQ`O<<LPO4UQ!fO<<LPO%BPQ`O<<LPOOQ[<<LP<<LPO!&zQMhO<<LPO%[QlO<<LPO%BXQ`O<<LPO%BdQ!0MzO,5?aO%DoQ!0MzO,5?cO%FzQ!0MzO1G2`O%I]Q!0MzO1G2sO%KhQ!0MzO1G2uO%MsQ!fO,5?QO%[QlO,5?QOOQO-E<d-E<dO%M}Q`O1G5}OOQ!0Lf<<JU<<JUO%NVQ?MtO1G0uO&!^Q?MtO1G1PO&!eQ?MtO1G1PO&$fQ?MtO1G1PO&$mQ?MtO1G1PO&&nQ?MtO1G1PO&(oQ?MtO1G1PO&(vQ?MtO1G1PO&(}Q?MtO1G1PO&+OQ?MtO1G1PO&+VQ?MtO1G1PO&+^Q!0MxO<<JfO&-UQ?MtO1G1PO&.RQ?MvO1G1PO&/UQ?MvO'#JlO&1[Q?MtO1G1cO&1iQ?MtO1G0UO&1sQMjO,5?TOOQO-E<g-E<gO!)[QlO'#FqOOQO'#KZ'#KZOOQO1G1u1G1uO&1}Q`O1G1tO&2SQ?MtO,5?[OOOW7+'h7+'hOOOO1G/Z1G/ZO&2^Q!dO1G4xOOQ!0Lh7+(Q7+(QP!&zQMhO,5?^O!,TQMhO7+(cO&2eQ`O,5?]O9eQ`O,5?]O$+YQ`O,5?]OOQO-E<o-E<oO&2sQ`O1G6bO&2sQ`O1G6bO&2{Q`O1G6bO&3WQMjO7+'zO&3hQ!dO,5?_O&3rQ`O,5?_O!&zQMhO,5?_OOQO-E<q-E<qO&3wQ!dO1G6cO&4RQ`O1G6cO&4ZQ`O1G2kO!&zQMhO1G2kOOQ!0Lb1G2i1G2iOOQ!0Lb1G2j1G2jO%4hQpO1G2iO!CUQpO1G2iOCwQ`O1G2iOOQ!0Lb1G2q1G2qO&4`QpO1G2iO&4nQ`O1G2kO$+YQ`O1G2jOCwQ`O1G2jO$$wQlO1G2kO&4vQ`O1G2jO&5jQMjO,5?aOOQ!0Lh-E<t-E<tO&6]QMjO,5?cOOQ!0Lh-E<v-E<vO!,TQMhO7++]O&6gQMjO7++]O&6qQMjO7++]OOQ!0Lh1G/c1G/cO&7OQ`O1G/cOOQ!0Lh7+'u7+'uO&7TQMjO7+'|O&7eQ!0MxO<<KXOOQ!0Lf<<KX<<KXO&8XQ`O1G0zO!&zQMhO'#IzO&8^Q`O,5@xO&:`Q!fO<<LPO!&zQMhO1G2nO&:gQ!0LrO1G2nOOQ[<<G{<<G{O!ByQ!0LrO<<G{O&:xQ!0MxO<<I{OOQ!0Lf<<I{<<I{OOQO,5?l,5?lO&;lQ`O,5?lO&;qQ`O,5?lOOQO-E=O-E=OO&<PQ`O1G6kO&<PQ`O1G6kO9kQ`O1G6kO@zQ`O<<LlOOQ[<<Ll<<LlO&<XQ`O<<LlO9uQ!0LrO<<LlO9kQ`O<<LlOOQ[<<LX<<LXO%:yQ!0MvO<<LXOOQ[<<LY<<LYO!E^Q`O<<LYO&<^QpO'#I|O&<iQ`O,5@|O!)[QlO,5@|OOQ[1G3W1G3WOOQO'#JO'#JOO9uQ!0LrO'#JOO&<qQpO,5=uOOQ[,5=u,5=uO&<xQpO'#EgO&=PQpO'#GeO&=UQ`O7+(zO&=ZQ`O7+(zOOQ[7+(z7+(zO!&zQMhO7+(zO%[QlO7+(zO&=cQ`O7+(zOOQ[7+(|7+(|O9uQ!0LrO7+(|O$%dQ`O7+(|O9`Q`O7+(|O!CUQpO7+(|O&=nQ`O,5?kOOQO-E<}-E<}OOQO'#H^'#H^O&=yQ`O1G6iO9uQ!0LrO<<GqOOQ[<<Gq<<GqO@zQ`O<<GqO&>RQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<<Ly<<LyOOQ[<<L{<<L{OOQ[-E=Q-E=QOOQ[1G3z1G3zO&>nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<<Ia<<IaOOQ!0Lf<<Iz<<IzO?YQ`O<<IzOOQO<<Is<<IsO$AlQ!0MxO<<IsO%[QlO<<IsOOQO<<Id<<IdO!ByQ!0LrO<<IdO&?SQ!0LrO<<IsO&?_Q!0MxO<= ^O&?oQ`O<= ]OOQO7+*_7+*_O9eQ`O7+*_OOQ[ANAkANAkO&?wQ!fOANAkO!&zQMhOANAkO#(ZQ`OANAkO4UQ!fOANAkO&@OQ`OANAkO%[QlOANAkO&@WQ!0MzO7+'zO&BiQ!0MzO,5?aO&DtQ!0MzO,5?cO&GPQ!0MzO7+'|O&IbQ!fO1G4lO&IlQ?MtO7+&aO&KpQ?MvO,5=XO&MwQ?MvO,5=ZO&NXQ?MvO,5=XO&NiQ?MvO,5=ZO&NyQ?MvO,59uO'#PQ?MvO,5<kO'%SQ?MvO,5<mO''hQ?MvO,5<{O')^Q?MtO7+'kO')kQ?MtO7+'mO')xQ`O,5<]OOQO7+'`7+'`OOQ!0Lh7+*d7+*dO')}QMjO<<K}OOQO1G4w1G4wO'*UQ`O1G4wO'*aQ`O1G4wO'*oQ`O7++|O'*oQ`O7++|O!&zQMhO1G4yO'*wQ!dO1G4yO'+RQ`O7++}O'+ZQ`O7+(VO'+fQ!dO7+(VOOQ!0Lb7+(T7+(TOOQ!0Lb7+(U7+(UO!CUQpO7+(TOCwQ`O7+(TO'+pQ`O7+(VO!&zQMhO7+(VO$+YQ`O7+(UO'+uQ`O7+(VOCwQ`O7+(UO'+}QMjO<<NwO!,TQMhO<<NwOOQ!0Lh7+$}7+$}O',XQ!dO,5?fOOQO-E<x-E<xO',cQ!0MvO7+(YO!&zQMhO7+(YOOQ[AN=gAN=gO9kQ`O1G5WOOQO1G5W1G5WO',sQ`O1G5WO',xQ`O7+,VO',xQ`O7+,VO9uQ!0LrOANBWO@zQ`OANBWOOQ[ANBWANBWO'-QQ`OANBWOOQ[ANAsANAsOOQ[ANAtANAtO'-VQ`O,5?hOOQO-E<z-E<zO'-bQ?MtO1G6hOOQO,5?j,5?jOOQO-E<|-E<|OOQ[1G3a1G3aO'-lQ`O,5=POOQ[<<Lf<<LfO!&zQMhO<<LfO&=UQ`O<<LfO'-qQ`O<<LfO%[QlO<<LfOOQ[<<Lh<<LhO9uQ!0LrO<<LhO$%dQ`O<<LhO9`Q`O<<LhO'-yQpO1G5VO'.UQ`O7+,TOOQ[AN=]AN=]O9uQ!0LrOAN=]OOQ[<= r<= rOOQ[<= s<= sO'.^Q`O<= rO'.cQ`O<= sOOQ[<<Lq<<LqO'.hQ`O<<LqO'.mQlO<<LqOOQ[1G3{1G3{O?YQ`O7+)lO'.tQ`O<<JQO'/PQ?MtO<<JQOOQO<<Hy<<HyOOQ!0LfAN?fAN?fOOQOAN?_AN?_O$AlQ!0MxOAN?_OOQOAN?OAN?OO%[QlOAN?_OOQO<<My<<MyOOQ[G27VG27VO!&zQMhOG27VO#(ZQ`OG27VO'/ZQ!fOG27VO4UQ!fOG27VO'/bQ`OG27VO'/jQ?MtO<<JfO'/wQ?MvO1G2`O'1mQ?MvO,5?aO'3pQ?MvO,5?cO'5sQ?MvO1G2sO'7vQ?MvO1G2uO'9yQ?MtO<<KXO':WQ?MtO<<I{OOQO1G1w1G1wO!,TQMhOANAiOOQO7+*c7+*cO':eQ`O7+*cO':pQ`O<= hO':xQ!dO7+*eOOQ!0Lb<<Kq<<KqO$+YQ`O<<KqOCwQ`O<<KqO';SQ`O<<KqO!&zQMhO<<KqOOQ!0Lb<<Ko<<KoO!CUQpO<<KoO';_Q!dO<<KqOOQ!0Lb<<Kp<<KpO';iQ`O<<KqO!&zQMhO<<KqO$+YQ`O<<KpO';nQMjOANDcO';xQ!0MvO<<KtOOQO7+*r7+*rO9kQ`O7+*rO'<YQ`O<= qOOQ[G27rG27rO9uQ!0LrOG27rO@zQ`OG27rO!)[QlO1G5SO'<bQ`O7+,SO'<jQ`O1G2kO&=UQ`OANBQOOQ[ANBQANBQO!&zQMhOANBQO'<oQ`OANBQOOQ[ANBSANBSO9uQ!0LrOANBSO$%dQ`OANBSOOQO'#H_'#H_OOQO7+*q7+*qOOQ[G22wG22wOOQ[ANE^ANE^OOQ[ANE_ANE_OOQ[ANB]ANB]O'<wQ`OANB]OOQ[<<MW<<MWO!)[QlOAN?lOOQOG24yG24yO$AlQ!0MxOG24yO#(ZQ`OLD,qOOQ[LD,qLD,qO!&zQMhOLD,qO'<|Q!fOLD,qO'=TQ?MvO7+'zO'>yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<<M}<<M}OOQ!0LbANA]ANA]O$+YQ`OANA]OCwQ`OANA]O'EVQ!dOANA]OOQ!0LbANAZANAZO'E^Q`OANA]O!&zQMhOANA]O'EiQ!dOANA]OOQ!0LbANA[ANA[OOQO<<N^<<N^OOQ[LD-^LD-^O9uQ!0LrOLD-^O'EsQ?MtO7+*nOOQO'#Gf'#GfOOQ[G27lG27lO&=UQ`OG27lO!&zQMhOG27lOOQ[G27nG27nO9uQ!0LrOG27nOOQ[G27wG27wO'E}Q?MtOG25WOOQOLD*eLD*eOOQ[!$(!]!$(!]O#(ZQ`O!$(!]O!&zQMhO!$(!]O'FXQ!0MzOG27TOOQ!0LbG26wG26wO$+YQ`OG26wO'HjQ`OG26wOCwQ`OG26wO'HuQ!dOG26wO!&zQMhOG26wOOQ[!$(!x!$(!xOOQ[LD-WLD-WO&=UQ`OLD-WOOQ[LD-YLD-YOOQ[!)9Ew!)9EwO#(ZQ`O!)9EwOOQ!0LbLD,cLD,cO$+YQ`OLD,cOCwQ`OLD,cO'H|Q`OLD,cO'IXQ!dOLD,cOOQ[!$(!r!$(!rOOQ[!.K;c!.K;cO'I`Q?MvOG27TOOQ!0Lb!$( }!$( }O$+YQ`O!$( }OCwQ`O!$( }O'KUQ`O!$( }OOQ!0Lb!)9Ei!)9EiO$+YQ`O!)9EiOCwQ`O!)9EiOOQ!0Lb!.K;T!.K;TO$+YQ`O!.K;TOOQ!0Lb!4/0o!4/0oO!)[QlO'#DzO1PQ`O'#EXO'KaQ!fO'#JrO'KhQ!L^O'#DvO'KoQlO'#EOO'KvQ!fO'#CiO'N^Q!fO'#CiO!)[QlO'#EQO'NnQlO,5;ZO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO'#IpO(!qQ`O,5<iO!)[QlO,5;eO(!yQMhO,5;eO($dQMhO,5;eO!)[QlO,5;wO!&zQMhO'#GmO(!yQMhO'#GmO!&zQMhO'#GoO(!yQMhO'#GoO1SQ`O'#DZO1SQ`O'#DZO!&zQMhO'#GPO(!yQMhO'#GPO!&zQMhO'#GRO(!yQMhO'#GRO!&zQMhO'#GaO(!yQMhO'#GaO!)[QlO,5:jO($kQpO'#D_O($uQpO'#JvO!)[QlO,5@oO'NnQlO1G0uO(%PQ?MtO'#CiO!)[QlO1G2PO!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO(%ZQ!dO'#CrO!&zQMhO,5<tO(!yQMhO,5<tO'NnQlO1G2RO!)[QlO7+&zO!&zQMhO1G2`O(!yQMhO1G2`O!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO!&zQMhO1G2bO(!yQMhO1G2bO'NnQlO7+'mO'NnQlO7+&aO!&zQMhOANAiO(!yQMhOANAiO(%nQ`O'#EoO(%sQ`O'#EoO(%{Q`O'#F]O(&QQ`O'#EyO(&VQ`O'#KTO(&bQ`O'#KRO(&mQ`O,5;ZO(&rQMjO,5<eO(&yQ`O'#GYO('OQ`O'#GYO('TQ`O,5<eO(']Q`O,5<gO('eQ`O,5;ZO('mQ?MtO1G1`O('tQ`O,5<tO('yQ`O,5<tO((OQ`O,5<vO((TQ`O,5<vO((YQ`O1G2RO((_Q`O1G0uO((dQMjO<<K}O((kQMjO<<K}O((rQMhO'#F|O9`Q`O'#F{OAuQ`O'#EnO!)[QlO,5;tO!3oQ`O'#GYO!3oQ`O'#GYO!3oQ`O'#G[O!3oQ`O'#G[O!,TQMhO7+(cO!,TQMhO7+(cO%.zQ!dO1G2wO%.zQ!dO1G2wO!&zQMhO,5=]O!&zQMhO,5=]",stateData:"()x~O'|OS'}OSTOS(ORQ~OPYOQYOSfOY!VOaqOdzOeyOl!POpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!uwO!xxO!|]O$W|O$niO%h}O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO&W!WO&^!XO&`!YO&b!ZO&d![O&g!]O&m!^O&s!_O&u!`O&w!aO&y!bO&{!cO(TSO(VTO(YUO(aVO(o[O~OWtO~P`OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa!wOs!nO!S!oO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!xO#W!pO#X!pO#[!zO#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O(O!{O~OP]XR]X[]Xa]Xj]Xr]X!Q]X!S]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X'z]X(a]X(r]X(y]X(z]X~O!g%RX~P(qO_!}O(V#PO(W!}O(X#PO~O_#QO(X#PO(Y#PO(Z#QO~Ox#SO!U#TO(b#TO(c#VO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T<ZO(VTO(YUO(aVO(o[O~O![#ZO!]#WO!Y(hP!Y(vP~P+}O!^#cO~P`OPYOQYOSfOd!jOe!iOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(VTO(YUO(aVO(o[O~Op#mO![#iO!|]O#i#lO#j#iO(T<[O!k(sP~P.iO!l#oO(T#nO~O!x#sO!|]O%h#tO~O#k#uO~O!g#vO#k#uO~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!]$_O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa(fX'z(fX'w(fX!k(fX!Y(fX!_(fX%i(fX!g(fX~P1qO#S$dO#`$eO$Q$eOP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX!_(gX%i(gX~Oa(gX'z(gX'w(gX!Y(gX!k(gXv(gX!g(gX~P4UO#`$eO~O$]$hO$_$gO$f$mO~OSfO!_$nO$i$oO$k$qO~Oh%VOj%dOk%dOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T$sO(VTO(YUO(a$uO(y$}O(z%POg(^P~Ol%[O~P7eO!l%eO~O!S%hO!_%iO(T%gO~O!g%mO~Oa%nO'z%nO~O!Q%rO~P%[O(U!lO~P%[O%n%vO~P%[Oh%VO!l%eO(T%gO(U!lO~Oe%}O!l%eO(T%gO~Oj$RO~O!_&PO(T%gO(U!lO(VTO(YUO`)WP~O!Q&SO!l&RO%j&VO&T&WO~P;SO!x#sO~O%s&YO!S)SX!_)SX(T)SX~O(T&ZO~Ol!PO!u&`O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO~Od&eOe&dO!x&bO%h&cO%{&aO~P<bOd&hOeyOl!PO!_&gO!u&`O!xxO!|]O%h}O%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO~Ob&kO#`&nO%j&iO(U!lO~P=gO!l&oO!u&sO~O!l#oO~O!_XO~Oa%nO'x&{O'z%nO~Oa%nO'x'OO'z%nO~Oa%nO'x'QO'z%nO~O'w]X!Y]Xv]X!k]X&[]X!_]X%i]X!g]X~P(qO!b'_O!c'WO!d'WO(U!lO(VTO(YUO~Os'UO!S'TO!['XO(e'SO!^(iP!^(xP~P@nOn'bO!_'`O(T%gO~Oe'gO!l%eO(T%gO~O!Q&SO!l&RO~Os!nO!S!oO!|<VO#T!pO#U!pO#W!pO#X!pO(U!lO(VTO(YUO(e!mO(o!sO~O!b'mO!c'lO!d'lO#V!pO#['nO#]'nO~PBYOa%nOh%VO!g#vO!l%eO'z%nO(r'pO~O!p'tO#`'rO~PChOs!nO!S!oO(VTO(YUO(e!mO(o!sO~O!_XOs(mX!S(mX!b(mX!c(mX!d(mX!|(mX#T(mX#U(mX#V(mX#W(mX#X(mX#[(mX#](mX(U(mX(V(mX(Y(mX(e(mX(o(mX~O!c'lO!d'lO(U!lO~PDWO(P'xO(Q'xO(R'zO~O_!}O(V'|O(W!}O(X'|O~O_#QO(X'|O(Y'|O(Z#QO~Ov(OO~P%[Ox#SO!U#TO(b#TO(c(RO~O![(TO!Y'WX!Y'^X!]'WX!]'^X~P+}O!](VO!Y(hX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!](VO!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~O!Y(hX~PHRO!Y([O~O!Y(uX!](uX!g(uX!k(uX(r(uX~O#`(uX#k#dX!^(uX~PJUO#`(]O!Y(wX!](wX~O!](^O!Y(vX~O!Y(aO~O#`$eO~PJUO!^(bO~P`OR#zO!Q#yO!S#{O!l#xO(aVOP!na[!naj!nar!na!]!na!p!na#R!na#n!na#o!na#p!na#q!na#r!na#s!na#t!na#u!na#v!na#x!na#z!na#{!na(r!na(y!na(z!na~Oa!na'z!na'w!na!Y!na!k!nav!na!_!na%i!na!g!na~PKlO!k(cO~O!g#vO#`(dO(r'pO!](tXa(tX'z(tX~O!k(tX~PNXO!S%hO!_%iO!|]O#i(iO#j(hO(T%gO~O!](jO!k(sX~O!k(lO~O!S%hO!_%iO#j(hO(T%gO~OP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~O!g#vO!k(gX~P! uOR(nO!Q(mO!l#xO#S$dO!|!{a!S!{a~O!x!{a%h!{a!_!{a#i!{a#j!{a(T!{a~P!#vO!x(rO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~O#k(xO~O![(zO!k(kP~P%[O(e(|O(o[O~O!S)OO!l#xO(e(|O(o[O~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S*YO!_*ZO!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op*`O![*^O(T*XO!k)OP~P!1uO#k*aO~O!l*bO~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(T*dO(VTO(YUO(a$uO(y$}O(z%PO~O![*gO!Y)PP~P!3tOr*sOs!nO!S*iO!b*qO!c*kO!d*kO!l*bO#[*rO%`*mO(U!lO(VTO(YUO(e!mO~O!^*pO~P!5iO#S$dOn(`X!Q(`X'y(`X(y(`X(z(`X!](`X#`(`X~Og(`X$O(`X~P!6kOn*xO#`*wOg(_X!](_X~O!]*yOg(^X~Oj%dOk%dOl%dO(T&ZOg(^P~Os*|O~Og)}O(T&ZO~O!l+SO~O(T(vO~Op+WO!S%hO![#iO!_%iO!|]O#i#lO#j#iO(T%gO!k(sP~O!g#vO#k+XO~O!S%hO![+ZO!](^O!_%iO(T%gO!Y(vP~Os'[O!S+]O![+[O(VTO(YUO(e(|O~O!^(xP~P!9|O!]+^Oa)TX'z)TX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa!ja!]!ja'z!ja'w!ja!Y!ja!k!jav!ja!_!ja%i!ja!g!ja~P!:tOR#zO!Q#yO!S#{O!l#xO(aVOP!ra[!raj!rar!ra!]!ra!p!ra#R!ra#n!ra#o!ra#p!ra#q!ra#r!ra#s!ra#t!ra#u!ra#v!ra#x!ra#z!ra#{!ra(r!ra(y!ra(z!ra~Oa!ra'z!ra'w!ra!Y!ra!k!rav!ra!_!ra%i!ra!g!ra~P!=[OR#zO!Q#yO!S#{O!l#xO(aVOP!ta[!taj!tar!ta!]!ta!p!ta#R!ta#n!ta#o!ta#p!ta#q!ta#r!ta#s!ta#t!ta#u!ta#v!ta#x!ta#z!ta#{!ta(r!ta(y!ta(z!ta~Oa!ta'z!ta'w!ta!Y!ta!k!tav!ta!_!ta%i!ta!g!ta~P!?rOh%VOn+gO!_'`O%i+fO~O!g+iOa(]X!_(]X'z(]X!](]X~Oa%nO!_XO'z%nO~Oh%VO!l%eO~Oh%VO!l%eO(T%gO~O!g#vO#k(xO~Ob+tO%j+uO(T+qO(VTO(YUO!^)XP~O!]+vO`)WX~O[+zO~O`+{O~O!_&PO(T%gO(U!lO`)WP~O%j,OO~P;SOh%VO#`,SO~Oh%VOn,VO!_$|O~O!_,XO~O!Q,ZO!_XO~O%n%vO~O!x,`O~Oe,eO~Ob,fO(T#nO(VTO(YUO!^)VP~Oe%}O~O%j!QO(T&ZO~P=gO[,kO`,jO~OPYOQYOSfOdzOeyOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!iuO!lZO!oYO!pYO!qYO!svO!xxO!|]O$niO%h}O(VTO(YUO(aVO(o[O~O!_!eO!u!gO$W!kO(T!dO~P!FyO`,jOa%nO'z%nO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa,pOl!OO!uwO%l!OO%m!OO%n!OO~P!IcO!l&oO~O&^,vO~O!_,xO~O&o,zO&q,{OP&laQ&laS&laY&laa&lad&lae&lal&lap&lar&las&lat&laz&la|&la!O&la!S&la!W&la!X&la!_&la!i&la!l&la!o&la!p&la!q&la!s&la!u&la!x&la!|&la$W&la$n&la%h&la%j&la%l&la%m&la%n&la%q&la%s&la%v&la%w&la%y&la&W&la&^&la&`&la&b&la&d&la&g&la&m&la&s&la&u&la&w&la&y&la&{&la'w&la(T&la(V&la(Y&la(a&la(o&la!^&la&e&lab&la&j&la~O(T-QO~Oh!eX!]!RX!^!RX!g!RX!g!eX!l!eX#`!RX~O!]!eX!^!eX~P#!iO!g-VO#`-UOh(jX!]#hX!^#hX!g(jX!l(jX~O!](jX!^(jX~P##[Oh%VO!g-XO!l%eO!]!aX!^!aX~Os!nO!S!oO(VTO(YUO(e!mO~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO#z<gO#{<hO(aVO(r$YO(y#|O(z#}O~O$O.{O~P#BwO#S$dO#`<nO$Q<nO$O(gX!^(gX~P! uOa'da!]'da'z'da'w'da!k'da!Y'dav'da!_'da%i'da!g'da~P!:tO[#mia#mij#mir#mi!]#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO(y#mi(z#mi~P#EyOn>]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]<iO!^(fX~P#BwO!^/ZO~O!g)hO$f({X~O$f/]O~Ov/^O~P!&zOx)yO(b)zO(c/aO~O!S/dO~O(y$}On%aa!Q%aa'y%aa(z%aa!]%aa#`%aa~Og%aa$O%aa~P#L{O(z%POn%ca!Q%ca'y%ca(y%ca!]%ca#`%ca~Og%ca$O%ca~P#MnO!]fX!gfX!kfX!k$zX(rfX~P!0SOp%WO![/mO!](^O(T/lO!Y(vP!Y)PP~P!1uOr*sO!b*qO!c*kO!d*kO!l*bO#[*rO%`*mO(U!lO(VTO(YUO~Os<}O!S/nO![+[O!^*pO(e<|O!^(xP~P$ [O!k/oO~P#/sO!]/pO!g#vO(r'pO!k)OX~O!k/uO~OnoX!QoX'yoX(yoX(zoX~O!g#vO!koX~P$#OOp/wO!S%hO![*^O!_%iO(T%gO!k)OP~O#k/xO~O!Y$zX!]$zX!g%RX~P!0SO!]/yO!Y)PX~P#/sO!g/{O~O!Y/}O~OpkO(T0OO~P.iOh%VOr0TO!g#vO!l%eO(r'pO~O!g+iO~Oa%nO!]0XO'z%nO~O!^0ZO~P!5iO!c0[O!d0[O(U!lO~P#$`Os!nO!S0]O(VTO(YUO(e!mO~O#[0_O~Og%aa!]%aa#`%aa$O%aa~P!1WOg%ca!]%ca#`%ca$O%ca~P!1WOj%dOk%dOl%dO(T&ZOg'mX!]'mX~O!]*yOg(^a~Og0hO~On0jO#`0iOg(_a!](_a~OR0kO!Q0kO!S0lO#S$dOn}a'y}a(y}a(z}a!]}a#`}a~Og}a$O}a~P$(cO!Q*OO'y*POn$sa(y$sa(z$sa!]$sa#`$sa~Og$sa$O$sa~P$)_O!Q*OO'y*POn$ua(y$ua(z$ua!]$ua#`$ua~Og$ua$O$ua~P$*QO#k0oO~Og%Ta!]%Ta#`%Ta$O%Ta~P!1WO!g#vO~O#k0rO~O!]+^Oa)Ta'z)Ta~OR#zO!Q#yO!S#{O!l#xO(aVOP!ri[!rij!rir!ri!]!ri!p!ri#R!ri#n!ri#o!ri#p!ri#q!ri#r!ri#s!ri#t!ri#u!ri#v!ri#x!ri#z!ri#{!ri(r!ri(y!ri(z!ri~Oa!ri'z!ri'w!ri!Y!ri!k!riv!ri!_!ri%i!ri!g!ri~P$+oOh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op0{O%]0|O(T0zO~P$.VO!g+iOa(]a!_(]a'z(]a!](]a~O#k1SO~O[]X!]fX!^fX~O!]1TO!^)XX~O!^1VO~O[1WO~Ob1YO(T+qO(VTO(YUO~O!_&PO(T%gO`'uX!]'uX~O!]+vO`)Wa~O!k1]O~P!:tO[1`O~O`1aO~O#`1fO~On1iO!_$|O~O(e(|O!^)UP~Oh%VOn1rO!_1oO%i1qO~O[1|O!]1zO!^)VX~O!^1}O~O`2POa%nO'z%nO~O(T#nO(VTO(YUO~O#S$dO#`$eO$Q$eOP(gXR(gX[(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~Oj2SO&[2TOa(gX~P$3pOj2SO#`$eO&[2TO~Oa2VO~P%[Oa2XO~O&e2[OP&ciQ&ciS&ciY&cia&cid&cie&cil&cip&cir&cis&cit&ciz&ci|&ci!O&ci!S&ci!W&ci!X&ci!_&ci!i&ci!l&ci!o&ci!p&ci!q&ci!s&ci!u&ci!x&ci!|&ci$W&ci$n&ci%h&ci%j&ci%l&ci%m&ci%n&ci%q&ci%s&ci%v&ci%w&ci%y&ci&W&ci&^&ci&`&ci&b&ci&d&ci&g&ci&m&ci&s&ci&u&ci&w&ci&y&ci&{&ci'w&ci(T&ci(V&ci(Y&ci(a&ci(o&ci!^&cib&ci&j&ci~Ob2bO!^2`O&j2aO~P`O!_XO!l2dO~O&q,{OP&liQ&liS&liY&lia&lid&lie&lil&lip&lir&lis&lit&liz&li|&li!O&li!S&li!W&li!X&li!_&li!i&li!l&li!o&li!p&li!q&li!s&li!u&li!x&li!|&li$W&li$n&li%h&li%j&li%l&li%m&li%n&li%q&li%s&li%v&li%w&li%y&li&W&li&^&li&`&li&b&li&d&li&g&li&m&li&s&li&u&li&w&li&y&li&{&li'w&li(T&li(V&li(Y&li(a&li(o&li!^&li&e&lib&li&j&li~O!Y2jO~O!]!aa!^!aa~P#BwOs!nO!S!oO![2pO(e!mO!]'XX!^'XX~P@nO!]-]O!^(ia~O!]'_X!^'_X~P!9|O!]-`O!^(xa~O!^2wO~P'_Oa%nO#`3QO'z%nO~Oa%nO!g#vO#`3QO'z%nO~Oa%nO!g#vO!p3UO#`3QO'z%nO(r'pO~Oa%nO'z%nO~P!:tO!]$_Ov$qa~O!Y'Wi!]'Wi~P!:tO!](VO!Y(hi~O!](^O!Y(vi~O!Y(wi!](wi~P!:tO!](ti!k(tia(ti'z(ti~P!:tO#`3WO!](ti!k(tia(ti'z(ti~O!](jO!k(si~O!S%hO!_%iO!|]O#i3]O#j3[O(T%gO~O!S%hO!_%iO#j3[O(T%gO~On3dO!_'`O%i3cO~Oh%VOn3dO!_'`O%i3cO~O#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aav%aa!_%aa%i%aa!g%aa~P#L{O#k%caP%caR%ca[%caa%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%cav%ca!_%ca%i%ca!g%ca~P#MnO#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!]%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aa#`%aav%aa!_%aa%i%aa!g%aa~P#/sO#k%caP%caR%ca[%caa%caj%car%ca!S%ca!]%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%ca#`%cav%ca!_%ca%i%ca!g%ca~P#/sO#k}aP}a[}aa}aj}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a'z}a(a}a(r}a!k}a!Y}a'w}av}a!_}a%i}a!g}a~P$(cO#k$saP$saR$sa[$saa$saj$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa'z$sa(a$sa(r$sa!k$sa!Y$sa'w$sav$sa!_$sa%i$sa!g$sa~P$)_O#k$uaP$uaR$ua[$uaa$uaj$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua'z$ua(a$ua(r$ua!k$ua!Y$ua'w$uav$ua!_$ua%i$ua!g$ua~P$*QO#k%TaP%TaR%Ta[%Taa%Taj%Tar%Ta!S%Ta!]%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta'z%Ta(a%Ta(r%Ta!k%Ta!Y%Ta'w%Ta#`%Tav%Ta!_%Ta%i%Ta!g%Ta~P#/sOa#cq!]#cq'z#cq'w#cq!Y#cq!k#cqv#cq!_#cq%i#cq!g#cq~P!:tO![3lO!]'YX!k'YX~P%[O!].tO!k(ka~O!].tO!k(ka~P!:tO!Y3oO~O$O!na!^!na~PKlO$O!ja!]!ja!^!ja~P#BwO$O!ra!^!ra~P!=[O$O!ta!^!ta~P!?rOg']X!]']X~P!,TO!]/POg(pa~OSfO!_4TO$d4UO~O!^4YO~Ov4ZO~P#/sOa$mq!]$mq'z$mq'w$mq!Y$mq!k$mqv$mq!_$mq%i$mq!g$mq~P!:tO!Y4]O~P!&zO!S4^O~O!Q*OO'y*PO(z%POn'ia(y'ia!]'ia#`'ia~Og'ia$O'ia~P%-fO!Q*OO'y*POn'ka(y'ka(z'ka!]'ka#`'ka~Og'ka$O'ka~P%.XO(r$YO~P#/sO!YfX!Y$zX!]fX!]$zX!g%RX#`fX~P!0SOp%WO(T=WO~P!1uOp4bO!S%hO![4aO!_%iO(T%gO!]'eX!k'eX~O!]/pO!k)Oa~O!]/pO!g#vO!k)Oa~O!]/pO!g#vO(r'pO!k)Oa~Og$|i!]$|i#`$|i$O$|i~P!1WO![4jO!Y'gX!]'gX~P!3tO!]/yO!Y)Pa~O!]/yO!Y)Pa~P#/sOP]XR]X[]Xj]Xr]X!Q]X!S]X!Y]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~Oj%YX!g%YX~P%2OOj4oO!g#vO~Oh%VO!g#vO!l%eO~Oh%VOr4tO!l%eO(r'pO~Or4yO!g#vO(r'pO~Os!nO!S4zO(VTO(YUO(e!mO~O(y$}On%ai!Q%ai'y%ai(z%ai!]%ai#`%ai~Og%ai$O%ai~P%5oO(z%POn%ci!Q%ci'y%ci(y%ci!]%ci#`%ci~Og%ci$O%ci~P%6bOg(_i!](_i~P!1WO#`5QOg(_i!](_i~P!1WO!k5VO~Oa$oq!]$oq'z$oq'w$oq!Y$oq!k$oqv$oq!_$oq%i$oq!g$oq~P!:tO!Y5ZO~O!]5[O!_)QX~P#/sOa$zX!_$zX%^]X'z$zX!]$zX~P!0SO%^5_OaoX!_oX'zoX!]oX~P$#OOp5`O(T#nO~O%^5_O~Ob5fO%j5gO(T+qO(VTO(YUO!]'tX!^'tX~O!]1TO!^)Xa~O[5kO~O`5lO~O[5pO~Oa%nO'z%nO~P#/sO!]5uO#`5wO!^)UX~O!^5xO~Or6OOs!nO!S*iO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!pO#W!pO#X!pO#[5}O#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O!^5|O~P%;eOn6TO!_1oO%i6SO~Oh%VOn6TO!_1oO%i6SO~Ob6[O(T#nO(VTO(YUO!]'sX!^'sX~O!]1zO!^)Va~O(VTO(YUO(e6^O~O`6bO~Oj6eO&[6fO~PNXO!k6gO~P%[Oa6iO~Oa6iO~P%[Ob2bO!^6nO&j2aO~P`O!g6pO~O!g6rOh(ji!](ji!^(ji!g(ji!l(jir(ji(r(ji~O!]#hi!^#hi~P#BwO#`6sO!]#hi!^#hi~O!]!ai!^!ai~P#BwOa%nO#`6|O'z%nO~Oa%nO!g#vO#`6|O'z%nO~O!](tq!k(tqa(tq'z(tq~P!:tO!](jO!k(sq~O!S%hO!_%iO#j7TO(T%gO~O!_'`O%i7WO~On7[O!_'`O%i7WO~O#k'iaP'iaR'ia['iaa'iaj'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia'z'ia(a'ia(r'ia!k'ia!Y'ia'w'iav'ia!_'ia%i'ia!g'ia~P%-fO#k'kaP'kaR'ka['kaa'kaj'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka'z'ka(a'ka(r'ka!k'ka!Y'ka'w'kav'ka!_'ka%i'ka!g'ka~P%.XO#k$|iP$|iR$|i[$|ia$|ij$|ir$|i!S$|i!]$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i'z$|i(a$|i(r$|i!k$|i!Y$|i'w$|i#`$|iv$|i!_$|i%i$|i!g$|i~P#/sO#k%aiP%aiR%ai[%aia%aij%air%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai'z%ai(a%ai(r%ai!k%ai!Y%ai'w%aiv%ai!_%ai%i%ai!g%ai~P%5oO#k%ciP%ciR%ci[%cia%cij%cir%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci'z%ci(a%ci(r%ci!k%ci!Y%ci'w%civ%ci!_%ci%i%ci!g%ci~P%6bO!]'Ya!k'Ya~P!:tO!].tO!k(ki~O$O#ci!]#ci!^#ci~P#BwOP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mij#mir#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#n#mi~P%NdO#n<_O~P%NdOP$[OR#zOr<kO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO[#mij#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#r#mi~P&!lO#r<aO~P&!lOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO(aVO#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#v#mi~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO(aVO(z#}O#z#mi#{#mi$O#mi(r#mi(y#mi!]#mi!^#mi~O#x<eO~P&&uO#x#mi~P&&uO#v<cO~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO(aVO(y#|O(z#}O#{#mi$O#mi(r#mi!]#mi!^#mi~O#z#mi~P&)UO#z<gO~P&)UOa#|y!]#|y'z#|y'w#|y!Y#|y!k#|yv#|y!_#|y%i#|y!g#|y~P!:tO[#mij#mir#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi!]#mi!^#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO(y#mi(z#mi~P&,QOn>^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOr<QO!g#vO(r'pO~Ov(fX~P1qO!Q%rO~P!)[O(U!lO~P!)[O!YfX!]fX#`fX~P%2OOP]XR]X[]Xj]Xr]X!Q]X!S]X!]]X!]fX!l]X!p]X#R]X#S]X#`]X#`fX#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~O!gfX!k]X!kfX(rfX~P'LTOP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_XO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]<iO!^$qa~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<tO!S${O!_$|O!i>WO!l$xO#j<zO$W%`O$t<vO$v<xO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Ol)dO~P(!yOr!eX(r!eX~P#!iOr(jX(r(jX~P##[O!^]X!^fX~P'LTO!YfX!Y$zX!]fX!]$zX#`fX~P!0SO#k<^O~O!g#vO#k<^O~O#`<nO~Oj<bO~O#`=OO!](wX!^(wX~O#`<nO!](uX!^(uX~O#k=PO~Og=RO~P!1WO#k=XO~O#k=YO~Og=RO(T&ZO~O!g#vO#k=ZO~O!g#vO#k=PO~O$O=[O~P#BwO#k=]O~O#k=^O~O#k=cO~O#k=dO~O#k=eO~O#k=fO~O$O=gO~P!1WO$O=hO~P!1WOl=sO~P7eOk#S#T#U#W#X#[#i#j#u$n$t$v$y%]%^%h%i%j%q%s%v%w%y%{~(OT#o!X'|(U#ps#n#qr!Q'}$]'}(T$_(e~",goto:"$9Y)]PPPPPP)^PP)aP)rP+W/]PPPP6mPP7TPP=QPPP@tPA^PA^PPPA^PCfPA^PA^PA^PCjPCoPD^PIWPPPI[PPPPI[L_PPPLeMVPI[PI[PP! eI[PPPI[PI[P!#lI[P!'S!(X!(bP!)U!)Y!)U!,gPPPPPPP!-W!(XPP!-h!/YP!2iI[I[!2n!5z!:h!:h!>gPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#<e#<k#<n)aP#<q)aP#<z#<z#<zP)aP)aP)aP)aPP)aP#=Q#=TP#=T)aP#=XP#=[P)aP)aP)aP)aP)aP)a)aPP#=b#=h#=s#=y#>P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{<Y%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_S#q]<V!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU+P%]<s<tQ+t&PQ,f&gQ,m&oQ0x+gQ0}+iQ1Y+uQ2R,kQ3`.gQ5`0|Q5f1TQ6[1zQ7Y3dQ8`5gR9e7['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>R>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o>U<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hW%Ti%V*y>PS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^T)z$u){V+P%]<s<tW'[!e%i*Z-`S(}#y#zQ+c%rQ+y&SS.b(m(nQ1j,XQ5T0kR8i5u'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vT#TV#U'RkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vS(o#p'iQ)P#zS+b%q.|S.c(n(pR3^.d'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS#q]<VQ&t!XQ&u!YQ&w![Q&x!]R2Z,vQ'a!hQ+e%wQ-h'cS.e(q+hQ2x-gW3b.h.i0w0yQ6w2yW7U3_3a3e5^U9a7V7X7ZU:q9c9d9fS;b:p:sQ;p;cR;x;qU!wQ'`-eT5y1o5{!Q_OXZ`st!V!Z#d#h%e%m&i&k&r&t&u&w(j,s,x.[2[2_]!pQ!r'`-e1o5{T#q]<V%^{OPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S(}#y#zS.b(m(n!s=l$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uS<P;|;}R<S<QQ#wbQ's!uS(e#g2US(g#m+WQ+Y%fQ+j%xQ+p&OU-r'k't'wQ.W(fU/r*]*`/wQ0S*jQ0V*lQ1O+kQ1u,aS3R-s-vQ3Z.`S4e/s/tQ4n0PS4q0R0^Q4u0WQ6W1vQ7P3US7q4`4bQ7u4fU7|4r4x4{Q8P4wQ8v6XS9q7r7sQ9u7yQ9}8RQ:O8SQ:c8wQ:y9rS:z9v9xQ;S:QQ;^:dS;f:{;PS;r;g;hS;z;s;uS<O;{;}Q<R<PQ<T<SQ=o=jQ={=tR=|=uV!wQ'`-e%^aOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S#wz!j!r=i$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!P<d)^)q-Z.|2k2n3p3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!f$Vc#Y%q(S(Y(t(y)W)X)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!T<f)^)q-Z.|2k2n3p3v3w3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!^$Zc#Y%q(S(Y(t(y)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<WQ4_/kz>S)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^Q+T%aQ/c*Oo4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!U$yi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n=r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hQ=w>TQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hnoOXst!Z#d%m&r&t&u&w,s,x2[2_S*f${*YQ-R'OQ-S'QR4i/y%[%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f<o#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<p<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!d=S(u)c*[*e.j.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f<q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!h=U(u)c*[*e.k.l.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|<jQ-|<WR<j)qQ/q*]W4c/q4d7t9sU4d/r/s/tS7t4e4fR9s7u$e*Q$v(u)c)e*[*e*t*u+Q+R+V.l.m.o.p.q/_/g/i/k/v/|0d0e0v1e3f3g3h3}4R4[4g4h4l4|5O5R5S5W5r7]7^7_7`7e7f7h7i7j7p7w7z8U8X8Z9h9i9j9t9|:R:S:t:u:v:w:x:};R;e;j;v;y=p=}>O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.l<oQ.m<qQ.o<uQ.p<wQ.q<yQ/_)yQ/g*RQ/i*TQ/k*VQ/v*aS/|*g/mQ0d*wQ0e*xl0v+f,V.f1i1q3c6S7W8q9b:`:r;[;dQ1e,SQ3f=SQ3g=UQ3h=XS3}<l<mQ4R/PS4[/d4^Q4g/xQ4h/yQ4l/{Q4|0`Q5O0bQ5R0iQ5S0jQ5W0oQ5r1fQ7]=]Q7^=_Q7_=aQ7`=cQ7e<pQ7f<rQ7h<vQ7i<xQ7j<zQ7p4_Q7w4jQ7z4oQ8U5QQ8X5[Q8Z5_Q9h=YQ9i=TQ9j=VQ9t7vQ9|8QQ:R8VQ:S8[Q:t=^Q:u=`Q:v=bQ:w=dQ:x9pQ:}9yQ;R:PQ;e=gQ;j;QQ;v;kQ;y=hQ=p>PQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.n<sR7g<tnpOXst!Z#d%m&r&t&u&w,s,x2[2_Q!fPS#fZ#oQ&|!`W'h!o*i0]4zQ(P#SQ)Q#{Q)r$nS,l&k&nQ,q&oQ-O&{S-T'T/nQ-g'bQ.x)OQ/[)sQ0s+]Q0y+gQ2W,pQ2y-iQ3a.gQ4W/VQ5U0lQ6Q1rQ6c2SQ6d2TQ6h2VQ6j2XQ6o2aQ7Z3dQ7m4TQ8s6TQ9P6eQ9Q6fQ9S6iQ9f7[Q:a8tR:k9T#[cOPXZst!Z!`!o#d#o#{%m&k&n&o&r&t&u&w&{'T'b)O*i+]+g,p,s,x-i.g/n0]0l1r2S2T2V2X2[2_2a3d4z6T6e6f6i7[8t9TQ#YWQ#eYQ%quQ%svS%uw!gS(S#W(VQ(Y#ZQ(t#uQ(y#xQ)R$OQ)S$PQ)T$QQ)U$RQ)V$SQ)W$TQ)X$UQ)Y$VQ)Z$WQ)[$XQ)^$ZQ)`$_Q)b$aQ)g$eW)q$n)s/V4TQ+d%tQ+x&RS-Z'X2pQ-x'rS-}(T.PQ.S(]Q.U(dQ.s(xQ.v(zQ.z<UQ.|<XQ.}<YQ/O<]Q/b)}Q0p+XQ2k-UQ2n-XQ3O-qQ3V.VQ3k.tQ3p<^Q3q<_Q3r<`Q3s<aQ3t<bQ3u<cQ3v<dQ3w<eQ3x<fQ3y<gQ3z<hQ3{.{Q3|<kQ4P<nQ4Q<{Q4X<iQ5X0rQ5c1SQ6u=OQ6{3QQ7Q3WQ7a3lQ7b=PQ7k=RQ7l=ZQ8k5wQ9X6sQ9]6|Q9g=[Q9m=eQ9n=fQ:o9_Q;W:ZQ;`:mQ<W#SR=v>SR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i<VR)f$dY!uQ'`-e1o5{Q'k!rS'u!v!yS'w!z5}S-t'l'mQ-v'nR3T-uT#kZ%eS#jZ%eS%km,oU(g#h#i#lS.Y(h(iQ.^(jQ0t+^Q3Y.ZU3Z.[.]._S7S3[3]R9`7Td#^W#W#Z%h(T(^*Y+Z.T/mr#gZm#h#i#l%e(h(i(j+^.Z.[.]._3[3]7TS*]$x*bQ/t*^Q2U,oQ2l-VQ4`/pQ6q2dQ7s4aQ9W6rT=m'X+[V#aW%h*YU#`W%h*YS(U#W(^U(Z#Z+Z/mS-['X+[T.O(T.TV'^!e%i*ZQ$lfR)x$qT)m$l)nR4V/UT*_$x*bT*h${*YQ0w+fQ1g,VQ3_.fQ5t1iQ6P1qQ7X3cQ8r6SQ9c7WQ:^8qQ:p9bQ;Z:`Q;c:rQ;n;[R;q;dnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&l!VR,h&itmOXst!U!V!Z#d%m&i&r&t&u&w,s,x2[2_R,o&oT%lm,oR1k,XR,g&gQ&U|S+}&V&WR1^,OR+s&PT&p!W&sT&q!W&sT2^,x2_",nodeNames:"⚠ ArithOp ArithOp ?. JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:trackNewline,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[jsHighlight],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$<r#p#q$=h#q#r$>x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__WS$i&j(Wp(Z!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]WS$i&j(Z!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S%9[C}i$i&j(o%1l(Wp(Z!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr%9[EoP;=`<%lCr07[FRk$i&j(Wp(Z!b$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$i&j(Wp(Z!b$]#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv07[JPP;=`<%lEr(KWJ_`$i&j(Wp(Z!b#p(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWKl_$i&j$Q(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,#xLva(z+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWNW`$i&j#z(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At! c_(Y';W$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$i&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$d`$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(WpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$d`(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b/5|!'t_!l/.^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&U!)O_!k!Lf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z-!n!*[b$i&j(Wp(Z!b(U%&f#q(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW!+o`$i&j(Wp(Z!b#n(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;x!,|`$i&j(Wp(Z!br+4YOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,$U!.Z_!]+Jf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!/ec$i&j(Wp(Z!b!Q.2^OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!0ya$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!2Z_![!L^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!3eg$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!5Vg$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!6wc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!8_c$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!9uf$i&j(Wp(Z!b#o(ChOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcxz!;Zz{#-}{!P!;Z!P!Q#/d!Q!^!;Z!^!_#(i!_!`#7S!`!a#8i!a!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z?O!;fb$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z>^!<w`$i&j(Z!b!X7`OY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eq!Q!^!<n!^!_!Gr!_!}!<n!}#O!KS#O#P!Dy#P#o!<n#o#p!Gr#p;'S!<n;'S;=`!L]<%lO!<n<z!>Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!?Td$i&j!X7`O!^&c!_#W&c#W#X!>|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c<z!C][$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#O!CW#O#P!DR#P#Q!=y#Q#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DWX$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DvP;=`<%l!CW<z!EOX$i&jOY!=yYZ&cZ!^!=y!^!_!@c!_#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!EnP;=`<%l!=y>^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!<n#Q#o!KS#o#p!JU#p;'S!KS;'S;=`!LV<%lO!KS>^!LYP;=`<%l!KS>^!L`P;=`<%l!<n=l!Ll`$i&j(Wp!X7`OY!LcYZ&cZr!Lcrs!=ys!P!Lc!P!Q!Mn!Q!^!Lc!^!_# o!_!}!Lc!}#O#%P#O#P!Dy#P#o!Lc#o#p# o#p;'S!Lc;'S;=`#&Y<%lO!Lc=l!Mwl$i&j(Wp!X7`OY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#W(r#W#X!Mn#X#Z(r#Z#[!Mn#[#](r#]#^!Mn#^#a(r#a#b!Mn#b#g(r#g#h!Mn#h#i(r#i#j!Mn#j#k!Mn#k#m(r#m#n!Mn#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r8Q# vZ(Wp!X7`OY# oZr# ors!@cs!P# o!P!Q#!i!Q!}# o!}#O#$R#O#P!Bq#P;'S# o;'S;=`#$y<%lO# o8Q#!pe(Wp!X7`OY)rZr)rs#O)r#P#W)r#W#X#!i#X#Z)r#Z#[#!i#[#])r#]#^#!i#^#a)r#a#b#!i#b#g)r#g#h#!i#h#i)r#i#j#!i#j#k#!i#k#m)r#m#n#!i#n;'S)r;'S;=`*Z<%lO)r8Q#$WX(WpOY#$RZr#$Rrs!Ars#O#$R#O#P!B[#P#Q# o#Q;'S#$R;'S;=`#$s<%lO#$R8Q#$vP;=`<%l#$R8Q#$|P;=`<%l# o=l#%W^$i&j(WpOY#%PYZ&cZr#%Prs!CWs!^#%P!^!_#$R!_#O#%P#O#P!DR#P#Q!Lc#Q#o#%P#o#p#$R#p;'S#%P;'S;=`#&S<%lO#%P=l#&VP;=`<%l#%P=l#&]P;=`<%l!Lc?O#&kn$i&j(Wp(Z!b!X7`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#W%Z#W#X#&`#X#Z%Z#Z#[#&`#[#]%Z#]#^#&`#^#a%Z#a#b#&`#b#g%Z#g#h#&`#h#i%Z#i#j#&`#j#k#&`#k#m%Z#m#n#&`#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z9d#(r](Wp(Z!b!X7`OY#(iZr#(irs!Grsw#(iwx# ox!P#(i!P!Q#)k!Q!}#(i!}#O#+`#O#P!Bq#P;'S#(i;'S;=`#,`<%lO#(i9d#)th(Wp(Z!b!X7`OY*gZr*grs'}sw*gwx)rx#O*g#P#W*g#W#X#)k#X#Z*g#Z#[#)k#[#]*g#]#^#)k#^#a*g#a#b#)k#b#g*g#g#h#)k#h#i*g#i#j#)k#j#k#)k#k#m*g#m#n#)k#n;'S*g;'S;=`+Z<%lO*g9d#+gZ(Wp(Z!bOY#+`Zr#+`rs!JUsw#+`wx#$Rx#O#+`#O#P!B[#P#Q#(i#Q;'S#+`;'S;=`#,Y<%lO#+`9d#,]P;=`<%l#+`9d#,cP;=`<%l#(i?O#,o`$i&j(Wp(Z!bOY#,fYZ&cZr#,frs!KSsw#,fwx#%Px!^#,f!^!_#+`!_#O#,f#O#P!DR#P#Q!;Z#Q#o#,f#o#p#+`#p;'S#,f;'S;=`#-q<%lO#,f?O#-tP;=`<%l#,f?O#-zP;=`<%l!;Z07[#.[b$i&j(Wp(Z!b(O0/l!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z07[#/o_$i&j(Wp(Z!bT0/lOY#/dYZ&cZr#/drs#0nsw#/dwx#4Ox!^#/d!^!_#5}!_#O#/d#O#P#1p#P#o#/d#o#p#5}#p;'S#/d;'S;=`#6|<%lO#/d06j#0w]$i&j(Z!bT0/lOY#0nYZ&cZw#0nwx#1px!^#0n!^!_#3R!_#O#0n#O#P#1p#P#o#0n#o#p#3R#p;'S#0n;'S;=`#3x<%lO#0n05W#1wX$i&jT0/lOY#1pYZ&cZ!^#1p!^!_#2d!_#o#1p#o#p#2d#p;'S#1p;'S;=`#2{<%lO#1p0/l#2iST0/lOY#2dZ;'S#2d;'S;=`#2u<%lO#2d0/l#2xP;=`<%l#2d05W#3OP;=`<%l#1p01O#3YW(Z!bT0/lOY#3RZw#3Rwx#2dx#O#3R#O#P#2d#P;'S#3R;'S;=`#3r<%lO#3R01O#3uP;=`<%l#3R06j#3{P;=`<%l#0n05x#4X]$i&j(WpT0/lOY#4OYZ&cZr#4Ors#1ps!^#4O!^!_#5Q!_#O#4O#O#P#1p#P#o#4O#o#p#5Q#p;'S#4O;'S;=`#5w<%lO#4O00^#5XW(WpT0/lOY#5QZr#5Qrs#2ds#O#5Q#O#P#2d#P;'S#5Q;'S;=`#5q<%lO#5Q00^#5tP;=`<%l#5Q05x#5zP;=`<%l#4O01p#6WY(Wp(Z!bT0/lOY#5}Zr#5}rs#3Rsw#5}wx#5Qx#O#5}#O#P#2d#P;'S#5};'S;=`#6v<%lO#5}01p#6yP;=`<%l#5}07[#7PP;=`<%l#/d)3h#7ab$i&j$Q(Ch(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;ZAt#8vb$Z#t$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z'Ad#:Zp$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#U%Z#U#V#?i#V#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#<jk$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-<U(Wp(Z!b$n7`OY*gZr*grs'}sw*gwx)rx!P*g!P!Q#MO!Q!^*g!^!_#Mt!_!`$ f!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#MXX$k&j(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El#M}Z#r(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Np!`#O*g#P;'S*g;'S;=`+Z<%lO*g(El#NyX$Q(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El$ oX#s(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g*)x$!ga#`*!Y$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$#l!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(K[$#w_#k(Cl$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x$%Vag!*r#s(Ch$f#|$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$&[!`!a$'f!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$&g_#s(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$'qa#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$(v!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$)R`#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(Kd$*`a(r(Ct$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!a%Z!a!b$+e!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$+p`$i&j#{(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`$,}_!|$Ip$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f$.X_!S0,v$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/]Z$i&jO!^$0O!^!_$0f!_#i$0O#i#j$0k#j#l$0O#l#m$2^#m#o$0O#o#p$0f#p;'S$0O;'S;=`$4i<%lO$0O(n$0VT_#S$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0kO_#S(n$0p[$i&jO!Q&c!Q![$1f![!^&c!_!c&c!c!i$1f!i#T&c#T#Z$1f#Z#o&c#o#p$3|#p;'S&c;'S;=`&w<%lO&c(n$1kZ$i&jO!Q&c!Q![$2^![!^&c!_!c&c!c!i$2^!i#T&c#T#Z$2^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2cZ$i&jO!Q&c!Q![$3U![!^&c!_!c&c!c!i$3U!i#T&c#T#Z$3U#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3ZZ$i&jO!Q&c!Q![$0O![!^&c!_!c&c!c!i$0O!i#T&c#T#Z$0O#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$4PR!Q![$4Y!c!i$4Y#T#Z$4Y#S$4]S!Q![$4Y!c!i$4Y#T#Z$4Y#q#r$0f(n$4lP;=`<%l$0O#1[$4z_!Y#)l$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$6U`#x(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;p$7c_$i&j(Wp(Z!b(a+4QOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$8qk$i&j(Wp(Z!b(T,2j$_#t(e$I[OY%ZYZ&cZr%Zrs&}st%Ztu$8buw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$8b![!^%Z!^!_*g!_!c%Z!c!}$8b!}#O%Z#O#P&c#P#R%Z#R#S$8b#S#T%Z#T#o$8b#o#p*g#p$g%Z$g;'S$8b;'S;=`$<l<%lO$8b+d$:qk$i&j(Wp(Z!b$_#tOY%ZYZ&cZr%Zrs&}st%Ztu$:fuw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$:f![!^%Z!^!_*g!_!c%Z!c!}$:f!}#O%Z#O#P&c#P#R%Z#R#S$:f#S#T%Z#T#o$:f#o#p*g#p$g%Z$g;'S$:f;'S;=`$<f<%lO$:f+d$<iP;=`<%l$:f07[$<oP;=`<%l$8b#Jf$<{X!_#Hb(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g,#x$=sa(y+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+e#q;'S%Z;'S;=`+a<%lO%Z)>v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[noSemicolon,noSemicolonType,operatorToken,jsx,2,3,4,5,6,7,8,9,10,11,12,13,14,insertSemicolon,new LocalTokenGroup("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new LocalTokenGroup("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{"Script":[0,7],"SingleExpression":[1,276],"SingleClassItem":[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{"80":1,"82":1,"94":1,"169":1,"199":1},specialized:[{term:327,get:value=>spec_identifier$2[value]||-1},{term:343,get:value=>spec_word[value]||-1},{term:95,get:value=>spec_LessThan[value]||-1}],tokenPrec:15201});const snippets=[snippetCompletion("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),snippetCompletion("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),snippetCompletion("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),snippetCompletion("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),snippetCompletion("try {\n ${}\n} catch (${error}) {\n ${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),snippetCompletion("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),snippetCompletion("if (${}) {\n ${}\n} else {\n ${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),snippetCompletion("class ${name} {\n constructor(${params}) {\n ${}\n }\n}",{label:"class",detail:"definition",type:"keyword"}),snippetCompletion('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),snippetCompletion('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})];const typescriptSnippets=snippets.concat([snippetCompletion("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),snippetCompletion("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),snippetCompletion("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]);const cache=new NodeWeakMap;const ScopeNodes=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function defID(type){return(node,def)=>{let id=node.node.getChild("VariableDefinition");if(id)def(id,type);return true}}const functionContext=["FunctionDeclaration"];const gatherCompletions={FunctionDeclaration:defID("function"),ClassDeclaration:defID("class"),ClassExpression:()=>true,EnumDeclaration:defID("constant"),TypeAliasDeclaration:defID("type"),NamespaceDeclaration:defID("namespace"),VariableDefinition(node,def){if(!node.matchContext(functionContext))def(node,"variable")},TypeDefinition(node,def){def(node,"type")},__proto__:null};function getScope(doc,node){let cached=cache.get(node);if(cached)return cached;let completions=[],top=true;function def(node2,type){let name=doc.sliceString(node2.from,node2.to);completions.push({label:name,type})}node.cursor(IterMode.IncludeAnonymous).iterate(node2=>{if(top){top=false}else if(node2.name){let gather=gatherCompletions[node2.name];if(gather&&gather(node2,def)||ScopeNodes.has(node2.name))return false}else if(node2.to-node2.from>8192){for(let c of getScope(doc,node2.node))completions.push(c);return false}});cache.set(node,completions);return completions}const Identifier=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/;const dontComplete=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function localCompletionSource(context){let inner=syntaxTree(context.state).resolveInner(context.pos,-1);if(dontComplete.indexOf(inner.name)>-1)return null;let isWord=inner.name=="VariableName"||inner.to-inner.from<20&&Identifier.test(context.state.sliceDoc(inner.from,inner.to));if(!isWord&&!context.explicit)return null;let options=[];for(let pos=inner;pos;pos=pos.parent){if(ScopeNodes.has(pos.name))options=options.concat(getScope(context.state.doc,pos))}return{options,from:isWord?inner.from:context.pos,validFor:Identifier}}const javascriptLanguage=LRLanguage.define({name:"javascript",parser:parser$5.configure({props:[indentNodeProp.add({IfStatement:continuedIndent({except:/^\s*({|else\b)/}),TryStatement:continuedIndent({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:flatIndent,SwitchBody:context=>{let after=context.textAfter,closed=/^\s*\}/.test(after),isCase=/^\s*(case|default)\b/.test(after);return context.baseIndent+(closed?0:isCase?1:2)*context.unit},Block:delimitedIndent({closing:"}"}),ArrowFunction:cx=>cx.baseIndent+cx.unit,"TemplateString BlockComment":()=>null,"Statement Property":continuedIndent({except:/^\s*{/}),JSXElement(context){let closed=/^\s*<\//.test(context.textAfter);return context.lineIndent(context.node.from)+(closed?0:context.unit)},JSXEscape(context){let closed=/\s*\}/.test(context.textAfter);return context.lineIndent(context.node.from)+(closed?0:context.unit)},"JSXOpenTag JSXSelfClosingTag"(context){return context.column(context.node.from)+context.unit}}),foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":foldInside,BlockComment(tree){return{from:tree.from+2,to:tree.to-2}},JSXElement(tree){let open=tree.firstChild;if(!open||open.name=="JSXSelfClosingTag")return null;let close=tree.lastChild;return{from:open.to,to:close.type.isError?tree.to:close.from}},"JSXSelfClosingTag JSXOpenTag"(tree){var _a;let name=(_a=tree.firstChild)===null||_a===void 0?void 0:_a.nextSibling,close=tree.lastChild;if(!name||name.type.isError)return null;return{from:name.to,to:close.type.isError?tree.to:close.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}});const jsxSublanguage={test:node=>/^JSX/.test(node.name),facet:defineLanguageFacet({commentTokens:{block:{open:"{/*",close:"*/}"}}})};const typescriptLanguage=javascriptLanguage.configure({dialect:"ts"},"typescript");const jsxLanguage=javascriptLanguage.configure({dialect:"jsx",props:[sublanguageProp.add(n=>n.isTop?[jsxSublanguage]:void 0)]});const tsxLanguage=javascriptLanguage.configure({dialect:"jsx ts",props:[sublanguageProp.add(n=>n.isTop?[jsxSublanguage]:void 0)]},"typescript");let kwCompletion=name=>({label:name,type:"keyword"});const keywords="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(kwCompletion);const typescriptKeywords=keywords.concat(["declare","implements","private","protected","public"].map(kwCompletion));function javascript(config={}){let lang=config.jsx?config.typescript?tsxLanguage:jsxLanguage:config.typescript?typescriptLanguage:javascriptLanguage;let completions=config.typescript?typescriptSnippets.concat(typescriptKeywords):snippets.concat(keywords);return new LanguageSupport(lang,[javascriptLanguage.data.of({autocomplete:ifNotIn(dontComplete,completeFromList(completions))}),javascriptLanguage.data.of({autocomplete:localCompletionSource}),config.jsx?autoCloseTags$1:[]])}function findOpenTag(node){for(;;){if(node.name=="JSXOpenTag"||node.name=="JSXSelfClosingTag"||node.name=="JSXFragmentTag")return node;if(node.name=="JSXEscape"||!node.parent)return null;node=node.parent}}function elementName$1(doc,tree,max=doc.length){for(let ch=tree===null||tree===void 0?void 0:tree.firstChild;ch;ch=ch.nextSibling){if(ch.name=="JSXIdentifier"||ch.name=="JSXBuiltin"||ch.name=="JSXNamespacedName"||ch.name=="JSXMemberExpression")return doc.sliceString(ch.from,Math.min(ch.to,max))}return""}const android=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent);const autoCloseTags$1=EditorView.inputHandler.of((view,from,to,text,defaultInsert)=>{if((android?view.composing:view.compositionStarted)||view.state.readOnly||from!=to||text!=">"&&text!="/"||!javascriptLanguage.isActiveAt(view.state,from,-1))return false;let base=defaultInsert(),{state}=base;let closeTags=state.changeByRange(range=>{var _a;let{head}=range,around=syntaxTree(state).resolveInner(head-1,-1),name;if(around.name=="JSXStartTag")around=around.parent;if(state.doc.sliceString(head-1,head)!=text||around.name=="JSXAttributeValue"&&around.to>head);else if(text==">"&&around.name=="JSXFragmentTag"){return{range,changes:{from:head,insert:`</>`}}}else if(text=="/"&&around.name=="JSXStartCloseTag"){let empty2=around.parent,base2=empty2.parent;if(base2&&empty2.from==head-2&&((name=elementName$1(state.doc,base2.firstChild,head))||((_a=base2.firstChild)===null||_a===void 0?void 0:_a.name)=="JSXFragmentTag")){let insert=`${name}>`;return{range:EditorSelection.cursor(head+insert.length,-1),changes:{from:head,insert}}}}else if(text==">"){let openTag=findOpenTag(around);if(openTag&&openTag.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(state.doc.sliceString(head,head+2))&&(name=elementName$1(state.doc,openTag,head)))return{range,changes:{from:head,insert:`</${name}>`}}}return{range}});if(closeTags.changes.empty)return false;view.dispatch([base,state.update(closeTags,{userEvent:"input.complete",scrollIntoView:true})]);return true});const scriptText=55;const StartCloseScriptTag=1;const styleText=56;const StartCloseStyleTag=2;const textareaText=57;const StartCloseTextareaTag=3;const EndTag=4;const SelfClosingEndTag=5;const StartTag=6;const StartScriptTag=7;const StartStyleTag=8;const StartTextareaTag=9;const StartSelfClosingTag=10;const StartCloseTag=11;const NoMatchStartCloseTag=12;const MismatchedStartCloseTag=13;const missingCloseTag=58;const IncompleteTag=14;const IncompleteCloseTag=15;const commentContent$1=59;const Element$1=21;const TagName=23;const Attribute=24;const AttributeName=25;const AttributeValue=27;const UnquotedAttributeValue=28;const ScriptText=29;const StyleText=32;const TextareaText=35;const OpenTag=37;const CloseTag=38;const Dialect_noMatch=0;const Dialect_selfClosing=1;const selfClosers$1={area:true,base:true,br:true,col:true,command:true,embed:true,frame:true,hr:true,img:true,input:true,keygen:true,link:true,meta:true,param:true,source:true,track:true,wbr:true,menuitem:true};const implicitlyClosed={dd:true,li:true,optgroup:true,option:true,p:true,rp:true,rt:true,tbody:true,td:true,tfoot:true,th:true,tr:true};const closeOnOpen={dd:{dd:true,dt:true},dt:{dd:true,dt:true},li:{li:true},option:{option:true,optgroup:true},optgroup:{optgroup:true},p:{address:true,article:true,aside:true,blockquote:true,dir:true,div:true,dl:true,fieldset:true,footer:true,form:true,h1:true,h2:true,h3:true,h4:true,h5:true,h6:true,header:true,hgroup:true,hr:true,menu:true,nav:true,ol:true,p:true,pre:true,section:true,table:true,ul:true},rp:{rp:true,rt:true},rt:{rp:true,rt:true},tbody:{tbody:true,tfoot:true},td:{td:true,th:true},tfoot:{tbody:true},th:{td:true,th:true},thead:{tbody:true,tfoot:true},tr:{tr:true}};function nameChar(ch){return ch==45||ch==46||ch==58||ch>=65&&ch<=90||ch==95||ch>=97&&ch<=122||ch>=161}let cachedName=null;let cachedInput=null;let cachedPos=0;function tagNameAfter(input,offset){let pos=input.pos+offset;if(cachedPos==pos&&cachedInput==input)return cachedName;let next=input.peek(offset),name="";for(;;){if(!nameChar(next))break;name+=String.fromCharCode(next);next=input.peek(++offset)}cachedInput=input;cachedPos=pos;return cachedName=name?name.toLowerCase():next==question||next==bang?void 0:null}const lessThan=60;const greaterThan=62;const slash=47;const question=63;const bang=33;const dash$1=45;function ElementContext(name,parent){this.name=name;this.parent=parent}const startTagTerms=[StartTag,StartSelfClosingTag,StartScriptTag,StartStyleTag,StartTextareaTag];const elementContext=new ContextTracker({start:null,shift(context,term,stack,input){return startTagTerms.indexOf(term)>-1?new ElementContext(tagNameAfter(input,1)||"",context):context},reduce(context,term){return term==Element$1&&context?context.parent:context},reuse(context,node,stack,input){let type=node.type.id;return type==StartTag||type==OpenTag?new ElementContext(tagNameAfter(input,1)||"",context):context},strict:false});const tagStart=new ExternalTokenizer((input,stack)=>{if(input.next!=lessThan){if(input.next<0&&stack.context)input.acceptToken(missingCloseTag);return}input.advance();let close=input.next==slash;if(close)input.advance();let name=tagNameAfter(input,0);if(name===void 0)return;if(!name)return input.acceptToken(close?IncompleteCloseTag:IncompleteTag);let parent=stack.context?stack.context.name:null;if(close){if(name==parent)return input.acceptToken(StartCloseTag);if(parent&&implicitlyClosed[parent])return input.acceptToken(missingCloseTag,-2);if(stack.dialectEnabled(Dialect_noMatch))return input.acceptToken(NoMatchStartCloseTag);for(let cx=stack.context;cx;cx=cx.parent)if(cx.name==name)return;input.acceptToken(MismatchedStartCloseTag)}else{if(name=="script")return input.acceptToken(StartScriptTag);if(name=="style")return input.acceptToken(StartStyleTag);if(name=="textarea")return input.acceptToken(StartTextareaTag);if(selfClosers$1.hasOwnProperty(name))return input.acceptToken(StartSelfClosingTag);if(parent&&closeOnOpen[parent]&&closeOnOpen[parent][name])input.acceptToken(missingCloseTag,-1);else input.acceptToken(StartTag)}},{contextual:true});const commentContent=new ExternalTokenizer(input=>{for(let dashes=0,i=0;;i++){if(input.next<0){if(i)input.acceptToken(commentContent$1);break}if(input.next==dash$1){dashes++}else if(input.next==greaterThan&&dashes>=2){if(i>=3)input.acceptToken(commentContent$1,-2);break}else{dashes=0}input.advance()}});function inForeignElement(context){for(;context;context=context.parent)if(context.name=="svg"||context.name=="math")return true;return false}const endTag=new ExternalTokenizer((input,stack)=>{if(input.next==slash&&input.peek(1)==greaterThan){let selfClosing=stack.dialectEnabled(Dialect_selfClosing)||inForeignElement(stack.context);input.acceptToken(selfClosing?SelfClosingEndTag:EndTag,2)}else if(input.next==greaterThan){input.acceptToken(EndTag,1)}});function contentTokenizer(tag,textToken,endToken){let lastState=2+tag.length;return new ExternalTokenizer(input=>{for(let state=0,matchedLen=0,i=0;;i++){if(input.next<0){if(i)input.acceptToken(textToken);break}if(state==0&&input.next==lessThan||state==1&&input.next==slash||state>=2&&state<lastState&&input.next==tag.charCodeAt(state-2)){state++;matchedLen++}else if(state==lastState&&input.next==greaterThan){if(i>matchedLen)input.acceptToken(textToken,-matchedLen);else input.acceptToken(endToken,-(matchedLen-2));break}else if((input.next==10||input.next==13)&&i){input.acceptToken(textToken,1);break}else{state=matchedLen=0}input.advance()}})}const scriptTokens=contentTokenizer("script",scriptText,StartCloseScriptTag);const styleTokens=contentTokenizer("style",styleText,StartCloseStyleTag);const textareaTokens=contentTokenizer("textarea",textareaText,StartCloseTextareaTag);const htmlHighlighting=styleTags({"Text RawText IncompleteTag IncompleteCloseTag":tags$1.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":tags$1.angleBracket,TagName:tags$1.tagName,"MismatchedCloseTag/TagName":[tags$1.tagName,tags$1.invalid],AttributeName:tags$1.attributeName,"AttributeValue UnquotedAttributeValue":tags$1.attributeValue,Is:tags$1.definitionOperator,"EntityReference CharacterReference":tags$1.character,Comment:tags$1.blockComment,ProcessingInst:tags$1.processingInstruction,DoctypeDecl:tags$1.documentMeta});const parser$4=LRParser.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:elementContext,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[htmlHighlighting],skippedNodes:[0],repeatNodeCount:9,tokenData:"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|caPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bXaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UVaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pTaPOv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!dpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({WaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!b`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!b`!dpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYlWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]`aP!b`!dp!_^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebiSlWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXiSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vciSaP!b`!dpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!ahaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WiiSlWd!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QciSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXjSaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[scriptTokens,styleTokens,textareaTokens,endTag,tagStart,commentContent,0,1,2,3,4,5],topRules:{"Document":[0,16]},dialects:{noMatch:0,selfClosing:515},tokenPrec:517});function getAttrs(openTag,input){let attrs=Object.create(null);for(let att of openTag.getChildren(Attribute)){let name=att.getChild(AttributeName),value=att.getChild(AttributeValue)||att.getChild(UnquotedAttributeValue);if(name)attrs[input.read(name.from,name.to)]=!value?"":value.type.id==AttributeValue?input.read(value.from+1,value.to-1):input.read(value.from,value.to)}return attrs}function findTagName(openTag,input){let tagNameNode=openTag.getChild(TagName);return tagNameNode?input.read(tagNameNode.from,tagNameNode.to):" "}function maybeNest(node,input,tags2){let attrs;for(let tag of tags2){if(!tag.attrs||tag.attrs(attrs||(attrs=getAttrs(node.node.parent.firstChild,input))))return{parser:tag.parser,bracketed:true}}return null}function configureNesting(tags2=[],attributes=[]){let script=[],style=[],textarea=[],other=[];for(let tag of tags2){let array=tag.tag=="script"?script:tag.tag=="style"?style:tag.tag=="textarea"?textarea:other;array.push(tag)}let attrs=attributes.length?Object.create(null):null;for(let attr of attributes)(attrs[attr.name]||(attrs[attr.name]=[])).push(attr);return parseMixed((node,input)=>{let id=node.type.id;if(id==ScriptText)return maybeNest(node,input,script);if(id==StyleText)return maybeNest(node,input,style);if(id==TextareaText)return maybeNest(node,input,textarea);if(id==Element$1&&other.length){let n=node.node,open=n.firstChild,tagName=open&&findTagName(open,input),attrs2;if(tagName)for(let tag of other){if(tag.tag==tagName&&(!tag.attrs||tag.attrs(attrs2||(attrs2=getAttrs(open,input))))){let close=n.lastChild;let to=close.type.id==CloseTag?close.from:n.to;if(to>open.to)return{parser:tag.parser,overlay:[{from:open.to,to}]}}}}if(attrs&&id==Attribute){let n=node.node,nameNode;if(nameNode=n.firstChild){let matches=attrs[input.read(nameNode.from,nameNode.to)];if(matches)for(let attr of matches){if(attr.tagName&&attr.tagName!=findTagName(n.parent,input))continue;let value=n.lastChild;if(value.type.id==AttributeValue){let from=value.from+1;let last=value.lastChild,to=value.to-(last&&last.isError?0:1);if(to>from)return{parser:attr.parser,overlay:[{from,to}],bracketed:true}}else if(value.type.id==UnquotedAttributeValue){return{parser:attr.parser,overlay:[{from:value.from,to:value.to}]}}}}}return null})}const descendantOp=148;const Unit=1;const identifier$2=149;const callee=150;const VariableName=2;const queryIdentifier=151;const queryVariableName=3;const QueryCallee=4;const space$1=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];const colon=58;const parenL=40;const underscore=95;const bracketL=91;const dash=45;const period=46;const hash=35;const percent=37;const ampersand=38;const backslash=92;const newline=10;const asterisk=42;function isAlpha(ch){return ch>=65&&ch<=90||ch>=97&&ch<=122||ch>=161}function isDigit(ch){return ch>=48&&ch<=57}function isHex(ch){return isDigit(ch)||ch>=97&&ch<=102||ch>=65&&ch<=70}const identifierTokens=(id,varName,callee2)=>(input,stack)=>{for(let inside=false,dashes=0,i=0;;i++){let{next}=input;if(isAlpha(next)||next==dash||next==underscore||inside&&isDigit(next)){if(!inside&&(next!=dash||i>0))inside=true;if(dashes===i&&next==dash)dashes++;input.advance()}else if(next==backslash&&input.peek(1)!=newline){input.advance();if(isHex(input.next)){do{input.advance()}while(isHex(input.next));if(input.next==32)input.advance()}else if(input.next>-1){input.advance()}inside=true}else{if(inside)input.acceptToken(dashes==2&&stack.canShift(VariableName)?varName:next==parenL?callee2:id);break}}};const identifiers=new ExternalTokenizer(identifierTokens(identifier$2,VariableName,callee),{contextual:true});const queryIdentifiers=new ExternalTokenizer(identifierTokens(queryIdentifier,queryVariableName,QueryCallee),{contextual:true});const descendant=new ExternalTokenizer(input=>{if(space$1.includes(input.peek(-1))){let{next}=input;if(isAlpha(next)||next==underscore||next==hash||next==period||next==asterisk||next==bracketL||next==colon&&isAlpha(input.peek(1))||next==dash||next==ampersand)input.acceptToken(descendantOp)}});const unitToken=new ExternalTokenizer(input=>{if(!space$1.includes(input.peek(-1))){let{next}=input;if(next==percent){input.advance();input.acceptToken(Unit)}if(isAlpha(next)){do{input.advance()}while(isAlpha(input.next)||isDigit(input.next));input.acceptToken(Unit)}}});const cssHighlighting=styleTags({"AtKeyword import charset namespace keyframes media supports font-feature-values":tags$1.definitionKeyword,"from to selector scope MatchFlag":tags$1.keyword,NamespaceName:tags$1.namespace,KeyframeName:tags$1.labelName,KeyframeRangeName:tags$1.operatorKeyword,TagName:tags$1.tagName,ClassName:tags$1.className,PseudoClassName:tags$1.constant(tags$1.className),IdName:tags$1.labelName,"FeatureName PropertyName":tags$1.propertyName,AttributeName:tags$1.attributeName,NumberLiteral:tags$1.number,KeywordQuery:tags$1.keyword,UnaryQueryOp:tags$1.operatorKeyword,"CallTag ValueName FontName":tags$1.atom,VariableName:tags$1.variableName,Callee:tags$1.operatorKeyword,Unit:tags$1.unit,"UniversalSelector NestingSelector":tags$1.definitionOperator,"MatchOp CompareOp":tags$1.compareOperator,"ChildOp SiblingOp, LogicOp":tags$1.logicOperator,BinOp:tags$1.arithmeticOperator,Important:tags$1.modifier,Comment:tags$1.blockComment,ColorLiteral:tags$1.color,"ParenthesizedContent StringLiteral":tags$1.string,":":tags$1.punctuation,"PseudoOp #":tags$1.derefOperator,"; , |":tags$1.separator,"( )":tags$1.paren,"[ ]":tags$1.squareBracket,"{ }":tags$1.brace});const spec_callee={__proto__:null,lang:44,"nth-child":44,"nth-last-child":44,"nth-of-type":44,"nth-last-of-type":44,dir:44,"host-context":44,if:90,url:158,"url-prefix":158,domain:158,regexp:158};const spec_queryIdentifier={__proto__:null,or:104,and:104,not:112,only:112,layer:212};const spec_QueryCallee={__proto__:null,selector:118,style:124,layer:208};const spec_AtKeyword={__proto__:null,"@import":204,"@media":216,"@charset":220,"@namespace":224,"@keyframes":230,"@supports":242,"@scope":246,"@font-feature-values":252};const spec_identifier$1={__proto__:null,to:249};const parser$3=LRParser.deserialize({version:14,states:"MrQYQdOOO#}QdOOP$UO`OOO%OQaO'#CfOOQP'#Ce'#CeO%VQdO'#CgO%[Q`O'#CgO%aQaO'#FqO&XQdO'#CkO&xQaO'#CcO'SQdO'#CnO'_QdO'#ERO'dQdO'#ETO'oQdO'#E[O'oQdO'#E_OOQP'#Fq'#FqO)RQhO'#FQOOQS'#Fp'#FpOOQS'#FT'#FTQYQdOOO)YQdO'#EeO*iQhO'#EkO)YQdO'#EmO*pQdO'#EoO*{QdO'#ErO)}QhO'#ExO+TQdO'#EzO+`QdO'#E}O+eQaO'#CfO+lQ`O'#EbO+qQ`O'#F}O+|QdO'#F}QOQ`OOP,WO&jO'#CaPOOO)CA`)CA`OOQP'#Ci'#CiOOQP,59R,59RO%VQdO,59ROOQP'#Cm'#CmOOQP,59V,59VO&XQdO,59VO,cQdO,59YO'_QdO,5:mO'dQdO,5:oO'oQdO,5:vO'oQdO,5:xO'oQdO,5:yO'oQdO'#F[O,nQ`O,58}O,vQdO'#EaOOQS,58},58}OOQP'#Cq'#CqOOQO'#EP'#EPOOQP,59Y,59YO,}Q`O,59YO-SQ`O,59YOOQP'#ES'#ESOOQP,5:m,5:mO-XQpO'#EUO-dQdO'#EVO-iQ`O'#EVO-nQpO,5:oO.XQaO,5:vO.oQaO,5:yOOQW'#D^'#D^O/nQhO'#DgO0RQhO,5;lO)}QhO'#DeO0`Q`O'#DnO0eQhO'#D{OOQW'#Fw'#FwOOQS,5;l,5;lO0jQ`O'#DhO0oQ`O'#DkOOQS-E9R-E9ROOQ['#Cv'#CvO0tQdO'#CwO1[QdO'#C}O1rQdO'#DQO2YQ!pO'#DSO4fQ!jO,5;POOQO'#DX'#DXO-SQ`O'#DWO4vQ!nO'#FtO6|Q`O'#DYO7RQ`O'#D|OOQ['#Ft'#FtO7WQhO'#GQO7fQ`O,5;VO7kQ!bO,5;XOOQS'#Eq'#EqO7sQ`O,5;ZO7xQdO,5;ZOOQO'#Et'#EtO8QQ`O,5;^O8VQhO,5;dO'oQdO'#DjOOQS,5;f,5;fO0jQ`O,5;fO8_QdO,5;fOOQS'#Fc'#FcO8gQdO'#FPO7fQ`O,5;iO8oQdO,5:|O9PQdO'#F^O9^Q`O,5<iO9^Q`O,5<iPOOO'#FS'#FSP9iO&jO,58{POOO,58{,58{OOQP1G.m1G.mOOQP1G.q1G.qOOQP1G.t1G.tO,}Q`O1G.tO-SQ`O1G.tOOQP1G0X1G0XO9tQpO1G0ZO9|QaO1G0bO:dQaO1G0dO:zQaO1G0eO;bQaO,5;vOOQO-E9Y-E9YOOQS1G.i1G.iO;lQ`O,5:{O;qQdO'#EQO;xQdO'#CuOOQO'#EX'#EXOOQO,5:q,5:qO-dQdO,5:qOOQP1G0Z1G0ZO)YQdO1G0ZO<PQ!jO'#D^O<_Q!bO,59yO<gQhO,5:ROOQO'#Fx'#FxO<bQ!bO,59}O<oQhO'#FdO)}QhO,59{O)}QhO'#FdO=gQhO1G1WOOQS1G1W1G1WO=qQhO,5:PO>lQhO'#DoOOQW,5:Y,5:YOOQW,5:g,5:gOOQW,5:S,5:SO>vQhO,5:VO?bQ!fO'#FuOOQS'#Fu'#FuOOQS'#FV'#FVO@rQdO,59cOOQ[,59c,59cOAYQdO,59iOOQ[,59i,59iOApQdO,59lOOQ[,59l,59lOOQ[,59n,59nO)YQdO,59pOBWQhO'#EgOOQW'#Eg'#EgOBuQ`O1G0kO4oQhO1G0kOOQ[,59r,59rO)}QhO'#D[OOQ[,59t,59tOBzQ#tO,5:hOCVQhO'#F`OCdQ`O,5<lOOQS1G0q1G0qOOQS1G0s1G0sOOQS1G0u1G0uOCoQ`O1G0uOCtQdO'#EuOOQS1G0x1G0xOOQS1G1O1G1OODPQaO,5:UO7fQ`O1G1QOOQS1G1Q1G1QO0jQ`O1G1QOOQS-E9a-E9aOOQS1G1T1G1TODWQ!fO1G0hODnQ`O'#EdOOQO1G0h1G0hOOQO,5;x,5;xODsQdO,5;xOOQO-E9[-E9[OEQQ`O1G2TPOOO-E9Q-E9QPOOO1G.g1G.gOOQP7+$`7+$`OOQP7+%u7+%uO)YQdO7+%uOOQS1G0g1G0gOE]QaO'#F|OEgQ`O,5:lOElQ!fO'#FUOFjQdO'#FsOFtQ`O,59aOOQO1G0]1G0]OFyQ!bO7+%uO)YQdO1G/eOGUQhO1G/iOOQW1G/m1G/mOOQW1G/g1G/gOGgQhO,5<OOOQW-E9b-E9bOOQS7+&r7+&rOH_QhO'#D^OHmQhO'#F{OHxQ`O'#F{OH}Q`O,5:ZOISQ!bO'#D`O>vQhO'#DmOI_QhO'#DsOIgQhO'#DuOIlQ!jO'#FzOOQO'#Fz'#FzOIwQ`O'#DxOJPQ!bO'#DzOOQO'#Fy'#FyOJUQ`O1G/qOOQS-E9T-E9TOOQ[1G.}1G.}OOQ[1G/T1G/TOOQ[1G/W1G/WOOQ[1G/[1G/[OJZQdO,5;ROOQS7+&V7+&VOJ`Q`O7+&VOJeQhO'#D]OJmQ`O,59vO)}QhO,59vOOQ[1G0S1G0SOJuQ`O1G0SOJzQhO,5;zOOQO-E9^-E9^OOQS7+&a7+&aOKYQbO'#DSOOQO'#Ew'#EwOKhQ`O'#EvOOQO'#Ev'#EvOKsQ`O'#FaOK{QdO,5;aOOQS,5;a,5;aOOQ[1G/p1G/pOOQS7+&l7+&lO7fQ`O7+&lOLWQ!fO'#F]O)YQdO'#F]OM_QdO7+&SOOQO7+&S7+&SOOQO,5;O,5;OOOQO1G1d1G1dOMrQ!bO<<IaOM}QdO'#FZONXQ`O,5<hOOQP1G0W1G0WOOQS-E9S-E9SONaQdO'#FYONkQ`O,5<_OOQ]1G.{1G.{OOQP<<Ia<<IaONsQ`O<<IaONxQdO7+%POOQO'#D`'#D`O! PQ!bO7+%TO! XQhO'#FXO! fQ`O,5<gO)YQdO,5<gOOQW1G/u1G/uO! nQ`O,5:XO>vQhO'#DtOOQO,5:_,5:_O! sQhO,5:aO! {QhO,5:fO)YQdO,5:dOOQW7+%]7+%]OOQO'#Ei'#EiO!!SQ`O1G0mOOQS<<Iq<<IqO)YQdO,59wO!!vQhO1G/bOOQ[1G/b1G/bO!!}Q`O1G/bOOQW-E9U-E9UOOQ[7+%n7+%nOOQO,5;b,5;bOCwQdO'#FbOKsQ`O,5;{OOQS,5;{,5;{OOQS-E9_-E9_OOQS1G0{1G0{OOQS<<JW<<JWO!#VQ!fO,5;wOOQS-E9Z-E9ZOOQO<<In<<InOOQPAN>{AN>{O!$^Q`OAN>{O!$cQaO,5;uOOQO-E9X-E9XO!$mQdO,5;tOOQO-E9W-E9WOOQW<<Hk<<HkOOQW<<Ho<<HoO!$wQhO<<HoO!%YQhO'#D^O!%hQhO,5;sO!%sQ`O,5;sOOQO-E9V-E9VO!%xQdO1G2RO!&SQhO1G/sO!&[Q`O,5:`O>vQhO'#DwOOQO1G/{1G/{O!&aQ!bO1G0QO!&iQdO1G0OOJZQdO'#F_O!&pQ`O7+&XOOQW7+&X7+&XO!&xQ!bO1G/cOOQ[7+$|7+$|O!'TQhO7+$|P!'[Q`O'#FWOOQO,5;|,5;|OOQO-E9`-E9`OOQS1G1g1G1gOOQPG24gG24gO!'aQ`OAN>ZO)YQdO1G1_O!'fQ`O7+'mOOQO1G/z1G/zO!'nQ`O,5:cO!'sQhO7+%lOOQO,5;y,5;yOOQO-E9]-E9]OOQW<<Is<<IsOOQ[<<Hh<<HhPOQW,5;r,5;rOOQWG23uG23uO!'zQdO7+&yOOQO1G/}1G/}OOQO<<IW<<IW",stateData:"!(_~O$_OS$`QQ~OWVO^_O`WOcYOdYOl`OmZOp[O#P]O#S^O#YdO#`eO#bfO#dgO#ghO#miO#ojO#rkO$ZRO$fTO~OQmOWVO^_O`WOcYOdYOl`OmZOp[O#P]O#S^O#YdO#`eO#bfO#dgO#ghO#miO#ojO#rkO$ZlO$fTO~O$X$qP~P!jO$`qO~O`YXcYXdYXmYXpYXsYX!eYX#PYX#SYX$YYX$f[X~OgYX~P$ZO$ZsO~O$fuO~O$fuO`$eXc$eXd$eXm$eXp$eXs$eX!e$eX#P$eX#S$eX$Y$eXg$eX~O$ZvO~O`xOcyOdyOmzOp{O#P|O#S!OO$Y}O~Os!RO!e!PO~P&^Of!XO$Z!TO$[!UO~O$Z!YO~OW!^O$Z![O$f!]O~OWVO^_O`WOcYOdYOmZOp[O#P]O#S^O$ZRO$fTO~OS!fOc!gOd!gOh!cOs!RO!Y!eO!]!jO!`!kO$]!bO~On!iO~P(dOQ!uOh!nOp!oOs!pOu!xOw!xO}!vO!q!wO$Z!mO$[!sO$j!qO~OS!fOc!gOd!gOh!cO!Y!eO!]!jO!`!kO$]!bO~Os$tP~P)}Ow!}O!q!wO$Z!|O~Ow#PO$Z#PO~Oh#SOs!RO#p#UO~O$Z#WO~Oc#VX~P$ZOc#ZO~On#[O$X$qXr$qX~O$X$qXr$qX~P!jO$a#_O$b#_O$c#aO~Of#fO$Z!TO$[!UO~Os!RO!e!PO~Or$qP~P!jOh#pO~Oh#qO~Oo!xX!|!xX$f!zX~O$Z#rO~O$f#tO~Oo#uO!|#vO~O`xOcyOdyOmzOp{O~Os#Oa!e#Oa#P#Oa#S#Oa$Y#Oag#Oa~P-vOs#Ra!e#Ra#P#Ra#S#Ra$Y#Rag#Ra~P-vOS!fOc!gOd!gOh!cO!Y!eO!]!jO!`!kO~OR#zOu#zOw#zO$]#wO$j!qO~P/VOn$QO!U#}O!e$OO~P(dOh$SO~O$]$UO~Oh#SO~Oh$WO~O`$YOc$YOg$]Ol$YOm$YOn$YO~P)YO`$YOc$YOl$YOm$YOn$YOo$_O~P)YO`$YOc$YOl$YOm$YOn$YOr$aO~P)YOP$bOSvXcvXdvXhvXnvXyvX!YvX!]vX!`vX#[vX#^vX$]vX!WvXQvX`vXgvXlvXmvXpvXsvXuvXwvX}vX!qvX$ZvX$[vX$jvXovXrvX!evX$XvX$svX!}vX~Oy$cO#[$dO#^$eOn$tP~P)}Oh#qOS$hXc$hXd$hXn$hXy$hX!Y$hX!]$hX!`$hX#[$hX#^$hX$]$hXQ$hX`$hXg$hXl$hXm$hXp$hXs$hXu$hXw$hX}$hX!q$hX$Z$hX$[$hX$j$hXo$hXr$hX!e$hX$X$hX$s$hX!}$hX~Oh$iO~Oh$kO~O!U#}O!e$lOs$tXn$tX~Os!RO~On$oOy$cO~On$pO~Ow$qO!q!wO~Os$rO~Os!RO!U#}O~Os!RO#p$xO~O$Z#WOs#sX~O$s$|On#Ua$X#Uar#Ua~P)YOn$QX$X$QXr$QX~P!jOn#[O$X$qar$qa~O$a#_O$b#_O$c%TO~Oo%VO!|%WO~Os#Oi!e#Oi#P#Oi#S#Oi$Y#Oig#Oi~P-vOs#Qi!e#Qi#P#Qi#S#Qi$Y#Qig#Qi~P-vOs#Ri!e#Ri#P#Ri#S#Ri$Y#Rig#Ri~P-vOs$Oa!e$Oa~P&^Or%XO~Og$pP~P'oOg$gP~P)YOc!SXg!QX!U!QX!W!SX~Oc%aO!W%bO~Og%cO!U#}O~O!U#}OS$WXc$WXd$WXh$WXn$WXs$WX!Y$WX!]$WX!`$WX!e$WX$]$WX~On%gO!e$OO~P(dO!U#}OS!Xac!Xad!Xah!Xan!Xas!Xa!Y!Xa!]!Xa!`!Xa!e!Xa$]!Xag!Xa~O$]%hOg$oP~P/VOR#zOS!fOh%mOu#zOw#zO!Y%nO$]%lO$j!qO~Oy$cOQ$iX`$iXc$iXg$iXh$iXl$iXm$iXn$iXp$iXs$iXu$iXw$iX}$iX!q$iX$Z$iX$[$iX$j$iXo$iXr$iX~O`$YOc$YOg%wOl$YOm$YOn$YO~P)YO`$YOc$YOl$YOm$YOn$YOo%xO~P)YO`$YOc$YOl$YOm$YOn$YOr%yO~P)YOh%{OS#ZXc#ZXd#ZXn#ZX!Y#ZX!]#ZX!`#ZX$]#ZX~On%|O~Og&ROw&SO!r&SO~Os$SX!e$SXn$SX~P)}O!e$lOs$tan$ta~On&VO~Or&^O$Z&XO$j&WO~Og&_O~P&^Oy$cO!e&cO$s$|On#Ui$X#Uir#Ui~P)YO$r&fO~On$Qa$X$Qar$Qa~P!jOn#[O$X$qir$qi~O!e&iOg$pX~P&^Og&kO~Oy$cOQ#xXg#xXh#xXp#xXs#xXu#xXw#xX}#xX!e#xX!q#xX$Z#xX$[#xX$j#xX~O!e&mOg$gX~P)YOg&oO~Oo&pOy$cO!}&qO~OR#zOu#zOw#zO$]&sO$j!qO~O!U#}OS$Wac$Wad$Wah$Wan$Was$Wa!Y$Wa!]$Wa!`$Wa!e$Wa$]$Wa~Oc!dXg!QX!U!QX!e!QX~O!U#}O!e&uOg$oX~Oc&wO~Og&xO~Oc!mXg!mX!W!SX~OS!fOh&zO~O!U&|O~O!U&|O!W&}Og$nX~Oc'OOg!lX~O!W&}O~Og'PO~O$Z'QO~On'SO~Oc'TO!U#}O~Og'VOn'UO~Og'YO~O!U#}Os$Sa!e$San$Sa~OP$bOsvX!evXgvX~O$j&WOs#jX!e#jX~Os!RO!e'[O~Or'`O$Z&XO$j&WO~Oy$cOQ$PXh$PXn$PXp$PXs$PXu$PXw$PX}$PX!e$PX!q$PX$X$PX$Z$PX$[$PX$j$PX$s$PXr$PX~O!e&cO$s$|On#Uq$X#Uqr#Uq~P)YOo'eOy$cO!}'fO~Og#}X!e#}X~P'oO!e&iOg$pa~Og#|X!e#|X~P)YO!e&mOg$ga~Oo'eO~Og'kO~P)YOg'lO!W'mO~O$]'nOg#{X!e#{X~P/VO!e&uOg$oa~Og'sO~OS!fOh'uO~OS!fO~PGUO`'yOg'{O~OS#zac#zad#zah#za!Y#za!]#za!`#za$]#za~Og'}O~P!![Og'}On(OO~Oy$cOQ$Pah$Pan$Pap$Pas$Pau$Paw$Pa}$Pa!e$Pa!q$Pa$X$Pa$Z$Pa$[$Pa$j$Pa$s$Par$Pa~Oo(TO~Og#}a!e#}a~P&^Og#|a!e#|a~P)YOR#zOu#zOw#zO$]&sO$j&WO~Oc!fXg!QX!U!QX!e!QX~O!U#}Og#{a!e#{a~Oc(VO~O!e&uOg$oi~P)YOg!ai!U!ji~Og(XO~O!W(ZOg!ni~Og!li~P)YO`'yOg(^O~Oy$cOg!Pin!Pi~Og(_O~P!![On(`O~Og(aO~O!e&uOg$oq~Og(cO~OS!fO~P!$wOg#{q!e#{q~P)YO$_!r$`$j`$jy#S~",goto:"7g$uPPPPP$vP$yP%S%f%S%x&[P%SP&b%SPP&hPPP&n&x&xPPPPP&xPP&xP'hP&xP&x(k&xP)Z)^)d)d)v)dP)dP)dP)d)dP*])dP*i*o+e+hP+k*i+n*i+q+w+z,Q+z)d,WPP,|-S%S-Y%S-`-`-f-jPP%SP%S%SP-p.l.y/Q$yP/ZP/^P$yP$yP$yP/d$yP/g/j/m/t$yP$yPP$yP/y$yP/|0S0c0}1]1c1m1s1y2P2V2a2g2m2s2y3PPPPPPPPPPPP3V3`P4U4X5]P5e6_6t+z7Q7T7WPP7^RrQ_aOPco!R#[%Pq_OP]^co|}!O!P!R#S#[#p%P&iqSOP]^co|}!O!P!R#S#[#p%P&iqUOP]^co|}!O!P!R#S#[#p%P&iQtTR#buQwWR#cxQ!VYR#dyQ#d!XS$h!t!uR%U#f!Z!xdf!n!o!p#Z#q#v$[$^$`$c${%W%]%a&c&d&m&r&w'O'T'i'r'x(V(b!Y!xdf!n!o!p#Z#q#v$[$^$`$c${%W%]%a&c&d&m&r&w'O'T'i'r'x(V(bb#z!c$W%b%m&z&}'m'u(ZU&Z$r&]'[R'Z&Y!Z!tdf!n!o!p#Z#q#v$[$^$`$c${%W%]%a&c&d&m&r&w'O'T'i'r'x(V(bR$j!vQ&P$iR'W&Qq!h`ei!c!d!e!r#}$O$P$S$g$i$l&Q&uQ#x!cW%s$W%m&z'uQ&t%bQ'w&}Q(U'mR(d(ZQ#VjQ$V!jQ$v#UR&a$xX%q$W%m&z'up!h`ei!c!d!e!r#}$O$P$S$g$i$l&Q&uW%p$W%m&z'uQ&{%nQ'v&|Q'w&}R(d(ZR$T!fR%j$SR'p&uR&{%nX%o$W%m&z'uR'v&|X%t$W%m&z'uX%r$W%m&z'u!Y!xdf!n!o!p#Z#q#v$[$^$`$c${%W%]%a&c&d&m&r&w'O'T'i'r'x(V(bQ!}gR$q#OQ!WYR#eyQ#d!WR%U#eQ!ZZR#gzQ!_[R#h{T!^[{Q#s!]R%_#tQ!SXQ!i`Q#TjQ#n!QQ$Q!dQ$n!zQ$t#RQ$w#VQ$z#YQ%g$PQ&`$vQ'^&[Q'a&aR(S']SnP!RQ#^oQ%O#[R&g%PZmPo!R#[%PQ$}#ZQ&e${R'd&dR$g!rQ'R%{R(['yR#OgR#QhR$s#QS&[$r&]R(Q'[V&Y$r&]'[R#YkQ#`qR%S#`QcOSoP!RU!lco%PR%P#[Q%]#q[&l%]&r'i'r'x(bQ&r%aQ'i&mQ'r&wQ'x'OR(b(VQ$[!nQ$^!oQ$`!pV%v$[$^$`Q&Q$iR'X&QQ&v%iS'q&v(WR(W'rQ&n%]R'j&nQ&j%YR'h&jQ!QXR#m!QQ&d${R'c&dQ#]nS%Q#]%RR%R#^Q'z'RR(]'zQ$m!yR&U$mQ&]$rR'_&]Q']&[R(R']Q#XkR$y#XQ$P!dR%f$P_bOPco!R#[%P^XOPco!R#[%PQ!`]Q!a^Q#i|Q#j}Q#k!OQ#l!PQ$u#SQ%Y#pR'g&iR%^#qQ!rdQ!{f[$X!n!o!p$[$^$`Q${#Zh%[#q%]%a&m&r&w'O'i'r'x(V(bQ%`#vQ%z$cS&b${&dQ&h%WQ'b&cR'|'T]$Z!n!o!p$[$^$`Q!d`U!ye!r$gQ#RiQ#y!cS#|!d$PQ$R!eQ%d#}Q%e$OQ%i$SS&O$i&QQ&T$lR'o&uQ#{!cW%s$W%m&z'uQ&t%bQ'w&}Q(U'mR(d(ZQ%u$WQ&y%mQ't&zR(Y'uR%k$SR%Z#pQpPR#o!RQ!zeQ$f!rR%}$g",nodeNames:"⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NamespacedTagSelector NamespaceName TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector StyleQuery style ParenthesedQuery CallQuery ArgList PropertyName , PropertyName UnaryQuery ParenthesedQuery BinaryQuery ParenthesedQuery ParenthesedQuery StyleFeature PropertyName StyleRange PseudoQuery CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName NamespacedAttribute NamespaceName AttributeName MatchOp MatchFlag ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to FontFeatureStatement font-feature-values FontName AtRule Styles",maxTerm:174,nodeProps:[["isolate",-2,5,39,""],["openedBy",23,"(",31,"[",34,"{"],["closedBy",24,")",32,"]",35,"}"]],propSources:[cssHighlighting],skippedNodes:[0,5,130],repeatNodeCount:17,tokenData:"K`~R!bOX%ZX^&R^p%Zpq&Rqr)ers)vst+jtu2Xuv%Zvw3Rwx3dxy5Ryz5dz{5i{|6S|}:u}!O;W!O!P;u!P!Q<^!Q![=V![!]>Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!r`Oy%jz;'S%j;'S;=`%{<%lO%j`&OP;=`<%l%j~&Wh$_~OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%j~'yh$_~!r`OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%jj)jS$sYOy%jz;'S%j;'S;=`%{<%lO%j~)yWOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d<%lO)v~*hOw~~*kRO;'S)v;'S;=`*t;=`O)v~*wXOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d;=`<%l)v<%lO)v~+gP;=`<%l)vj+oYmYOy%jz!Q%j!Q![,_![!c%j!c!i,_!i#T%j#T#Z,_#Z;'S%j;'S;=`%{<%lO%jj,dY!r`Oy%jz!Q%j!Q![-S![!c%j!c!i-S!i#T%j#T#Z-S#Z;'S%j;'S;=`%{<%lO%jj-XY!r`Oy%jz!Q%j!Q![-w![!c%j!c!i-w!i#T%j#T#Z-w#Z;'S%j;'S;=`%{<%lO%jj.OYuY!r`Oy%jz!Q%j!Q![.n![!c%j!c!i.n!i#T%j#T#Z.n#Z;'S%j;'S;=`%{<%lO%jj.uYuY!r`Oy%jz!Q%j!Q![/e![!c%j!c!i/e!i#T%j#T#Z/e#Z;'S%j;'S;=`%{<%lO%jj/jY!r`Oy%jz!Q%j!Q![0Y![!c%j!c!i0Y!i#T%j#T#Z0Y#Z;'S%j;'S;=`%{<%lO%jj0aYuY!r`Oy%jz!Q%j!Q![1P![!c%j!c!i1P!i#T%j#T#Z1P#Z;'S%j;'S;=`%{<%lO%jj1UY!r`Oy%jz!Q%j!Q![1t![!c%j!c!i1t!i#T%j#T#Z1t#Z;'S%j;'S;=`%{<%lO%jj1{SuY!r`Oy%jz;'S%j;'S;=`%{<%lO%jd2[UOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jd2uS!|S!r`Oy%jz;'S%j;'S;=`%{<%lO%jb3WS^QOy%jz;'S%j;'S;=`%{<%lO%j~3gWOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{<%lO3d~4SRO;'S3d;'S;=`4];=`O3d~4`XOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{;=`<%l3d<%lO3d~5OP;=`<%l3dj5WShYOy%jz;'S%j;'S;=`%{<%lO%j~5iOg~n5pUWQyWOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jj6ZWyW#SQOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj6xU!r`Oy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%jj7cY!r`$jYOy%jz!Q%j!Q![7[![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj8WY!r`Oy%jz{%j{|8v|}%j}!O8v!O!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj8{U!r`Oy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj9fU!r`$jYOy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj:P[!r`$jYOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj:zS!eYOy%jz;'S%j;'S;=`%{<%lO%jj;]WyWOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj;zU`YOy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%j~<cTyWOy%jz{<r{;'S%j;'S;=`%{<%lO%j~<yS!r`$`~Oy%jz;'S%j;'S;=`%{<%lO%jj=[[$jYOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj>VUcYOy%jz![%j![!]>i!];'S%j;'S;=`%{<%lO%jj>pSdY!r`Oy%jz;'S%j;'S;=`%{<%lO%jj?RSnYOy%jz;'S%j;'S;=`%{<%lO%jh?dU!WWOy%jz!_%j!_!`?v!`;'S%j;'S;=`%{<%lO%jh?}S!WW!r`Oy%jz;'S%j;'S;=`%{<%lO%jl@bS!WW!|SOy%jz;'S%j;'S;=`%{<%lO%jj@uV#PQ!WWOy%jz!_%j!_!`?v!`!aA[!a;'S%j;'S;=`%{<%lO%jbAcS#PQ!r`Oy%jz;'S%j;'S;=`%{<%lO%jjArYOy%jz}%j}!OBb!O!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjBgW!r`Oy%jz!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjCW[lY!r`Oy%jz}%j}!OCP!O!Q%j!Q![CP![!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jhDRS!}WOy%jz;'S%j;'S;=`%{<%lO%jjDdSpYOy%jz;'S%j;'S;=`%{<%lO%jnDuSo^Oy%jz;'S%j;'S;=`%{<%lO%jjEWU!}WOy%jz#a%j#a#bEj#b;'S%j;'S;=`%{<%lO%jbEoU!r`Oy%jz#d%j#d#eFR#e;'S%j;'S;=`%{<%lO%jbFWU!r`Oy%jz#c%j#c#dFj#d;'S%j;'S;=`%{<%lO%jbFoU!r`Oy%jz#f%j#f#gGR#g;'S%j;'S;=`%{<%lO%jbGWU!r`Oy%jz#h%j#h#iGj#i;'S%j;'S;=`%{<%lO%jbGoU!r`Oy%jz#T%j#T#UHR#U;'S%j;'S;=`%{<%lO%jbHWU!r`Oy%jz#b%j#b#cHj#c;'S%j;'S;=`%{<%lO%jbHoU!r`Oy%jz#h%j#h#iIR#i;'S%j;'S;=`%{<%lO%jbIYS$rQ!r`Oy%jz;'S%j;'S;=`%{<%lO%jjIkSsYOy%jz;'S%j;'S;=`%{<%lO%jfI|U$fUOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jjJeSrYOy%jz;'S%j;'S;=`%{<%lO%jfJvU#SQOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%j`K]P;=`<%l%Z",tokenizers:[descendant,unitToken,identifiers,queryIdentifiers,1,2,3,4,new LocalTokenGroup("m~RRYZ[z{a~~g~aO$b~~dP!P!Qg~lO$c~~",28,155)],topRules:{"StyleSheet":[0,6],"Styles":[1,129]},dynamicPrecedences:{"97":1},specialized:[{term:150,get:value=>spec_callee[value]||-1},{term:151,get:value=>spec_queryIdentifier[value]||-1},{term:4,get:value=>spec_QueryCallee[value]||-1},{term:28,get:value=>spec_AtKeyword[value]||-1},{term:149,get:value=>spec_identifier$1[value]||-1}],tokenPrec:2444});let _properties=null;function properties(){if(!_properties&&typeof document=="object"&&document.body){let{style}=document.body,names=[],seen=new Set;for(let prop in style)if(prop!="cssText"&&prop!="cssFloat"){if(typeof style[prop]=="string"){if(/[A-Z]/.test(prop))prop=prop.replace(/[A-Z]/g,ch=>"-"+ch.toLowerCase());if(!seen.has(prop)){names.push(prop);seen.add(prop)}}}_properties=names.sort().map(name=>({type:"property",label:name,apply:name+": "}))}return _properties||[]}const pseudoClasses=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(name=>({type:"class",label:name}));const values=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(name=>({type:"keyword",label:name})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(name=>({type:"constant",label:name})));const tags=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(name=>({type:"type",label:name}));const atRules=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(label=>({type:"keyword",label}));const identifier$1=/^(\w[\w-]*|-\w[\w-]*|)$/;const variable=/^-(-[\w-]*)?$/;function isVarArg(node,doc){var _a;if(node.name=="("||node.type.isError)node=node.parent||node;if(node.name!="ArgList")return false;let callee2=(_a=node.parent)===null||_a===void 0?void 0:_a.firstChild;if((callee2===null||callee2===void 0?void 0:callee2.name)!="Callee")return false;return doc.sliceString(callee2.from,callee2.to)=="var"}const VariablesByNode=new NodeWeakMap;const declSelector=["Declaration"];function astTop(node){for(let cur=node;;){if(cur.type.isTop)return cur;if(!(cur=cur.parent))return node}}function variableNames(doc,node,isVariable){if(node.to-node.from>4096){let known=VariablesByNode.get(node);if(known)return known;let result=[],seen=new Set,cursor=node.cursor(IterMode.IncludeAnonymous);if(cursor.firstChild())do{for(let option of variableNames(doc,cursor.node,isVariable))if(!seen.has(option.label)){seen.add(option.label);result.push(option)}}while(cursor.nextSibling());VariablesByNode.set(node,result);return result}else{let result=[],seen=new Set;node.cursor().iterate(node2=>{var _a;if(isVariable(node2)&&node2.matchContext(declSelector)&&((_a=node2.node.nextSibling)===null||_a===void 0?void 0:_a.name)==":"){let name=doc.sliceString(node2.from,node2.to);if(!seen.has(name)){seen.add(name);result.push({label:name,type:"variable"})}}});return result}}const defineCSSCompletionSource=isVariable=>context=>{let{state,pos}=context,node=syntaxTree(state).resolveInner(pos,-1);let isDash=node.type.isError&&node.from==node.to-1&&state.doc.sliceString(node.from,node.to)=="-";if(node.name=="PropertyName"||(isDash||node.name=="TagName")&&/^(Block|Styles)$/.test(node.resolve(node.to).name))return{from:node.from,options:properties(),validFor:identifier$1};if(node.name=="ValueName")return{from:node.from,options:values,validFor:identifier$1};if(node.name=="PseudoClassName")return{from:node.from,options:pseudoClasses,validFor:identifier$1};if(isVariable(node)||(context.explicit||isDash)&&isVarArg(node,state.doc))return{from:isVariable(node)||isDash?node.from:pos,options:variableNames(state.doc,astTop(node),isVariable),validFor:variable};if(node.name=="TagName"){for(let{parent}=node;parent;parent=parent.parent)if(parent.name=="Block")return{from:node.from,options:properties(),validFor:identifier$1};return{from:node.from,options:tags,validFor:identifier$1}}if(node.name=="AtKeyword")return{from:node.from,options:atRules,validFor:identifier$1};if(!context.explicit)return null;let above=node.resolve(pos),before=above.childBefore(pos);if(before&&before.name==":"&&above.name=="PseudoClassSelector")return{from:pos,options:pseudoClasses,validFor:identifier$1};if(before&&before.name==":"&&above.name=="Declaration"||above.name=="ArgList")return{from:pos,options:values,validFor:identifier$1};if(above.name=="Block"||above.name=="Styles")return{from:pos,options:properties(),validFor:identifier$1};return null};const cssCompletionSource=defineCSSCompletionSource(n=>n.name=="VariableName");const cssLanguage=LRLanguage.define({name:"css",parser:parser$3.configure({props:[indentNodeProp.add({Declaration:continuedIndent()}),foldNodeProp.add({"Block KeyframeList":foldInside})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function css(){return new LanguageSupport(cssLanguage,cssLanguage.data.of({autocomplete:cssCompletionSource}))}const Targets=["_blank","_self","_top","_parent"];const Charsets=["ascii","utf-8","utf-16","latin1","latin1"];const Methods=["get","post","put","delete"];const Encs=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];const Bool=["true","false"];const S={};const Tags={a:{attrs:{href:null,ping:null,type:null,media:null,target:Targets,hreflang:null}},abbr:S,address:S,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:S,aside:S,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:S,base:{attrs:{href:null,target:Targets}},bdi:S,bdo:S,blockquote:{attrs:{cite:null}},body:S,br:S,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Encs,formmethod:Methods,formnovalidate:["novalidate"],formtarget:Targets,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:S,center:S,cite:S,code:S,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:S,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:S,div:S,dl:S,dt:S,em:S,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:S,figure:S,footer:S,form:{attrs:{action:null,name:null,"accept-charset":Charsets,autocomplete:["on","off"],enctype:Encs,method:Methods,novalidate:["novalidate"],target:Targets}},h1:S,h2:S,h3:S,h4:S,h5:S,h6:S,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:S,hgroup:S,hr:S,html:{attrs:{manifest:null}},i:S,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Encs,formmethod:Methods,formnovalidate:["novalidate"],formtarget:Targets,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:S,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:S,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:S,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Charsets,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:S,noscript:S,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:S,param:{attrs:{name:null,value:null}},pre:S,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:S,rt:S,ruby:S,samp:S,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Charsets}},section:S,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:S,source:{attrs:{src:null,type:null,media:null}},span:S,strong:S,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:S,summary:S,sup:S,table:S,tbody:S,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:S,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:S,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:S,time:{attrs:{datetime:null}},title:S,tr:S,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:S,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:S};const GlobalAttrs={accesskey:null,class:null,contenteditable:Bool,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Bool,autocorrect:Bool,autocapitalize:Bool,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":Bool,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Bool,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Bool,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Bool,"aria-hidden":Bool,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Bool,"aria-multiselectable":Bool,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Bool,"aria-relevant":null,"aria-required":Bool,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null};const eventAttributes="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(n=>"on"+n);for(let a2 of eventAttributes)GlobalAttrs[a2]=null;class Schema{constructor(extraTags,extraAttrs){this.tags={...Tags,...extraTags};this.globalAttrs={...GlobalAttrs,...extraAttrs};this.allTags=Object.keys(this.tags);this.globalAttrNames=Object.keys(this.globalAttrs)}}Schema.default=new Schema;function elementName(doc,tree,max=doc.length){if(!tree)return"";let tag=tree.firstChild;let name=tag&&tag.getChild("TagName");return name?doc.sliceString(name.from,Math.min(name.to,max)):""}function findParentElement(tree,skip=false){for(;tree;tree=tree.parent)if(tree.name=="Element"){if(skip)skip=false;else return tree}return null}function allowedChildren(doc,tree,schema){let parentInfo=schema.tags[elementName(doc,findParentElement(tree))];return(parentInfo===null||parentInfo===void 0?void 0:parentInfo.children)||schema.allTags}function openTags(doc,tree){let open=[];for(let parent=findParentElement(tree);parent&&!parent.type.isTop;parent=findParentElement(parent.parent)){let tagName=elementName(doc,parent);if(tagName&&parent.lastChild.name=="CloseTag")break;if(tagName&&open.indexOf(tagName)<0&&(tree.name=="EndTag"||tree.from>=parent.firstChild.to))open.push(tagName)}return open}const identifier=/^[:\-\.\w\u00b7-\uffff]*$/;function completeTag(state,schema,tree,from,to){let end=/\s*>/.test(state.sliceDoc(to,to+5))?"":">";let parent=findParentElement(tree,tree.name=="StartTag"||tree.name=="TagName");return{from,to,options:allowedChildren(state.doc,parent,schema).map(tagName=>({label:tagName,type:"type"})).concat(openTags(state.doc,tree).map((tag,i)=>({label:"/"+tag,apply:"/"+tag+end,type:"type",boost:99-i}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function completeCloseTag(state,tree,from,to){let end=/\s*>/.test(state.sliceDoc(to,to+5))?"":">";return{from,to,options:openTags(state.doc,tree).map((tag,i)=>({label:tag,apply:tag+end,type:"type",boost:99-i})),validFor:identifier}}function completeStartTag(state,schema,tree,pos){let options=[],level=0;for(let tagName of allowedChildren(state.doc,tree,schema))options.push({label:"<"+tagName,type:"type"});for(let open of openTags(state.doc,tree))options.push({label:"</"+open+">",type:"type",boost:99-level++});return{from:pos,to:pos,options,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function completeAttrName(state,schema,tree,from,to){let elt2=findParentElement(tree),info=elt2?schema.tags[elementName(state.doc,elt2)]:null;let localAttrs=info&&info.attrs?Object.keys(info.attrs):[];let names=info&&info.globalAttrs===false?localAttrs:localAttrs.length?localAttrs.concat(schema.globalAttrNames):schema.globalAttrNames;return{from,to,options:names.map(attrName=>({label:attrName,type:"property"})),validFor:identifier}}function completeAttrValue(state,schema,tree,from,to){var _a;let nameNode=(_a=tree.parent)===null||_a===void 0?void 0:_a.getChild("AttributeName");let options=[],token=void 0;if(nameNode){let attrName=state.sliceDoc(nameNode.from,nameNode.to);let attrs=schema.globalAttrs[attrName];if(!attrs){let elt2=findParentElement(tree),info=elt2?schema.tags[elementName(state.doc,elt2)]:null;attrs=(info===null||info===void 0?void 0:info.attrs)&&info.attrs[attrName]}if(attrs){let base=state.sliceDoc(from,to).toLowerCase(),quoteStart='"',quoteEnd='"';if(/^['"]/.test(base)){token=base[0]=='"'?/^[^"]*$/:/^[^']*$/;quoteStart="";quoteEnd=state.sliceDoc(to,to+1)==base[0]?"":base[0];base=base.slice(1);from++}else{token=/^[^\s<>='"]*$/}for(let value of attrs)options.push({label:value,apply:quoteStart+value+quoteEnd,type:"constant"})}}return{from,to,options,validFor:token}}function htmlCompletionFor(schema,context){let{state,pos}=context,tree=syntaxTree(state).resolveInner(pos,-1),around=tree.resolve(pos);for(let scan=pos,before;around==tree&&(before=tree.childBefore(scan));){let last=before.lastChild;if(!last||!last.type.isError||last.from<last.to)break;around=tree=before;scan=last.from}if(tree.name=="TagName"){return tree.parent&&/CloseTag$/.test(tree.parent.name)?completeCloseTag(state,tree,tree.from,pos):completeTag(state,schema,tree,tree.from,pos)}else if(tree.name=="StartTag"||tree.name=="IncompleteTag"){return completeTag(state,schema,tree,pos,pos)}else if(tree.name=="StartCloseTag"||tree.name=="IncompleteCloseTag"){return completeCloseTag(state,tree,pos,pos)}else if(tree.name=="OpenTag"||tree.name=="SelfClosingTag"||tree.name=="AttributeName"){return completeAttrName(state,schema,tree,tree.name=="AttributeName"?tree.from:pos,pos)}else if(tree.name=="Is"||tree.name=="AttributeValue"||tree.name=="UnquotedAttributeValue"){return completeAttrValue(state,schema,tree,tree.name=="Is"?pos:tree.from,pos)}else if(context.explicit&&(around.name=="Element"||around.name=="Text"||around.name=="Document")){return completeStartTag(state,schema,tree,pos)}else{return null}}function htmlCompletionSource(context){return htmlCompletionFor(Schema.default,context)}function htmlCompletionSourceWith(config){let{extraTags,extraGlobalAttributes:extraAttrs}=config;let schema=extraAttrs||extraTags?new Schema(extraTags,extraAttrs):Schema.default;return context=>htmlCompletionFor(schema,context)}const jsonParser=javascriptLanguage.parser.configure({top:"SingleExpression"});const defaultNesting=[{tag:"script",attrs:attrs=>attrs.type=="text/typescript"||attrs.lang=="ts",parser:typescriptLanguage.parser},{tag:"script",attrs:attrs=>attrs.type=="text/babel"||attrs.type=="text/jsx",parser:jsxLanguage.parser},{tag:"script",attrs:attrs=>attrs.type=="text/typescript-jsx",parser:tsxLanguage.parser},{tag:"script",attrs(attrs){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(attrs.type)},parser:jsonParser},{tag:"script",attrs(attrs){return!attrs.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(attrs.type)},parser:javascriptLanguage.parser},{tag:"style",attrs(attrs){return(!attrs.lang||attrs.lang=="css")&&(!attrs.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(attrs.type))},parser:cssLanguage.parser}];const defaultAttrs=[{name:"style",parser:cssLanguage.parser.configure({top:"Styles"})}].concat(eventAttributes.map(name=>({name,parser:javascriptLanguage.parser})));const htmlPlain=LRLanguage.define({name:"html",parser:parser$4.configure({props:[indentNodeProp.add({Element(context){let after=/^(\s*)(<\/)?/.exec(context.textAfter);if(context.node.to<=context.pos+after[0].length)return context.continue();return context.lineIndent(context.node.from)+(after[2]?0:context.unit)},"OpenTag CloseTag SelfClosingTag"(context){return context.column(context.node.from)+context.unit},Document(context){if(context.pos+/\s*/.exec(context.textAfter)[0].length<context.node.to)return context.continue();let endElt=null,close;for(let cur=context.node;;){let last=cur.lastChild;if(!last||last.name!="Element"||last.to!=cur.to)break;endElt=cur=last}if(endElt&&!((close=endElt.lastChild)&&(close.name=="CloseTag"||close.name=="SelfClosingTag")))return context.lineIndent(endElt.from)+context.unit;return null}}),foldNodeProp.add({Element(node){let first=node.firstChild,last=node.lastChild;if(!first||first.name!="OpenTag")return null;return{from:first.to,to:last.name=="CloseTag"?last.from:node.to}}}),bracketMatchingHandle.add({"OpenTag CloseTag":node=>node.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}});const htmlLanguage=htmlPlain.configure({wrap:configureNesting(defaultNesting,defaultAttrs)});function html(config={}){let dialect="",wrap;if(config.matchClosingTags===false)dialect="noMatch";if(config.selfClosingTags===true)dialect=(dialect?dialect+" ":"")+"selfClosing";if(config.nestedLanguages&&config.nestedLanguages.length||config.nestedAttributes&&config.nestedAttributes.length)wrap=configureNesting((config.nestedLanguages||[]).concat(defaultNesting),(config.nestedAttributes||[]).concat(defaultAttrs));let lang=wrap?htmlPlain.configure({wrap,dialect}):dialect?htmlLanguage.configure({dialect}):htmlLanguage;return new LanguageSupport(lang,[htmlLanguage.data.of({autocomplete:htmlCompletionSourceWith(config)}),config.autoCloseTags!==false?autoCloseTags:[],javascript().support,css().support])}const selfClosers=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" "));function isClosed(doc,elt2,name){var _a;for(;;){if(((_a=elt2.lastChild)===null||_a===void 0?void 0:_a.name)!="CloseTag")return false;let next=elt2.parent;if(!next||elementName(doc,next)!=name)return true;elt2=next}}const autoCloseTags=EditorView.inputHandler.of((view,from,to,text,insertTransaction)=>{if(view.composing||view.state.readOnly||from!=to||text!=">"&&text!="/"||!htmlLanguage.isActiveAt(view.state,from,-1))return false;let base=insertTransaction(),{state}=base;let closeTags=state.changeByRange(range=>{var _a;let didType=state.doc.sliceString(range.from-1,range.to)==text;let{head}=range,after=syntaxTree(state).resolveInner(head,-1),name;if(didType&&text==">"&&after.name=="EndTag"){let tag=after.parent;if((name=elementName(state.doc,tag.parent,head))&&!selfClosers.has(name)&&!isClosed(state.doc,tag.parent,name)){let to2=head+(state.doc.sliceString(head,head+1)===">"?1:0);let insert=`</${name}>`;return{range,changes:{from:head,to:to2,insert}}}}else if(didType&&text=="/"&&after.name=="IncompleteCloseTag"){let tag=after.parent;if(after.from==head-2&&((_a=tag.lastChild)===null||_a===void 0?void 0:_a.name)!="CloseTag"&&(name=elementName(state.doc,tag,head))&&!selfClosers.has(name)){let to2=head+(state.doc.sliceString(head,head+1)===">"?1:0);let insert=`${name}>`;return{range:EditorSelection.cursor(head+insert.length,-1),changes:{from:head,to:to2,insert}}}}return{range}});if(closeTags.changes.empty)return false;view.dispatch([base,state.update(closeTags,{userEvent:"input.complete",scrollIntoView:true})]);return true});const jsonHighlighting=styleTags({String:tags$1.string,Number:tags$1.number,"True False":tags$1.bool,PropertyName:tags$1.propertyName,Null:tags$1.null,", :":tags$1.separator,"[ ]":tags$1.squareBracket,"{ }":tags$1.brace});const parser$2=LRParser.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[jsonHighlighting],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{"JsonText":[0,1]},tokenPrec:0});const jsonLanguage=LRLanguage.define({name:"json",parser:parser$2.configure({props:[indentNodeProp.add({Object:continuedIndent({except:/^\s*\}/}),Array:continuedIndent({except:/^\s*\]/})}),foldNodeProp.add({"Object Array":foldInside})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function json(){return new LanguageSupport(jsonLanguage)}const RawString=1;const templateArgsEndFallback=2;const MacroName=3;const R=82;const L=76;const u=117;const U=85;const a=97;const z=122;const A=65;const Z=90;const Underscore=95;const Zero=48;const Quote=34;const ParenL=40;const ParenR=41;const Space=32;const GreaterThan=62;const rawString=new ExternalTokenizer(input=>{if(input.next==L||input.next==U){input.advance()}else if(input.next==u){input.advance();if(input.next==Zero+8)input.advance()}if(input.next!=R)return;input.advance();if(input.next!=Quote)return;input.advance();let marker="";while(input.next!=ParenL){if(input.next==Space||input.next<=13||input.next==ParenR)return;marker+=String.fromCharCode(input.next);input.advance()}input.advance();for(;;){if(input.next<0)return input.acceptToken(RawString);if(input.next==ParenR){let match=true;for(let i=0;match&&i<marker.length;i++)if(input.peek(i+1)!=marker.charCodeAt(i))match=false;if(match&&input.peek(marker.length+1)==Quote)return input.acceptToken(RawString,2+marker.length)}input.advance()}});const fallback=new ExternalTokenizer(input=>{if(input.next==GreaterThan){if(input.peek(1)==GreaterThan)input.acceptToken(templateArgsEndFallback,1)}else{let sawLetter=false,i=0;for(;;i++){if(input.next>=A&&input.next<=Z)sawLetter=true;else if(input.next>=a&&input.next<=z)return;else if(input.next!=Underscore&&!(input.next>=Zero&&input.next<=Zero+9))break;input.advance()}if(sawLetter&&i>1)input.acceptToken(MacroName)}},{extend:true});const cppHighlighting=styleTags({"typedef struct union enum class typename decltype auto template operator friend noexcept namespace using requires concept import export module __attribute__ __declspec __based":tags$1.definitionKeyword,"extern MsCallModifier MsPointerModifier extern static register thread_local inline const volatile restrict _Atomic mutable constexpr constinit consteval virtual explicit VirtualSpecifier Access":tags$1.modifier,"if else switch for while do case default return break continue goto throw try catch":tags$1.controlKeyword,"co_return co_yield co_await":tags$1.controlKeyword,"new sizeof delete static_assert":tags$1.operatorKeyword,"NULL nullptr":tags$1.null,this:tags$1.self,"True False":tags$1.bool,"TypeSize PrimitiveType":tags$1.standard(tags$1.typeName),TypeIdentifier:tags$1.typeName,FieldIdentifier:tags$1.propertyName,"CallExpression/FieldExpression/FieldIdentifier":tags$1.function(tags$1.propertyName),"ModuleName/Identifier":tags$1.namespace,"PartitionName":tags$1.labelName,StatementIdentifier:tags$1.labelName,"Identifier DestructorName":tags$1.variableName,"CallExpression/Identifier":tags$1.function(tags$1.variableName),"CallExpression/ScopedIdentifier/Identifier":tags$1.function(tags$1.variableName),"FunctionDeclarator/Identifier FunctionDeclarator/DestructorName":tags$1.function(tags$1.definition(tags$1.variableName)),NamespaceIdentifier:tags$1.namespace,OperatorName:tags$1.operator,ArithOp:tags$1.arithmeticOperator,LogicOp:tags$1.logicOperator,BitOp:tags$1.bitwiseOperator,CompareOp:tags$1.compareOperator,AssignOp:tags$1.definitionOperator,UpdateOp:tags$1.updateOperator,LineComment:tags$1.lineComment,BlockComment:tags$1.blockComment,Number:tags$1.number,String:tags$1.string,"RawString SystemLibString":tags$1.special(tags$1.string),CharLiteral:tags$1.character,EscapeSequence:tags$1.escape,"UserDefinedLiteral/Identifier":tags$1.literal,PreprocArg:tags$1.meta,"PreprocDirectiveName #include #ifdef #ifndef #if #define #else #endif #elif":tags$1.processingInstruction,MacroName:tags$1.special(tags$1.name),"( )":tags$1.paren,"[ ]":tags$1.squareBracket,"{ }":tags$1.brace,"< >":tags$1.angleBracket,". ->":tags$1.derefOperator,", ;":tags$1.separator});const spec_identifier={__proto__:null,bool:36,char:36,int:36,float:36,double:36,void:36,size_t:36,ssize_t:36,intptr_t:36,uintptr_t:36,charptr_t:36,int8_t:36,int16_t:36,int32_t:36,int64_t:36,uint8_t:36,uint16_t:36,uint32_t:36,uint64_t:36,char8_t:36,char16_t:36,char32_t:36,char64_t:36,const:70,volatile:72,restrict:74,_Atomic:76,mutable:78,constexpr:80,constinit:82,consteval:84,struct:88,__declspec:92,final:148,override:148,public:152,private:152,protected:152,virtual:154,extern:160,static:162,register:164,inline:166,thread_local:168,__attribute__:172,__based:178,__restrict:180,__uptr:180,__sptr:180,_unaligned:180,__unaligned:180,noexcept:194,requires:198,TRUE:798,true:798,FALSE:800,false:800,typename:218,class:220,template:234,throw:248,__cdecl:256,__clrcall:256,__stdcall:256,__fastcall:256,__thiscall:256,__vectorcall:256,try:260,catch:264,export:282,import:286,case:296,default:298,if:308,else:314,switch:318,do:322,while:324,for:330,return:334,break:338,continue:342,goto:346,co_return:350,co_yield:354,using:362,typedef:366,namespace:380,new:398,delete:400,co_await:402,concept:406,enum:410,static_assert:414,friend:422,union:424,explicit:430,operator:444,module:456,signed:518,unsigned:518,long:518,short:518,decltype:528,auto:530,sizeof:566,NULL:572,nullptr:586,this:588};const spec_={__proto__:null,"<":767};const spec_templateArgsEnd={__proto__:null,">":135};const spec_scopedIdentifier={__proto__:null,operator:388,new:576,delete:582};const parser$1=LRParser.deserialize({version:14,states:"$<[Q!QQVOOP'gOUOOO([OWO'#CdO,UQUO'#CgO,`QUO'#FjO-vQbO'#CxO.XQUO'#CxO0WQUO'#KaO0_QUO'#CwO0jOpO'#DvO0rQ!dO'#D]OOQR'#JP'#JPO5[QVO'#GUO5iQUO'#JWOOQQ'#JW'#JWO8}QUO'#KtO<hQUO'#KtO?OQVO'#E^O?`QUO'#E^OOQQ'#Ed'#EdOOQQ'#Ee'#EeO?eQVO'#EfO@[QVO'#EiOBXQUO'#FPOByQUO'#FhOOQR'#Fj'#FjOCOQUO'#FjOOQR'#LX'#LXOOQR'#LW'#LWOEWQVO'#KWOF{QUO'#L_OGYQUO'#KxOGnQUO'#L_OH`QUO'#LaOOQR'#HU'#HUOOQR'#HV'#HVOOQR'#HW'#HWOOQR'#LT'#LTOOQR'#J`'#J`Q!QQVOOOHnQVO'#FOOIZQUO'#EhOIbQUOOOK^QVO'#HgOKnQUO'#HgONYQUO'#KxONdQUO'#KxOOQQ'#Kx'#KxO!!bQUO'#KxOOQQ'#Js'#JsO!!oQUO'#HxOOQQ'#Ka'#KaO!&aQUO'#KaO!&}QUO'#KWO!(}QVO'#I]O!(}QVO'#I`OCTQUO'#KWOOQQ'#Ip'#IpOOQQ'#KW'#KWO!-QQUO'#KaOOQR'#K`'#K`O!-XQUO'#DZO!/pQUO'#KuOOQQ'#Ku'#KuO!/wQUO'#KuO!0OQUO'#ETO!0TQUO'#EWO!0YQUO'#FRO8}QUO'#FPO!QQVO'#F^O!0_Q#vO'#F`O!0jQUO'#FkO!0rQUO'#FpO!0wQVO'#FrO!0rQUO'#FuO!3vQUO'#FvO!3{QVO'#FxO!4VQUO'#FzO!4[QUO'#F|O!4aQUO'#GOO!4fQVO'#GQO!(}QVO'#GSO!4mQUO'#GpO!4{QUO'#GYO!(}QVO'#FeO!6YQUO'#FeO!6_QVO'#G`O!6fQUO'#GaO!6qQUO'#GnO!6vQUO'#GrO!6{QUO'#GzO!7mQ&lO'#HiO!:pQUO'#GuO!;QQUO'#HXO!;]QUO'#HZO!;eQUO'#DXO!;eQUO'#HuO!;eQUO'#HvO!;|QUO'#HwO!<_QUO'#H|O!=SQUO'#H}O!>xQVO'#IbO!(}QVO'#IdO!?SQUO'#IgO!?ZQVO'#IjP!AQO!LQO'#CaP!A]{,UO'#CbP!6q{,UO'#CbP!Ah{7[O'#CbP!6q{,UO'#CbP!Am{,UO'#CbP!AxOSO'#IzPOOO)CEp)CEpOOOO'#I}'#I}O!BSOWO,59OOOQR,59O,59OO!(}QVO,59VOOQQ,59X,59XOOQR'#Do'#DoO!(}QVO,5;ROOQR,5<U,5<UO!B_QUO,59ZO!(}QVO,5>qOOQR'#IX'#IXOOQR'#IY'#IYOOQR'#IZ'#IZOOQR'#I['#I[O!(}QVO,5>rO!(}QVO,5>rO!(}QVO,5>rO!(}QVO,5>rO!(}QVO,5>rO!(}QVO,5>rO!(}QVO,5>rO!(}QVO,5>rO!(}QVO,5>rO!(}QVO,5>rO!D^QVO,5>zOOQQ,5?W,5?WO!FPQVO'#CjO!IxQUO'#CzOOQQ,59d,59dOOQQ,59c,59cOOQQ,5<},5<}O!JVQ&lO,5=mO!?SQUO,5?RO!LyQVO,5?UO!MQQbO,59dO!M]QVO'#FYOOQQ,5?P,5?PO!MmQVO,59WO!MtO`O,5:bO!MyQbO'#D^O!N[QbO'#KeO!NjQbO,59wO!NrQbO'#CxO# TQUO'#CxO# YQUO'#KaO# dQUO'#CwOOQR-E<}-E<}O# oQUO,5AvO# vQVO'#EfO@[QVO'#EiOBXQUO,5;kOOQR,5<p,5<pO#$oQUO'#KWO#$vQUO'#KWO!(}QVO'#IUO8}QUO,5;kO#%ZQ&lO'#HiO#(bQUO'#CtO#+VQbO'#CxO#+[QUO'#CwO#.xQUO'#KaOOQQ-E=U-E=UO#1]QUO,5A`O#1gQUO'#KaO#1qQUO,5A`OOQR,5Av,5AvOOQQ,5>l,5>lO#3uQUO'#CgO#4kQUO,5>pO#6^QUO'#IeOOQR'#JO'#JOO#6fQUO,5:xO#7SQUO,5:xO#7sQUO,5:xO#8hQUO'#CuO!0TQUO'#CmOOQQ'#JX'#JXO#7SQUO,5:xO#8pQUO,5;QO!4{QUO'#DOO#9yQUO,5;QO#:OQUO,5>QO#;[QUO'#DOO#;rQUO,5>{O#;wQUO'#LOO#=QQUO,5;TO#=YQVO,5;TO#=dQUO,5;TOOQQ,5;T,5;TO#?]QUO'#LdO#?dQUO,5>UO#?iQbO'#CxO#?tQUO'#GcO#?yQUO'#E^O#@jQUO,5;kO#ARQUO'#LUO#AZQUO,5;rOKnQUO'#HfOBXQUO'#HgO#A`QUO'#KxO!6qQUO'#HjO#BWQUO'#CuO!0wQVO,5<SOOQQ'#Cg'#CgOOQR'#Jj'#JjO#B]QVO,5=`OOQQ,5?Z,5?ZO#DfQbO'#CxO#DqQUO'#GcOOQQ'#Jk'#JkOOQQ-E=i-E=iOGYQUO,5AyOGnQUO,5AyO#DvQUO,5A{O#ERQUO'#G|OOQR,5Ay,5AyO#DvQUO,5AyO#E^QUO'#HOO#EfQUO,5A{OOQR,5A{,5A{OOQR,5A|,5A|O#EtQVO,5A|OOQR-E=^-E=^O#GnQVO,5;jOOQR,5;j,5;jO#IoQUO'#EjO#JtQUO'#EwO#KkQVO'#ExO#M}QUO'#EvO#NVQUO'#EyO$ UQUO'#EzOOQQ'#LR'#LRO$ {QUO,5;SO$#RQUO'#EvOOQQ,5;S,5;SO$$OQUO,5;SO$%qQUO,5:yO$([QVO,5>PO$(fQUO'#E[O$(sQUO,5>ROOQQ,5>S,5>SO$,aQVO'#C|OOQQ-E=q-E=qOOQQ,5>d,5>dOOQQ,59a,59aO$,kQUO,5>wO$.kQUO,5>zO!6qQUO,59uO$/OQUO,5;qO$/]QUO,5<{O!0TQUO,5:oOOQQ,5:r,5:rO$/hQUO,5;mO$/mQUO'#KtOBXQUO,5;kOOQR,5;x,5;xO$0^QUO'#FbO$0lQUO'#FbO$0qQUO,5;zO$4[QVO'#FmO!0wQVO,5<VO!0rQUO,5<VO!0YQUO,5<[O$4cQVO'#GUO$7_QUO,5<^O!0wQVO,5<aO$:uQVO,5<bO$;SQUO,5<dOOQR,5<d,5<dO$<]QUO,5<dOOQR,5<f,5<fOOQR,5<h,5<hOOQQ'#Fi'#FiO$<bQUO,5<jO$<gQUO,5<lOOQR,5<l,5<lO$=mQUO,5<nO$>sQUO'#L^O$>{QUO,5<rO$?WQUO,5=[O$?]QUO,5=[O!4{QUO,5<tO$?eQUO,5<tO$?yQUO,5<PO$APQVO,5<PO$CbQUO,5<zOOQR,5<z,5<zOOQR,5<{,5<{O$?]QUO,5<{O$DhQUO,5<{O$DsQUO,5=YO!(}QVO,5=^O!(}QVO,5=fO#NsQUO,5=mOOQQ,5>T,5>TO$FxQUO,5>TO$GSQUO,5>TO$GXQUO,5>TO$G^QUO,5>TO!6qQUO,5>TO$I[QUO'#KaO$IcQUO,5=oO$InQUO,5=aOKnQUO,5=oO$JhQUO,5=sOOQR,5=s,5=sO$JpQUO,5=sO$L{QVO'#H[OOQQ,5=u,5=uO!;`QUO,5=uO%#vQUO'#KqO%#}QUO'#KbO%$cQUO'#KqO%$mQUO'#DyO%%OQUO'#D|O%'{QUO'#KbOOQQ'#Kb'#KbO%)nQUO'#KbO%#}QUO'#KbO%)sQUO'#KbOOQQ,59s,59sOOQQ,5>a,5>aOOQQ,5>b,5>bO%){QUO'#HzO%*TQUO,5>cOOQQ,5>c,5>cO%-oQUO,5>cO%-zQUO,5>hO%1fQVO,5>iO%1mQUO,5>|O# vQVO'#EfO%4sQUO,5>|OOQQ,5>|,5>|O%5dQUO,5?OO%7hQUO,5?RO!<_QUO,5?RO%9dQUO,5?UO%=PQVO,5?UPOOO'#I|'#I|P%=WO!LQO,58{POOO,58{,58{P!Am{,UO,58|P%=c{,UO,58|P%=q{7[O,58|PO{O'#Jw'#JwP%>S{,UO'#LkPOOO'#Lk'#LkP%>Y{,UO'#LkPOOO,58|,58|POOO,5?f,5?fP%>_OSO,5?fOOOO-E<{-E<{OOQR1G.j1G.jO%>fQUO1G.qO%?lQUO1G0mOOQQ1G0m1G0mO%@xQUO'#CpO%CXQbO'#CxO%CdQUO'#CsO%CiQUO'#CsO%CnQUO1G.uO#BWQUO'#CrOOQQ1G.u1G.uO%EqQUO1G4]O%FwQUO1G4^O%HjQUO1G4^O%J]QUO1G4^O%LOQUO1G4^O%MqQUO1G4^O& dQUO1G4^O&#VQUO1G4^O&$xQUO1G4^O&&kQUO1G4^O&(^QUO1G4^O&*PQUO1G4^O&+rQUO'#KVO&,{QUO'#KVO&-TQUO,59UOOQQ,5=P,5=PO&/]QUO,5=PO&/gQUO,5=PO&/lQUO,5=PO&/qQUO,5=PO!6qQUO,5=PO#NsQUO1G3XO&/{QUO1G4mO!<_QUO1G4mO&1wQUO1G4pO&3jQVO1G4pOOQQ1G/O1G/OOOQQ1G.}1G.}OOQQ1G2i1G2iO!JVQ&lO1G3XO&3qQUO'#LVO@[QVO'#EiO&4zQUO'#F]OOQQ'#Jb'#JbO&5PQUO'#FZO&5[QUO'#LVO&5dQUO,5;tO&5iQUO1G.rOOQQ1G.r1G.rOOQR1G/|1G/|O&7[Q!dO'#JQO&7aQbO,59xO&9rQ!eO'#D`O&9yQ!dO'#JSO&:OQbO,5APO&:OQbO,5APOOQR1G/c1G/cO&:ZQbO1G/cO&:`Q&lO'#GeO&;^QbO,59dOOQR1G7b1G7bO#@jQUO1G1VO&;iQUO1G1^OBXQUO1G1VO&=zQUO'#CzO#+VQbO,59dO&AmQUO1G6zOOQR-E<|-E<|O&CPQUO1G0dO#6fQUO1G0dOOQQ-E=V-E=VO#7SQUO1G0dOOQQ1G0l1G0lO&CtQUO,59jOOQQ1G3l1G3lO&D[QUO,59jO&DrQUO,59jO!MmQVO1G4gO!(}QVO'#JZO&E^QUO,5AjOOQQ1G0o1G0oO!(}QVO1G0oO!6qQUO'#JpO&EfQUO,5BOOOQQ1G3p1G3pOOQR1G1V1G1VO&IcQVO'#FOO!MmQVO,5;sOOQQ,5;s,5;sOBXQUO'#JdO&K_QUO,5ApO&KgQVO'#E[OOQR1G1^1G1^O&NUQUO'#LdOOQR1G1n1G1nOOQR-E=h-E=hOOQR1G7e1G7eO#DvQUO1G7eOGYQUO1G7eO#DvQUO1G7gOOQR1G7g1G7gO&N^QUO'#G}O&NfQUO'#L`OOQQ,5=h,5=hO&NtQUO,5=jO&NyQUO,5=kOOQR1G7h1G7hO#EtQVO1G7hO' OQUO1G7hO'!UQVO,5=kOOQR1G1U1G1UO$/UQUO'#E]O'!zQUO'#E]OOQQ'#LQ'#LQO'#eQUO'#LPO'#pQUO,5;UO'#xQUO'#ElO'$]QUO'#ElO'$pQUO'#EtOOQQ'#J]'#J]O'$uQUO,5;cO'%lQUO,5;cO'&gQUO,5;dO''mQVO,5;dOOQQ,5;d,5;dO''wQVO,5;dO''mQVO,5;dO'(OQUO,5;bO'({QUO,5;eO')WQUO'#KwO')`QUO,5:vO')eQUO,5;fOOQQ1G0n1G0nOOQQ'#J^'#J^O'(OQUO,5;bO!4{QUO'#E}OOQQ,5;b,5;bO'*`QUO'#E`O',YQUO'#E{OHuQUO1G0nO',_QUO'#EbOOQQ'#JY'#JYO'-wQUO'#KyOOQQ'#Ky'#KyO'.qQUO1G0eO'/iQUO1G3kO'0oQVO1G3kOOQQ1G3k1G3kO'0yQVO1G3kO'1QQUO'#LgO'2^QUO'#K_O'2lQUO'#K^O'2wQUO,59hO'3PQUO1G/aO'3UQUO'#FPOOQR1G1]1G1]OOQR1G2g1G2gO$?]QUO1G2gO'3`QUO1G2gO'3kQUO1G0ZOOQR'#Ja'#JaO'3pQVO1G1XO'9iQUO'#FTO'9nQUO1G1VO!6qQUO'#JeO'9|QUO,5;|O$0lQUO,5;|OOQQ'#Fc'#FcOOQQ,5;|,5;|O':[QUO1G1fOOQR1G1f1G1fO':dQUO,5<XO$/UQUO'#FWOBXQUO'#FWO':kQUO,5<XO!(}QVO,5<XO':sQUO,5<XO':xQVO1G1qO!0wQVO1G1qOOQR1G1v1G1vO'@hQUO1G1xOOQR1G1{1G1{O'@mQUO1G1|OBXQUO1G2]O'AvQVO1G1|O'D[QUO1G1|O'DaQUO'#GWO8}QUO1G2]OOQR1G2O1G2OOOQR1G2U1G2UOOQR1G2W1G2WOOQR1G2Y1G2YO$?]QUO'#JiO'DfQUO,5AxO'DnQUO1G2^O!4{QUO1G2^OOQR1G2v1G2vO'DvQUO1G2vO$?eQUO1G2`OOQQ'#Cv'#CvO'D{QUO'#G[O'EvQUO'#G[O'E{QUO'#LYO'FZQUO'#G_OOQQ'#LZ'#LZO'FiQUO1G2`O'FnQVO1G1kO'IPQVO'#GUOBXQUO'#FWOOQR'#Jf'#JfO'FnQVO1G1kO'IZQUO'#FvOOQR1G2f1G2fO'I`QUO1G2gO'IeQUO'#JhO'3`QUO1G2gO!(}QVO1G2tO'ImQUO1G2xO'JvQUO1G3QO'K|QUO1G3XOOQQ1G3o1G3oO'LbQUO1G3oOOQR1G3Z1G3ZO'LgQUO'#KaO'3UQUO'#L[OGnQUO'#L_OOQR'#Gy'#GyO#DvQUO'#LaOOQR'#HQ'#HQO'LqQUO'#GvO'$pQUO'#GuOOQR1G2{1G2{O'MnQUO1G2{O'NeQUO1G3ZO'NpQUO1G3_O'NuQUO1G3_OOQR1G3_1G3_O'N}QUO'#H]OOQR'#H]'#H]O(!WQUO'#H]O!(}QVO'#H`O!(}QVO'#H_OOQR'#Lc'#LcO(!]QUO'#LcOOQR'#Jm'#JmO(!bQVO,5=vOOQQ,5=v,5=vO(!iQUO'#H^O(!qQUO'#HZOOQQ1G3a1G3aO(!{QUO,5@|OOQQ,5@|,5@|O%)nQUO,5@|O%)sQUO,5@|O%$mQUO,5:eO(&jQUO'#KrO(&xQUO'#KrOOQQ,5:e,5:eOOQQ'#JT'#JTO('TQUO'#D}O('_QUO'#KxOGnQUO'#L_O((ZQUO'#D}OOQQ'#Hp'#HpOOQQ'#Hr'#HrOOQQ'#Hs'#HsOOQQ'#Ks'#KsOOQQ'#JV'#JVO((eQUO,5:hOOQQ,5:h,5:hO()bQUO'#L_O()oQUO'#HtO(*VQUO,5@|O(*^QUO'#H{O(*iQUO'#LfO(*qQUO,5>fO(*vQUO'#LeOOQQ1G3}1G3}O(.mQUO1G3}O(.tQUO1G3}O(.{QUO1G4TO(0RQUO1G4TO(0WQUO,5BUO!6qQUO1G4hO!(}QVO'#IiOOQQ1G4m1G4mO(0]QUO1G4mO(2`QVO1G4pPOOO-E<z-E<zPOOO1G.g1G.gPOOO1G.h1G.hP!Am{,UO1G.hP(4`QUO'#LmP(4k{7[O1G.hPO{O-E=u-E=uPOOO,5BV,5BVP(4y{,UO,5BVPOOO1G5Q1G5QO!(}QVO7+$]O(5OQUO'#CzOOQQ,59_,59_O(5ZQbO,59dO(5fQbO,59_OOQQ,59^,59^OOQQ7+)w7+)wO!MmQVO'#JvO(5qQUO,5@qOOQQ1G.p1G.pOOQQ1G2k1G2kO(5yQUO1G2kO(6OQUO7+(sOOQQ7+*X7+*XO(8dQUO7+*XO(8kQUO7+*XO(2`QVO7+*[O#NsQUO7+(sO(8xQVO'#JcO(9]QUO,5AqO(9eQUO,5;vOOQQ'#Cp'#CpOOQQ,5;w,5;wO!(}QVO'#F[OOQQ-E=`-E=`O!MmQVO,5;uOOQQ1G1`1G1`OOQQ,5?l,5?lOOQQ-E=O-E=OOOQR'#Dg'#DgOOQR'#Di'#DiOOQR'#Dl'#DlO(:nQ!eO'#KfO(:uQMkO'#KfO(:|Q!eO'#KfOOQR'#Kf'#KfOOQR'#JR'#JRO(;TQ!eO,59zOOQQ,59z,59zO(;[QbO,5?nOOQQ-E=Q-E=QO(;jQbO1G6kOOQR7+$}7+$}OOQR7+&q7+&qOOQR7+&x7+&xO'9nQUO7+&qO(;uQUO7+&OO#6fQUO7+&OO(<jQUO1G/UO(=QQUO1G/UO(=lQUO7+*ROOQQ7+*V7+*VO(?_QUO,5?uOOQQ-E=X-E=XO(@hQUO7+&ZOOQQ,5@[,5@[OOQQ-E=n-E=nO(@mQUO'#LVO@[QVO'#EiO(AyQUO1G1_OOQQ1G1_1G1_O(CSQUO,5@OOOQQ,5@O,5@OOOQQ-E=b-E=bO(ChQUO'#KwOOQR7+-P7+-PO#DvQUO7+-POOQR7+-R7+-RO(CuQUO,5=iO#ERQUO'#JlO(DWQUO,5AzOOQR1G3U1G3UOOQR1G3V1G3VO(DfQUO7+-SOOQR7+-S7+-SO(F^QUO,5:wO(G{QUO'#EwO!(}QVO,5;VO(HnQUO,5:wO(HxQUO'#EpO(IZQUO'#EzOOQQ,5;Z,5;ZO#KkQVO'#ExO(IqQUO,5:wO(IxQUO'#EyO#GuQUO'#J[O(KbQUO,5AkOOQQ1G0p1G0pO(KmQUO,5;WO!<_QUO,5;^O(LWQUO,5;_O(LfQUO,5;WO(NxQUO,5;`OOQQ-E=Z-E=ZO) QQUO1G0}OOQQ1G1O1G1OO) {QUO1G1OO)#RQVO1G1OO)#YQVO1G1OO)#dQUO1G0|OOQQ1G0|1G0|OOQQ1G1P1G1PO)$aQUO'#JqO)$kQUO,5AcOOQQ1G0b1G0bOOQQ-E=[-E=[O)$sQUO,5;iO!<_QUO,5;iO)%pQVO,5:zO)%wQUO,5;gO$ {QUO7+&YOOQQ7+&Y7+&YO!(}QVO'#EfO)&OQUO,5:|OOQQ'#Kz'#KzOOQQ-E=W-E=WOOQQ,5Ae,5AeOOQQ'#Jn'#JnO))sQUO7+&PPOQQ7+&P7+&POOQQ7+)V7+)VO)*kQUO7+)VO)+qQVO7+)VOOQQ,5>m,5>mO$)hQVO'#JuO)+xQUO,5@xOOQQ1G/S1G/SOOQQ7+${7+${O),TQUO7+(RO),YQUO7+(ROOQR7+(R7+(RO$?]QUO7+(ROOQQ7+%u7+%uOOQR-E=_-E=_O!0YQUO,5;oOOQQ,5@P,5@POOQQ-E=c-E=cO$0lQUO1G1hOOQQ1G1h1G1hOOQR7+'Q7+'QOOQR1G1s1G1sOBXQUO,5;rO),vQUO,5<YO),}QUO1G1sO).WQUO1G1sO!0wQVO7+']O).]QVO7+']O)3{QUO7+'dO)4QQVO7+'hO)6fQUO7+'wO)6pQUO7+'hO)7vQVO7+'hOKnQUO7+'wO$?OQUO,5<rOOQQ,5@T,5@TOOQQ-E=g-E=gO!4{QUO7+'xO)7}QUO7+'xOOQR7+(b7+(bO)8SQUO7+'zO)8XQUO,5<vO'D{QUO,5<vO)9PQUO,5<vO'D{QUO,5<vOOQQ,5<w,5<wO)9bQVO,5<xO'FZQUO'#JgO)9lQUO,5AtO)9tQUO,5<yOOQR7+'z7+'zO):PQVO7+'VO)6iQUO'#LUOOQR-E=d-E=dO)<bQVO,5<bOOQQ,5@S,5@SO!6qQUO,5@SOOQQ-E=f-E=fO)>yQUO7+(`O)@PQUO7+(dO)@UQVO7+(dOOQQ7+(l7+(lOOQQ7+)Z7+)ZO)@^QUO'#KqO)@hQUO'#KqOOQR,5=b,5=bO)@uQUO,5=bO!;eQUO,5=bO!;eQUO,5=bO!;eQUO,5=bOOQR7+(g7+(gOOQR7+(u7+(uOOQR7+(y7+(yOOQR,5=w,5=wO)@zQUO,5=zO)BQQUO,5=yOOQR,5A},5A}OOQR-E=k-E=kOOQQ1G3b1G3bO)CWQUO,5=xO)C]QVO'#EfOOQQ1G6h1G6hO%)nQUO1G6hO%)sQUO1G6hOOQQ1G0P1G0POOQQ-E=R-E=RO)EtQUO,5A^O(&jQUO'#JUO)FPQUO,5A^O)FPQUO,5A^O)FXQUO,5:iO8}QUO,5:iOOQQ,5>],5>]O)FcQUO,5AyO)FjQUO'#EVO)GtQUO'#EVO)H_QUO,5:iO)HiQUO'#HlO)HiQUO'#HmOOQQ'#Kv'#KvO)IWQUO'#KvO!(}QVO'#HnOOQQ,5:i,5:iO)IxQUO,5:iO!MmQVO,5:iOOQQ-E=T-E=TOOQQ1G0S1G0SOOQQ,5>`,5>`O)I}QUO1G6hO!(}QVO,5>gO)MlQUO'#JtO)MwQUO,5BQOOQQ1G4Q1G4QO)NPQUO,5BPOOQQ,5BP,5BPOOQQ7+)i7+)iO*#nQUO7+)iOOQQ7+)o7+)oO*(mQVO1G7pO**oQUO7+*SO**tQUO,5?TO*+zQUO7+*[POOO7+$S7+$SP*-mQUO'#LnP*-uQUO,5BXP!Am{,UO7+$SPOOO1G7q1G7qO*-zQUO<<GwOOQQ1G.y1G.yOOQQ'#IT'#ITO*/mQUO,5@bOOQQ,5@b,5@bOOQQ-E=t-E=tOOQQ7+(V7+(VOOQQ<<Ms<<MsO*0vQUO<<MsO*2yQUO<<MvO*4lQUO<<L_O*5QQUO,5?}OOQQ,5?},5?}OOQQ-E=a-E=aOOQQ1G1b1G1bO*6ZQUO,5;vO*7aQUO1G1aOOQQ1G1a1G1aOOQR,5AQ,5AQO*8jQ!eO,5AQO*8qQMkO,5AQO*8xQ!eO,5AQOOQR-E=P-E=POOQQ1G/f1G/fO*9PQ!eO'#DwOOQQ1G5Y1G5YOOQR<<J]<<J]O*9WQUO<<IjO*9{QUO7+$pOOQQ<<Iu<<IuO(8xQVO,5;ROOQR<=!k<=!kOOQQ1G3T1G3TOOQQ,5@W,5@WOOQQ-E=j-E=jOOQR<=!n<=!nO*:xQUO1G0cO*;PQUO'#EzO*;aQUO1G0cO*;hQUO'#JOO*=OQUO1G0qO!(}QVO1G0qOOQQ,5;[,5;[OOQQ,5;],5;]OOQQ,5?v,5?vOOQQ-E=Y-E=YO!<_QUO1G0xO*>_QUO1G0xOOQQ1G0y1G0yO*>pQUO'#ElOOQQ1G0z1G0zOOQQ7+&j7+&jO*?UQUO7+&jO*@[QVO7+&jOOQQ7+&h7+&hOOQQ,5@],5@]OOQQ-E=o-E=oO*AWQUO1G1TO*AbQUO1G1TO*A{QUO1G0fOOQQ1G0f1G0fO*CRQUO'#LSO*CZQUO1G1ROOQQ<<It<<ItOOQQ'#Hb'#HbO',_QUO,5={OOQQ'#Hd'#HdO',_QUO,5=}OOQQ-E=l-E=lPOQQ<<Ik<<IkPOQQ-E=m-E=mOOQQ<<Lq<<LqO*C`QUO'#LiO*DlQUO'#LhOOQQ,5@a,5@aOOQQ-E=s-E=sOOQR<<Km<<KmO$?]QUO<<KmO*DzQUO<<KmOOQR1G1Z1G1ZOOQQ7+'S7+'SO!MmQVO1G1tO*EPQUO1G1tOOQR7+'_7+'_OOQR<<Jw<<JwO!0wQVO<<JwOOQR<<KO<<KOO*E[QUO<<KSO*FbQVO<<KSOKnQUO<<KcO!MmQVO<<KcO*FiQUO<<KSO!0wQVO<<KSO*GrQUO<<KSO*GwQUO<<KcO*HSQUO<<KdOOQR<<Kd<<KdOOQR<<Kf<<KfO*HXQUO1G2bO)8XQUO1G2bO'D{QUO1G2bO*HjQUO1G2dO*IpQVO1G2dOOQQ1G2d1G2dO*IzQVO1G2dO*JRQUO,5@ROOQQ-E=e-E=eOOQQ1G2e1G2eO*JaQUO1G1|O*KjQVO1G1|O*KqQUO1G1|OOQQ1G5n1G5nOOQR<<Kz<<KzOOQR<<LO<<LOO*KvQVO<<LOO*LRQUO<<LOOOQR1G2|1G2|O*LWQUO1G2|O*L_QUO1G3eOOQR1G3d1G3dOOQQ7+,S7+,SO%)nQUO7+,SO*LjQUO1G6xO*LjQUO1G6xO(&jQUO,5?pO*LrQUO,5?pOOQQ-E=S-E=SO*L}QUO1G0TOOQQ1G0T1G0TO*MXQUO1G0TO!MmQVO1G0TO*M^QUO1G0TOOQQ1G3w1G3wO*MhQUO,5:qO)FjQUO,5:qO*NUQUO,5:qO)FjQUO,5:qO$$TQUO,5:uO*NsQVO,5>VO)HiQUO'#JrO*N}QUO1G0TO+ `QVO1G0TOOQQ1G3u1G3uO+ gQUO,5>WO+ rQUO,5>XO+!aQUO,5>YO+#gQUO1G0TO%)sQUO7+,SO+$mQUO1G4ROOQQ,5@`,5@`OOQQ-E=r-E=rOOQQ<<MT<<MTOOQQ<<Mn<<MnO+%vQUO1G4oP+'yQUO'#JxP+(RQUO,5BYPO{O1G7s1G7sPOOO<<Gn<<GnOOQQANC_ANC_OOQR1G6l1G6lO+(ZQ!eO,5:cOOQQ,5:c,5:cO+(bQUO1G0mO+)nQUO7+&]O+*}QUO7+&dO++`QUO,5;WOOQQ<<JU<<JUO++nQUO7+&oOOQQ7+&Q7+&QO!4{QUO'#J_O+,iQUO,5AnOOQQ7+&m7+&mOOQQ1G3g1G3gO+,qQUO1G3iOOQQ,5>n,5>nO+0fQUOANAXOOQRANAXANAXO+0kQUO7+'`OOQRAN@cAN@cO+1wQVOAN@nO+2OQUOAN@nO!0wQVOAN@nO+3XQUOAN@nO+3^QUOAN@}O+3iQUOAN@}O+4oQUOAN@}OOQRAN@nAN@nO!MmQVOAN@}OOQRANAOANAOO+4tQUO7+'|O)8XQUO7+'|OOQQ7+(O7+(OO+5VQUO7+(OO+6]QVO7+(OO+6dQVO7+'hO+6kQUOANAjOOQR7+(h7+(hOOQR7+)P7+)PO+6pQUO7+)PO+6uQUO7+)POOQQ<= n<= nO+6}QUO7+,dO+7VQUO1G5[OOQQ1G5[1G5[O+7bQUO7+%oOOQQ7+%o7+%oO+7sQUO7+%oO+ `QVO7+%oOOQQ7+)a7+)aO+7xQUO7+%oO+9OQUO7+%oO!MmQVO7+%oO+9YQUO1G0]O*MhQUO1G0]O)FjQUO1G0]OOQQ1G0a1G0aO+9wQUO1G3qO+:}QVO1G3qOOQQ1G3q1G3qO+;XQVO1G3qO+;`QUO,5@^OOQQ-E=p-E=pOOQQ1G3r1G3rO%)nQUO<= nOOQQ7+*Z7+*ZPOQQ,5@d,5@dPOQQ-E=v-E=vOOQQ1G/}1G/}OOQQ,5?y,5?yOOQQ-E=]-E=]OOQRG26sG26sO+;wQUOG26YO!0wQVOG26YO+=QQUOG26YOOQRG26YG26YO!MmQVOG26iO!0wQVOG26iO+=VQUOG26iO+>]QUOG26iO+>bQUO<<KhOOQQ<<Kj<<KjOOQRG27UG27UOOQR<<Lk<<LkO+>sQUO<<LkOOQQ7+*v7+*vOOQQ<<IZ<<IZO+>xQUO<<IZO!MmQVO<<IZO+>}QUO<<IZO+@TQUO<<IZO+ `QVO<<IZOOQQ<<L{<<L{O+@fQUO7+%wO*MhQUO7+%wOOQQ7+)]7+)]O+ATQUO7+)]O+BZQVO7+)]OOQQANEYANEYO!0wQVOLD+tOOQRLD+tLD+tO+BbQUOLD,TO+ChQUOLD,TOOQRLD,TLD,TO!0wQVOLD,TOOQRANBVANBVOOQQAN>uAN>uO+CmQUOAN>uO+DsQUOAN>uO!MmQVOAN>uO+DxQUO<<IcOOQQ<<Lw<<LwOOQR!$( `!$( `O!0wQVO!$( oOOQR!$( o!$( oOOQQG24aG24aO+EgQUOG24aO+FmQUOG24aOOQR!)9EZ!)9EZOOQQLD){LD){O+FrQUO'#CgO(gQUO'#CgO+JoQUO'#CzO+M`QUO'#CzO!FZQUO'#CzO+NXQUO'#CzO+NlQUO'#CzO,$_QUO'#CzO,$oQUO'#CzO,$}QUO'#CzO,%[QbO,59dO,%gQbO,59dO,%rQbO,59dO,%}QbO'#CxO,&`QbO'#CxO,&qQbO'#CxO,'SQUO'#CgO,)gQUO'#CgO,)tQUO'#CgO,,lQUO'#CgO,/oQUO'#CgO,0PQUO'#CgO,1uQUO'#CgO,4uQUO'#CgO,5SQUO'#CgO,5^QUO,5:xO#?yQUO,5:xO#?yQUO,5:xO#=iQUO'#LdO,5zQbO'#CxO,6VQbO'#CxO,6bQbO'#CxO,6mQbO'#CxO#7SQUO'#E^O,6xQUO'#E^O,8VQUO'#HgO,8wQbO'#CxO,9SQbO'#CxO,9_QUO'#CwO,9dQUO'#CwO,9iQUO'#CpO,9wQbO,59dO,:SQbO,59dO,:_QbO,59dO,:jQbO,59dO,:uQbO,59dO,;QQbO,59dO,;]QbO,59dO,5^QUO1G0dO,;hQUO1G0dO#?yQUO1G0dO,6xQUO1G0dO,=uQUO'#KaO,>VQUO'#CzO,>eQbO,59dO,5^QUO7+&OO,;hQUO7+&OO,>pQUO'#EwO,?cQUO'#EzO,@SQUO'#E^O,@XQUO'#GcO,@^QUO'#CwO,@cQUO'#CxO,@hQUO'#CxO,@mQUO'#GcO,@rQUO'#CwO,@wQUO'#KaO,AeQUO'#KaO,AoQUO'#CwO,AzQUO'#CwO,BVQUO'#CwO,;hQUO,5:xO,6xQUO,5:xO,6xQUO,5:xO,BbQUO'#KaO,BuQbO'#CxO,CQQUO'#CsO,CVQUO'#E^",stateData:",C{~O(pOSSOSRPQVPQ'ePQ'gPQ'hPQ'iPQ'jPQ'kPQ'lPQ'mPQ(qPQ~O*cOS~OPmO]eOb!]Oe!POmTOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O|#RO!O!_O!TxO!VfO!X!XO!Y!WO!i!YO!opO!r!`O!s!aO!t!aO!u!bO!v!aO!x!cO!{!dO#V#QO#a#VO#b#TO#i#OO#p!xO#t!fO#v!eO$R!gO$T!hO$Y!vO$Z!wO$`!iO$e!jO$g!kO$h!lO$k!mO$m!nO$o!oO$q!pO$s!qO$u!rO$w!sO${!tO$}!uO%U!yO%_#ZO%`#[O%a#YO%c!zO%e#UO%g!{O%l#SO%o!|O%v!}O%|#PO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(xRO)WYO)ZaO)]|O)^{O)`iO)a!ZO)cXO)ocO)pdO~OR#cOV#^O'e#_O'g#`O'h#aO'i#aO'j#bO'k#bO'l#`O'm#`O(q#]O~OX#eO(u#gO(w#eO~O]ZX]jXejXmhXqZXqjXsjXtjXujXvjXwjXxjXyjXzjX!OjX!TjX!VZX!VjX!XZX!YZX![ZX!^ZX!_ZX!aZX!bZX!eZX!fZX!gZX!hZX!rjX!sjX!tjX!ujX!vjX!xjX!{jX%vjX&rjX&sjX(xjX({ZX(|$]X(}ZX)OZX)ZZX)ZjX)[ZX)]ZX)]jX)^ZX)^jX)_ZX)`ZX)aZX)qZX~O)`jX!UZX~P(gO]$PO!V#nO!X#}O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO(}#mO)O#mO)Z#oO)[#qO)]#pO)^#rO)_#jO)`#lO)a$OO~Oe$TO%Y$UO'[$VO'_$WO)P$QO~Om$XO~O!T$YO])TXe)TXs)TXt)TXu)TXv)TXw)TXx)TXy)TXz)TX!O)TX!V)TX!r)TX!s)TX!t)TX!u)TX!v)TX!x)TX!{)TX%v)TX&r)TX&s)TX(x)TX)Z)TX)])TX)^)TX)`)TX~Om$XO~P.^Om$XO!g$[O)q$[O~OX$]O)d$]O~O!R$^O)V)XP)a)XP~OPmO]$gOb!]Os!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O|#RO!O!_O!TxO!V$hO!X!XO!Y!WO!i!YO!r!aO!s!aO!t!aO!u!aO!v!aO!x!cO#V#QO#a#VO#b#TO#v!eO$Y!vO$Z!wO$`!iO$e!jO$g!kO$h!lO$k!mO$m!nO$o!oO$q!pO$s!qO$u!rO$w!sO%_#ZO%`#[O%a#YO%e#UO%l#SO%v$oO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO)WYO)Z$mO)^$mO)`iO)a!ZO)cXO)ocO)pdO~Om$aO#t$nO(xRO~P0}O](_Xb'zXe(_Xm'zXm(_Xs'zXs(_Xt'zXt(_Xu'zXu(_Xv'zXv(_Xw'zXw(_Xx'zXx(_Xy'zXy(_Xz'zXz(_X|'zX!O'zX!V(_X!o(_X!r'zX!r(_X!s'zX!s(_X!t'zX!t(_X!u'zX!u(_X!v'zX!v(_X!x'zX!x(_X!{(_X#a'zX#b'zX%e'zX%l'zX%o(_X%v(_X&m'zX&r'zX&s'zX(x'zX(x(_X)Z(_X)](_X)^(_X~Ob!TOm$qOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O|#RO!O!_O!r!aO!s!aO!t!aO!u!aO!v!aO!x!cO#a#VO#b#TO%e#UO%l#SO&m!RO&r#WO&s!TO(x$pO~Os!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!O!_O!r!aO!s!aO!t!aO!u!aO!v!aO!x!cO&r#WO&s$yO])hXe)hXm)hX!V)hX!{)hX%v)hX(x)hX)Z)hX)])hX)^)hX~O)`$xO~P:qOPmO]eOe!POs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!VfO!X!XO!Y!WO!i!YO!{!dO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO)ZaO)]|O)^{O)a!ZO)cXO)ocO)pdO~Ob%SOm;UO!|%TO(x$zO~P<oO)Z%UO~Ob!]Om$aO|#RO#a#VO#b#TO%e#UO%l#SO&m!RO&r#WO&s!TO(x;XO~P<oOPmO]$gOb%SOm;UO!V$hO!W%aO!X!XO!Y!WO!i!YO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)Z$mO)^%_O)a!ZO)cXO)ocO)pdO)q%^O~O]%jOe!POm%dO!V%mO!{!dO%v$oO(x;YO)Z%fO)]%kO)^%kO~O(|%oO~O)`#lO~O(x%pO](zX!V(zX!X(zX!Y(zX![(zX!^(zX!_(zX!a(zX!b(zX!e(zX!f(zX!h(zX({(zX(}(zX)O(zX)Z(zX)[(zX)](zX)^(zX)_(zX)`(zX)a(zX!g(zX)q(zX[(zX!W(zX(|(zX!U(zXQ(zX!d(zX~OP%qO(vQO~PCTO]%jOe!POs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!V%mO!r!aO!s!aO!t!aO!u!aO!v!aO!x!cO!{!dO%o!|O%v!}O)Z;jO)]|O)^|O~Om%tO!o%yO(x$zO~PEbO!TxO#v!eO(|%{O)q&OO])lX!V)lX~O]%jOe!POm%tO!V%mO!{!dO%v!}O(x$zO)Z;jO)]|O)^|O~O!TxO#v!eO)`&RO)q&SO~O!U&VO~P!QO]&[O!TxO!V&YO)Z&XO)]&]O)^&]O~Oq&WO~PHuO]&eO!V&dO~OPmO]eOe!PO!VfO!X!XO!Y!WO!i!YO!{!dO#V#QO%_#ZO%`#[O%a#YO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO)ZaO)]|O)^{O)a!ZO)cXO)ocO)pdO~Ob%SOm;UO%v$oO(x$zO~PIjO]%jOe!POm;fO!V%mO!{!dO%v$oO(x$zO)Z;jO)]|O)^|O~Oq&hO](zX])lX!V(zX!V)lX!X(zX!Y(zX![(zX!^(zX!_(zX!a(zX!b(zX!e(zX!f(zX!h(zX({(zX(}(zX)O(zX)Z(zX)[(zX)](zX)^(zX)_(zX)`(zX)a(zX[(zX[)lX!U(zX~O!g$[O)q$[O~PL`O!g(zX)q(zX~PL`O](zX!V(zX!X(zX!Y(zX![(zX!^(zX!_(zX!a(zX!b(zX!e(zX!f(zX!h(zX({(zX(}(zX)O(zX)Z(zX)[(zX)](zX)^(zX)_(zX)`(zX)a(zX!g(zX)q(zX[(zX!U(zX~O])lX!V)lX[)lX~PNnOb&jO&m!RO]&lXe&lXm&lXs&lXt&lXu&lXv&lXw&lXx&lXy&lXz&lX!O&lX!V&lX!r&lX!s&lX!t&lX!u&lX!v&lX!x&lX!{&lX%v&lX&r&lX&s&lX(x&lX)Z&lX)]&lX)^&lX)`&lX[&lX!T&lX!X&lX!Y&lX![&lX!^&lX!_&lX!a&lX!b&lX!e&lX!f&lX!h&lX({&lX(}&lX)O&lX)[&lX)_&lX)a&lX!g&lX)q&lX!W&lXQ&lX!d&lX(|&lX!U&lX#v&lX~Oq&hOm)TX[)TXQ)TX!d)TX!h)TX)a)TX)q)TX~P.^O!g$[O)q$[O](zX!V(zX!X(zX!Y(zX![(zX!^(zX!_(zX!a(zX!b(zX!e(zX!f(zX!h(zX({(zX(}(zX)O(zX)Z(zX)[(zX)](zX)^(zX)_(zX)`(zX)a(zX[(zX!W(zX(|(zX!U(zXQ(zX!d(zX~OPmO]$gOb%SOm;UO!V$hO!X!XO!Y!WO!i!YO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)Z$mO)^$mO)a!ZO)cXO)ocO)pdO~O])TXe)TXm)TXs)TXt)TXu)TXv)TXw)TXx)TXy)TXz)TX!O)TX!V)TX!r)TX!s)TX!t)TX!u)TX!v)TX!x)TX!{)TX%v)TX&r)TX&s)TX(x)TX)Z)TX)])TX)^)TX)`)TX[)TXQ)TX!d)TX!h)TX)a)TX)q)TX~O]$PO~P!*tO]&nO~O])iXb)iXe)iXm)iXs)iXt)iXu)iXv)iXw)iXx)iXy)iXz)iX|)iX!O)iX!V)iX!o)iX!r)iX!s)iX!t)iX!u)iX!v)iX!x)iX!{)iX#a)iX#b)iX%e)iX%l)iX%o)iX%v)iX&m)iX&r)iX&s)iX(x)iX)Z)iX)])iX)^)iX~O(vQO~P!-^O%U&pO~P!-^O]&qO~O]$PO~O!TxO~O$W&yO(x%pO(|&xO~O]&zOx&|O~O]&zO~OPmO]$gOb%SOm;UO!TxO!V$hO!X!XO!Y!WO!i!YO#V#QO#p!xO#v!eO$Y!vO$Z!wO$`!iO$e!jO$g!kO$h!lO$k!mO$m!nO$o!oO$q!pO$s!qO$u!rO$w!sO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x:wO)WYO)Z$mO)^$mO)`iO)a!ZO)cXO)ocO)pdO~O]'RO~O!T$YO)`'TO~P!(}O)`'VO~O)`'WO~O(x'XO~O)`'[O~P!(}Om;hO%U'aO%e'aO(x;ZO~Ob!TOm$qOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O|#RO#a#VO#b#TO%e#UO%l#SO&m!RO&r#WO&s!TO(x$pO~O(|'eO~O)`'gO~P!(}O!TxO(x%pO)q'iO~O(x%pO~O]'lO~O]'mOe%nXm%nX!V%nX!{%nX%v%nX(x%nX)Z%nX)]%nX)^%nX~O]'qO!V'rO!X'oO!g'oO%Z'oO%['oO%]'oO%^'oO%_'sO%`'sO%a'oO)O'pO)q'oO*P'tO~P8}O]%jOb!TOe!POs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O|#RO!O!_O!V%mO!r!aO!s!aO!t!aO!u!aO!v!aO!x!cO!{!dO#a#VO#b#TO%e#UO%l#SO&m!RO&r#WO&s!TO)Z;jO)]|O)^|O~Om;iOq&WO%v$oO(x;[O~P!8mO(x%pO(|'yO)`'zO~O]&eO!T'|O~Om$qO!O!_O!T(TO!l(YO(x$pO(|(SO)WYO~Om$qO|(aO!T(^O#b(aO(x$pO~Ob!TOm$qO|#RO#a#VO#b#TO%e#UO%l#SO&m!RO&r#WO&s!TO(x$pO~O](cO~OPmOb%SOm;UO!V$hO!X!XO!Y!WO!i!YO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)Z$mO)^$mO)cXO)ocO)pdO~O](eO)a(fO~P!=XO]$PO~P!<_OPmO]$gOb%SOm;UO!V(lO!X!XO!Y!WO!i!YO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)Z$mO)^$mO)a!ZO)cXO)ocO)pdO~O(r(mO(s(mO(t(oO~OY(pO(vQO(x%pO~O'f(pO~OS(vO(q#]O*`(uO~O]$PO(p(yO~Q'nXX#eO(u({O(w#eO~Oe)VOm)QO&r#WO(x)PO~O!Y'Sa!['Sa!^'Sa!_'Sa!a'Sa!b'Sa!e'Sa!f'Sa!h'Sa({'Sa)Z'Sa)['Sa)]'Sa)^'Sa)_'Sa)`'Sa)a'Sa!g'Sa)q'Sa['Sa!W'Sa(|'Sa!U'SaQ'Sa!d'Sa~OPmOb%SOm;UO!i!YO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)cXO)ocO)pdO]'Sa!V'Sa!X'Sa(}'Sa)O'Sa~P!BmO!T$YO[(yP~P!(}O]oX]%WXeoXmnXqoXq%WXsoXtoXuoXvoXwoXxoXyoXzoX!OoX!ToX!VoX!V%WX!X%WX!Y%WX![%WX!^%WX!_%WX!a%WX!b%WX!e%WX!f%WX!gnX!h%WX!roX!soX!toX!uoX!voX!xoX!{oX%voX&roX&soX(xoX({%WX(}%WX)O%WX)ZoX)Z%WX)[%WX)]oX)]%WX)^oX)^%WX)_%WX)`%WX)a%WX)qnX[%WX~O)`oX[oX!U%WX~P!FZO])iO!V)jO!X)gO!g)gO%Z)gO%[)gO%])gO%^)gO%_)kO%`)kO%a)gO)O)hO)q)gO*P)lO~P8}OPmO]$gOb%SOm;UO!X!XO!Y!WO!i!YO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)Z$mO)^$mO)a!ZO)cXO)ocO)pdO~O!V)qO~P!KVOe)tO%Y)uO)P$QO~O!T$YO!V)wO(})xO!U)yP~P!KVO!T$YO~P!(}O)b*PO~Om*QO]!QX!h!QX)V!QX)a!QX~O]*SO!h*TO)V)XX)a)XX~O)V*WO)a*XO~Oe$TO%Y*YO'[$VO'_$WO)P$QO~Om*ZO~Om*ZO[)TX~P.^Om*ZO!g$[O)q$[O~O)`*[O~P:qOPmO]$gOb!]Om$aOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O|#RO!V$hO!X!XO!Y!WO!i!YO#V#QO#a#VO#b#TO%_#ZO%`#[O%a#YO%e#UO%l#SO%v$oO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x;XO)Z$mO)^$mO)a!ZO)cXO)ocO)pdO~Oq&hO~P!&}Oq&hO!W(zX(|(zXQ(zX!d(zX~PNnO]'qO!V'rO!X'oO!g'oO%Z'oO%['oO%]'oO%^'oO%_'sO%`'sO%a'oO)O'pO)q'oO*P'tO~O]jXejXmhXqjXsjXtjXujXvjXwjXxjXyjXzjX!OjX!VjX!rjX!sjX!tjX!ujX!vjX!xjX!{jX%vjX&rjX&sjX(xjX)ZjX)]jX)^jX!TjX!hjX)ajX)qjX[jX~O!ljX(|jX)`jX!XjX!YjX![jX!^jX!_jX!ajX!bjX!ejX!fjX({jX(}jX)OjX)[jX)_jX!gjX!WjXQjX!djX!UjX#vjX#TjX#VjX#pjXbjX|jX!ojX#ajX#bjX#ijX#tjX${jX%cjX%ejX%kjX%ljX%ojX&mjX)WjX~P#&XO)P*`O~Om*aO~O])TXe)TXs)TXt)TXu)TXv)TXw)TXx)TXy)TXz)TX!O)TX!V)TX!r)TX!s)TX!t)TX!u)TX!v)TX!x)TX!{)TX%v)TX&r)TX&s)TX(x)TX)Z)TX)])TX)^)TX)`)TX!T)TX!X)TX!Y)TX![)TX!^)TX!_)TX!a)TX!b)TX!e)TX!f)TX!h)TX({)TX(})TX)O)TX)[)TX)_)TX)a)TX!g)TX)q)TX[)TX!W)TXQ)TX!d)TX(|)TX!U)TX#v)TX~Om*aO~P#+aOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!O!_O!r!aO!s!aO!t!aO!u!aO!v!aO!x!cO])hae)ham)ha!V)ha!{)ha%v)ha(x)ha)Z)ha)])ha)^)haQ)ha!d)ha!h)ha)a)ha)q)ha[)ha!T)ha(|)ha)`)ha~O&r#WO&s$yO~P#/POq&hOm)TX~P#+aO&r)ha~P#/PO]ZXmhXqZXqjX!TjX!VZX!XZX!YZX![ZX!^ZX!_ZX!aZX!bZX!eZX!fZX!gZX!hZX({ZX(}ZX)OZX)ZZX)[ZX)]ZX)^ZX)_ZX)`ZX)aZX)qZX[ZX~O!WZX(|ZX!UZXQZX!dZX~P#1xO]$PO!V#nO!X#}O(}#mO)O#mO~O!Y&xa![&xa!^&xa!_&xa!a&xa!b&xa!e&xa!f&xa!g&xa!h&xa({&xa)Z&xa)[&xa)]&xa)^&xa)_&xa)`&xa)a&xa)q&xa[&xa!W&xa(|&xa!U&xaQ&xa!d&xa~P#4YOm;rO!T$YO~Os!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O~PKnOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!|%TO~PKnO]&eO!V&dO[#Qa!T#Qa!h#Qa#v#Qa)`#Qa)q#QaQ#Qa!d#Qa(|#Qa~Oq&hO!T$YO~O[*hO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO[*hO~O[*jO]&eO!V&dO~O]&[Os!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!V&YO&r#WO&s$yO)Z&XO)]&]O)^&]O~O[rXQrX!drX!hrX)arX)`rX~P#:ZO[*mO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h*nO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!W)rX~P#4YO!W*pO!h*qO~O!W*pO!h*qO~P!(}O!W*pO~Oq&hO!g$[O!h*rO)q$[O](zX!V(zX!W(zX!W*WX!X(zX!Y(zX![(zX!^(zX!_(zX!a(zX!b(zX!e(zX!f(zX({(zX(}(zX)O(zX)Z(zX)[(zX)](zX)^(zX)_(zX)a(zX~O!h(zX~P#=iO!W*tO~Oe$TO%Y*YO)P:|O~Om;uO~Os!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!|%TO~PBXO]*{O!T*vO!V&dO!h*yO#v!eO)q*wO)`)xX~O!h*yO)`)xX~O)`*|O~Oq&hO])lX!T)lX!V)lX!h)lX#v)lX)`)lX)q)lX[)lXQ)lX!d)lX(|)lX~Oq&hO~OP%qO(vQO]%ha!V%ha!X%ha!Y%ha![%ha!^%ha!_%ha!a%ha!b%ha!e%ha!f%ha!h%ha(x%ha({%ha(}%ha)O%ha)Z%ha)[%ha)]%ha)^%ha)_%ha)`%ha)a%ha!g%ha)q%ha[%ha!W%ha(|%ha!U%haQ%ha!d%ha~Oe$TO%Y$UO)P:yO~Om;RO~O!TxO#v!eO)q&OO~Om<fO&r#WO(x;qO~O$Z+YO%`+ZO~O!TxO#v!eO)`+[O)q+]O~OPmO]$gOb%SOm;UO!V$hO!X!XO!Y!WO!i!YO#V#QO$Z+YO%_#ZO%`+_O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)Z$mO)^$mO)a!ZO)cXO)ocO)pdO~O!U+`O~P!QOb!TOm$qOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O|#RO!O!_O!r!aO!s!aO!t!aO!u!aO!v!aO!x!cO#a+fO#b+gO#i+hO%e#UO%l#SO&m!RO&r#WO&s!TO(x$pO)WYO~OQ)sP!d)sP~P#GuO]&[Os!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!V&YO)Z&XO)]&]O)^&]O~O[#kX!T#kX#v#kX)`#kX)q#kXQ#kX!d#kX!h#kX)a#kX!x#kX(|#kX~P#IyOPmO]$gOb%SOm;UOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!V$hO!W+nO!X!XO!Y!WO!i!YO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)Z+oO)^$mO)a!ZO)cXO)ocO)pdO~O]&eO!V+pO~O]&[O!V&YO)WYO)Z&XO)]&]O)^&]O)a+sO[)kP~P8}O]&[O!V&YO)Z&XO)]&]O)^&]O~O[#nX!T#nX#v#nX)`#nX)q#nXQ#nX!d#nX!h#nX)a#nX!x#nX(|#nX~P#NsO!TxO])uX!V)uX~Os!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O#T+{O#p+|O)O+yO)]+wO)^+wO~O]#jX!T#jX!V#jX[#jX#v#jX)`#jX)q#jXQ#jX!d#jX!h#jX)a#jX!x#jX(|#jX~P$!WO#V,OO~Os!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!l,PO#T+{O#V,OO#p+|O)O+yO)],PO)^,PO])mP!T)mP!V)mP#v)mP(|)mP)q)mP[)mP!h)mP)`)mP~O!x)mPQ)mP!d)mP~P$$TOPmO]$gOb%SOm;UOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!V$hO!X!XO!Y!WO!i!YO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)^$mO)a!ZO)cXO)ocO)pdO~O!W,VO)Z,WO~P$&OO)WYO)a+sO[)kP~P8}O]&eO!V&dO[&Za!T&Za!h&Za#v&Za)`&Za)q&ZaQ&Za!d&Za(|&Za~OPmO]$gOb!]Om;WOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O|#RO!V$hO!X!XO!Y!WO!i!YO#V#QO#a#VO#b#TO%_#ZO%`#[O%a#YO%e#UO%l#SO%v$oO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x;]O)Z$mO)^$mO)a!ZO)cXO)ocO)pdO~OQ)QP!d)QP~P$)hO]$PO!V#nO(}#mO)O#mO!X'Pa!Y'Pa!['Pa!^'Pa!_'Pa!a'Pa!b'Pa!e'Pa!f'Pa!h'Pa({'Pa)Z'Pa)['Pa)]'Pa)^'Pa)_'Pa)`'Pa)a'Pa!g'Pa)q'Pa['Pa!W'Pa(|'Pa!U'PaQ'Pa!d'Pa~O]$PO!V#nO!X#}O(}#mO)O#mO~P!BmO!TxO#t!fO)WYO~P8}O!TxO(x%pO)q,aO~O#x,fO~OQ)hX!d)hX!h)hX)a)hX)q)hX[)hX!T)hX(|)hX)`)hX~P:qO(|,jO(},hO)W$UX)`$UX~O(x,kO~O)WYO)`,nO~OPmO]$gOb!]Om;VOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O|#RO!O!_O!V$hO!X!XO!Y!WO!i!YO!r!aO!s!aO!t!aO!u!aO!v!aO!x!cO#V#QO#a#VO#b#TO%_#ZO%`#[O%a#YO%e#UO%l#SO%v$oO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO)WYO)Z$mO)^$mO)`iO)a!ZO)cXO)ocO)pdO~O(x;^O~P$0yOPmO]$gOb%SOm;UO!TxO!V$hO!X!XO!Y!WO!i!YO#V#QO#v!eO$Y!vO$Z!wO$`!iO$e!jO$g!kO$h!lO$k!mO$m!nO$o!oO$q!pO$s!qO$u!rO$w!sO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x:wO)WYO)Z$mO)^$mO)`iO)a!ZO)cXO)ocO)pdO~O$h,xO~OPmO]$gOb!]Om;VOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O|#RO!O!_O!V$hO!X!XO!Y!WO!i!YO!r!aO!s!aO!t!aO!u!aO!v!aO!x!cO#V#QO#a#VO#b#TO$}!uO%_#ZO%`#[O%a#YO%e#UO%l#SO%v$oO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO)WYO)Z$mO)^$mO)a!ZO)cXO)ocO)pdO~O${-OO(x;XO)`,|O~P$7dO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`-QO)a$OO~P#4YO)`-QO~O)`-RO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`-SO)a$OO~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`-TO)a$OO~P#4YO!h-UO)`*QX~Oq&hO)WYO)q-XO~O)`-YO~Om;hO(x;ZO~O]-aO!{!dO&r#WO&s$yO(x-]O)Z-^O~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO(|-dO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!TxO$`!iO$e!jO$g!kO$h!lO$k-iO$m!nO$o!oO$q!pO$s!qO$u!rO$w!sO$}!uO(x:xOe$Xa!o$Xa!{$Xa#i$Xa#p$Xa#t$Xa#v$Xa$R$Xa$T$Xa$Y$Xa$Z$Xa${$Xa%U$Xa%c$Xa%g$Xa%o$Xa%|$Xa(m$Xa)]$Xa!U$Xa$c$Xa~P$0yO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`-jO)a$OO~P#4YOm-lO!TxO)q,aO~O)q-nO~O]&]a!X&]a!Y&]a![&]a!^&]a!_&]a!a&]a!b&]a!e&]a!f&]a!h&]a({&]a(}&]a)O&]a)[&]a)]&]a)^&]a)_&]a)`&]a)a&]a!g&]a)q&]a[&]a!W&]a!T&]a#v&]a(|&]a!U&]aQ&]a!d&]a~O)Z-rO!V&]a~P$DxO[-rO~O!W-rO~O!V-sO)Z&]a~P$DxO])TXe)TXs)TXt)TXu)TXv)TXw)TXx)TXy)TXz)TX!O)TX!V)TX!r)TX!s)TX!t)TX!u)TX!v)TX!x)TX!{)TX%v)TX&r)TX&s)TX(x)TX)Z)TX)])TX)^)TX~Om;xO~P$GhO]&eO!V&dO)`-tO~Om;mO!o-wO#V,OO#i-|O#t!fO${-OO%c!zO%k-{O%o!|O%v!}O(x;aO)WYO~P!8mO!n.QO(x,kO~O)WYO)`.SO~OPmO]$gOb%SOm;UO!T.XO!V$hO!X!XO!Y!WO!i!YO#V.`O#a._O%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)O.WO)Z$mO)^$mO)`.UO)a!ZO)cXO)ocO)pdO~O!U.^O~P$JxO])eXe)eXs)eXt)eXu)eXv)eXw)eXx)eXy)eXz)eX!O)eX!T)eX!V)eX!l)eX!r)eX!s)eX!t)eX!u)eX!v)eX!x)eX!{)eX%v)eX&r)eX&s)eX(x)eX(|)eX)Z)eX)])eX)^)eX)`)eX[)eX!h)eX)a)eX!X)eX!Y)eX![)eX!^)eX!_)eX!a)eX!b)eX!e)eX!f)eX({)eX(})eX)O)eX)[)eX)_)eX!g)eX)q)eX!W)eXQ)eX!d)eX#T)eX#V)eX#p)eX#v)eXb)eX|)eX!o)eX#a)eX#b)eX#i)eX#t)eX${)eX%c)eX%e)eX%k)eX%l)eX%o)eX&m)eX)W)eX!U)eX~Om*aO~P$MSOm$qO!T(TO!l.eO(x$pO(|(SO)WYO~Oq&hOm)eX~P$MSOm$qO!n.jO!o.jO(x$pO)WYO~Om;nO!U.uO!n.wO!o.vO#i-|O${!tO$}!uO%g!{O%k-{O%o!|O%v!}O(x;`O)WYO~P!8mO!T(TO!l.eO(|(SO])UXe)UXm)UXs)UXt)UXu)UXv)UXw)UXx)UXy)UXz)UX!O)UX!V)UX!r)UX!s)UX!t)UX!u)UX!v)UX!x)UX!{)UX%v)UX&r)UX&s)UX(x)UX)Z)UX)])UX)^)UX~O)`)UX[)UX!X)UX!Y)UX![)UX!^)UX!_)UX!a)UX!b)UX!e)UX!f)UX!h)UX({)UX(})UX)O)UX)[)UX)_)UX)a)UX!g)UX)q)UX!W)UXQ)UX!d)UX!U)UX#v)UX~P%%{O!T(TO~O!T(TO(|(SO~O(x%pO!U*YP~O!T(^O(|.|O]&kae&kam&kas&kat&kau&kav&kaw&kax&kay&kaz&ka!O&ka!V&ka!r&ka!s&ka!t&ka!u&ka!v&ka!x&ka!{&ka%v&ka&r&ka&s&ka(x&ka)Z&ka)]&ka)^&ka)`&ka[&ka!X&ka!Y&ka![&ka!^&ka!_&ka!a&ka!b&ka!e&ka!f&ka!h&ka({&ka(}&ka)O&ka)[&ka)_&ka)a&ka!g&ka)q&ka!W&kaQ&ka!d&ka!U&ka#v&ka~Om$qO!T(^O(x$pO~O&r#WO&s$yO]&pae&pam&pas&pat&pau&pav&paw&pax&pay&paz&pa!O&pa!V&pa!r&pa!s&pa!t&pa!u&pa!v&pa!x&pa!{&pa%v&pa(x&pa)Z&pa)]&pa)^&pa)`&pa[&pa!T&pa!X&pa!Y&pa![&pa!^&pa!_&pa!a&pa!b&pa!e&pa!f&pa!h&pa({&pa(}&pa)O&pa)[&pa)_&pa)a&pa!g&pa)q&pa!W&paQ&pa!d&pa(|&pa!U&pa#v&pa~O&s/RO~P!(}O!Y#sO![#tO!f#|O)Z#oO!^'Ua!_'Ua!a'Ua!b'Ua!e'Ua!h'Ua({'Ua)['Ua)]'Ua)^'Ua)_'Ua)`'Ua)a'Ua!g'Ua)q'Ua['Ua!W'Ua(|'Ua!U'UaQ'Ua!d'Ua~P#4YO!V'dX!X'dX!Y'dX!['dX!^'dX!_'dX!a'dX!b'dX!e'dX!f'dX!h'dX({'dX(}'dX)O'dX)Z'dX)['dX)]'dX)^'dX)_'dX)a'dX['dX~O]/TO)`'dX!g'dX)q'dX!W'dX(|'dX!U'dXQ'dX!d'dX~P%3`O!Y#sO![#tO!f#|O)Z#oO!^'Wa!_'Wa!a'Wa!b'Wa!e'Wa!h'Wa({'Wa)['Wa)]'Wa)^'Wa)_'Wa)`'Wa)a'Wa!g'Wa)q'Wa['Wa!W'Wa(|'Wa!U'WaQ'Wa!d'Wa~P#4YO]$PO!T$YO!V/UO&r#WO&s$yO~O!X'Za!Y'Za!['Za!^'Za!_'Za!a'Za!b'Za!e'Za!f'Za!h'Za({'Za(}'Za)O'Za)Z'Za)['Za)]'Za)^'Za)_'Za)`'Za)a'Za!g'Za)q'Za['Za!W'Za(|'Za!U'ZaQ'Za!d'Za~P%7VO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!h'^a)`'^a!g'^a)q'^a['^a!W'^a(|'^a!U'^aQ'^a!d'^a~P#4YOPmO]$gOb%SOm;UO!V$hO!X!XO!Y!WO!i!YO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)Z$mO)^%_O)a!ZO)cXO)ocO)pdO)q%^O~O!W/XO~P%;VO(r(mO(s(mO(t/ZO~OS(vO]$PO(q#]O*`(uO~OS(vO]/^O'f/]O(q#]O*`(uO~OS/bO(q#]O*`/aO~O]$PO~Q'na!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO(|/dO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO)`#Zi[#Zi~P#4YO]dXmhXqdXqjX!VdX!XdX!YdX![dX!^dX!_dX!adX!bdX!edX!fdX!gdX!hdX({dX(}dX)OdX)ZdX)[dX)]dX)^dX)_dX)`dX)adX)qdX[dX!WdX(|dX!TdX#vdX!UdXQdX!ddX~Oe/fO%Y*YO)P/eO~Om/gO~Om/hO~Oq&hO]ci!Vci!Xci!Yci![ci!^ci!_ci!aci!bci!eci!fci!gci!hci({ci(}ci)Oci)Zci)[ci)]ci)^ci)_ci)`ci)aci)qci[ci!Wci(|ci!UciQci!dci~O!W/jO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO![#tO)Z#oO!Y&zi!^&zi!_&zi!a&zi!b&zi!e&zi!f&zi!h&zi({&zi)[&zi)]&zi)^&zi)_&zi)`&zi)a&zi!g&zi)q&zi[&zi!W&zi(|&zi!U&ziQ&zi!d&zi~P#4YO!Y&zi![&zi!^&zi!_&zi!a&zi!b&zi!e&zi!f&zi!h&zi({&zi)Z&zi)[&zi)]&zi)^&zi)_&zi)`&zi)a&zi!g&zi)q&zi[&zi!W&zi(|&zi!U&ziQ&zi!d&zi~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O)Z#oO)^#rO)_#jO!h&zi({&zi)[&zi)]&zi)`&zi)a&zi!g&zi)q&zi[&zi!W&zi(|&zi!U&ziQ&zi!d&zi~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O)Z#oO)]#pO)^#rO)_#jO!h&zi({&zi)[&zi)`&zi)a&zi!g&zi)q&zi[&zi!W&zi(|&zi!U&ziQ&zi!d&zi~P#4YO!Y#sO![#tO!_#xO!a#zO!b#{O!e#{O!f#|O)Z#oO)^#rO)_#jO!^&zi!h&zi({&zi)[&zi)]&zi)`&zi)a&zi!g&zi)q&zi[&zi!W&zi(|&zi!U&ziQ&zi!d&zi~P#4YO!Y#sO![#tO!a#zO!b#{O!e#{O!f#|O)Z#oO)^#rO)_#jO!^&zi!_&zi!h&zi({&zi)[&zi)]&zi)`&zi)a&zi!g&zi)q&zi[&zi!W&zi(|&zi!U&ziQ&zi!d&zi~P#4YO!Y#sO![#tO!a#zO!b#{O!e#{O!f#|O)Z#oO)_#jO!^&zi!_&zi!h&zi({&zi)[&zi)]&zi)^&zi)`&zi)a&zi!g&zi)q&zi[&zi!W&zi(|&zi!U&ziQ&zi!d&zi~P#4YO!Y#sO![#tO!b#{O!e#{O!f#|O)Z#oO)_#jO!^&zi!_&zi!a&zi!h&zi({&zi)[&zi)]&zi)^&zi)`&zi)a&zi!g&zi)q&zi[&zi!W&zi(|&zi!U&ziQ&zi!d&zi~P#4YO!Y#sO![#tO!f#|O)Z#oO!^&zi!_&zi!a&zi!b&zi!e&zi!h&zi({&zi)[&zi)]&zi)^&zi)_&zi)`&zi)a&zi!g&zi)q&zi[&zi!W&zi(|&zi!U&ziQ&zi!d&zi~P#4YO!Y#sO![#tO)Z#oO!^&zi!_&zi!a&zi!b&zi!e&zi!f&zi!h&zi({&zi)[&zi)]&zi)^&zi)_&zi)`&zi)a&zi!g&zi)q&zi[&zi!W&zi(|&zi!U&ziQ&zi!d&zi~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O)Z#oO)[#qO)]#pO)^#rO)_#jO!h&zi({&zi)`&zi)a&zi!g&zi)q&zi[&zi!W&zi(|&zi!U&ziQ&zi!d&zi~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h/kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO[(yX~P#4YO!h/kO[(yX~O[/mO~O]%Xaq%Xa!X%Xa!Y%Xa![%Xa!^%Xa!_%Xa!a%Xa!b%Xa!e%Xa!f%Xa!h%Xa({%Xa(}%Xa)O%Xa)[%Xa)]%Xa)^%Xa)_%Xa)`%Xa)a%Xa!g%Xa)q%Xa[%Xa!W%Xa!T%Xa#v%Xa(|%Xa!U%XaQ%Xa!d%Xa~O)Z/nO!V%Xa~P&-YO[/nO~O!W/nO~O!V/oO)Z%Xa~P&-YO!X'Zi!Y'Zi!['Zi!^'Zi!_'Zi!a'Zi!b'Zi!e'Zi!f'Zi!h'Zi({'Zi(}'Zi)O'Zi)Z'Zi)['Zi)]'Zi)^'Zi)_'Zi)`'Zi)a'Zi!g'Zi)q'Zi['Zi!W'Zi(|'Zi!U'ZiQ'Zi!d'Zi~P%7VO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!h'^i)`'^i!g'^i)q'^i['^i!W'^i(|'^i!U'^iQ'^i!d'^i~P#4YO!W/tO~P%;VO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h/vO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!U)yX~P#4YO(x/yO~O!V/{O(})xO)q/}O~O!h/vO!U)yX~O!U0OO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!h`i({`i)``i!g`i)q`i[`i!W`i(|`i!U`iQ`i!d`i~P#4YO!R0PO~Om*QO]!Qa!h!Qa)V!Qa)a!Qa~OP0XO]0WOm0XO!R0XO!T0UO!V0VO!X0XO!Y0XO![0XO!^0XO!_0XO!a0XO!b0XO!e0XO!f0XO!g0XO!h0XO!i0XO(vQO(|0XO(}0XO)O0XO)Z0RO)[0SO)]0SO)^0TO)_#jO)`0XO)a0XO)cXO~O[0[O~P&7rO!R$^O~O!h*TO)V)Xa)a)Xa~O)V0`O~O])iO!V)jO!X)gO!g)gO%Z)gO%[)gO%])gO%^)gO%_)kO%`)kO%a)gO)O)hO)q)gO*P)lO~Oe)tO%Y*YO)P$QO~O)`0bO~O]oXeoXmnXqoXsoXtoXuoXvoXwoXxoXyoXzoX!OoX!VoX!roX!soX!toX!uoX!voX!xoX!{oX%voX&roX&soX(xoX)ZoX)]oX)^oX!ToX!hoX)aoX[oXQoX!doX~O!loX(|oX)`oX!XoX!YoX![oX!^oX!_oX!aoX!boX!eoX!foX({oX(}oX)OoX)[oX)_oX!goX)qoX!WoX!UoX#voX#ToX#VoX#poXboX|oX!ooX#aoX#boX#ioX#toX${oX%coX%eoX%koX%loX%ooX&moX)WoX~P&;nOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!O!_O!r!aO!s!aO!t!aO!u!aO!v!aO!x!cO~O])hie)him)hi!V)hi!{)hi%v)hi(x)hi)Z)hi)])hi)^)hiQ)hi!d)hi!h)hi)a)hi)q)hi[)hi!T)hi&r)hi(|)hi)`)hi~P&@lO]&eO!V&dO[#Qi!T#Qi!h#Qi#v#Qi)`#Qi)q#QiQ#Qi!d#Qi(|#Qi~O[raQra!dra!hra)ara)`ra~P#:ZO[raQra!dra!hra)ara)`ra~P#IyO]&eO!V+pO[raQra!dra!hra)ara)`ra~O!h*nO!W)ra~O!h*rO!W*Wa~OPmOb!]Os!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O|#RO!O!_O!X!XO!Y!WO!i!YO!s!aO!t!aO!v!aO!x!cO#V#QO#a#VO#b#TO#v!eO$Y!vO$Z!wO$`!iO$e!jO$g!kO$h!lO$k!mO$m!nO$o!oO$q!pO$s!qO$u!rO$w!sO%_#ZO%`#[O%a#YO%e#UO%l#SO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO)WYO)`iO)a!ZO)cXO)ocO)pdO~O]eOe!POmTO!T*vO!U&VO!V0pO!opO!r!`O!u!bO!{!dO#i#OO#p!xO#t!fO$R!gO$T!hO${!tO$}!uO%U!yO%c!zO%g!{O%o!|O%v!}O%|#PO(xRO(})xO)ZaO)]|O)^{O~P&EnO!h*yO)`)xa~OPmO]$gOb!]Om;WO|#RO!T$YO!V$hO!X!XO!Y!WO!i!YO#V#QO#a#VO#b#TO%_#ZO%`#[O%a#YO%e#UO%l#SO%v$oO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x;_O)WYO)Z$mO)^$mO)a0vO)cXO)ocO)pdO[(yP[)kP~P&@lO!h*rO!W*WX~O]$PO!T$YO~O!h0{O!T*SX#v*SX)q*SX~O)`0}O~O)`1OO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`1QO)a$OO~P#4YO)`1OO~P!?ZO]1[Oe!POm%dO!V1YO!{!dO%v$oO(x$zO)Z1SO)a1VO~O)]1WO)^1WO)q1TOQ#PX!d#PX!h#PX[#PX~P'!]O!h1]OQ)sX!d)sX~OQ1_O!d1_O~O)a1bO)q1aOQ#`X!d#`X!h#`X~P!<_O)a1bO)q1aOQ#`X!d#`X!h#`X~P!;eOq&WO~O[#ka!T#ka#v#ka)`#ka)q#kaQ#ka!d#ka!h#ka)a#ka!x#ka(|#ka~P#IyO]&eO!V+pO[#ka!T#ka#v#ka)`#ka)q#kaQ#ka!d#ka!h#ka)a#ka!x#ka(|#ka~O!W1gO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!W1gO)Z1iO~P$&OO!W1gO~P!(}O]#ja!T#ja!V#ja[#ja#v#ja)`#ja)q#jaQ#ja!d#ja!h#ja)a#ja!x#ja(|#ja~P$!WO[1mO]&eO!V+pO~O!h1nO[)kX~O[1pO~O]&eO!V+pO[#na!T#na#v#na)`#na)q#naQ#na!d#na!h#na)a#na!x#na(|#na~O]1tOs#SXt#SXu#SXv#SXw#SXx#SXy#SXz#SX!T#SX!V#SX#T#SX#p#SX)O#SX)]#SX)^#SX!l#SX!x#SX#V#SX#v#SX(|#SX)q#SX[#SX!h#SX)`#SXQ#SX!d#SX)a#SX~O]1uO~O]1xOm$qO!V$hO#V#QO(x$pO)ocO)pdO~Os!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!l,PO#T+{O#V,OO#p+|O)O+yO)],PO)^,PO~O])mX!T)mX!V)mX!x)mX#v)mX(|)mX)q)mX[)mX!h)mX)`)mXQ)mX!d)mX~P',vO!x!cO]#Ri!T#Ri!V#Ri#v#Ri(|#Ri)q#Ri[#Ri!h#Ri)`#RiQ#Ri!d#Ri~O!W2QO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!W2QO)Z2SO~P$&OO!W2QO~P!(}O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OOQ*ZX!d*ZX!h*ZX~P#4YO)a2TOQ)RX!d)RX!h)RX~O!h2UOQ)QX!d)QX~OQ2WO!d2WO~O[2XO~O#t$nO)WYO~P8}Om-lO!TxO)q2]O~O[2^O~O#x,fOP#ui]#uib#uie#uim#uis#uit#uiu#uiv#uiw#uix#uiy#uiz#ui|#ui!O#ui!T#ui!V#ui!X#ui!Y#ui!i#ui!o#ui!r#ui!s#ui!t#ui!u#ui!v#ui!x#ui!{#ui#V#ui#a#ui#b#ui#i#ui#p#ui#t#ui#v#ui$R#ui$T#ui$Y#ui$Z#ui$`#ui$e#ui$g#ui$h#ui$k#ui$m#ui$o#ui$q#ui$s#ui$u#ui$w#ui${#ui$}#ui%U#ui%_#ui%`#ui%a#ui%c#ui%e#ui%g#ui%l#ui%o#ui%v#ui%|#ui&m#ui&r#ui&s#ui'Q#ui'R#ui'V#ui'Y#ui'a#ui'b#ui(m#ui(v#ui(x#ui)W#ui)Z#ui)]#ui)^#ui)`#ui)a#ui)c#ui)o#ui)p#ui!U#ui$c#ui!n#ui%k#ui~O]&eO~O]&eO!TxO!V&dO#v!eO~O(|2cO(},hO)W$Ua)`$Ua~O)WYO)`2eO~O[2fO~P,`O[2fO)`#lO~O[2fO~O$c2kOP$_i]$_ib$_ie$_im$_is$_it$_iu$_iv$_iw$_ix$_iy$_iz$_i|$_i!O$_i!T$_i!V$_i!X$_i!Y$_i!i$_i!o$_i!r$_i!s$_i!t$_i!u$_i!v$_i!x$_i!{$_i#V$_i#a$_i#b$_i#i$_i#p$_i#t$_i#v$_i$R$_i$T$_i$Y$_i$Z$_i$`$_i$e$_i$g$_i$h$_i$k$_i$m$_i$o$_i$q$_i$s$_i$u$_i$w$_i${$_i$}$_i%U$_i%_$_i%`$_i%a$_i%c$_i%e$_i%g$_i%l$_i%o$_i%v$_i%|$_i&m$_i&r$_i&s$_i'Q$_i'R$_i'V$_i'Y$_i'a$_i'b$_i(m$_i(v$_i(x$_i)W$_i)Z$_i)]$_i)^$_i)`$_i)a$_i)c$_i)o$_i)p$_i!U$_i~O]1xO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`2nO)a$OO~P#4YOPmO]$gOb!]Om;VO|#RO!V$hO!X!XO!Y!WO!i!YO#V#QO#a#VO#b#TO%_#ZO%`#[O%a#YO%e#UO%l#SO%v$oO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x;XO)Z$mO)^$mO)`2qO)a!ZO)cXO)ocO)pdO~P&@lO)`2nO~O(x-]O~O!h-UO)`*Qa~O)WYO)q2vO~O)`2xO~O]-aOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!{!dO!|%TO(x-]O)Z-^O~O)Z2}O~O]&eO!V3PO!h3QO)`)|X~O]-aO!{!dO(x-]O)Z-^O~O)`3TO~O!TxO$`!iO$e!jO$g!kO$h!lO$k-iO$m!nO$o!oO$q!pO$s!qO$u!rO$w!sO$}!uO(x:xOe$Xi!o$Xi!{$Xi#i$Xi#p$Xi#t$Xi#v$Xi$R$Xi$T$Xi$Y$Xi$Z$Xi${$Xi%U$Xi%c$Xi%g$Xi%o$Xi%|$Xi(m$Xi)]$Xi!U$Xi$c$Xi~P$0yOm;VO(x:xO~P0}O]3XO~O)`2[O~O!u3ZO(x%pO~O[3^O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h3_O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO[3`O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO]&eO!V+pO!T%ui#v%ui)`%ui)q%ui~O!W3aO~Om;TO)`)TX~P$GhOb!TOm$qO|3gO#a#VO#b3fO#t!fO%e#UO%l3hO&m!RO&r#WO&s!TO(x$pO)WYO~P&@lOm;mO!o-wO#i-|O#t!fO${-OO%c!zO%k-{O%o!|O%v!}O(x;aO)WYO~P!8mO]&eO!V&dO)`3jO~O)`3kO~O)WYO)`3kO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`3lO)a$OO~P#4YO)`3lO~O)`3oO~O!U3qO~P$JxOm$qO(x$pO~O]3sO!T'|O~P',bO!T(TO!l3vO(|(SO])Uae)Uam)Uas)Uat)Uau)Uav)Uaw)Uax)Uay)Uaz)Ua!O)Ua!V)Ua!r)Ua!s)Ua!t)Ua!u)Ua!v)Ua!x)Ua!{)Ua%v)Ua&r)Ua&s)Ua(x)Ua)Z)Ua)])Ua)^)Ua)`)Ua[)Ua!X)Ua!Y)Ua![)Ua!^)Ua!_)Ua!a)Ua!b)Ua!e)Ua!f)Ua!h)Ua({)Ua(})Ua)O)Ua)[)Ua)_)Ua)a)Ua!g)Ua)q)Ua!W)UaQ)Ua!d)Ua!U)Ua#v)Ua~Om$qO!n.jO!o.jO(x$pO~O!h3zO)a3|O!T)fX~O!o4OO)WYO~P8}O)`4PO~PGYO]4UOm)QO!T$YO!{!dO%v$oO&r#WO(x)PO(|4YO)Z4RO)]4VO)^4VO~O)`4ZO)q4]O~P('fOm;nO!U4_O!n.wO!o.vO#i-|O${!tO$}!uO%g!{O%k-{O%o!|O%v!}O(x;`O)WYO~P!8mOm;nO%v!}O(x;`O~P!8mO(|4`O~Om$qO!T(TO(x$pO(|(SO)WYO~O!l3vO~P()tO)q4bO!U&oX!h&oX~O!h4cO!U*YX~O!U4eO~Ob4gOm$qO&m!RO(x$pO~O!T(^O]&kie&kim&kis&kit&kiu&kiv&kiw&kix&kiy&kiz&ki!O&ki!V&ki!r&ki!s&ki!t&ki!u&ki!v&ki!x&ki!{&ki%v&ki&r&ki&s&ki(x&ki)Z&ki)]&ki)^&ki)`&ki[&ki!X&ki!Y&ki![&ki!^&ki!_&ki!a&ki!b&ki!e&ki!f&ki!h&ki({&ki(}&ki)O&ki)[&ki)_&ki)a&ki!g&ki)q&ki!W&kiQ&ki!d&ki!U&ki#v&ki~O(|&ki~P(+UO(|.|O~P(+UO[4jO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO[4jO~O[4kO~O]$PO!T$YO!V'Zi!X'Zi!Y'Zi!['Zi!^'Zi!_'Zi!a'Zi!b'Zi!e'Zi!f'Zi!h'Zi({'Zi(}'Zi)O'Zi)Z'Zi)['Zi)]'Zi)^'Zi)_'Zi)`'Zi)a'Zi!g'Zi)q'Zi['Zi!W'Zi(|'Zi!U'ZiQ'Zi!d'Zi~OPmOb%SOm;UO!X!XO!Y!WO!i!YO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)a!ZO)cXO)ocO)pdO]#]aq#]a!T#]a!V#]a)Z#]a)]#]a)^#]a~O(x%pO)a4pO[*bP~OS(vO'f4rO(q#]O*`(uO~O*`4sO~OmnXqoXq&wX~Oe4uO%Y*YO)P/eO~Oe4uO%Y*YO)P4vO~O!h/kO[(ya~O!W4zO~O]&eO!V+pO!T%uq#v%uq)`%uq)q%uq~O]$PO!T$YO!X'Zq!Y'Zq!['Zq!^'Zq!_'Zq!a'Zq!b'Zq!e'Zq!f'Zq!h'Zq({'Zq(}'Zq)O'Zq)Z'Zq)['Zq)]'Zq)^'Zq)_'Zq)`'Zq)a'Zq!g'Zq)q'Zq['Zq!W'Zq(|'Zq!U'ZqQ'Zq!d'Zq~O!V'Zq~P(6dO!V/UO&r#WO&s$yO~P(6dO!T$YO!V)wO(})xO!U(VX!h(VX~P!KVO!h/vO!U)ya~O!W5SO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h*nO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!U5WO~P&7rO!W5WO~P&7rO[5WO~P&7rO[5]O~P&7rO]5^O!h'va)V'va)a'va~O!h*TO)V)Xi)a)Xi~O]&eO!V&dO[#Qq!T#Qq!h#Qq#v#Qq)`#Qq)q#QqQ#Qq!d#Qq(|#Qq~O[riQri!dri!hri)ari)`ri~P#IyO]&eO!V+pO[riQri!dri!hri)ari)`ri~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!h'Tq)`'Tq!g'Tq)q'Tq['Tq!W'Tq(|'Tq!U'TqQ'Tq!d'Tq~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!W'}a!h'}a~P#4YO!W5cO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h5dO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`#lO)a$OO!U)yX~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!h#{i)`#{i~P#4YO]*{O!T$YO!V&dO)q*wO!h(Wa)`(Wa~O!h1nO[)kX]'dX~P%3`O)a5fO!T%qa!h%qa#v%qa)q%qa~O!h0{O!T*Sa#v*Sa)q*Sa~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`5iO)a$OO~P#4YO]1[Oe!POm;fO!V1YO!{!dO%v$oO(x$zO)Z<SO)]5kO)^5kO~OQ#Pa!d#Pa!h#Pa[#Pa~P(ElO]1[Oe!POs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!V1YO!{!dO!|%TO%v$oO(x$zOQ#kX!d#kX!h#kX[#kX~Om%dO)Z1SO)]<TO)^<TO~P(FnO]&eOQ#Pa!d#Pa!h#Pa[#Pa~O!V&dO)q5oO~P(H]O(x%pOQ#dX!d#dX!h#dX[#dX~O)]<TO)^<TOQ#nX!d#nX!h#nX[#nX~P'!]O!V+pO~P(H]O]1[Ob!TOe!POm;gO|#RO!V1YO!{!dO#a#VO#b#TO%e#UO%l#SO%v$oO&m!RO&r#WO&s!TO(x;[O)WYO)Z<SO)]5kO)^5kO)a+sO[)kP~P&@lO!h1]OQ)sa!d)sa~Oq&hO)q5tOQ#`am)TX!d#`a!h#`a)a)TX~P$GhO(x-]OQ#ga!d#ga!h#ga~Oq&hO)q5tOQ#`a])eXe)eXm)eXs)eXt)eXu)eXv)eXw)eXx)eXy)eXz)eX!O)eX!T)eX!V)eX!d#`a!h#`a!l)eX!r)eX!s)eX!t)eX!u)eX!v)eX!x)eX!{)eX%v)eX&r)eX&s)eX(x)eX(|)eX)Z)eX)])eX)^)eX)a)eX~O#a5wO#b5wO~O]&eO!V+pO[#ki!T#ki#v#ki)`#ki)q#kiQ#ki!d#ki!h#ki)a#ki!x#ki(|#ki~O!W5yO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!W5yO~P!(}O!W5yO)Z5{O~P$&OO]#ji!T#ji!V#ji[#ji#v#ji)`#ji)q#jiQ#ji!d#ji!h#ji)a#ji!x#ji(|#ji~P$!WO)WYO)a5}O~P8}O!h1nO[)ka~O&r#WO&s$yO!T#qa!x#qa#v#qa(|#qa)q#qa[#qa!h#qa)`#qaQ#qa!d#qa)a#qa~P#NsO[6SO~P!(}O[)vP~P!4{O)[6YO)]6WO]#Ua!T#Ua!V#Ua)Z#Ua)^#Uas#Uat#Uau#Uav#Uaw#Uax#Uay#Uaz#Ua!l#Ua!x#Ua#T#Ua#V#Ua#p#Ua#v#Ua(|#Ua)O#Ua)q#Uab#Uae#Uam#Ua|#Ua!O#Ua!o#Ua!r#Ua!s#Ua!t#Ua!u#Ua!v#Ua!{#Ua#a#Ua#b#Ua#i#Ua#t#Ua${#Ua%c#Ua%e#Ua%k#Ua%l#Ua%o#Ua%v#Ua&m#Ua&r#Ua&s#Ua(x#Ua)W#Ua)`#Ua[#Ua!h#UaQ#Ua!d#Ua~O!x!cO]#Rq!T#Rq!V#Rq#v#Rq(|#Rq)q#Rq[#Rq!h#Rq)`#RqQ#Rq!d#Rq~O!W6_O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!W6_O~P!(}O!h2UOQ)Qa!d)Qa~O)`6dO~Om-lO!TxO)q6eO~O]*{O!T$YO!V&dO!h*yO)`)xX~O)q6iO~P),eO[6kO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO[6kO~O$c6mOP$_q]$_qb$_qe$_qm$_qs$_qt$_qu$_qv$_qw$_qx$_qy$_qz$_q|$_q!O$_q!T$_q!V$_q!X$_q!Y$_q!i$_q!o$_q!r$_q!s$_q!t$_q!u$_q!v$_q!x$_q!{$_q#V$_q#a$_q#b$_q#i$_q#p$_q#t$_q#v$_q$R$_q$T$_q$Y$_q$Z$_q$`$_q$e$_q$g$_q$h$_q$k$_q$m$_q$o$_q$q$_q$s$_q$u$_q$w$_q${$_q$}$_q%U$_q%_$_q%`$_q%a$_q%c$_q%e$_q%g$_q%l$_q%o$_q%v$_q%|$_q&m$_q&r$_q&s$_q'Q$_q'R$_q'V$_q'Y$_q'a$_q'b$_q(m$_q(v$_q(x$_q)W$_q)Z$_q)]$_q)^$_q)`$_q)a$_q)c$_q)o$_q)p$_q!U$_q~O)`6nO~OPmO]$gOb!]Om;VO|#RO!V$hO!X!XO!Y!WO!i!YO#V#QO#a#VO#b#TO%_#ZO%`#[O%a#YO%e#UO%l#SO%v$oO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x;XO)Z$mO)^$mO)`6pO)a!ZO)cXO)ocO)pdO~P&@lO(|6rO)q*wO~P),eO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`6pO)a$OO~P#4YO[6tO~P!(}O)`6xO~O)`6yO~O]-aOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!{!dO(x-]O)Z-^O~O]&eO!V3PO!h%Oa)`%Oa[%Oa~O!W7PO)Z7QO~P$&OO!h3QO)`)|a~O[7TO]&eO!V3PO~O!TxO$`!iO$e!jO$g!kO$h!lO$k-iO$m!nO$o!oO$q!pO$s!qO$u!rO$w!sO$}!uO(x:xOe$Xq!o$Xq!{$Xq#i$Xq#p$Xq#t$Xq#v$Xq$R$Xq$T$Xq$Y$Xq$Z$Xq${$Xq%U$Xq%c$Xq%g$Xq%o$Xq%|$Xq(m$Xq)]$Xq!U$Xq$c$Xq~P$0yOPmO]$gOb!]Om;VO|#RO!V$hO!X!XO!Y!WO!i!YO#V#QO#a#VO#b#TO%_#ZO%`#[O%a#YO%e#UO%l#SO%v$oO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x;XO)WYO)Z$mO)^$mO)`7VO)a!ZO)cXO)ocO)pdO~P&@lO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`7YO)a$OO~P#4YO)`7ZO~OP7[O(vQO~Om*aO)`)eX~P$GhOq&hOm)TX)`)eX~P$GhO)`7^O~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO)`&Sa~P#4YO!U7`O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO)`7aO~OPmO]$gOb!]Om;WO|#RO!V$hO!X!XO!Y!WO!i!YO#V#QO#a#VO#b#TO%_#ZO%`#[O%a#YO%e#UO%l#SO%v$oO&m!RO&r#WO&s!TO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x;_O)WYO)Z$mO)^$mO)a0vO)cXO)ocO)pdO[)kP~P&@lO!h3zO)a7eO!T)fa~O!h3zO!T)fa~O)`7jO)q7lO~P('fO)`7nO~PGYO]4UOm)QOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!{!dO!|%TO%v$oO&r#WO(x)PO)Z4RO)]4VO)^4VO~O)Z7rO~O]&eO!T*vO!V7tO!h7uO#v!eO(|4YO~O)`7jO)q7wO~P)GyO]4UOm)QO!{!dO%v$oO&r#WO(x)PO)Z4RO)]4VO)^4VO~Oq&hO])jX!T)jX!V)jX!h)jX#v)jX(|)jX)`)jX)q)jX[)jX~O)`7jO~O!T(TO!l7}O(|(SO])Uie)Uim)Uis)Uit)Uiu)Uiv)Uiw)Uix)Uiy)Uiz)Ui!O)Ui!V)Ui!r)Ui!s)Ui!t)Ui!u)Ui!v)Ui!x)Ui!{)Ui%v)Ui&r)Ui&s)Ui(x)Ui)Z)Ui)])Ui)^)Ui)`)Ui[)Ui!X)Ui!Y)Ui![)Ui!^)Ui!_)Ui!a)Ui!b)Ui!e)Ui!f)Ui!h)Ui({)Ui(})Ui)O)Ui)[)Ui)_)Ui)a)Ui!g)Ui)q)Ui!W)UiQ)Ui!d)Ui!U)Ui#v)Ui~O(x%pO!U(hX!h(hX~O!h4cO!U*Ya~Oq&hO]*Xae*Xam*Xas*Xat*Xau*Xav*Xaw*Xax*Xay*Xaz*Xa!O*Xa!T*Xa!V*Xa!r*Xa!s*Xa!t*Xa!u*Xa!v*Xa!x*Xa!{*Xa%v*Xa&r*Xa&s*Xa(x*Xa)Z*Xa)]*Xa)^*Xa)`*Xa[*Xa!X*Xa!Y*Xa![*Xa!^*Xa!_*Xa!a*Xa!b*Xa!e*Xa!f*Xa!h*Xa({*Xa(}*Xa)O*Xa)[*Xa)_*Xa)a*Xa!g*Xa)q*Xa!W*XaQ*Xa!d*Xa(|*Xa!U*Xa#v*Xa~O!T(^O]&kqe&kqm&kqs&kqt&kqu&kqv&kqw&kqx&kqy&kqz&kq!O&kq!V&kq!r&kq!s&kq!t&kq!u&kq!v&kq!x&kq!{&kq%v&kq&r&kq&s&kq(x&kq)Z&kq)]&kq)^&kq)`&kq[&kq!X&kq!Y&kq![&kq!^&kq!_&kq!a&kq!b&kq!e&kq!f&kq!h&kq({&kq(}&kq)O&kq)[&kq)_&kq)a&kq!g&kq)q&kq!W&kqQ&kq!d&kq(|&kq!U&kq#v&kq~OPmOb%SOm;UO!T$YO!i!YO#V#QO%_#ZO%`#[O%a#YO%v$oO'Q!WO'R!WO'V#XO'Y![O'a![O'b![O(vQO(x$zO)cXO)ocO)pdO~O]*^i!V*^i!X*^i!Y*^i![*^i!^*^i!_*^i!a*^i!b*^i!e*^i!f*^i!h*^i({*^i(}*^i)O*^i)Z*^i)[*^i)]*^i)^*^i)_*^i)`*^i)a*^i!g*^i)q*^i[*^i!W*^i(|*^i!U*^iQ*^i!d*^i~P*'YO[8SO~O!W8TO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!h'^q)`'^q!g'^q)q'^q['^q!W'^q(|'^q!U'^qQ'^q!d'^q~P#4YO!h8UO[*bX~O[8WO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!h_y)`_y!g_y)q_y[_y!W_y(|_y!U_yQ_y!d_y~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO[(ja!h(ja~P#4YO]$PO!T$YO!V'Zy!X'Zy!Y'Zy!['Zy!^'Zy!_'Zy!a'Zy!b'Zy!e'Zy!f'Zy!h'Zy({'Zy(}'Zy)O'Zy)Z'Zy)['Zy)]'Zy)^'Zy)_'Zy)`'Zy)a'Zy!g'Zy)q'Zy['Zy!W'Zy(|'Zy!U'ZyQ'Zy!d'Zy~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!h'^y)`'^y!g'^y)q'^y['^y!W'^y(|'^y!U'^yQ'^y!d'^y~P#4YO]&eO!V+pO!T%uy#v%uy)`%uy)q%uy~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!U(Va!h(Va~P#4YO!W5SO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!U#}i!h#}i~P#4YO!U8ZO~P&7rO!W8ZO~P&7rO[8ZO~P&7rO[8]O~P&7rO]&eO!V&dO[#Qy!T#Qy!h#Qy#v#Qy)`#Qy)q#QyQ#Qy!d#Qy(|#Qy~O]&eO!V+pO[rqQrq!drq!hrq)arq)`rq~O]&eOQ#Pi!d#Pi!h#Pi[#Pi~O!V+pO~P*:gOQ#nX!d#nX!h#nX[#nX~P(ElO!V&dO~P*:gOQ(PX](PXe'rXm'rXs(PXt(PXu(PXv(PXw(PXx(PXy(PXz(PX!V(PX!d(PX!h(PX!{'rX%v'rX(x'rX)Z(PX)](PX)^(PX[(PX~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OOQ#_i!d#_i!h#_i[#_i~P#4YO&r#WO&s$yOQ#fi!d#fi!h#fi~O(x-]O)a1bO)q1aOQ#`X!d#`X!h#`X~O!W8bO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!W8bO~P!(}O!T#qi!x#qi#v#qi(|#qi)q#qi[#qi!h#qi)`#qiQ#qi!d#qi)a#qi~O]&eO!V+pO~P*@cO]&[O!V&YO&r#WO&s$yO)Z&XO)]&]O)^&]O~P*@cO[8dO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!h8eO[)vX~O[8gO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OOQ*]X!d*]X!h*]X~P#4YO)a8jOQ*[X!d*[X!h*[X~O)`8lO~O[$bi!h#{a)`#{a~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`8oO)a$OO~P#4YO[8qO~P!(}O[8qO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO[8qO~O]&eO!V&dO(|8wO~O)`8xO~O]&eO!V3PO!h%Oi)`%Oi[%Oi~O!W8{O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!W8{O)Z8}O~P$&OO!W8{O~P!(}O]&eO!V3PO!h(Za)`(Za~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`9OO)a$OO~P#4YO)`2qO~P!(}O)`9OO~OP%qO[9PO(vQO~O[9PO~O)`9QO~P%%{O#T9TO)O.WO)`9RO~O!h3zO!T)fi~O)a9XO!T'xa!h'xa~O)`9ZO)q9]O~P)GyO)`9ZO~O)`9ZO)q9aO~P('fOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O~P)HiO]&eO!V7tO!T!ya!h!ya#v!ya(|!ya)`!ya)q!ya[!ya~O!W9hO)Z9iO~P$&OO!T$YO!h7uO(|4YO)`9ZO)q9aO~O!T$YO~P#EtO[9lO]&eO!V7tO~O]&eO!V7tO!T&aa!h&aa#v&aa(|&aa)`&aa)q&aa[&aa~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO)`&ba~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`9ZO)a$OO~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!U&oi!h&oi~P#4YO!V/UO]']i!T']i!X']i!Y']i![']i!^']i!_']i!a']i!b']i!e']i!f']i!h']i({']i(}']i)O']i)Z']i)[']i)]']i)^']i)_']i)`']i)a']i!g']i)q']i[']i!W']i(|']i!U']iQ']i!d']i~O(x%pO)a9oO~O!h8UO[*ba~O[9qO~P&7rO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO!U(Va)`#Zi~P#4YO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OOQ#_q!d#_q!h#_q[#_q~P#4YO&r#WO&s$yOQ#fq!d#fq!h#fq~O)q5tOQ#`a!d#`a!h#`a~O]&eO!V+pO!T#qq!x#qq#v#qq(|#qq)q#qq[#qq!h#qq)`#qqQ#qq!d#qq)a#qq~O!h8eO[)va~O)]6WO]&Vi!T&Vi!V&Vi)Z&Vi)[&Vi)^&Vis&Vit&Viu&Viv&Viw&Vix&Viy&Viz&Vi!l&Vi!x&Vi#T&Vi#V&Vi#p&Vi#v&Vi(|&Vi)O&Vi)q&Vib&Vie&Vim&Vi|&Vi!O&Vi!o&Vi!r&Vi!s&Vi!t&Vi!u&Vi!v&Vi!{&Vi#a&Vi#b&Vi#i&Vi#t&Vi${&Vi%c&Vi%e&Vi%k&Vi%l&Vi%o&Vi%v&Vi&m&Vi&r&Vi&s&Vi(x&Vi)W&Vi)`&Vi[&Vi!h&ViQ&Vi!d&Vi~O)`9tO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO[$bq!h#{i)`#{i~P#4YO[9vO~P!(}O[9vO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO[9vO~O]&eO!V&dO(|9yO~O[9zO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO[9zO~O]&eO!V3PO!h%Oq)`%Oq[%Oq~O!W:OO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!W:OO~P!(}O)`6pO~P!(}O)`:PO~O)`:QO~O)O.WO)`:QO~O!h3zO!T)fq~O)a:SO!T'xi!h'xi~O!T$YO!h7uO(|4YO)`:TO)q:VO~O)`:TO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`:TO)a$OO~P#4YO)`:TO)q:YO~P)GyO]&eO!V7tO!T!yi!h!yi#v!yi(|!yi)`!yi)q!yi[!yi~O!W:^O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!W:^O)Z:`O~P$&OO!W:^O~P!(}O]&eO!V7tO!T(fa!h(fa(|(fa)`(fa)q(fa~O[:bO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O!h#kO({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO[:bO~O[:gO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO[:gO~O]&eO!V3PO!h%Oy)`%Oy[%Oy~O)`:hO~O)`:iO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`:iO)a$OO~P#4YO!T$YO!h7uO(|4YO)`:iO)q:lO~O]&eO!V7tO!T!yq!h!yq#v!yq(|!yq)`!yq)q!yq[!yq~O!W:nO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO!W:nO~P!(}O[:pO!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)a$OO~P#4YO[:pO~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`:rO)a$OO~P#4YO)`:rO~O]&eO!V7tO!T!yy!h!yy#v!yy(|!yy)`!yy)q!yy[!yy~O!Y#sO![#tO!^#wO!_#xO!a#zO!b#{O!e#{O!f#|O({#hO)Z#oO)[#qO)]#pO)^#rO)_#jO)`:vO)a$OO~P#4YO)`:vO~O]ZXmhXqZXqjX!TjX!VZX!XZX!YZX![ZX!^ZX!_ZX!aZX!bZX!eZX!fZX!gZX!hZX({ZX(|$]X(}ZX)OZX)ZZX)[ZX)]ZX)^ZX)_ZX)`ZX)aZX)qZX~O]%WXmnXqoXq%WX!ToX!V%WX!X%WX!Y%WX![%WX!^%WX!_%WX!a%WX!b%WX!e%WX!f%WX!gnX!h%WX({%WX(}%WX)O%WX)Z%WX)[%WX)]%WX)^%WX)_%WX)a%WX)qnX[%WXQ%WX!d%WX~O)`%WX!W%WX(|%WX!U%WX~P+HoO]oX]%WXeoXmnXqoXq%WXsoXtoXuoXvoXwoXxoXyoXzoX!OoX!VoX!V%WX!roX!soX!toX!uoX!voX!xoX!{oX%voX&roX&soX(xoX)ZoX)]oX)^oX[oX[%WX!hoX)aoX~O)`oX)qoX~P+KPO]%WXmnXqoXq%WX!V%WX!h%WXQ%WX!d%WX[%WX~O!T%WX#v%WX)`%WX)q%WX(|%WX~P+MjOQoXQ%WX!ToX!X%WX!Y%WX![%WX!^%WX!_%WX!a%WX!b%WX!doX!d%WX!e%WX!f%WX!gnX!h%WX({%WX(}%WX)O%WX)Z%WX)[%WX)]%WX)^%WX)_%WX)a%WX)qnX~P+KPO]oX]%WXmnXqoXq%WXsoXtoXuoXvoXwoXxoXyoXzoX!OoX!V%WX!roX!soX!toX!uoX!voX!xoX!{oX%voX&roX&soX(xoX)ZoX)]oX)^oX~O!ToX(|oX)`oX)qoX~P,!bOmnXqoX!h%WX)`%WX~OeoX!VoX)`%WX~P,!bOe)tO%Y)uO)P:yO~Oe)tO%Y)uO)P;OO~Oe)tO%Y)uO)P:zO~Oe$TO%Y*YO'[$VO'_$WO)P:yO~Oe$TO%Y*YO'[$VO'_$WO)P:{O~Oe$TO%Y*YO'[$VO'_$WO)P:}O~O[jX]jXsjXtjXujXvjXwjXxjXyjXzjX!VjX&rjX&sjX)ZjX)]jX)^jXejX!OjX!rjX!sjX!tjX!ujX!vjX!xjX!{jX%vjX(xjX~P#1xO]ZXmhXqZXqjX!VZX!hZX)`ZX)qZX~O!TZX#vZX(|ZX~P,({OmhXqjX!hZX)WjX)`ZX)qjX~O]ZX]jXejXmhXqZXqjXsjXtjXujXvjXwjXxjXyjXzjX!OjX!VZX!VjX!rjX!sjX!tjX!ujX!vjX!xjX!{jX%vjX&rjX&sjX(xjX)ZjX)]jX)^jX[ZX[jX!hjX)ajX)qjX~O)`ZX~P,*YO]ZX]jXmhXqZXqjXsjXtjXujXvjXwjXxjXyjXzjX!TjX!VZX!VjX!XZX!YZX![ZX!^ZX!_ZX!aZX!bZX!eZX!fZX!gZX!hZX!hjX&rjX&sjX({ZX(}ZX)OZX)ZZX)ZjX)[ZX)]ZX)]jX)^ZX)^jX)_ZX)aZX)ajX)qZX~OQZXQjX!dZX!djX~P,,sO]jXejXsjXtjXujXvjXwjXxjXyjXzjX!OjX!VjX!rjX!sjX!tjX!ujX!vjX!xjX!{jX%vjX&rjX&sjX(xjX)ZjX)]jX)^jX~P#1xO[ZX[jXejX!OjX!rjX!sjX!tjX!ujX!vjX!xjX!{jX%vjX(xjX)qjX~P,,sO]ZX]jXmhXqZXqjXsjXtjXujXvjXwjXxjXyjXzjX!OjX!VZX!rjX!sjX!tjX!ujX!vjX!xjX!{jX%vjX&rjX&sjX(xjX)ZjX)]jX)^jX)`jX~O!TjX(|jX)qjX~P,2uOejX!VjX~P,2uOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O~PBXOe$TO%Y*YO)P:yO~Oe$TO%Y*YO)P:zO~Oe$TO%Y*YO)P;PO~Oe$TO%Y*YO)P;QO~O]%jOe!POm%dOs!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O!V%mO!{!dO!|%TO%v$oO(x$zO)Z;kO)];lO)^;lO~O]%jOe!POm%dO!V%mO!{!dO%v$oO(x$zO)Z;kO)];lO)^;lO~Oe$TO%Y$UO)P:zO~Oe$TO%Y$UO)P;OO~Om;TO~Om;SO~O]dXmhXqjX!TdX~Oe)tO%Y*YO)P:yO~Oe)tO%Y*YO)P:zO~Oe)tO%Y*YO)P:{O~Oe)tO%Y*YO)P:|O~Oe)tO%Y*YO)P:}O~Oe)tO%Y*YO)P;PO~Oe)tO%Y*YO)P;QO~Os!^Ot!^Ou!^Ov!^Ow!^Ox!^Oy!^Oz!^O~P,8VO])TXs)TXt)TXu)TXv)TXw)TXx)TXy)TXz)TX!O)TX!r)TX!s)TX!t)TX!u)TX!v)TX!x)TX!{)TX%v)TX&r)TX&s)TX(x)TX)Z)TX)])TX)^)TX)q)TX~Om;SO!T)TX(|)TX)`)TX~P,<UO]&wXmnXqoX!T&wX~Oe4uO%Y*YO)P<OO~Om;fO)Z<SO)]5kO)^5kO~P(FnOe!POm%dO!{!dO%v$oO(x$zO~O]1[O!V1YO)Z1SO)]<TO)^<TOQ#nX!d#nX!h#nX[#nX~P,?QO)Z;dO~Om;rO~Om;sO~Om;tO~Om;vO~Om;wO~Om;xO~Om;vO!T$YOQ)TX!d)TX!h)TX)a)TX[)TX)q)TX~P$GhOm;tO!T$YO~P$GhOm;rO!g$[O)q$[O~Om;tO!g$[O)q$[O~Om;vO!g$[O)q$[O~Om;sO[)TX!h)TX)a)TX)q)TX~P$GhOe/fO%Y*YO)P<OO~Om<PO~O)Z<dO~OV'e'h'i'g(v)c!R(xS(q%Z!Y!['je%[!i'R!f]'f*c'k(}!^!_'l'm'l~",goto:"%8g*cPPPPP*d*qP*tPP.jPP5P8Q8Q;[P;[>fP?P?c?wFpMq!&v!-_P!4Y!4}!5rP!6^PPPPPPPP!6wP!8aP!9r!;[P!;bPPPPPP!;eP!;ePP!;ePP!;qPPPPPP!=s!AZP!A^PP!Az!BoPPPPP!BsP?S!DUPP?S!F]!H^!Hl!JR!KrP!K}P!L^!L^# n#$}#&e#)q#,{!H^#-VPP!H^#-^#-d#-V#-V#-gP#-k#.Y#.Y#.Y#.Y!KrP#.s#/U#1kP#2PP#3lP#3p#3x#4m#4x#7W#7`#7`#3pP#3pP#7g#7mP#7wPP#8d#9R#9s#8dP#:e#:qP#8dP#8dPP#8d#8dP#8dP#8dP#8dP#8dP#8dP#8dP#:t#7w#;bP#;wP#<^#<^#<^#<^#<k#3pP#=R#BO#BmPPPPPPPP#CeP#CsP#CsP#DP#G^#;mPP#Cm#GpP#HT#H`#Hf#Hf#Cm#I[P#3p#3p#3p#3p#3pP!L^#Iv#I}#I}#I}#JR# h#J]# h#Ja!Hl!Hl!Hl#Jd#N|!Hl?S?S?S$%u!Bo!Bo!Bo!Bo!Bo!Bo!6w!6w!6w$&YP$'u$(T!6w$(ZPP!6w$*i$*l#C[$*o;[8Q$-u$/p$1a$3P8QPP8Q$4s8QP8Q8QP8QP$7y8QP8QPP8Q$8VPPPPPPPPP*qP$;_$;e$;k$>S$@Y$@`$@v$AQ$A]$Al$Ar$CQ$DP$DW$D_$De$Dm$Dw$D}$EY$E`$Ei$Eq$E|$FS$F^$Fd$Fn$Ft$F{$G[$Gb$GhP$Gn$Gv$G}$H]$Iy$JP$JV$J^$JjPPPPPPPPPPPP$Jp$JtPPPPP%#v$*i%#y%'R%)ZPP%)h%)kPPPPPPPPPP%)w%*z%+Q%+U%,{%.Y%.{%/S%1c%1iPPP%1s%2O%2R%2X%3`%3c%3m%3w%3{%5P%5r%5x#CeP%6c%6i%6y%6|%7^%7j%7n%7t%7z$*i$*l$*l%7}%8QP%8a%8dQ#dPa(s#b(p(q(r(t/]/_4rR#dP'`mO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pU%qm%r7[Q&o!`Q(p#^d0X*S0U0V0W0Z5X5Y5Z5^8[R7[3_b}Oaewx{!g&U*v&v$k[!W!X!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$g$h$m%_%o&S&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/X/d/k/t/v/{/}1T1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pS%bf0p#d%lgnp|#O$i%O%P%U%f%j%k%y&u'w'x(T*_*e*g*y+b,q,{-f-w.O.m.t.v0e1R1S1W1[2g2r5k6q;b;c;d;j;k;l;y;z;{;|<Q<R<S<T<b<c<dS%sm!YS&w!h#PS'^!t'aQ'j!yQ'k!zQ(p#aQ(q#^Q(r#_Q*}%mQ,]&nQ,b&pQ-k'iQ-r'tS.y(^4cQ/n)lQ0m*rQ2Y,aQ2a,hQ2t-UQ3Y-lQ4l/TQ4p/^Q5p1VQ6f2]Q7X3ZQ8k6eQ9o8UR;e1Y$|#iS!]${%S%V%]&l&m'S'Z']'d'f(d(h(k(|(})W)X)Y)Z)[)])^)_)`)a)b)c)d)p)v)}+^+l,T,X,o,z-o-p.T/Q/x0h0j0o0q1P1h2R2i2p3]3m3n4m4n4t4w4}5P5T5U5n5z6R6`6o6s6}7U7{7|8O8^8_8m8p8t8|9_9f9u9{:W:_:d:j:sQ&r!dQ(j#ZQ(x#cQ)o$V[*x%g*]0s2h2o3VQ,c&qQ/V(iQ/](qQ/c(yS/q)n/WQ0z+VS4{/r/sR8Y4|'a![O[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:p'a!VO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pQ)T#mS+V%{0{Q/z)xk4X.n3}4R4U4V7m7o7p7r7u9c9d:]Q)V#mk4W.n3}4R4U4V7m7o7p7r7u9c9d:]l)U#m.n3}4R4U4V7m7o7p7r7u9c9d:]T+V%{0{[UOwx!g&U*vW$b[e$g(e#l$r_!f!u!}#R#S#T#U#V#Z$U$V$n%W&W&[&e&o'b(Q(S(X(a(j)o)u+a+f+g+y,O,^,p-P-X-v-{._.`.f.g.k.x.|1]1a1n1s1u2v3f3g3h3z4O5t6X6Z7f8e![%eg$i%f%k&u*_*y+b,q,{-f1S1W2g;b;c;d;k;l;y;z;{;|<Q<R<T<b<c<dY%unp%y-w.ml)R#m.n3}4R4U4V7m7o7p7r7u9c9d:]S;o'w.OU;p(T.t.v&|<Vaf{|!W!X!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$h$m%O%P%U%_%j%o&S&Y&d&{'O'Q'l'm'x'|(c(l)q)w*e*g*m*n*q*w+]+_+m+o+p,U,W,s,v-n.W.X.]/U/X/d/k/t/v/{/}0e0p1R1T1Y1i1j1t1x2S2k2q2r3P4Y4]4b4k5d5k5o5{6i6m6p6q6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:p;j<SQ<W1[d<X&z'R'e,|-d-e-h2n3U3XW<Y&h*{2U3s^<Z!t'a'i,a-U2]6eQ<[#OT<g%{0{[VOwx!g&U*vW$c[e$g(eQ$r.|!j$s_!f!u!}#V#Z$U$V$n%W&W&[&e&o'b(j)o)u+a+f+y,^,p-P-X-v.k1]1a1n1s1u2v4O5t8e&^$|af{!W!X!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$h$m%_%o&S&Y&d&{'O'Q'l'm'|(c(l)q)w*m*n*q*w+]+_+m+o+p,U,W,s,v-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2k2q3P4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:p![%eg$i%f%k&u*_*y+b,q,{-f1S1W2g;b;c;d;k;l;y;z;{;|<Q<R<T<b<c<dY%unp%y-w.mQ'u#O|(P#R#S#T#U(Q(S(X(a+g,O._.`.f.g.x3f3g3h3z6X6Z7fl)R#m.n3}4R4U4V7m7o7p7r7u9c9d:]S-u'w.OQ3b-{U;}(T.t.vn<V|%O%P%U%j'x*e*g0e1R2r5k6q;j<S^<Z!t'a'i,a-U2]6eW<]&h*{2U3sd<^&z'R'e,|-d-e-h2n3U3XQ<e1[T<g%{0{!Q!UO[ewx!g$g&U&h&z'R'e(e*v*{,|-d-e-h2U2n3U3X3s!v$v_!f!u!}#O#V#Z$U$V$n%W&W&[&e&o'b'w(T(j)o)u+a+y,^,p-P-X-v.O.k.t.v1[1]1a1n1s1u2v4O5t8e&^%Raf{!W!X!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$h$m%_%o&S&Y&d&{'O'Q'l'm'|(c(l)q)w*m*n*q*w+]+_+m+o+p,U,W,s,v-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2k2q3P4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:p$S%ngnp|#m$i%O%P%U%f%j%k%y%{&u'a'i'x*_*e*g*y+b,a,q,{-U-f-w.m.n0e0{1R1S1W2]2g2r3}4R4U4V5k6e6q7m7o7p7r7u9c9d:];b;c;d;j;k;l;y;z;{;|<Q<R<S<T<b<c<dQ'_!tz(R#R#S#T#U(Q(S(X(a,O._.`.f.g.x3f3g3h3z6X6Z7ff-b'c-[-^-a2z2{2}3Q6{6|8zQ1`+fQ1c+gQ2s-OQ3c-{Q4f.|Q5v1bR8a5w!Q!UO[ewx!g$g&U&h&z'R'e(e*v*{,|-d-e-h2U2n3U3X3s!x$v_!f!u!}#O#V#Z$U$V$n%W&W&[&e&o'b'w(T(j)o)u+a+f+y,^,p-P-X-v.O.k.t.v1[1]1a1n1s1u2v4O5t8e&^%Raf{!W!X!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$h$m%_%o&S&Y&d&{'O'Q'l'm'|(c(l)q)w*m*n*q*w+]+_+m+o+p,U,W,s,v-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2k2q3P4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:p$U%ngnp|!t#m$i%O%P%U%f%j%k%y%{&u'a'i'x*_*e*g*y+b,a,q,{-U-f-w.m.n0e0{1R1S1W2]2g2r3}4R4U4V5k6e6q7m7o7p7r7u9c9d:];b;c;d;j;k;l;y;z;{;|<Q<R<S<T<b<c<d|(R#R#S#T#U(Q(S(X(a+g,O._.`.f.g.x3f3g3h3z6X6Z7fQ3c-{R4f.|[WOwx!g&U*vW$d[e$g(e#l$r_!f!u!}#R#S#T#U#V#Z$U$V$n%W&W&[&e&o'b(Q(S(X(a(j)o)u+a+f+g+y,O,^,p-P-X-v-{._.`.f.g.k.x.|1]1a1n1s1u2v3f3g3h3z4O5t6X6Z7f8e![%eg$i%f%k&u*_*y+b,q,{-f1S1W2g;b;c;d;k;l;y;z;{;|<Q<R<T<b<c<dY%unp%y-w.ml)R#m.n3}4R4U4V7m7o7p7r7u9c9d:]S;o'w.OU;p(T.t.vn<V|%O%P%U%j'x*e*g0e1R2r5k6q;j<SQ<W1[^<Z!t'a'i,a-U2]6eQ<[#O&^<_af{!W!X!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$h$m%_%o&S&Y&d&{'O'Q'l'm'|(c(l)q)w*m*n*q*w+]+_+m+o+p,U,W,s,v-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2k2q3P4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pd<`&z'R'e,|-d-e-h2n3U3XW<a&h*{2U3sT<g%{0{p$RT$a$q%d%t)Q;U;V;W;f;g;h;i;m;n<fo)r$X*Z*a/g;R;S;T;r;s;t;u;v;w;x<Pp$ST$a$q%d%t)Q;U;V;W;f;g;h;i;m;n<fo)s$X*Z*a/g;R;S;T;r;s;t;u;v;w;x<P^&g}!O$k$l%b%l;ed&k!U$v%R%n'_(R1`1c3c4fV/i)T)U4XS%[e$gQ,Y&hQ/S(eQ2w-XQ6T1uQ6a2UQ6w2vR9r8e#}!TO[_ewx!f!g!u!}#O#V#Z$U$V$g$n%W&U&W&[&e&h&o&z'R'b'e'w(T(e(j)o)u*v*{+a+f+y,^,p,|-P-X-d-e-h-v-{.O.k.t.v1[1]1a1n1s1u2U2n2v3U3X3s4O5t8e#[^O[_`wx!f!g!}#O$U$f$n$u$w&U&W&[&e&o&t&z'R'e'w(T)u*b*v*{+a,^,p,|-P-d-e-h-v-{.O.k.t.v1[1]1n2n3U3X3s4O_(X#R#S#T+g3f3g3h#}ZO[wx!g!k#R#S#T%o&U&W&[&e&o&y&z&{'O'Q'R'_'e'w'{(Q(S(T(X*v*{+a+g,^,m,p,v-W-d-e-h-v-{.O.R.f.k.t.x1[1]1n2k2s3U3X3f3g3h3s6m6t8q9v9z:b:g:pQ$_YR0]*TR*V$_e0X*S0U0V0W0Z5X5Y5Z5^8[$f#{S%V%]'S'Z']'d'f(k(|(})W)Z)[)])^)_)`)c)d)p)v)}+^+l,T,X,o,z-o-p.T/Q/x0h0j0o0q1P1h2R2i2p3]3m3n4m4n4t4w4}5P5T5U5n5z6R6`6o6s6}7U7{7|8O8^8_8m8p8t8|9_9f9u9{:W:_:d:j:se0X*S0U0V0W0Z5X5Y5Z5^8['`!YO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pe0X*S0U0V0W0Z5X5Y5Z5^8[R5_0]^(W#R#S#T+g3f3g3hY.d(Q(U(X(Y7_U3u.b.e.xS7c3v4aR9m7}^(V#R#S#T+g3f3g3h[.c(Q(U(W(X(Y7_W3t.b.d.e.xU7b3u3v4aS9U7c7}R:a9mT.r(T.td]Owx!g&U'w(T*v.O.t!v^[_`!f!}#O$U$f$n$u$w&W&[&e&o&t&z'R'e)u*b*{+a,^,p,|-P-d-e-h-v-{.k.v1[1]1n2n3U3X3s4OQ%vnT1},S2O!jbOaenpwx{|!g#O%O%P%U%j%y&U'w'x(T*e*g*v-w.O.m.t.v0e1R1[2r5k6q;j<Sf-_'c-[-^-a2z2{2}3Q6{6|8zj4S.n3}4R4U4V7m7o7p7r7u9c9d:]r<Ug$i%f%k&u*_*y,q,{-f2g;b;c;d;y;{<Qi<h+b1S1W;k;l;z;|<R<T<b<c<d!O&`y%Z&X&[&]'n)m*i*k+b+j+}/u0f1R1S1W1[1r5k6Q<S<Tz&cz%Q%Y%g&f'v*]*d,g.P0c0d0s1U2h2o3V5a5l6v8sS(O#Q.`n+q&Z*l+k+r+u-q/p0g1Z1f5O5b5j6P8cQ2`,f^3O-`2|3S6z7R8y9}e7s4T7i7q7y7z9`9b9j:[:mS+c&W1]Y+s&[&e*{1[3sR5}1n#w!POaegnpwx{|!g#O$i%O%P%U%f%j%k%y&U&u'w'x(T*_*e*g*v*y+b,q,{-f-w.O.m.t.v0e1R1S1W1[2g2r5k6q;b;c;d;j;k;l;y;z;{;|<Q<R<S<T<b<c<d`oOwx!g&U'w*v.O#U!Paeg{|#O$i%O%P%U%f%j%k&u'x*_*e*g*y+b,q,{-f0e1R1S1W1[2g2r5k6q;b;c;d;j;k;l;y;z;{;|<Q<R<S<T<b<c<dU%xnp-wQ+S%yS.l(T.tT4Q.m.vW+w&`+q+x1kV,P&c,Q7sQ+}&bU,P&c,Q7sQ.O'wT.Z'|.]'`![O[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pX1z,O.`6X6Z'W!VO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/d/k/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pW1z,O.`6X6ZR2m,x!WjO[wx!g!k%o&U&{'O'Q'e*v,v-d-e-h2k3U6m6t8q9v9z:b:g:pY%Xe$g(e1x3sQ'U!nS)O#k5dQ,r&zQ,}'RS.V'|.]Q2j,sQ6u2qQ7W3XQ8r6pR9w8o'W![O[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/d/k/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pX1z,O.`6X6Z'ayO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,O,U,W,s,v,|-d-e-h-n.W.X.].`/U/d/k/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b5d5o5{6X6Z6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pQ&byS'w#O-|R1d+hS+c&W1]R5x1dQ1X+bR5q1WR1X+bT+c&W1]z&^%Z&X&[&]'n)m*i*k+b+j/u0f1R1S1W1[1r5k6Q<S<TQ&_yR1v+}!P&^y%Z&X&[&]'n)m*i*k+b+j+}/u0f1R1S1W1[1r5k6Q<S<TQ+z&`S,R&c7sS1l+q+xQ1|,QR5|1k!WkO[wx!g!k%o&U&{'O'Q'e*v,v-d-e-h2k3U6m6t8q9v9z:b:g:pS%|o.lS&Qq-yQ&ayQ&s!eQ'h!yQ*u%gU+Q%x%}4QS+U%z&PQ+v&_Q,_&oS,`&p'jQ,w&}S0a*],gS0w+R+SQ0y+TQ1w+}S2[,b-mQ5`0cQ5e0xQ6V1vQ6d2ZQ6g2`Q7x4TQ9^7iR:Z9`[uOwx!g&U*vQ,_&oQ-}'wQ3d-{R3i.OxlOwx!g!k%o&U&{'Q*v,v2k6m6t8q9v9z:b:g:pU$j['O-eS%|o.lS&Qq-yQ*u%gU+Q%x%}4QS+U%z&PS0a*],gS0w+R+SQ0y+TQ5`0cQ5e0xQ7x4TQ9^7iR:Z9`T,d&s,e]uOwx!g&U*v[uOwx!g&U*vQ,_&oQ,s&zQ,|'RW-g'e-d-h3UQ-}'wQ3d-{Q3i.OR7V3X[%hg$i,q,{-f2gR0t*y^$ZV!U$c$|%R<]<^Q'U!nS)e$P*{S){$Y*vQ*O$[Y*x%g*]0s2o3VQ/V(iS/q)n/WS0i*m4kS0r*w6iQ0z+VQ4[.nQ4x/kS4{/r/sS5Q/v5dQ5V/}Q6j2hU7k3}4T4]Q8Y4|Q8u6rY9[7i7l7m7v7wQ9|8wW:U9Y9]9`9aQ:e9yU:k:V:X:YR:t:lS){$Y*vT5Q/v5dZ)y$Y)z*v/v5dQ&y!hR'{#PS,l&x'yQ2d,jR6h2cxlOwx!g!k%o&U&{'Q*v,v2k6m6t8q9v9z:b:g:pV$j['O-e!XkO[wx!g!k%o&U&{'O'Q'e*v,v-d-e-h2k3U6m6t8q9v9z:b:g:p!WhO[wx!g!k%o&U&{'O'Q'e*v,v-d-e-h2k3U6m6t8q9v9z:b:g:pR'Y!q!WkO[wx!g!k%o&U&{'O'Q'e*v,v-d-e-h2k3U6m6t8q9v9z:b:g:pR,s&zQ&{!iQ&}!jQ'Q!lR,v&|R,t&zxlOwx!g!k%o&U&{'Q*v,v2k6m6t8q9v9z:b:g:pX-g'e-d-h3U[uOwx!g&U*vQ-P'RQ-}'wS.r(T.tR3i.O[uOwx!g&U*vQ-P'RW-g'e-d-h3UT.r(T.tg-b'c-[-^-a2z2{2}3Q6{6|8zylOwx!g!k%o&U&{'Q*v,v2k6m6t8q9v9z:b:g:pb!OOaewx{!g&U*v&|$l[f!W!X!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$g$h$m%_%o&S&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:p#d%lgnp|#O$i%O%P%U%f%j%k%y&u'w'x(T*_*e*g*y+b,q,{-f-w.O.m.t.v0e1R1S1W1[2g2r5k6q;b;c;d;j;k;l;y;z;{;|<Q<R<S<T<b<c<dS'^!t'aQ-k'iQ2Y,aQ2t-UQ6f2]R8k6ej$TT$a%d%t;U;V;W;f;g;h;i;m;ni)t$X*Z;R;S;T;r;s;t;u;v;w;xj$TT$a%d%t;U;V;W;f;g;h;i;m;nh)t$X*Z;R;S;T;r;s;t;u;v;w;xS/f)Q<fV4u/g/h<P[uOwx!g&U*vQ-}'wR3i.O[uOwx!g&U*vT.r(T.t'`!YO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pR7]3_[uOwx!g&U*vQ-}'wS.r(T.tR3i.O[pOwx!g&U*vQ%ynS-w'w.OT.m(T.tS%}o.lS+R%x4QR0x+SQ+W%{R5g0{S%|o.lS&Qq-yU+Q%x%}4QS+U%z&PS0w+R+SQ0y+TQ5e0xQ7x4TQ9^7iR:Z9``qOwx!g&U(T*v.tS%zn-wU&Pp.m.vQ+T%yT-y'w.OS'}#Q.`R.a(OT.Y'|.]S.Z'|.]Q9S7`R:R9TT6X1y8iR6Z1y#d!Pgnp|#O$i%O%P%U%f%j%k%y&u'w'x(T*_*e*g*y+b,q,{-f-w.O.m.t.v0e1R1S1W1[2g2r5k6q;b;c;d;j;k;l;y;z;{;|<Q<R<S<T<b<c<db!QOaewx{!g&U*v&}![[f!W!X!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$g$h$m%_%o&S&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:p#d!Pgnp|#O$i%O%P%U%f%j%k%y&u'w'x(T*_*e*g*y+b,q,{-f-w.O.m.t.v0e1R1S1W1[2g2r5k6q;b;c;d;j;k;l;y;z;{;|<Q<R<S<T<b<c<db!QOaewx{!g&U*v&|![[f!W!X!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|#}$P$W$Y$[$g$h$m%_%o&S&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b4k5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pk4W.n3}4R4U4V7m7o7p7r7u9c9d:]Q4[.nS7k3}4TU9[7i7m7vS:U9Y9`R:k:X#|!TO[_ewx!f!g!u!}#O#V#Z$U$V$g$n%W&U&W&[&e&h&o&z'R'b'e'w(T(e(j)o)u*v*{+a+f+y,^,p,|-P-X-d-e-h-v-{.O.k.t.v1[1]1a1n1s1u2U2n2v3U3X3s4O5t8eR4g.|Q(`#US.}(_(aS4h/O/PR8R4iQ.z(^R8P4c#|!TO[_ewx!f!g!u!}#O#V#Z$U$V$g$n%W&U&W&[&e&h&o&z'R'b'e'w(T(e(j)o)u*v*{+a+f+y,^,p,|-P-X-d-e-h-v-{.O.k.t.v1[1]1a1n1s1u2U2n2v3U3X3s4O5t8ep$y`$f$u%Z&t'c(b(i)n*i-[/s1r5u6Q8`q)S#m%{.n0{3}4R4U4V7m7o7p7r7u9c9d:]R,Z&hR6b2U'X!VO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/d/k/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:p$q#tS%V%]'S'Z']'d'f(d(h(k(|(})W)X)Z)[)])^)_)`)a)b)c)d)p)v)}+^+l,T,X,o,z-o-p.T/Q/x0h0j0o0q1P1h2R2i2p3]3m3n4m4n4t4w4}5P5T5U5n5z6R6`6o6s6}7U7{7|8O8^8_8m8p8t8|9_9f9u9{:W:_:d:j:s$]#uS%V%]'S'Z']'d'f(k(|(})W)[)c)d)p)v)}+^+l,T,X,o,z-o-p.T/Q/x0h0j0o0q1P1h2R2i2p3]3m3n4m4n4t4w4}5P5T5U5n5z6R6`6o6s6}7U7{7|8O8^8_8m8p8t8|9_9f9u9{:W:_:d:j:s$Z#vS%V%]'S'Z']'d'f(k(|(})W)c)d)p)v)}+^+l,T,X,o,z-o-p.T/Q/x0h0j0o0q1P1h2R2i2p3]3m3n4m4n4t4w4}5P5T5U5n5z6R6`6o6s6}7U7{7|8O8^8_8m8p8t8|9_9f9u9{:W:_:d:j:s$c#yS%V%]'S'Z']'d'f(k(|(})W)Z)[)])^)c)d)p)v)}+^+l,T,X,o,z-o-p.T/Q/x0h0j0o0q1P1h2R2i2p3]3m3n4m4n4t4w4}5P5T5U5n5z6R6`6o6s6}7U7{7|8O8^8_8m8p8t8|9_9f9u9{:W:_:d:j:s'X![O[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/d/k/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pQ/W(iQ/r)nQ4|/sR9n8T']![O[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#h#k#n#s#t#u#v#w#x#y#z#{#|$P$W$Y$[$g$h$m%_%o&S&U&Y&d&h&z&{'O'Q'R'e'l'm'|(c(e(l)q)w*m*n*q*v*w*{+]+_+m+o+p,U,W,s,v,|-d-e-h-n.W.X.]/U/X/d/k/t/v/{/}0p1T1Y1i1j1t1x2S2U2k2n2q3P3U3X3s4Y4]4b5d5o5{6i6m6p6r6t7O7Q7V7l7t7w8o8q8w8}9O9]9a9g9i9v9y9z:V:Y:`:b:g:l:pQ(n#]R/Y(nQ#fQR(z#fU%Oa;j<Sb%We$g&h(e-X1u2U2v8eQ'b!u!Q*c%O%W'b*e*k+m,U0e0f1j2z6{7O7o8z9c9g:];b;y;z<Q<R<bS*e%P%UQ*k%ZS+m&Y1YQ,U&dQ0e*gQ0f*iQ1j+pQ2z-^S6{2{2}Q7O3PQ7o4RQ8z6|S9c7p7rQ9g7tQ:]9dQ;b%fS;y;c;dS;z<c<dQ<Q;{Q<R;|T<b1S;k[[Owx!g&U*vl$e['O(Q+a,^,m,p-W-e-v.R.f.k.xl'O!k%o&{'Q,v2k6m6t8q9v9z:b:g:p^(Q#R#S#T+g3f3g3h`+a&W&[&e*{1[1]1n3sS,^&o-{Q,m&yU,p&z'R3XS-W'_2sW-e'e-d-h3US-v'w.OQ.R'{Q.f(SS.k(T.tR.x(XQ*R$^R0Q*RQ0Z*SQ5X0UQ5Y0VQ5Z0WY5[0Z5X5Y5Z8[R8[5^Q*U$_S0^*U0_R0_*VS.g(S.fS3x.g7fR7f3zQ3{.hS7d3y3|U7h3{7d9VR9V7eQ.t(TR4^.t!|_O[wx!f!g!}#O$U$n&U&W&[&e&o&z'R'e'w(T)u*v*{+a,^,p,|-P-d-e-h-v-{.O.k.t.v1[1]1n2n3U3X3s4OU$t_$w*bU$w`$f&tR*b$uU%Pa;j<Sd*f%P*g2{6|7p9d;c;{;|<cQ*g%UQ2{-^Q6|2}Q7p4RQ9d7rQ;c%fQ;{;dQ;|<dT<c1S;kS,Q&c7sR1{,QS*o%]/xR0k*oQ1^+dR5s1^U+j&X1S<SR1e+jQ+x&`Q1k+qT1q+x1kQ8f6TR9s8fQwOS&Tw&UT&Ux*vQ,e&sR2_,eW)z$Y*v/v5dR/|)zU/w)v){0oR5R/w[*z%g%h*]2h2o3VR0u*zQ,i&wR2b,iQ-h'eQ3U-dT3W-h3UQ3R-`R7S3RQ-m'jQ2Z,bT3[-m2ZQ-V'^R2u-VS%rm7[R+P%rdnOwx!g&U'w(T*v.O.tR%wnQ0|+WR5h0|Q.]'|R3p.]Q2O,SR6[2OU*s%b*};eR0n*sS1o+s0vR6O1oQ7v4TQ9Y7iU9k7v9Y:XR:X9`$O!SO[_ewx!f!g!u!}#O#V#Z$U$V$g$n%W&U&W&[&e&h&o&z'R'b'e'w(T(e(j)o)u*v*{+a+f+y,^,p,|-P-X-d-e-h-v-{.O.k.t.v.|1[1]1a1n1s1u2U2n2v3U3X3s4O5t8eR&i!SQ4d.zR8Q4dQ2V,ZR6c2VS/l)d)eR4y/l^(t#b(p(q(r/]/_4rR/`(tQ8V4pR9p8VT)f$P*{!USO[wx!g!k%o&U&{'O'Q'e,v-d-e-h2k3U6m6t8q9v9z:b:g:pj${a{$m%_+o,W1i2S5{7Q8}9i:`Y%Ve$g(e1x3sY%]f$h(l)q*qQ&l!WQ&m!XQ'S!nQ'Z!rQ']!sQ'd!vQ'f!xQ(d#XQ(h#YS(k#[+_Q(|#hQ(}#kQ)W#nQ)X#sQ)Y#tQ)Z#uQ)[#vQ)]#wQ)^#xQ)_#yQ)`#zQ)a#{Q)b#|Q)c#}S)d$P*{Q)p$WQ)v$YQ)}$[Q+^&SS+l&Y1YQ,T&dQ,X&hQ,o&zQ,z'RQ-o'lQ-p'mS.T'|.]Q/Q(cS/x)w0pS0h*m4kQ0j*nQ0o*vQ0q*wQ1P+]S1h+m+pQ2R,UQ2i,sS2p,|7VQ3]-nQ3m.WQ3n.XQ4m/UQ4n/XQ4t/dQ4w/kQ4}/tQ5P/vQ5T/{Q5U/}Q5n1TQ5z1jQ6R1tQ6`2US6o2n9OQ6s2qQ6}3PQ7U3XQ7{4YQ7|4]Q8O4bQ8^5dQ8_5oQ8m6iQ8p6pQ8t6rQ8|7OS9_7l7wQ9f7tQ9u8oQ9{8wS:W9]9aQ:_9gQ:d9yS:j:V:YR:s:lR,[&hd]Owx!g&U'w(T*v.O.t!v^[_`!f!}#O$U$f$n$u$w&W&[&e&o&t&z'R'e)u*b*{+a,^,p,|-P-d-e-h-v-{.k.v1[1]1n2n3U3X3s4O#r$}ae!u$g%O%P%U%W%Z%f&Y&d&h'b(e*e*g*i*k+m+p,U-X-^0e0f1Y1j1u2U2v2z2{2}3P4R6{6|7O7o7p7r7t8e8z9c9d9g:];b;c;d;j;k;y;z;{;|<Q<R<b<c<dQ%vnS+i&X+jW+w&`+q+x1kU,P&c,Q7sQ1s+yT5m1S<S``Owx!g&U'w*v.OS$f[-vQ$u_b%Ze$g&h(e-X1u2U2v8e!h&t!f!}#O$U$n&W&[&e&o&z'R'e(T)u*{+a,^,p,|-P-d-e-h-{.k.t.v1[1]1n2n3U3X3s4OQ'c!uS(b#V+fQ(i#ZS)n$V(jQ*i%WQ-['bQ/s)oQ1r+yQ5u1aQ6Q1sR8`5tS(Z#R3gS([#S3hV(]#T+g3fR$`Ye0Y*S0U0V0W0Z5X5Y5Z5^8[W(U#R#S#T+gQ(_#US.b(Q(XS.h(S.fQ/P(aW1z,O.`6X6ZQ3e-{Q3r._Q3y.gQ4a.xU7_3f3g3hQ7g3zR9W7fQ.i(SR3w.fT.s(T.tdgOwx!g&U&o'w*v-{.OU$i[,^-vQ&u!fQ'n!}Q'x#OQ)m$UQ*_$n`+b&W&[&e*{1[1]1n3sQ,q&zQ,{'RY-f'e-d-h3U3XS.n(T.tQ/u)uQ1R+aS2g,p-eS2r,|-PS3}.k.vQ6q2nR7m4Od]Owx!g&U'w(T*v.O.t!v^[_`!f!}#O$U$f$n$u$w&W&[&e&o&t&z'R'e)u*b*{+a,^,p,|-P-d-e-h-v-{.k.v1[1]1n2n3U3X3s4OR%vnQ4T.nQ7i3}Q7q4RQ7y4UQ7z4VQ9`7mU9b7o7p7rQ9j7uS:[9c9dR:m:]Z+t&[&e*{1[3spzOnpwx!g%y&U'w(T*v-w.O.m.t.v[%Qa%f1S;j;k<SU%Ye%j1[Q%gg^&f{|%k1W5k;l<TQ'v#OQ*]$ib*d%O%P%U;b;c;d<b<c<dQ,g&uQ.P'xQ0c*_[0d*e*g;y;z;{;|Q0s*yQ1U+bQ2h,qQ2o,{S3V-f2gU5a0e<Q<RQ5l1RQ6v2rR8s6qQ,S&cR9e7sS1y,O.`Q8h6XR8i6Z[%`f$h(l)q)w0pR0l*qR+e&WQ+d&WR5r1]S&Zy+}Q*l%ZU+k&X1S<SS+r&[1[W+u&]1W5k<TQ-q'nQ/p)mS0g*i*kQ1Z+bQ1f+jQ5O/uQ5b0fQ5j1RQ6P1rR8c6QR6U1uYvOwx&U*vR&v!gW%ig,q,{-fT*^$i2gT)|$Y*v[uOwx!g&U*vQ'P!kQ+O%oQ,u&{Q,y'QQ2l,vQ6l2kQ8n6mQ8v6tQ9x8qQ:c9vQ:f9zQ:o:bQ:q:gR:u:pxlOwx!g!k%o&U&{'Q*v,v2k6m6t8q9v9z:b:g:pU$j['O-eX-g'e-d-h3UQ-c'cR2y-[S-`'c-[Q2|-^Q3S-aU6z2z2{2}Q7R3QS8y6{6|R9}8zQ'`!tR-Z'a[rOwx!g&U*vS-x'w.OT.o(T.tR+X%{[sOwx!g&U*vS-z'w.OT.p(T.t[tOwx!g&U*vT.q(T.tT.['|.]X%cf%m0p1YQ/O(_R4i/PR.{(^R(g#XQ(w#bU/[(p(q(rS4o/]/_R8X4rR/_(rR4q/^",nodeNames:"⚠ RawString > MacroName LineComment BlockComment PreprocDirective #include String EscapeSequence SystemLibString Identifier ) ( ArgumentList ConditionalExpression AssignmentExpression CallExpression PrimitiveType FieldExpression FieldIdentifier DestructorName TemplateMethod ScopedFieldIdentifier NamespaceIdentifier TemplateType TypeIdentifier ScopedTypeIdentifier ScopedNamespaceIdentifier :: NamespaceIdentifier TypeIdentifier TemplateArgumentList < TypeDescriptor const volatile restrict _Atomic mutable constexpr constinit consteval StructSpecifier struct MsDeclspecModifier __declspec Attribute AttributeName Identifier AttributeArgs { } [ ] UpdateOp ArithOp ArithOp ArithOp LogicOp BitOp BitOp BitOp CompareOp CompareOp CompareOp > CompareOp BitOp UpdateOp , Number CharLiteral AttributeArgs VirtualSpecifier BaseClassClause Access virtual FieldDeclarationList FieldDeclaration extern static register inline thread_local AttributeSpecifier __attribute__ PointerDeclarator MsBasedModifier __based MsPointerModifier FunctionDeclarator ParameterList ParameterDeclaration PointerDeclarator FunctionDeclarator Noexcept noexcept RequiresClause requires True False ParenthesizedExpression CommaExpression LambdaExpression LambdaCaptureSpecifier TemplateParameterList OptionalParameterDeclaration TypeParameterDeclaration typename class VariadicParameterDeclaration VariadicDeclarator ReferenceDeclarator OptionalTypeParameterDeclaration VariadicTypeParameterDeclaration TemplateTemplateParameterDeclaration template AbstractFunctionDeclarator AbstractPointerDeclarator AbstractArrayDeclarator AbstractParenthesizedDeclarator AbstractReferenceDeclarator ThrowSpecifier throw TrailingReturnType CompoundStatement FunctionDefinition MsCallModifier TryStatement try CatchClause catch LinkageSpecification Declaration InitDeclarator InitializerList InitializerPair SubscriptDesignator FieldDesignator ExportDeclaration export ImportDeclaration import ModuleName PartitionName HeaderName CaseStatement case default LabeledStatement StatementIdentifier ExpressionStatement IfStatement if ConditionClause Declaration else SwitchStatement switch DoStatement do while WhileStatement ForStatement for ReturnStatement return BreakStatement break ContinueStatement continue GotoStatement goto CoReturnStatement co_return CoYieldStatement co_yield AttributeStatement ForRangeLoop AliasDeclaration using TypeDefinition typedef PointerDeclarator FunctionDeclarator ArrayDeclarator ParenthesizedDeclarator ThrowStatement NamespaceDefinition namespace ScopedIdentifier Identifier OperatorName operator ArithOp BitOp CompareOp LogicOp new delete co_await ConceptDefinition concept UsingDeclaration enum StaticAssertDeclaration static_assert ConcatenatedString TemplateDeclaration FriendDeclaration friend union FunctionDefinition ExplicitFunctionSpecifier explicit FieldInitializerList FieldInitializer DefaultMethodClause DeleteMethodClause FunctionDefinition OperatorCast operator TemplateInstantiation FunctionDefinition FunctionDefinition Declaration ModuleDeclaration module RequiresExpression RequirementList SimpleRequirement TypeRequirement CompoundRequirement ReturnTypeRequirement ConstraintConjuction LogicOp ConstraintDisjunction LogicOp ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator TemplateFunction OperatorName StructuredBindingDeclarator ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator BitfieldClause FunctionDefinition FunctionDefinition Declaration FunctionDefinition Declaration AccessSpecifier UnionSpecifier ClassSpecifier EnumSpecifier SizedTypeSpecifier TypeSize EnumeratorList Enumerator DependentType Decltype decltype auto PlaceholderTypeSpecifier ParameterPackExpansion ParameterPackExpansion FieldIdentifier PointerExpression SubscriptExpression BinaryExpression ArithOp LogicOp LogicOp BitOp UnaryExpression LogicOp BitOp UpdateExpression CastExpression SizeofExpression sizeof CoAwaitExpression CompoundLiteralExpression NULL NewExpression new NewDeclarator DeleteExpression delete ParameterPackExpansion nullptr this UserDefinedLiteral ParamPack #define PreprocArg #if #ifdef #ifndef #else #endif #elif PreprocDirectiveName Macro Program",maxTerm:433,nodeProps:[["group",-35,1,8,11,15,16,17,19,71,72,100,101,102,104,191,208,229,242,243,270,271,272,277,280,281,282,284,285,286,287,290,292,293,294,295,296,"Expression",-13,18,25,26,27,43,255,256,257,258,262,263,265,266,"Type",-19,126,129,147,150,152,153,158,160,163,164,166,168,170,172,174,176,178,179,188,"Statement"],["isolate",-4,4,5,8,10,""],["openedBy",12,"(",52,"{",54,"["],["closedBy",13,")",51,"}",53,"]"]],propSources:[cppHighlighting],skippedNodes:[0,3,4,5,6,7,10,297,298,299,300,301,302,303,304,305,306,308,349,350],repeatNodeCount:43,tokenData:"&AbMfR!UOX$eXY/]YZ5gZ]$e]^1g^p$epq/]qr5}rs8Zst:Ttu$euv!AWvw!Cbwx!Eqxy!Flyz!Gmz{!Hn{|!Iw|}!LX}!O!MY!O!P# m!P!Q#8a!Q!R#@T!R![$'k![!]$@f!]!^$Bn!^!_$Co!_!`%C`!`!a%Dg!a!b%HP!b!c$e!c!n%IQ!n!o%Jl!o!w%IQ!w!x%Jl!x!}%IQ!}#O%Mx#O#P& }#P#Q&3[#Q#R&5a#R#S%IQ#S#T$e#T#i%IQ#i#j&6j#j#o%IQ#o#p&8[#p#q&9]#q#r&;o#r#s&<p#s;'S$e;'S;=`/V<%lO$e,j$n[)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$e,f%kY)d`'f,UOY%dZw%dwx&Zx!P%d!P!Q(z!Q#O%d#O#P'b#P;'S%d;'S;=`*g<%lO%d,U&`W'f,UOY&ZZ!P&Z!P!Q&x!Q#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&Z,U&{TOz&Z{!P&Z!Q;'S&Z;'S;=`'[<%lO&Z,U'_P;=`<%l&Z,U'gZ'f,UOY&ZYZ&ZZ]&Z]^(Y^!P&Z!P!Q&x!Q#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&Z,U(_X'f,UOY&ZYZ&ZZ!P&Z!P!Q&x!Q#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&Z,f)P])d`OY%dYZ&ZZw%dwx&Zxz%dz{)x{!P%d!P!Q)x!Q#O%d#O#P&Z#P;'S%d;'S;=`*g<%lO%d`)}U)d`OY)xZw)xx#O)x#P;'S)x;'S;=`*a<%lO)x`*dP;=`<%l)x,f*jP;=`<%l%d,Y*tY(wS'f,UOY*mZr*mrs&Zs!P*m!P!Q+d!Q#O*m#O#P'b#P;'S*m;'S;=`-P<%lO*m,Y+i](wSOY*mYZ&ZZr*mrs&Zsz*mz{,b{!P*m!P!Q,b!Q#O*m#O#P&Z#P;'S*m;'S;=`-P<%lO*mS,gU(wSOY,bZr,bs#O,b#P;'S,b;'S;=`,y<%lO,bS,|P;=`<%l,b,Y-SP;=`<%l*m,j-^_)d`(wSOY$eYZ&ZZr$ers%dsw$ewx*mxz$ez{.]{!P$e!P!Q.]!Q#O$e#O#P&Z#P;'S$e;'S;=`/V<%lO$ed.dX)d`(wSOY.]Zr.]rs)xsw.]wx,bx#O.]#P;'S.];'S;=`/P<%lO.]d/SP;=`<%l.],j/YP;=`<%l$eMf/jb)d`(wS(p<`'f,U*c1pOX$eXY/]YZ0rZ]$e]^1g^p$epq/]qr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P2z#P;'S$e;'S;=`/V<%lO$e<`0wT(p<`XY0rYZ0r]^0rpq0r#O#P1W<`1ZQYZ0r]^1a<`1dPYZ0rGz1rb)d`(wS(p<`'f,UOX$eXY1gYZ0rZ]$e]^1g^p$epq1gqr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P2z#P;'S$e;'S;=`/V<%lO$eGf3PZ'f,UOY&ZYZ3rZ]&Z]^4u^!P&Z!P!Q&x!Q#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&ZGf3y^(p<`'f,UOX&ZXY3rYZ0rZ]&Z]^3r^p&Zpq3rq!P&Z!P!Q&x!Q#O&Z#O#P2z#P;'S&Z;'S;=`'[<%lO&ZGf4zX'f,UOY&ZYZ3rZ!P&Z!P!Q&x!Q#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&ZMQ5nT*`1p(p<`XY0rYZ0r]^0rpq0r#O#P1WF`6[^%^#t'QQ)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!_$e!_!`7W!`#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`7e[%]#t!a8O)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eKz8f[)d`(uS(v=j'f,UOY%dZr%drs9[sw%dwx&Zx!P%d!P!Q(z!Q#O%d#O#P'b#P;'S%d;'S;=`*g<%lO%d/[9eY*P#t)d`'f,UOY%dZw%dwx&Zx!P%d!P!Q(z!Q#O%d#O#P'b#P;'S%d;'S;=`*g<%lO%dGz:^h)d`(wS'f,UOX$eXY:TZp$epq:Tqr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!c$e!c!};x!}#O$e#O#P'b#P#T$e#T#W;x#W#X=`#X#YFz#Y#];x#]#^!)O#^#o;x#o;'S$e;'S;=`/V<%lO$eGz<Tc)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#o;x#o;'S$e;'S;=`/V<%lO$eGz=ke)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#X;x#X#Y>|#Y#o;x#o;'S$e;'S;=`/V<%lO$eGz?Xe)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#Y;x#Y#Z@j#Z#o;x#o;'S$e;'S;=`/V<%lO$eGz@ue)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#];x#]#^BW#^#o;x#o;'S$e;'S;=`/V<%lO$eGzBce)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#b;x#b#cCt#c#o;x#o;'S$e;'S;=`/V<%lO$eGzDPe)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#X;x#X#YEb#Y#o;x#o;'S$e;'S;=`/V<%lO$eGzEoc)d`(wS'e<`'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#o;x#o;'S$e;'S;=`/V<%lO$eGzGVg)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#`;x#`#aHn#a#b;x#b#c!!n#c#o;x#o;'S$e;'S;=`/V<%lO$eGzHyg)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#];x#]#^Jb#^#g;x#g#hMh#h#o;x#o;'S$e;'S;=`/V<%lO$eGzJme)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#Y;x#Y#ZLO#Z#o;x#o;'S$e;'S;=`/V<%lO$eGzL]c)d`(wS'f,U'l<`'m<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#o;x#o;'S$e;'S;=`/V<%lO$eGzMse)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#X;x#X#Y! U#Y#o;x#o;'S$e;'S;=`/V<%lO$eGz! cc)d`(wS'j<`'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#o;x#o;'S$e;'S;=`/V<%lO$eGz!!ye)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#W;x#W#X!$[#X#o;x#o;'S$e;'S;=`/V<%lO$eGz!$ge)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#];x#]#^!%x#^#o;x#o;'S$e;'S;=`/V<%lO$eGz!&Te)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#Y;x#Y#Z!'f#Z#o;x#o;'S$e;'S;=`/V<%lO$eGz!'sc)d`(wS'f,U'k<`'m<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#o;x#o;'S$e;'S;=`/V<%lO$eGz!)Zg)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#Y;x#Y#Z!*r#Z#b;x#b#c!7l#c#o;x#o;'S$e;'S;=`/V<%lO$eGz!+Pg)d`(wS'g<`'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#W;x#W#X!,h#X#b;x#b#c!1[#c#o;x#o;'S$e;'S;=`/V<%lO$eGz!,se)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#X;x#X#Y!.U#Y#o;x#o;'S$e;'S;=`/V<%lO$eGz!.ae)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#Y;x#Y#Z!/r#Z#o;x#o;'S$e;'S;=`/V<%lO$eGz!0Pc)d`(wS'h<`'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#o;x#o;'S$e;'S;=`/V<%lO$eGz!1ge)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#W;x#W#X!2x#X#o;x#o;'S$e;'S;=`/V<%lO$eGz!3Te)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#X;x#X#Y!4f#Y#o;x#o;'S$e;'S;=`/V<%lO$eGz!4qe)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#Y;x#Y#Z!6S#Z#o;x#o;'S$e;'S;=`/V<%lO$eGz!6ac)d`(wS'i<`'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#o;x#o;'S$e;'S;=`/V<%lO$eGz!7we)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#V;x#V#W!9Y#W#o;x#o;'S$e;'S;=`/V<%lO$eGz!9ee)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#`;x#`#a!:v#a#o;x#o;'S$e;'S;=`/V<%lO$eGz!;Re)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#i;x#i#j!<d#j#o;x#o;'S$e;'S;=`/V<%lO$eGz!<oe)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#W;x#W#X!>Q#X#o;x#o;'S$e;'S;=`/V<%lO$eGz!>]e)d`(wS'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#X;x#X#Y!?n#Y#o;x#o;'S$e;'S;=`/V<%lO$eGz!?{c)d`(wSV<`'f,U'm<`OY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![;x![!c$e!c!};x!}#O$e#O#P'b#P#R$e#R#S;x#S#T$e#T#o;x#o;'S$e;'S;=`/V<%lO$eF`!Ae^)d`(wS%Z#t![8O'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!_$e!_!`!Ba!`#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`!Bl[!g:t)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`!Co_)^8O)d`(wS%[#t'f,UOY$eZr$ers%dsv$evw!Dnwx*mx!P$e!P!Q-V!Q!_$e!_!`!Ba!`#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`!D{[)]8O%^#t)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eCb!E|Y)bW(wS)c8O'f,UOY*mZr*mrs&Zs!P*m!P!Q+d!Q#O*m#O#P'b#P;'S*m;'S;=`-P<%lO*mLS!Fw[)d`(wS]Kn'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$e-^!Gx[[r)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`!H{^)Z8O)d`(wS%Z#t'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!_$e!_!`!Ba!`#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`!JU`)d`(wS%Z#t!Y8O'f,UOY$eZr$ers%dsw$ewx*mx{$e{|!KW|!P$e!P!Q-V!Q!_$e!_!`!Ba!`#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`!Kc[)d`!X:t(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eCr!Ld[!h8W)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`!Mga)d`(wS%Z#t!Y8O'f,UOY$eZr$ers%dsw$ewx*mx}$e}!O!KW!O!P$e!P!Q-V!Q!_$e!_!`!Ba!`!a!Nl!a#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`!Nw[)O:t)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eCr# x^)d`(wS'f,U(}8OOY$eZr$ers%dsw$ewx*mx!O$e!O!P#!t!P!Q-V!Q![#$w![#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eCr#!}])d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!O$e!O!P##v!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eCr#$R[)a8W)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eCj#%So)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx#'Tx!P$e!P!Q-V!Q![#$w![!g$e!g!h#1O!h!i#6j!i!n$e!n!o#6j!o!r$e!r!s#1O!s!w$e!w!x#6j!x#O$e#O#P'b#P#X$e#X#Y#1O#Y#Z#6j#Z#`$e#`#a#6j#a#d$e#d#e#1O#e#i$e#i#j#6j#j;'S$e;'S;=`/V<%lO$eCY#'[Z(wS'f,UOY*mZr*mrs&Zs!P*m!P!Q+d!Q![#'}![#O*m#O#P'b#P;'S*m;'S;=`-P<%lO*mCY#(Wo(wS!i8O'f,UOY*mZr*mrs&Zsw*mwx#'Tx!P*m!P!Q+d!Q![#'}![!g*m!g!h#*X!h!i#/a!i!n*m!n!o#/a!o!r*m!r!s#*X!s!w*m!w!x#/a!x#O*m#O#P'b#P#X*m#X#Y#*X#Y#Z#/a#Z#`*m#`#a#/a#a#d*m#d#e#*X#e#i*m#i#j#/a#j;'S*m;'S;=`-P<%lO*mCY#*bm(wS!i8O'f,UOY*mZr*mrs&Zs{*m{|#,]|}*m}!O#,]!O!P*m!P!Q+d!Q![#-c![!c*m!c!h#-c!h!i#-c!i!n*m!n!o#/a!o!w*m!w!x#/a!x#O*m#O#P'b#P#T*m#T#Y#-c#Y#Z#-c#Z#`*m#`#a#/a#a#i*m#i#j#/a#j;'S*m;'S;=`-P<%lO*mCY#,d_(wS'f,UOY*mZr*mrs&Zs!P*m!P!Q+d!Q![#-c![!c*m!c!i#-c!i#O*m#O#P'b#P#T*m#T#Z#-c#Z;'S*m;'S;=`-P<%lO*mCY#-lk(wS!i8O'f,UOY*mZr*mrs&Zsw*mwx#,]x!P*m!P!Q+d!Q![#-c![!c*m!c!h#-c!h!i#-c!i!n*m!n!o#/a!o!w*m!w!x#/a!x#O*m#O#P'b#P#T*m#T#Y#-c#Y#Z#-c#Z#`*m#`#a#/a#a#i*m#i#j#/a#j;'S*m;'S;=`-P<%lO*mCY#/jf(wS!i8O'f,UOY*mZr*mrs&Zs!P*m!P!Q+d!Q!h*m!h!i#/a!i!n*m!n!o#/a!o!w*m!w!x#/a!x#O*m#O#P'b#P#Y*m#Y#Z#/a#Z#`*m#`#a#/a#a#i*m#i#j#/a#j;'S*m;'S;=`-P<%lO*mCj#1Zo)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx*mx{$e{|#3[|}$e}!O#3[!O!P$e!P!Q-V!Q![#4j![!c$e!c!h#4j!h!i#4j!i!n$e!n!o#6j!o!w$e!w!x#6j!x#O$e#O#P'b#P#T$e#T#Y#4j#Y#Z#4j#Z#`$e#`#a#6j#a#i$e#i#j#6j#j;'S$e;'S;=`/V<%lO$eCj#3ea)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![#4j![!c$e!c!i#4j!i#O$e#O#P'b#P#T$e#T#Z#4j#Z;'S$e;'S;=`/V<%lO$eCj#4uk)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx#,]x!P$e!P!Q-V!Q![#4j![!c$e!c!h#4j!h!i#4j!i!n$e!n!o#6j!o!w$e!w!x#6j!x#O$e#O#P'b#P#T$e#T#Y#4j#Y#Z#4j#Z#`$e#`#a#6j#a#i$e#i#j#6j#j;'S$e;'S;=`/V<%lO$eCj#6uh)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!h$e!h!i#6j!i!n$e!n!o#6j!o!w$e!w!x#6j!x#O$e#O#P'b#P#Y$e#Y#Z#6j#Z#`$e#`#a#6j#a#i$e#i#j#6j#j;'S$e;'S;=`/V<%lO$eMf#8la)d`(wS%Z#t![8OOY$eYZ&ZZr$ers%dsw$ewx*mxz$ez{#9q{!P$e!P!Q#:g!Q!_$e!_!`!Ba!`#O$e#O#P&Z#P;'S$e;'S;=`/V<%lO$eMf#9zX)d`(wS(qMQOY.]Zr.]rs)xsw.]wx,bx#O.]#P;'S.];'S;=`/P<%lO.]Mf#:pY)d`(wSSMQOY#:gZr#:grs#;`sw#:gwx#?Wx#O#:g#O#P#<h#P;'S#:g;'S;=`#?}<%lO#:gMb#;gW)d`SMQOY#;`Zw#;`wx#<Px#O#;`#O#P#<h#P;'S#;`;'S;=`#?Q<%lO#;`MQ#<UUSMQOY#<PZ#O#<P#O#P#<h#P;'S#<P;'S;=`#>z<%lO#<PMQ#<mUSMQOY#<PZ#O#<P#O#P#=P#P;'S#<P;'S;=`#>z<%lO#<PMQ#=UYSMQOY#<PZ#O#<P#O#P#=P#P#b#<P#b#c#<P#c#f#<P#f#g#=t#g;'S#<P;'S;=`#>z<%lO#<PMQ#=yUSMQOY#<PZ#O#<P#O#P#>]#P;'S#<P;'S;=`#>z<%lO#<PMQ#>bWSMQOY#<PZ#O#<P#O#P#=P#P#b#<P#b#c#<P#c;'S#<P;'S;=`#>z<%lO#<PMQ#>}P;=`<%l#<PMb#?TP;=`<%l#;`MU#?_W(wSSMQOY#?WZr#?Wrs#<Ps#O#?W#O#P#<h#P;'S#?W;'S;=`#?w<%lO#?WMU#?zP;=`<%l#?WMf#@QP;=`<%l#:gCj#@`t)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx#Bpx!O$e!O!P#NV!P!Q-V!Q![$'k![!g$e!g!h#1O!h!i#6j!i!n$e!n!o#6j!o!r$e!r!s#1O!s!w$e!w!x#6j!x#O$e#O#P'b#P#U$e#U#V$)z#V#X$e#X#Y#1O#Y#Z#6j#Z#`$e#`#a#6j#a#d$e#d#e#1O#e#i$e#i#j#6j#j#l$e#l#m$<_#m;'S$e;'S;=`/V<%lO$eCY#BwZ(wS'f,UOY*mZr*mrs&Zs!P*m!P!Q+d!Q![#Cj![#O*m#O#P'b#P;'S*m;'S;=`-P<%lO*mCY#Csp(wS!i8O'f,UOY*mZr*mrs&Zsw*mwx#Bpx!O*m!O!P#Ew!P!Q+d!Q![#Cj![!g*m!g!h#*X!h!i#/a!i!n*m!n!o#/a!o!r*m!r!s#*X!s!w*m!w!x#/a!x#O*m#O#P'b#P#X*m#X#Y#*X#Y#Z#/a#Z#`*m#`#a#/a#a#d*m#d#e#*X#e#i*m#i#j#/a#j;'S*m;'S;=`-P<%lO*mCY#FQo(wS!i8O'f,UOY*mZr*mrs&Zs!P*m!P!Q+d!Q![#HR![!c*m!c!g#HR!g!h#Ki!h!i#HR!i!n*m!n!o#/a!o!r*m!r!s#*X!s!w*m!w!x#/a!x#O*m#O#P'b#P#T*m#T#X#HR#X#Y#Ki#Y#Z#HR#Z#`*m#`#a#/a#a#d*m#d#e#*X#e#i*m#i#j#/a#j;'S*m;'S;=`-P<%lO*mCY#H[q(wS!i8O'f,UOY*mZr*mrs&Zsw*mwx#Jcx!P*m!P!Q+d!Q![#HR![!c*m!c!g#HR!g!h#Ki!h!i#HR!i!n*m!n!o#/a!o!r*m!r!s#*X!s!w*m!w!x#/a!x#O*m#O#P'b#P#T*m#T#X#HR#X#Y#Ki#Y#Z#HR#Z#`*m#`#a#/a#a#d*m#d#e#*X#e#i*m#i#j#/a#j;'S*m;'S;=`-P<%lO*mCY#Jj_(wS'f,UOY*mZr*mrs&Zs!P*m!P!Q+d!Q![#HR![!c*m!c!i#HR!i#O*m#O#P'b#P#T*m#T#Z#HR#Z;'S*m;'S;=`-P<%lO*mCY#Kru(wS!i8O'f,UOY*mZr*mrs&Zsw*mwx#Jcx{*m{|#,]|}*m}!O#,]!O!P*m!P!Q+d!Q![#HR![!c*m!c!g#HR!g!h#Ki!h!i#HR!i!n*m!n!o#/a!o!r*m!r!s#*X!s!w*m!w!x#/a!x#O*m#O#P'b#P#T*m#T#X#HR#X#Y#Ki#Y#Z#HR#Z#`*m#`#a#/a#a#d*m#d#e#*X#e#i*m#i#j#/a#j;'S*m;'S;=`-P<%lO*mCj#Nbq)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![$!i![!c$e!c!g$!i!g!h$${!h!i$!i!i!n$e!n!o#6j!o!r$e!r!s#1O!s!w$e!w!x#6j!x#O$e#O#P'b#P#T$e#T#X$!i#X#Y$${#Y#Z$!i#Z#`$e#`#a#6j#a#d$e#d#e#1O#e#i$e#i#j#6j#j;'S$e;'S;=`/V<%lO$eCj$!tq)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx#Jcx!P$e!P!Q-V!Q![$!i![!c$e!c!g$!i!g!h$${!h!i$!i!i!n$e!n!o#6j!o!r$e!r!s#1O!s!w$e!w!x#6j!x#O$e#O#P'b#P#T$e#T#X$!i#X#Y$${#Y#Z$!i#Z#`$e#`#a#6j#a#d$e#d#e#1O#e#i$e#i#j#6j#j;'S$e;'S;=`/V<%lO$eCj$%Wu)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx#Jcx{$e{|#3[|}$e}!O#3[!O!P$e!P!Q-V!Q![$!i![!c$e!c!g$!i!g!h$${!h!i$!i!i!n$e!n!o#6j!o!r$e!r!s#1O!s!w$e!w!x#6j!x#O$e#O#P'b#P#T$e#T#X$!i#X#Y$${#Y#Z$!i#Z#`$e#`#a#6j#a#d$e#d#e#1O#e#i$e#i#j#6j#j;'S$e;'S;=`/V<%lO$eCj$'vp)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx#Bpx!O$e!O!P#NV!P!Q-V!Q![$'k![!g$e!g!h#1O!h!i#6j!i!n$e!n!o#6j!o!r$e!r!s#1O!s!w$e!w!x#6j!x#O$e#O#P'b#P#X$e#X#Y#1O#Y#Z#6j#Z#`$e#`#a#6j#a#d$e#d#e#1O#e#i$e#i#j#6j#j;'S$e;'S;=`/V<%lO$eCj$*T_)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!O$e!O!P$+S!P!Q-V!Q!R$,U!R![$'k![#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eCj$+]])d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![#$w![#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eCj$,at)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx#Bpx!O$e!O!P#NV!P!Q-V!Q![$'k![!g$e!g!h#1O!h!i#6j!i!n$e!n!o#6j!o!r$e!r!s#1O!s!w$e!w!x#6j!x#O$e#O#P'b#P#U$e#U#V$.q#V#X$e#X#Y#1O#Y#Z#6j#Z#`$e#`#a#6j#a#d$e#d#e#1O#e#i$e#i#j#6j#j#l$e#l#m$/s#m;'S$e;'S;=`/V<%lO$eCj$.z])d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![$'k![#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eCj$/|a)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![$1R![!c$e!c!i$1R!i#O$e#O#P'b#P#T$e#T#Z$1R#Z;'S$e;'S;=`/V<%lO$eCj$1^r)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx$3hx!O$e!O!P#NV!P!Q-V!Q![$1R![!c$e!c!g$1R!g!h$9o!h!i$1R!i!n$e!n!o#6j!o!r$e!r!s#1O!s!w$e!w!x#6j!x#O$e#O#P'b#P#T$e#T#X$1R#X#Y$9o#Y#Z$1R#Z#`$e#`#a#6j#a#d$e#d#e#1O#e#i$e#i#j#6j#j;'S$e;'S;=`/V<%lO$eCY$3o_(wS'f,UOY*mZr*mrs&Zs!P*m!P!Q+d!Q![$4n![!c*m!c!i$4n!i#O*m#O#P'b#P#T*m#T#Z$4n#Z;'S*m;'S;=`-P<%lO*mCY$4wr(wS!i8O'f,UOY*mZr*mrs&Zsw*mwx$3hx!O*m!O!P#Ew!P!Q+d!Q![$4n![!c*m!c!g$4n!g!h$7R!h!i$4n!i!n*m!n!o#/a!o!r*m!r!s#*X!s!w*m!w!x#/a!x#O*m#O#P'b#P#T*m#T#X$4n#X#Y$7R#Y#Z$4n#Z#`*m#`#a#/a#a#d*m#d#e#*X#e#i*m#i#j#/a#j;'S*m;'S;=`-P<%lO*mCY$7[u(wS!i8O'f,UOY*mZr*mrs&Zsw*mwx$3hx{*m{|#,]|}*m}!O#,]!O!P#Ew!P!Q+d!Q![$4n![!c*m!c!g$4n!g!h$7R!h!i$4n!i!n*m!n!o#/a!o!r*m!r!s#*X!s!w*m!w!x#/a!x#O*m#O#P'b#P#T*m#T#X$4n#X#Y$7R#Y#Z$4n#Z#`*m#`#a#/a#a#d*m#d#e#*X#e#i*m#i#j#/a#j;'S*m;'S;=`-P<%lO*mCj$9zu)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx$3hx{$e{|#3[|}$e}!O#3[!O!P#NV!P!Q-V!Q![$1R![!c$e!c!g$1R!g!h$9o!h!i$1R!i!n$e!n!o#6j!o!r$e!r!s#1O!s!w$e!w!x#6j!x#O$e#O#P'b#P#T$e#T#X$1R#X#Y$9o#Y#Z$1R#Z#`$e#`#a#6j#a#d$e#d#e#1O#e#i$e#i#j#6j#j;'S$e;'S;=`/V<%lO$eCj$<hc)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!O$e!O!P$+S!P!Q-V!Q!R$=s!R![$1R![!c$e!c!i$1R!i#O$e#O#P'b#P#T$e#T#Z$1R#Z;'S$e;'S;=`/V<%lO$eCj$>Ov)d`(wS!i8O'f,UOY$eZr$ers%dsw$ewx$3hx!O$e!O!P#NV!P!Q-V!Q![$1R![!c$e!c!g$1R!g!h$9o!h!i$1R!i!n$e!n!o#6j!o!r$e!r!s#1O!s!w$e!w!x#6j!x#O$e#O#P'b#P#T$e#T#U$1R#U#V$1R#V#X$1R#X#Y$9o#Y#Z$1R#Z#`$e#`#a#6j#a#d$e#d#e#1O#e#i$e#i#j#6j#j#l$e#l#m$/s#m;'S$e;'S;=`/V<%lO$eGz$@q^(|9b)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![$e![!]$Am!]#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eFh$Ax[m:|)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eCj$By[)`8O)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eM^$C|aq8O%]#t)d`(wS'f,UOY$ERYZ$FZZr$ERrs$Fxsw$ERwx%4^x!P$ER!P!Q%8|!Q!^$ER!^!_%=a!_!`%?z!`!a%B_!a#O$ER#O#P%.w#P;'S$ER;'S;=`%=Z<%lO$ER3h$E[_)d`(wS'f,UOY$ERYZ$FZZr$ERrs$Fxsw$ERwx%4^x!P$ER!P!Q%8|!Q!`$ER!`!a%<W!a#O$ER#O#P%.w#P;'S$ER;'S;=`%=Z<%lO$ER!b$F^TO!`$FZ!`!a$Fm!a;'S$FZ;'S;=`$Fr<%lO$FZ!b$FrO$W!b!b$FuP;=`<%l$FZ3d$GP])d`'f,UOY$FxYZ$FZZw$Fxwx$Gxx!P$Fx!P!Q%0n!Q!`$Fx!`!a%3]!a#O$Fx#O#P%.w#P;'S$Fx;'S;=`%4W<%lO$Fx3S$G}Z'f,UOY$GxYZ$FZZ!P$Gx!P!Q$Hp!Q!`$Gx!`!a%$S!a#O$Gx#O#P%.w#P;'S$Gx;'S;=`%0h<%lO$Gx3S$Hs]OY$GxYZ$IlZz$Gxz{$Mo{!P$Gx!P!Q$Mo!Q!`$Gx!`!a%$S!a#O$Gx#O#P%$u#P;'S$Gx;'S;=`%0h<%lO$Gx-h$IqZ'f,UOY$IlYZ$FZZ!P$Il!P!Q$Jd!Q!`$Il!`!a$KS!a#O$Il#O#P$Ky#P;'S$Il;'S;=`$Ks<%lO$Il-h$JgXOz$Ilz{$FZ{!P$Il!P!Q$FZ!Q!`$Il!`!a$KS!a;'S$Il;'S;=`$Ks<%lO$Il-h$KZW$W!b'f,UOY&ZZ!P&Z!P!Q&x!Q#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&Z-h$KvP;=`<%l$Il-h$LO]'f,UOY$IlYZ$IlZ]$Il]^$Lw^!P$Il!P!Q$Jd!Q!`$Il!`!a$KS!a#O$Il#O#P$Ky#P;'S$Il;'S;=`$Ks<%lO$Il-h$L|Z'f,UOY$IlYZ$IlZ!P$Il!P!Q$Jd!Q!`$Il!`!a$KS!a#O$Il#O#P$Ky#P;'S$Il;'S;=`$Ks<%lO$Il'|$MrXOY$MoYZ$FZZ!`$Mo!`!a$N_!a#O$Mo#O#P$Nf#P;'S$Mo;'S;=`%#|<%lO$Mo'|$NfO$W!bY&j'|$NiUO!`$Mo!`!a$N{!a;'S$Mo;'S;=`%#^;=`<%l% j<%lO$Mo'|% QW$W!bOY% jZ!`% j!`!a%!V!a#O% j#O#P%![#P;'S% j;'S;=`%#W<%lO% j&j% mWOY% jZ!`% j!`!a%!V!a#O% j#O#P%![#P;'S% j;'S;=`%#W<%lO% j&j%![OY&j&j%!_RO;'S% j;'S;=`%!h;=`O% j&j%!kXOY% jZ!`% j!`!a%!V!a#O% j#O#P%![#P;'S% j;'S;=`%#W;=`<%l% j<%lO% j&j%#ZP;=`<%l% j'|%#aXOY% jZ!`% j!`!a%!V!a#O% j#O#P%![#P;'S% j;'S;=`%#W;=`<%l$Mo<%lO% j'|%$PP;=`<%l$Mo3S%$]W$W!bY&j'f,UOY&ZZ!P&Z!P!Q&x!Q#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&Z3S%$z['f,UOY$GxYZ$MoZ!P$Gx!P!Q$Hp!Q!`$Gx!`!a%%p!a#O$Gx#O#P%-R#P;'S$Gx;'S;=`%/x;=`<%l% j<%lO$Gx3S%%wY$W!b'f,UOY%&gZ!P%&g!P!Q%'[!Q!`%&g!`!a%(W!a#O%&g#O#P%+b#P;'S%&g;'S;=`%,{<%lO%&g1p%&lY'f,UOY%&gZ!P%&g!P!Q%'[!Q!`%&g!`!a%(W!a#O%&g#O#P%+b#P;'S%&g;'S;=`%,{<%lO%&g1p%'_]OY%&gYZ&ZZz%&gz{% j{!P%&g!P!Q% j!Q!`%&g!`!a%(W!a#O%&g#O#P%(w#P;'S%&g;'S;=`%,{<%lO%&g1p%(_WY&j'f,UOY&ZZ!P&Z!P!Q&x!Q#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&Z1p%(|Y'f,UOY%&gYZ% jZ!P%&g!P!Q%'[!Q#O%&g#O#P%)l#P;'S%&g;'S;=`%,];=`<%l% j<%lO%&g1p%)q]'f,UOY%&gYZ&ZZ]%&g]^%*j^!P%&g!P!Q%'[!Q!`%&g!`!a%(W!a#O%&g#O#P%+b#P;'S%&g;'S;=`%,{<%lO%&g1p%*oZ'f,UOY%&gYZ&ZZ!P%&g!P!Q%'[!Q!`%&g!`!a%(W!a#O%&g#O#P%+b#P;'S%&g;'S;=`%,{<%lO%&g1p%+g['f,UOY%&gYZ%&gZ]%&g]^%*j^!P%&g!P!Q%'[!Q#O%&g#O#P%)l#P;'S%&g;'S;=`%,];=`<%l% j<%lO%&g1p%,`XOY% jZ!`% j!`!a%!V!a#O% j#O#P%![#P;'S% j;'S;=`%#W;=`<%l%&g<%lO% j1p%-OP;=`<%l%&g3S%-W]'f,UOY$GxYZ$IlZ]$Gx]^%.P^!P$Gx!P!Q$Hp!Q!`$Gx!`!a%$S!a#O$Gx#O#P%.w#P;'S$Gx;'S;=`%0h<%lO$Gx3S%.UZ'f,UOY$GxYZ$IlZ!P$Gx!P!Q$Hp!Q!`$Gx!`!a%$S!a#O$Gx#O#P%.w#P;'S$Gx;'S;=`%0h<%lO$Gx3S%.|^'f,UOY$GxYZ$GxZ]$Gx]^%.P^!P$Gx!P!Q$Hp!Q!`$Gx!`!a%%p!a#O$Gx#O#P%-R#P;'S$Gx;'S;=`%/x;=`<%l% j<%lO$Gx3S%/{XOY% jZ!`% j!`!a%!V!a#O% j#O#P%![#P;'S% j;'S;=`%#W;=`<%l$Gx<%lO% j3S%0kP;=`<%l$Gx3d%0s_)d`OY$FxYZ$IlZw$Fxwx$Gxxz$Fxz{%1r{!P$Fx!P!Q%1r!Q!`$Fx!`!a%3]!a#O$Fx#O#P%$u#P;'S$Fx;'S;=`%4W<%lO$Fx(^%1wZ)d`OY%1rYZ$FZZw%1rwx$Mox!`%1r!`!a%2j!a#O%1r#O#P$Nf#P;'S%1r;'S;=`%3V<%lO%1r(^%2sU$W!bY&j)d`OY)xZw)xx#O)x#P;'S)x;'S;=`*a<%lO)x(^%3YP;=`<%l%1r3d%3hY$W!bY&j)d`'f,UOY%dZw%dwx&Zx!P%d!P!Q(z!Q#O%d#O#P'b#P;'S%d;'S;=`*g<%lO%d3d%4ZP;=`<%l$Fx3W%4e](wS'f,UOY%4^YZ$FZZr%4^rs$Gxs!P%4^!P!Q%5^!Q!`%4^!`!a%7{!a#O%4^#O#P%.w#P;'S%4^;'S;=`%8v<%lO%4^3W%5c_(wSOY%4^YZ$IlZr%4^rs$Gxsz%4^z{%6b{!P%4^!P!Q%6b!Q!`%4^!`!a%7{!a#O%4^#O#P%$u#P;'S%4^;'S;=`%8v<%lO%4^(Q%6gZ(wSOY%6bYZ$FZZr%6brs$Mos!`%6b!`!a%7Y!a#O%6b#O#P$Nf#P;'S%6b;'S;=`%7u<%lO%6b(Q%7cU$W!bY&j(wSOY,bZr,bs#O,b#P;'S,b;'S;=`,y<%lO,b(Q%7xP;=`<%l%6b3W%8WY$W!bY&j(wS'f,UOY*mZr*mrs&Zs!P*m!P!Q+d!Q#O*m#O#P'b#P;'S*m;'S;=`-P<%lO*m3W%8yP;=`<%l%4^3h%9Ta)d`(wSOY$ERYZ$IlZr$ERrs$Fxsw$ERwx%4^xz$ERz{%:Y{!P$ER!P!Q%:Y!Q!`$ER!`!a%<W!a#O$ER#O#P%$u#P;'S$ER;'S;=`%=Z<%lO$ER(b%:a])d`(wSOY%:YYZ$FZZr%:Yrs%1rsw%:Ywx%6bx!`%:Y!`!a%;Y!a#O%:Y#O#P$Nf#P;'S%:Y;'S;=`%<Q<%lO%:Y(b%;eX$W!bY&j)d`(wSOY.]Zr.]rs)xsw.]wx,bx#O.]#P;'S.];'S;=`/P<%lO.](b%<TP;=`<%l%:Y3h%<e[$W!bY&j)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$e3h%=^P;=`<%l$ERM^%=n`)d`(wS%[#t!f8O'f,UOY$ERYZ$FZZr$ERrs$Fxsw$ERwx%4^x!P$ER!P!Q%8|!Q!_$ER!_!`%>p!`!a%<W!a#O$ER#O#P%.w#P;'S$ER;'S;=`%=Z<%lO$ERM^%>{_!g:t)d`(wS'f,UOY$ERYZ$FZZr$ERrs$Fxsw$ERwx%4^x!P$ER!P!Q%8|!Q!`$ER!`!a%<W!a#O$ER#O#P%.w#P;'S$ER;'S;=`%=Z<%lO$ERM^%@X_%]#t!b8O)d`(wS'f,UOY$ERYZ$FZZr$ERrs$Fxsw$ERwx%4^x!P$ER!P!Q%8|!Q!`$ER!`!a%AW!a#O$ER#O#P%.w#P;'S$ER;'S;=`%=Z<%lO$ERM^%Ai[%]#t!b8O$W!bY&j)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$e2U%Bj[Y&j)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`%Ck^)q#v)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!_$e!_!`7W!`#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`%Dt_%]#t)d`(wS!d8O'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!_$e!_!`%Es!`!a%Fv!a#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`%FQ[%]#t!b8O)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`%GT^)d`(wS%[#t!f8O'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!_$e!_!`!Ba!`#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$e,l%H[[({Q)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eMf%Iac)d`)PW(wS!R7|(x*t'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![%IQ![!c$e!c!}%IQ!}#O$e#O#P'b#P#R$e#R#S%IQ#S#T$e#T#o%IQ#o;'S$e;'S;=`/V<%lO$eMf%J{c)d`)PW(wS!R7|(x*t'f,UOY$eZr$ers%LWsw$ewx%MPx!P$e!P!Q-V!Q![%IQ![!c$e!c!}%IQ!}#O$e#O#P'b#P#R$e#R#S%IQ#S#T$e#T#o%IQ#o;'S$e;'S;=`/V<%lO$eIQ%LaY)d`(v=j'f,UOY%dZw%dwx&Zx!P%d!P!Q(z!Q#O%d#O#P'b#P;'S%d;'S;=`*g<%lO%dCY%MYY(wS)c8O'f,UOY*mZr*mrs&Zs!P*m!P!Q+d!Q#O*m#O#P'b#P;'S*m;'S;=`-P<%lO*mF`%NT]!V:t)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!}$e!}#O%N|#O#P'b#P;'S$e;'S;=`/V<%lO$e,l& X[)WQ)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eGz&!Sb'f,UOY&#[YZ&#{Z]&#[]^&%Q^!P&#[!P!Q&%t!Q![&&Y![!w&#[!w!x&'p!x#O&#[#O#P&/`#P#i&#[#i#j&+h#j#l&#[#l#m&0Y#m;'S&#[;'S;=`&3U<%lO&#[,j&#cWXd'f,UOY&ZZ!P&Z!P!Q&x!Q#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&ZGz&$U^Xd(p<`'f,UOX&ZXY3rYZ0rZ]&Z]^3r^p&Zpq3rq!P&Z!P!Q&x!Q#O&Z#O#P2z#P;'S&Z;'S;=`'[<%lO&ZGz&%XXXd'f,UOY&ZYZ3rZ!P&Z!P!Q&x!Q#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&Z,j&%yTXdOz&Z{!P&Z!Q;'S&Z;'S;=`'[<%lO&Z,j&&aXXd'f,UOY&ZZ!P&Z!P!Q&x!Q![&&|![#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&Z,j&'TXXd'f,UOY&ZZ!P&Z!P!Q&x!Q![&#[![#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&Z,j&'u]'f,UOY&ZZ!P&Z!P!Q&x!Q![&(n![!c&Z!c!i&(n!i#O&Z#O#P'b#P#T&Z#T#Z&(n#Z;'S&Z;'S;=`'[<%lO&Z,j&(s]'f,UOY&ZZ!P&Z!P!Q&x!Q![&)l![!c&Z!c!i&)l!i#O&Z#O#P'b#P#T&Z#T#Z&)l#Z;'S&Z;'S;=`'[<%lO&Z,j&)q]'f,UOY&ZZ!P&Z!P!Q&x!Q![&*j![!c&Z!c!i&*j!i#O&Z#O#P'b#P#T&Z#T#Z&*j#Z;'S&Z;'S;=`'[<%lO&Z,j&*o]'f,UOY&ZZ!P&Z!P!Q&x!Q![&+h![!c&Z!c!i&+h!i#O&Z#O#P'b#P#T&Z#T#Z&+h#Z;'S&Z;'S;=`'[<%lO&Z,j&+m]'f,UOY&ZZ!P&Z!P!Q&x!Q![&,f![!c&Z!c!i&,f!i#O&Z#O#P'b#P#T&Z#T#Z&,f#Z;'S&Z;'S;=`'[<%lO&Z,j&,k]'f,UOY&ZZ!P&Z!P!Q&x!Q![&-d![!c&Z!c!i&-d!i#O&Z#O#P'b#P#T&Z#T#Z&-d#Z;'S&Z;'S;=`'[<%lO&Z,j&-i]'f,UOY&ZZ!P&Z!P!Q&x!Q![&.b![!c&Z!c!i&.b!i#O&Z#O#P'b#P#T&Z#T#Z&.b#Z;'S&Z;'S;=`'[<%lO&Z,j&.g]'f,UOY&ZZ!P&Z!P!Q&x!Q![&#[![!c&Z!c!i&#[!i#O&Z#O#P'b#P#T&Z#T#Z&#[#Z;'S&Z;'S;=`'[<%lO&Z,j&/gZXd'f,UOY&ZYZ&ZZ]&Z]^(Y^!P&Z!P!Q&x!Q#O&Z#O#P'b#P;'S&Z;'S;=`'[<%lO&Z,j&0_]'f,UOY&ZZ!P&Z!P!Q&x!Q![&1W![!c&Z!c!i&1W!i#O&Z#O#P'b#P#T&Z#T#Z&1W#Z;'S&Z;'S;=`'[<%lO&Z,j&1]]'f,UOY&ZZ!P&Z!P!Q&x!Q![&2U![!c&Z!c!i&2U!i#O&Z#O#P'b#P#T&Z#T#Z&2U#Z;'S&Z;'S;=`'[<%lO&Z,j&2]]Xd'f,UOY&ZZ!P&Z!P!Q&x!Q![&2U![!c&Z!c!i&2U!i#O&Z#O#P'b#P#T&Z#T#Z&2U#Z;'S&Z;'S;=`'[<%lO&Z,j&3XP;=`<%l&#[Cr&3g]!W7^)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P#Q&4`#Q;'S$e;'S;=`/V<%lO$e-d&4k[)Vx)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`&5n^)d`(wS%[#t'f,U!_8OOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!_$e!_!`!Ba!`#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eMf&6ye)d`)PW(wS!R7|(x*t'f,UOY$eZr$ers%LWsw$ewx%MPx!P$e!P!Q-V!Q!Y%IQ!Y!Z%Jl!Z![%IQ![!c$e!c!}%IQ!}#O$e#O#P'b#P#R$e#R#S%IQ#S#T$e#T#o%IQ#o;'S$e;'S;=`/V<%lO$eCj&8g[!T8O)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$eF`&9j`)d`(wS%[#t'f,U!^8OOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!_$e!_!`!Ba!`#O$e#O#P'b#P#p$e#p#q&:l#q;'S$e;'S;=`/V<%lO$eF`&:y[)[8O%^#t)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$e-^&;z[!Ur)d`(wS'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q#O$e#O#P'b#P;'S$e;'S;=`/V<%lO$e/j&<}e)d`(wS%[#t'RQ'f,UOX$eXY&>`Zp$epq&>`qr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!c$e!c!}&?z!}#O$e#O#P'b#P#R$e#R#S&?z#S#T$e#T#o&?z#o;'S$e;'S;=`/V<%lO$e,t&>ie)d`(wS'f,UOX$eXY&>`Zp$epq&>`qr$ers%dsw$ewx*mx!P$e!P!Q-V!Q!c$e!c!}&?z!}#O$e#O#P'b#P#R$e#R#S&?z#S#T$e#T#o&?z#o;'S$e;'S;=`/V<%lO$e,t&@Vc)d`(wSeY'f,UOY$eZr$ers%dsw$ewx*mx!P$e!P!Q-V!Q![&?z![!c$e!c!}&?z!}#O$e#O#P'b#P#R$e#R#S&?z#S#T$e#T#o&?z#o;'S$e;'S;=`/V<%lO$e",tokenizers:[rawString,fallback,1,2,3,4,5,6,7,8,9,10,new LocalTokenGroup("j~RQYZXz{^~^O(s~~aP!P!Qd~iO(t~~",25,356)],topRules:{"Program":[0,307]},dynamicPrecedences:{"17":1,"65":1,"87":1,"94":1,"119":1,"184":1,"187":-10,"240":-10,"241":1,"244":-1,"246":-10,"247":1,"262":-1,"267":2,"268":2,"306":-10,"371":3,"425":1,"426":3,"427":1,"428":1},specialized:[{term:362,get:value=>spec_identifier[value]||-1},{term:33,get:value=>spec_[value]||-1},{term:66,get:value=>spec_templateArgsEnd[value]||-1},{term:369,get:value=>spec_scopedIdentifier[value]||-1}],tokenPrec:24852});const cppLanguage=LRLanguage.define({name:"cpp",parser:parser$1.configure({props:[indentNodeProp.add({IfStatement:continuedIndent({except:/^\s*({|else\b)/}),TryStatement:continuedIndent({except:/^\s*({|catch)\b/}),LabeledStatement:flatIndent,CaseStatement:context=>context.baseIndent+context.unit,BlockComment:()=>null,CompoundStatement:delimitedIndent({closing:"}"}),Statement:continuedIndent({except:/^{/})}),foldNodeProp.add({"DeclarationList CompoundStatement EnumeratorList FieldDeclarationList InitializerList":foldInside,BlockComment(tree){return{from:tree.from+2,to:tree.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/,closeBrackets:{stringPrefixes:["L","u","U","u8","LR","UR","uR","u8R","R"]}}});function cpp(){return new LanguageSupport(cppLanguage)}class CompositeBlock{static create(type,value,from,parentHash,end){let hash2=parentHash+(parentHash<<8)+type+(value<<4)|0;return new CompositeBlock(type,value,from,hash2,end,[],[])}constructor(type,value,from,hash2,end,children,positions){this.type=type;this.value=value;this.from=from;this.hash=hash2;this.end=end;this.children=children;this.positions=positions;this.hashProp=[[NodeProp.contextHash,hash2]]}addChild(child,pos){if(child.prop(NodeProp.contextHash)!=this.hash)child=new Tree(child.type,child.children,child.positions,child.length,this.hashProp);this.children.push(child);this.positions.push(pos)}toTree(nodeSet,end=this.end){let last=this.children.length-1;if(last>=0)end=Math.max(end,this.positions[last]+this.children[last].length+this.from);return new Tree(nodeSet.types[this.type],this.children,this.positions,end-this.from).balance({makeTree:(children,positions,length)=>new Tree(NodeType.none,children,positions,length,this.hashProp)})}}var Type;(function(Type2){Type2[Type2["Document"]=1]="Document";Type2[Type2["CodeBlock"]=2]="CodeBlock";Type2[Type2["FencedCode"]=3]="FencedCode";Type2[Type2["Blockquote"]=4]="Blockquote";Type2[Type2["HorizontalRule"]=5]="HorizontalRule";Type2[Type2["BulletList"]=6]="BulletList";Type2[Type2["OrderedList"]=7]="OrderedList";Type2[Type2["ListItem"]=8]="ListItem";Type2[Type2["ATXHeading1"]=9]="ATXHeading1";Type2[Type2["ATXHeading2"]=10]="ATXHeading2";Type2[Type2["ATXHeading3"]=11]="ATXHeading3";Type2[Type2["ATXHeading4"]=12]="ATXHeading4";Type2[Type2["ATXHeading5"]=13]="ATXHeading5";Type2[Type2["ATXHeading6"]=14]="ATXHeading6";Type2[Type2["SetextHeading1"]=15]="SetextHeading1";Type2[Type2["SetextHeading2"]=16]="SetextHeading2";Type2[Type2["HTMLBlock"]=17]="HTMLBlock";Type2[Type2["LinkReference"]=18]="LinkReference";Type2[Type2["Paragraph"]=19]="Paragraph";Type2[Type2["CommentBlock"]=20]="CommentBlock";Type2[Type2["ProcessingInstructionBlock"]=21]="ProcessingInstructionBlock";Type2[Type2["Escape"]=22]="Escape";Type2[Type2["Entity"]=23]="Entity";Type2[Type2["HardBreak"]=24]="HardBreak";Type2[Type2["Emphasis"]=25]="Emphasis";Type2[Type2["StrongEmphasis"]=26]="StrongEmphasis";Type2[Type2["Link"]=27]="Link";Type2[Type2["Image"]=28]="Image";Type2[Type2["InlineCode"]=29]="InlineCode";Type2[Type2["HTMLTag"]=30]="HTMLTag";Type2[Type2["Comment"]=31]="Comment";Type2[Type2["ProcessingInstruction"]=32]="ProcessingInstruction";Type2[Type2["Autolink"]=33]="Autolink";Type2[Type2["HeaderMark"]=34]="HeaderMark";Type2[Type2["QuoteMark"]=35]="QuoteMark";Type2[Type2["ListMark"]=36]="ListMark";Type2[Type2["LinkMark"]=37]="LinkMark";Type2[Type2["EmphasisMark"]=38]="EmphasisMark";Type2[Type2["CodeMark"]=39]="CodeMark";Type2[Type2["CodeText"]=40]="CodeText";Type2[Type2["CodeInfo"]=41]="CodeInfo";Type2[Type2["LinkTitle"]=42]="LinkTitle";Type2[Type2["LinkLabel"]=43]="LinkLabel";Type2[Type2["URL"]=44]="URL"})(Type||(Type={}));class LeafBlock{constructor(start,content){this.start=start;this.content=content;this.marks=[];this.parsers=[]}}class Line{constructor(){this.text="";this.baseIndent=0;this.basePos=0;this.depth=0;this.markers=[];this.pos=0;this.indent=0;this.next=-1}forward(){if(this.basePos>this.pos)this.forwardInner()}forwardInner(){let newPos=this.skipSpace(this.basePos);this.indent=this.countIndent(newPos,this.pos,this.indent);this.pos=newPos;this.next=newPos==this.text.length?-1:this.text.charCodeAt(newPos)}skipSpace(from){return skipSpace(this.text,from)}reset(text){this.text=text;this.baseIndent=this.basePos=this.pos=this.indent=0;this.forwardInner();this.depth=1;while(this.markers.length)this.markers.pop()}moveBase(to){this.basePos=to;this.baseIndent=this.countIndent(to,this.pos,this.indent)}moveBaseColumn(indent){this.baseIndent=indent;this.basePos=this.findColumn(indent)}addMarker(elt2){this.markers.push(elt2)}countIndent(to,from=0,indent=0){for(let i=from;i<to;i++)indent+=this.text.charCodeAt(i)==9?4-indent%4:1;return indent}findColumn(goal){let i=0;for(let indent=0;i<this.text.length&&indent<goal;i++)indent+=this.text.charCodeAt(i)==9?4-indent%4:1;return i}scrub(){if(!this.baseIndent)return this.text;let result="";for(let i=0;i<this.basePos;i++)result+=" ";return result+this.text.slice(this.basePos)}}function skipForList(bl,cx,line){if(line.pos==line.text.length||bl!=cx.block&&line.indent>=cx.stack[line.depth+1].value+line.baseIndent)return true;if(line.indent>=line.baseIndent+4)return false;let size=(bl.type==Type.OrderedList?isOrderedList:isBulletList)(line,cx,false);return size>0&&(bl.type!=Type.BulletList||isHorizontalRule(line,cx,false)<0)&&line.text.charCodeAt(line.pos+size-1)==bl.value}const DefaultSkipMarkup={[Type.Blockquote](bl,cx,line){if(line.next!=62)return false;line.markers.push(elt(Type.QuoteMark,cx.lineStart+line.pos,cx.lineStart+line.pos+1));line.moveBase(line.pos+(space(line.text.charCodeAt(line.pos+1))?2:1));bl.end=cx.lineStart+line.text.length;return true},[Type.ListItem](bl,_cx,line){if(line.indent<line.baseIndent+bl.value&&line.next>-1)return false;line.moveBaseColumn(line.baseIndent+bl.value);return true},[Type.OrderedList]:skipForList,[Type.BulletList]:skipForList,[Type.Document](){return true}};function space(ch){return ch==32||ch==9||ch==10||ch==13}function skipSpace(line,i=0){while(i<line.length&&space(line.charCodeAt(i)))i++;return i}function skipSpaceBack(line,i,to){while(i>to&&space(line.charCodeAt(i-1)))i--;return i}function isFencedCode(line){if(line.next!=96&&line.next!=126)return-1;let pos=line.pos+1;while(pos<line.text.length&&line.text.charCodeAt(pos)==line.next)pos++;if(pos<line.pos+3)return-1;if(line.next==96){for(let i=pos;i<line.text.length;i++)if(line.text.charCodeAt(i)==96)return-1}return pos}function isBlockquote(line){return line.next!=62?-1:line.text.charCodeAt(line.pos+1)==32?2:1}function isHorizontalRule(line,cx,breaking){if(line.next!=42&&line.next!=45&&line.next!=95)return-1;let count2=1;for(let pos=line.pos+1;pos<line.text.length;pos++){let ch=line.text.charCodeAt(pos);if(ch==line.next)count2++;else if(!space(ch))return-1}if(breaking&&line.next==45&&isSetextUnderline(line)>-1&&line.depth==cx.stack.length&&cx.parser.leafBlockParsers.indexOf(DefaultLeafBlocks.SetextHeading)>-1)return-1;return count2<3?-1:1}function inList(cx,type){for(let i=cx.stack.length-1;i>=0;i--)if(cx.stack[i].type==type)return true;return false}function isBulletList(line,cx,breaking){return(line.next==45||line.next==43||line.next==42)&&(line.pos==line.text.length-1||space(line.text.charCodeAt(line.pos+1)))&&(!breaking||inList(cx,Type.BulletList)||line.skipSpace(line.pos+2)<line.text.length)?1:-1}function isOrderedList(line,cx,breaking){let pos=line.pos,next=line.next;for(;;){if(next>=48&&next<=57)pos++;else break;if(pos==line.text.length)return-1;next=line.text.charCodeAt(pos)}if(pos==line.pos||pos>line.pos+9||next!=46&&next!=41||pos<line.text.length-1&&!space(line.text.charCodeAt(pos+1))||breaking&&!inList(cx,Type.OrderedList)&&(line.skipSpace(pos+1)==line.text.length||pos>line.pos+1||line.next!=49))return-1;return pos+1-line.pos}function isAtxHeading(line){if(line.next!=35)return-1;let pos=line.pos+1;while(pos<line.text.length&&line.text.charCodeAt(pos)==35)pos++;if(pos<line.text.length&&line.text.charCodeAt(pos)!=32)return-1;let size=pos-line.pos;return size>6?-1:size}function isSetextUnderline(line){if(line.next!=45&&line.next!=61||line.indent>=line.baseIndent+4)return-1;let pos=line.pos+1;while(pos<line.text.length&&line.text.charCodeAt(pos)==line.next)pos++;let end=pos;while(pos<line.text.length&&space(line.text.charCodeAt(pos)))pos++;return pos==line.text.length?end:-1}const EmptyLine=/^[ \t]*$/;const CommentEnd=/-->/;const ProcessingEnd=/\?>/;const HTMLBlockStyle=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*<!--/,CommentEnd],[/^\s*<\?/,ProcessingEnd],[/^\s*<![A-Z]/,/>/],[/^\s*<!\[CDATA\[/,/\]\]>/],[/^\s*<\/?(?: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|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|\/?>|$)/i,EmptyLine],[/^\s*(?:<\/[a-z][\w-]*\s*>|<[a-z][\w-]*(\s+[a-z:_][\w-.]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*>)\s*$/i,EmptyLine]];function isHTMLBlock(line,_cx,breaking){if(line.next!=60)return-1;let rest=line.text.slice(line.pos);for(let i=0,e=HTMLBlockStyle.length-(breaking?1:0);i<e;i++)if(HTMLBlockStyle[i][0].test(rest))return i;return-1}function getListIndent(line,pos){let indentAfter=line.countIndent(pos,line.pos,line.indent);let skipped=line.skipSpace(pos);let indented=line.countIndent(skipped,pos,indentAfter);return indented>=indentAfter+5||skipped==line.text.length?indentAfter+1:indented}function addCodeText(marks,from,to){let last=marks.length-1;if(last>=0&&marks[last].to==from&&marks[last].type==Type.CodeText)marks[last].to=to;else marks.push(elt(Type.CodeText,from,to))}const DefaultBlockParsers={LinkReference:void 0,IndentedCode(cx,line){let base=line.baseIndent+4;if(line.indent<base)return false;let start=line.findColumn(base);let from=cx.lineStart+start,to=cx.lineStart+line.text.length;let marks=[],pendingMarks=[];addCodeText(marks,from,to);while(cx.nextLine()&&line.depth>=cx.stack.length){if(line.pos==line.text.length){addCodeText(pendingMarks,cx.lineStart-1,cx.lineStart);for(let m of line.markers)pendingMarks.push(m)}else if(line.indent<base){break}else{if(pendingMarks.length){for(let m of pendingMarks){if(m.type==Type.CodeText)addCodeText(marks,m.from,m.to);else marks.push(m)}pendingMarks=[]}addCodeText(marks,cx.lineStart-1,cx.lineStart);for(let m of line.markers)marks.push(m);to=cx.lineStart+line.text.length;let codeStart=cx.lineStart+line.findColumn(line.baseIndent+4);if(codeStart<to)addCodeText(marks,codeStart,to)}}if(pendingMarks.length){pendingMarks=pendingMarks.filter(m=>m.type!=Type.CodeText);if(pendingMarks.length)line.markers=pendingMarks.concat(line.markers)}cx.addNode(cx.buffer.writeElements(marks,-from).finish(Type.CodeBlock,to-from),from);return true},FencedCode(cx,line){let fenceEnd=isFencedCode(line);if(fenceEnd<0)return false;let from=cx.lineStart+line.pos,ch=line.next,len=fenceEnd-line.pos;let infoFrom=line.skipSpace(fenceEnd),infoTo=skipSpaceBack(line.text,line.text.length,infoFrom);let marks=[elt(Type.CodeMark,from,from+len)];if(infoFrom<infoTo)marks.push(elt(Type.CodeInfo,cx.lineStart+infoFrom,cx.lineStart+infoTo));for(let first=true,empty2=true,hasLine=false;cx.nextLine()&&line.depth>=cx.stack.length;first=false){let i=line.pos;if(line.indent-line.baseIndent<4)while(i<line.text.length&&line.text.charCodeAt(i)==ch)i++;if(i-line.pos>=len&&line.skipSpace(i)==line.text.length){for(let m of line.markers)marks.push(m);if(empty2&&hasLine)addCodeText(marks,cx.lineStart-1,cx.lineStart);marks.push(elt(Type.CodeMark,cx.lineStart+line.pos,cx.lineStart+i));cx.nextLine();break}else{hasLine=true;if(!first){addCodeText(marks,cx.lineStart-1,cx.lineStart);empty2=false}for(let m of line.markers)marks.push(m);let textStart=cx.lineStart+line.basePos,textEnd=cx.lineStart+line.text.length;if(textStart<textEnd){addCodeText(marks,textStart,textEnd);empty2=false}}}cx.addNode(cx.buffer.writeElements(marks,-from).finish(Type.FencedCode,cx.prevLineEnd()-from),from);return true},Blockquote(cx,line){let size=isBlockquote(line);if(size<0)return false;cx.startContext(Type.Blockquote,line.pos);cx.addNode(Type.QuoteMark,cx.lineStart+line.pos,cx.lineStart+line.pos+1);line.moveBase(line.pos+size);return null},HorizontalRule(cx,line){if(isHorizontalRule(line,cx,false)<0)return false;let from=cx.lineStart+line.pos;cx.nextLine();cx.addNode(Type.HorizontalRule,from);return true},BulletList(cx,line){let size=isBulletList(line,cx,false);if(size<0)return false;if(cx.block.type!=Type.BulletList)cx.startContext(Type.BulletList,line.basePos,line.next);let newBase=getListIndent(line,line.pos+1);cx.startContext(Type.ListItem,line.basePos,newBase-line.baseIndent);cx.addNode(Type.ListMark,cx.lineStart+line.pos,cx.lineStart+line.pos+size);line.moveBaseColumn(newBase);return null},OrderedList(cx,line){let size=isOrderedList(line,cx,false);if(size<0)return false;if(cx.block.type!=Type.OrderedList)cx.startContext(Type.OrderedList,line.basePos,line.text.charCodeAt(line.pos+size-1));let newBase=getListIndent(line,line.pos+size);cx.startContext(Type.ListItem,line.basePos,newBase-line.baseIndent);cx.addNode(Type.ListMark,cx.lineStart+line.pos,cx.lineStart+line.pos+size);line.moveBaseColumn(newBase);return null},ATXHeading(cx,line){let size=isAtxHeading(line);if(size<0)return false;let off=line.pos,from=cx.lineStart+off;let endOfSpace=skipSpaceBack(line.text,line.text.length,off),after=endOfSpace;while(after>off&&line.text.charCodeAt(after-1)==line.next)after--;if(after==endOfSpace||after==off||!space(line.text.charCodeAt(after-1)))after=line.text.length;let buf=cx.buffer.write(Type.HeaderMark,0,size).writeElements(cx.parser.parseInline(line.text.slice(off+size+1,after),from+size+1),-from);if(after<line.text.length)buf.write(Type.HeaderMark,after-off,endOfSpace-off);let node=buf.finish(Type.ATXHeading1-1+size,line.text.length-off);cx.nextLine();cx.addNode(node,from);return true},HTMLBlock(cx,line){let type=isHTMLBlock(line,cx,false);if(type<0)return false;let from=cx.lineStart+line.pos,end=HTMLBlockStyle[type][1];let marks=[],trailing=end!=EmptyLine;while(!end.test(line.text)&&cx.nextLine()){if(line.depth<cx.stack.length){trailing=false;break}for(let m of line.markers)marks.push(m)}if(trailing)cx.nextLine();let nodeType=end==CommentEnd?Type.CommentBlock:end==ProcessingEnd?Type.ProcessingInstructionBlock:Type.HTMLBlock;let to=cx.prevLineEnd();cx.addNode(cx.buffer.writeElements(marks,-from).finish(nodeType,to-from),from);return true},SetextHeading:void 0};class LinkReferenceParser{constructor(leaf){this.stage=0;this.elts=[];this.pos=0;this.start=leaf.start;this.advance(leaf.content)}nextLine(cx,line,leaf){if(this.stage==-1)return false;let content=leaf.content+"\n"+line.scrub();let finish=this.advance(content);if(finish>-1&&finish<content.length)return this.complete(cx,leaf,finish);return false}finish(cx,leaf){if((this.stage==2||this.stage==3)&&skipSpace(leaf.content,this.pos)==leaf.content.length)return this.complete(cx,leaf,leaf.content.length);return false}complete(cx,leaf,len){cx.addLeafElement(leaf,elt(Type.LinkReference,this.start,this.start+len,this.elts));return true}nextStage(elt2){if(elt2){this.pos=elt2.to-this.start;this.elts.push(elt2);this.stage++;return true}if(elt2===false)this.stage=-1;return false}advance(content){for(;;){if(this.stage==-1){return-1}else if(this.stage==0){if(!this.nextStage(parseLinkLabel(content,this.pos,this.start,true)))return-1;if(content.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(elt(Type.LinkMark,this.pos+this.start,this.pos+this.start+1));this.pos++}else if(this.stage==1){if(!this.nextStage(parseURL(content,skipSpace(content,this.pos),this.start)))return-1}else if(this.stage==2){let skip=skipSpace(content,this.pos),end=0;if(skip>this.pos){let title=parseLinkTitle(content,skip,this.start);if(title){let titleEnd=lineEnd(content,title.to-this.start);if(titleEnd>0){this.nextStage(title);end=titleEnd}}}if(!end)end=lineEnd(content,this.pos);return end>0&&end<content.length?end:-1}else{return lineEnd(content,this.pos)}}}}function lineEnd(text,pos){for(;pos<text.length;pos++){let next=text.charCodeAt(pos);if(next==10)break;if(!space(next))return-1}return pos}class SetextHeadingParser{nextLine(cx,line,leaf){let underline=line.depth<cx.stack.length?-1:isSetextUnderline(line);let next=line.next;if(underline<0)return false;let underlineMark=elt(Type.HeaderMark,cx.lineStart+line.pos,cx.lineStart+underline);cx.nextLine();cx.addLeafElement(leaf,elt(next==61?Type.SetextHeading1:Type.SetextHeading2,leaf.start,cx.prevLineEnd(),[...cx.parser.parseInline(leaf.content,leaf.start),underlineMark]));return true}finish(){return false}}const DefaultLeafBlocks={LinkReference(_,leaf){return leaf.content.charCodeAt(0)==91?new LinkReferenceParser(leaf):null},SetextHeading(){return new SetextHeadingParser}};const DefaultEndLeaf=[(_,line)=>isAtxHeading(line)>=0,(_,line)=>isFencedCode(line)>=0,(_,line)=>isBlockquote(line)>=0,(p,line)=>isBulletList(line,p,true)>=0,(p,line)=>isOrderedList(line,p,true)>=0,(p,line)=>isHorizontalRule(line,p,true)>=0,(p,line)=>isHTMLBlock(line,p,true)>=0];const scanLineResult={text:"",end:0};class BlockContext{constructor(parser2,input,fragments,ranges){this.parser=parser2;this.input=input;this.ranges=ranges;this.line=new Line;this.atEnd=false;this.reusePlaceholders=new Map;this.stoppedAt=null;this.rangeI=0;this.to=ranges[ranges.length-1].to;this.lineStart=this.absoluteLineStart=this.absoluteLineEnd=ranges[0].from;this.block=CompositeBlock.create(Type.Document,0,this.lineStart,0,0);this.stack=[this.block];this.fragments=fragments.length?new FragmentCursor(fragments,input):null;this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line}=this;for(;;){for(let markI=0;;){let next=line.depth<this.stack.length?this.stack[this.stack.length-1]:null;while(markI<line.markers.length&&(!next||line.markers[markI].from<next.end)){let mark=line.markers[markI++];this.addNode(mark.type,mark.from,mark.to)}if(!next)break;this.finishContext()}if(line.pos<line.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(line.basePos))return null;start:for(;;){for(let type of this.parser.blockParsers)if(type){let result=type(this,line);if(result!=false){if(result==true)return null;line.forward();continue start}}break}if(line.pos==line.text.length)return this.nextLine()?null:this.finish();let leaf=new LeafBlock(this.lineStart+line.pos,line.text.slice(line.pos));for(let parse of this.parser.leafBlockParsers)if(parse){let parser2=parse(this,leaf);if(parser2)leaf.parsers.push(parser2)}lines:while(this.nextLine()){if(line.pos==line.text.length)break;if(line.indent<line.baseIndent+4){for(let stop of this.parser.endLeafBlock)if(stop(this,line,leaf))break lines}for(let parser2 of leaf.parsers)if(parser2.nextLine(this,line,leaf))return null;leaf.content+="\n"+line.scrub();for(let m of line.markers)leaf.marks.push(m)}this.finishLeaf(leaf);return null}stopAt(pos){if(this.stoppedAt!=null&&this.stoppedAt<pos)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=pos}reuseFragment(start){if(!this.fragments.moveTo(this.absoluteLineStart+start,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return false;let taken=this.fragments.takeNodes(this);if(!taken)return false;this.absoluteLineStart+=taken;this.lineStart=toRelative(this.absoluteLineStart,this.ranges);this.moveRangeI();if(this.absoluteLineStart<this.to){this.lineStart++;this.absoluteLineStart++;this.readLine()}else{this.atEnd=true;this.readLine()}return true}get depth(){return this.stack.length}parentType(depth=this.depth-1){return this.parser.nodeSet.types[this.stack[depth].type]}nextLine(){this.lineStart+=this.line.text.length;if(this.absoluteLineEnd>=this.to){this.absoluteLineStart=this.absoluteLineEnd;this.atEnd=true;this.readLine();return false}else{this.lineStart++;this.absoluteLineStart=this.absoluteLineEnd+1;this.moveRangeI();this.readLine();return true}}peekLine(){return this.scanLine(this.absoluteLineEnd+1).text}moveRangeI(){while(this.rangeI<this.ranges.length-1&&this.absoluteLineStart>=this.ranges[this.rangeI].to){this.rangeI++;this.absoluteLineStart=Math.max(this.absoluteLineStart,this.ranges[this.rangeI].from)}}scanLine(start){let r=scanLineResult;r.end=start;if(start>=this.to){r.text=""}else{r.text=this.lineChunkAt(start);r.end+=r.text.length;if(this.ranges.length>1){let textOffset=this.absoluteLineStart,rangeI=this.rangeI;while(this.ranges[rangeI].to<r.end){rangeI++;let nextFrom=this.ranges[rangeI].from;let after=this.lineChunkAt(nextFrom);r.end=nextFrom+after.length;r.text=r.text.slice(0,this.ranges[rangeI-1].to-textOffset)+after;textOffset=r.end-r.text.length}}}return r}readLine(){let{line}=this,{text,end}=this.scanLine(this.absoluteLineStart);this.absoluteLineEnd=end;line.reset(text);for(;line.depth<this.stack.length;line.depth++){let cx=this.stack[line.depth],handler=this.parser.skipContextMarkup[cx.type];if(!handler)throw new Error("Unhandled block context "+Type[cx.type]);let marks=this.line.markers.length;if(!handler(cx,this,line)){if(this.line.markers.length>marks)cx.end=this.line.markers[this.line.markers.length-1].to;line.forward();break}line.forward()}}lineChunkAt(pos){let next=this.input.chunk(pos),text;if(!this.input.lineChunks){let eol=next.indexOf("\n");text=eol<0?next:next.slice(0,eol)}else{text=next=="\n"?"":next}return pos+text.length>this.to?text.slice(0,this.to-pos):text}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(type,start,value=0){this.block=CompositeBlock.create(type,value,this.lineStart+start,this.block.hash,this.lineStart+this.line.text.length);this.stack.push(this.block)}startComposite(type,start,value=0){this.startContext(this.parser.getNodeType(type),start,value)}addNode(block,from,to){if(typeof block=="number")block=new Tree(this.parser.nodeSet.types[block],none,none,(to!==null&&to!==void 0?to:this.prevLineEnd())-from);this.block.addChild(block,from-this.block.from)}addElement(elt2){this.block.addChild(elt2.toTree(this.parser.nodeSet),elt2.from-this.block.from)}addLeafElement(leaf,elt2){this.addNode(this.buffer.writeElements(injectMarks(elt2.children,leaf.marks),-elt2.from).finish(elt2.type,elt2.to-elt2.from),elt2.from)}finishContext(){let cx=this.stack.pop();let top=this.stack[this.stack.length-1];top.addChild(cx.toTree(this.parser.nodeSet),cx.from-top.from);this.block=top}finish(){while(this.stack.length>1)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(tree){return this.ranges.length>1?injectGaps(this.ranges,0,tree.topNode,this.ranges[0].from,this.reusePlaceholders):tree}finishLeaf(leaf){for(let parser2 of leaf.parsers)if(parser2.finish(this,leaf))return;let inline=injectMarks(this.parser.parseInline(leaf.content,leaf.start),leaf.marks);this.addNode(this.buffer.writeElements(inline,-leaf.start).finish(Type.Paragraph,leaf.content.length),leaf.start)}elt(type,from,to,children){if(typeof type=="string")return elt(this.parser.getNodeType(type),from,to,children);return new TreeElement(type,from)}get buffer(){return new Buffer(this.parser.nodeSet)}}function injectGaps(ranges,rangeI,tree,offset,dummies){let rangeEnd=ranges[rangeI].to;let children=[],positions=[],start=tree.from+offset;function movePastNext(upto,inclusive){while(inclusive?upto>=rangeEnd:upto>rangeEnd){let size=ranges[rangeI+1].from-rangeEnd;offset+=size;upto+=size;rangeI++;rangeEnd=ranges[rangeI].to}}for(let ch=tree.firstChild;ch;ch=ch.nextSibling){movePastNext(ch.from+offset,true);let from=ch.from+offset,node,reuse=dummies.get(ch.tree);if(reuse){node=reuse}else if(ch.to+offset>rangeEnd){node=injectGaps(ranges,rangeI,ch,offset,dummies);movePastNext(ch.to+offset,false)}else{node=ch.toTree()}children.push(node);positions.push(from-start)}movePastNext(tree.to+offset,false);return new Tree(tree.type,children,positions,tree.to+offset-start,tree.tree?tree.tree.propValues:void 0)}class MarkdownParser extends Parser{constructor(nodeSet,blockParsers,leafBlockParsers,blockNames,endLeafBlock,skipContextMarkup,inlineParsers,inlineNames,wrappers){super();this.nodeSet=nodeSet;this.blockParsers=blockParsers;this.leafBlockParsers=leafBlockParsers;this.blockNames=blockNames;this.endLeafBlock=endLeafBlock;this.skipContextMarkup=skipContextMarkup;this.inlineParsers=inlineParsers;this.inlineNames=inlineNames;this.wrappers=wrappers;this.nodeTypes=Object.create(null);for(let t of nodeSet.types)this.nodeTypes[t.name]=t.id}createParse(input,fragments,ranges){let parse=new BlockContext(this,input,fragments,ranges);for(let w of this.wrappers)parse=w(parse,input,fragments,ranges);return parse}configure(spec){let config=resolveConfig(spec);if(!config)return this;let{nodeSet,skipContextMarkup}=this;let blockParsers=this.blockParsers.slice(),leafBlockParsers=this.leafBlockParsers.slice(),blockNames=this.blockNames.slice(),inlineParsers=this.inlineParsers.slice(),inlineNames=this.inlineNames.slice(),endLeafBlock=this.endLeafBlock.slice(),wrappers=this.wrappers;if(nonEmpty(config.defineNodes)){skipContextMarkup=Object.assign({},skipContextMarkup);let nodeTypes2=nodeSet.types.slice(),styles;for(let s of config.defineNodes){let{name,block,composite,style}=typeof s=="string"?{name:s}:s;if(nodeTypes2.some(t=>t.name==name))continue;if(composite)skipContextMarkup[nodeTypes2.length]=(bl,cx,line)=>composite(cx,line,bl.value);let id=nodeTypes2.length;let group=composite?["Block","BlockContext"]:!block?void 0:id>=Type.ATXHeading1&&id<=Type.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"];nodeTypes2.push(NodeType.define({id,name,props:group&&[[NodeProp.group,group]]}));if(style){if(!styles)styles={};if(Array.isArray(style)||style instanceof Tag)styles[name]=style;else Object.assign(styles,style)}}nodeSet=new NodeSet(nodeTypes2);if(styles)nodeSet=nodeSet.extend(styleTags(styles))}if(nonEmpty(config.props))nodeSet=nodeSet.extend(...config.props);if(nonEmpty(config.remove)){for(let rm of config.remove){let block=this.blockNames.indexOf(rm),inline=this.inlineNames.indexOf(rm);if(block>-1)blockParsers[block]=leafBlockParsers[block]=void 0;if(inline>-1)inlineParsers[inline]=void 0}}if(nonEmpty(config.parseBlock)){for(let spec2 of config.parseBlock){let found=blockNames.indexOf(spec2.name);if(found>-1){blockParsers[found]=spec2.parse;leafBlockParsers[found]=spec2.leaf}else{let pos=spec2.before?findName(blockNames,spec2.before):spec2.after?findName(blockNames,spec2.after)+1:blockNames.length-1;blockParsers.splice(pos,0,spec2.parse);leafBlockParsers.splice(pos,0,spec2.leaf);blockNames.splice(pos,0,spec2.name)}if(spec2.endLeaf)endLeafBlock.push(spec2.endLeaf)}}if(nonEmpty(config.parseInline)){for(let spec2 of config.parseInline){let found=inlineNames.indexOf(spec2.name);if(found>-1){inlineParsers[found]=spec2.parse}else{let pos=spec2.before?findName(inlineNames,spec2.before):spec2.after?findName(inlineNames,spec2.after)+1:inlineNames.length-1;inlineParsers.splice(pos,0,spec2.parse);inlineNames.splice(pos,0,spec2.name)}}}if(config.wrap)wrappers=wrappers.concat(config.wrap);return new MarkdownParser(nodeSet,blockParsers,leafBlockParsers,blockNames,endLeafBlock,skipContextMarkup,inlineParsers,inlineNames,wrappers)}getNodeType(name){let found=this.nodeTypes[name];if(found==null)throw new RangeError(`Unknown node type '${name}'`);return found}parseInline(text,offset){let cx=new InlineContext(this,text,offset);outer:for(let pos=offset;pos<cx.end;){let next=cx.char(pos);for(let token of this.inlineParsers)if(token){let result=token(cx,next,pos);if(result>=0){pos=result;continue outer}}pos++}return cx.resolveMarkers(0)}}function nonEmpty(a2){return a2!=null&&a2.length>0}function resolveConfig(spec){if(!Array.isArray(spec))return spec;if(spec.length==0)return null;let conf=resolveConfig(spec[0]);if(spec.length==1)return conf;let rest=resolveConfig(spec.slice(1));if(!rest||!conf)return conf||rest;let conc=(a2,b)=>(a2||none).concat(b||none);let wrapA=conf.wrap,wrapB=rest.wrap;return{props:conc(conf.props,rest.props),defineNodes:conc(conf.defineNodes,rest.defineNodes),parseBlock:conc(conf.parseBlock,rest.parseBlock),parseInline:conc(conf.parseInline,rest.parseInline),remove:conc(conf.remove,rest.remove),wrap:!wrapA?wrapB:!wrapB?wrapA:(inner,input,fragments,ranges)=>wrapA(wrapB(inner,input,fragments,ranges),input,fragments,ranges)}}function findName(names,name){let found=names.indexOf(name);if(found<0)throw new RangeError(`Position specified relative to unknown parser ${name}`);return found}let nodeTypes=[NodeType.none];for(let i=1,name;name=Type[i];i++){nodeTypes[i]=NodeType.define({id:i,name,props:i>=Type.Escape?[]:[[NodeProp.group,i in DefaultSkipMarkup?["Block","BlockContext"]:["Block","LeafBlock"]]],top:name=="Document"})}const none=[];class Buffer{constructor(nodeSet){this.nodeSet=nodeSet;this.content=[];this.nodes=[]}write(type,from,to,children=0){this.content.push(type,from,to,4+children*4);return this}writeElements(elts,offset=0){for(let e of elts)e.writeTo(this,offset);return this}finish(type,length){return Tree.build({buffer:this.content,nodeSet:this.nodeSet,reused:this.nodes,topID:type,length})}}class Element{constructor(type,from,to,children=none){this.type=type;this.from=from;this.to=to;this.children=children}writeTo(buf,offset){let startOff=buf.content.length;buf.writeElements(this.children,offset);buf.content.push(this.type,this.from+offset,this.to+offset,buf.content.length+4-startOff)}toTree(nodeSet){return new Buffer(nodeSet).writeElements(this.children,-this.from).finish(this.type,this.to-this.from)}}class TreeElement{constructor(tree,from){this.tree=tree;this.from=from}get to(){return this.from+this.tree.length}get type(){return this.tree.type.id}get children(){return none}writeTo(buf,offset){buf.nodes.push(this.tree);buf.content.push(buf.nodes.length-1,this.from+offset,this.to+offset,-1)}toTree(){return this.tree}}function elt(type,from,to,children){return new Element(type,from,to,children)}const EmphasisUnderscore={resolve:"Emphasis",mark:"EmphasisMark"};const EmphasisAsterisk={resolve:"Emphasis",mark:"EmphasisMark"};const LinkStart={};const ImageStart={};class InlineDelimiter{constructor(type,from,to,side){this.type=type;this.from=from;this.to=to;this.side=side}}const Escapable="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";let Punctuation=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\u2010-\u2027]/;try{Punctuation=new RegExp("[\\p{S}|\\p{P}]","u")}catch(_){}const DefaultInline={Escape(cx,next,start){if(next!=92||start==cx.end-1)return-1;let escaped=cx.char(start+1);for(let i=0;i<Escapable.length;i++)if(Escapable.charCodeAt(i)==escaped)return cx.append(elt(Type.Escape,start,start+2));return-1},Entity(cx,next,start){if(next!=38)return-1;let m=/^(?:#\d+|#x[a-f\d]+|\w+);/i.exec(cx.slice(start+1,start+31));return m?cx.append(elt(Type.Entity,start,start+1+m[0].length)):-1},InlineCode(cx,next,start){if(next!=96||start&&cx.char(start-1)==96)return-1;let pos=start+1;while(pos<cx.end&&cx.char(pos)==96)pos++;let size=pos-start,curSize=0;for(;pos<cx.end;pos++){if(cx.char(pos)==96){curSize++;if(curSize==size&&cx.char(pos+1)!=96)return cx.append(elt(Type.InlineCode,start,pos+1,[elt(Type.CodeMark,start,start+size),elt(Type.CodeMark,pos+1-size,pos+1)]))}else{curSize=0}}return-1},HTMLTag(cx,next,start){if(next!=60||start==cx.end-1)return-1;let after=cx.slice(start+1,cx.end);let url=/^(?:[a-z][-\w+.]+:[^\s>]+|[a-z\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)>/i.exec(after);if(url){return cx.append(elt(Type.Autolink,start,start+1+url[0].length,[elt(Type.LinkMark,start,start+1),elt(Type.URL,start+1,start+url[0].length),elt(Type.LinkMark,start+url[0].length,start+1+url[0].length)]))}let comment=/^!--[^>](?:-[^-]|[^-])*?-->/i.exec(after);if(comment)return cx.append(elt(Type.Comment,start,start+1+comment[0].length));let procInst=/^\?[^]*?\?>/.exec(after);if(procInst)return cx.append(elt(Type.ProcessingInstruction,start,start+1+procInst[0].length));let m=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(after);if(!m)return-1;return cx.append(elt(Type.HTMLTag,start,start+1+m[0].length))},Emphasis(cx,next,start){if(next!=95&&next!=42)return-1;let pos=start+1;while(cx.char(pos)==next)pos++;let before=cx.slice(start-1,start),after=cx.slice(pos,pos+1);let pBefore=Punctuation.test(before),pAfter=Punctuation.test(after);let sBefore=/\s|^$/.test(before),sAfter=/\s|^$/.test(after);let leftFlanking=!sAfter&&(!pAfter||sBefore||pBefore);let rightFlanking=!sBefore&&(!pBefore||sAfter||pAfter);let canOpen=leftFlanking&&(next==42||!rightFlanking||pBefore);let canClose=rightFlanking&&(next==42||!leftFlanking||pAfter);return cx.append(new InlineDelimiter(next==95?EmphasisUnderscore:EmphasisAsterisk,start,pos,(canOpen?1:0)|(canClose?2:0)))},HardBreak(cx,next,start){if(next==92&&cx.char(start+1)==10)return cx.append(elt(Type.HardBreak,start,start+2));if(next==32){let pos=start+1;while(cx.char(pos)==32)pos++;if(cx.char(pos)==10&&pos>=start+2)return cx.append(elt(Type.HardBreak,start,pos+1))}return-1},Link(cx,next,start){return next==91?cx.append(new InlineDelimiter(LinkStart,start,start+1,1)):-1},Image(cx,next,start){return next==33&&cx.char(start+1)==91?cx.append(new InlineDelimiter(ImageStart,start,start+2,1)):-1},LinkEnd(cx,next,start){if(next!=93)return-1;for(let i=cx.parts.length-1;i>=0;i--){let part=cx.parts[i];if(part instanceof InlineDelimiter&&(part.type==LinkStart||part.type==ImageStart)){if(!part.side||cx.skipSpace(part.to)==start&&!/[(\[]/.test(cx.slice(start+1,start+2))){cx.parts[i]=null;return-1}let content=cx.takeContent(i);let link=cx.parts[i]=finishLink(cx,content,part.type==LinkStart?Type.Link:Type.Image,part.from,start+1);if(part.type==LinkStart)for(let j=0;j<i;j++){let p=cx.parts[j];if(p instanceof InlineDelimiter&&p.type==LinkStart)p.side=0}return link.to}}return-1}};function finishLink(cx,content,type,start,startPos){let{text}=cx,next=cx.char(startPos),endPos=startPos;content.unshift(elt(Type.LinkMark,start,start+(type==Type.Image?2:1)));content.push(elt(Type.LinkMark,startPos-1,startPos));if(next==40){let pos=cx.skipSpace(startPos+1);let dest=parseURL(text,pos-cx.offset,cx.offset),title;if(dest){pos=cx.skipSpace(dest.to);if(pos!=dest.to){title=parseLinkTitle(text,pos-cx.offset,cx.offset);if(title)pos=cx.skipSpace(title.to)}}if(cx.char(pos)==41){content.push(elt(Type.LinkMark,startPos,startPos+1));endPos=pos+1;if(dest)content.push(dest);if(title)content.push(title);content.push(elt(Type.LinkMark,pos,endPos))}}else if(next==91){let label=parseLinkLabel(text,startPos-cx.offset,cx.offset,false);if(label){content.push(label);endPos=label.to}}return elt(type,start,endPos,content)}function parseURL(text,start,offset){let next=text.charCodeAt(start);if(next==60){for(let pos=start+1;pos<text.length;pos++){let ch=text.charCodeAt(pos);if(ch==62)return elt(Type.URL,start+offset,pos+1+offset);if(ch==60||ch==10)return false}return null}else{let depth=0,pos=start;for(let escaped=false;pos<text.length;pos++){let ch=text.charCodeAt(pos);if(space(ch)){break}else if(escaped){escaped=false}else if(ch==40){depth++}else if(ch==41){if(!depth)break;depth--}else if(ch==92){escaped=true}}return pos>start?elt(Type.URL,start+offset,pos+offset):pos==text.length?null:false}}function parseLinkTitle(text,start,offset){let next=text.charCodeAt(start);if(next!=39&&next!=34&&next!=40)return false;let end=next==40?41:next;for(let pos=start+1,escaped=false;pos<text.length;pos++){let ch=text.charCodeAt(pos);if(escaped)escaped=false;else if(ch==end)return elt(Type.LinkTitle,start+offset,pos+1+offset);else if(ch==92)escaped=true}return null}function parseLinkLabel(text,start,offset,requireNonWS){for(let escaped=false,pos=start+1,end=Math.min(text.length,pos+999);pos<end;pos++){let ch=text.charCodeAt(pos);if(escaped)escaped=false;else if(ch==93)return requireNonWS?false:elt(Type.LinkLabel,start+offset,pos+1+offset);else{if(requireNonWS&&!space(ch))requireNonWS=false;if(ch==91)return false;else if(ch==92)escaped=true}}return null}class InlineContext{constructor(parser2,text,offset){this.parser=parser2;this.text=text;this.offset=offset;this.parts=[]}char(pos){return pos>=this.end?-1:this.text.charCodeAt(pos-this.offset)}get end(){return this.offset+this.text.length}slice(from,to){return this.text.slice(from-this.offset,to-this.offset)}append(elt2){this.parts.push(elt2);return elt2.to}addDelimiter(type,from,to,open,close){return this.append(new InlineDelimiter(type,from,to,(open?1:0)|(close?2:0)))}get hasOpenLink(){for(let i=this.parts.length-1;i>=0;i--){let part=this.parts[i];if(part instanceof InlineDelimiter&&(part.type==LinkStart||part.type==ImageStart))return true}return false}addElement(elt2){return this.append(elt2)}resolveMarkers(from){for(let i=from;i<this.parts.length;i++){let close=this.parts[i];if(!(close instanceof InlineDelimiter&&close.type.resolve&&close.side&2))continue;let emp=close.type==EmphasisUnderscore||close.type==EmphasisAsterisk;let closeSize=close.to-close.from;let open,j=i-1;for(;j>=from;j--){let part=this.parts[j];if(part instanceof InlineDelimiter&&part.side&1&&part.type==close.type&&!(emp&&(close.side&1||part.side&2)&&(part.to-part.from+closeSize)%3==0&&((part.to-part.from)%3||closeSize%3))){open=part;break}}if(!open)continue;let type=close.type.resolve,content=[];let start=open.from,end=close.to;if(emp){let size=Math.min(2,open.to-open.from,closeSize);start=open.to-size;end=close.from+size;type=size==1?"Emphasis":"StrongEmphasis"}if(open.type.mark)content.push(this.elt(open.type.mark,start,open.to));for(let k=j+1;k<i;k++){if(this.parts[k]instanceof Element)content.push(this.parts[k]);this.parts[k]=null}if(close.type.mark)content.push(this.elt(close.type.mark,close.from,end));let element=this.elt(type,start,end,content);this.parts[j]=emp&&open.from!=start?new InlineDelimiter(open.type,open.from,start,open.side):null;let keep=this.parts[i]=emp&&close.to!=end?new InlineDelimiter(close.type,end,close.to,close.side):null;if(keep)this.parts.splice(i,0,element);else this.parts[i]=element}let result=[];for(let i=from;i<this.parts.length;i++){let part=this.parts[i];if(part instanceof Element)result.push(part)}return result}findOpeningDelimiter(type){for(let i=this.parts.length-1;i>=0;i--){let part=this.parts[i];if(part instanceof InlineDelimiter&&part.type==type&&part.side&1)return i}return null}takeContent(startIndex){let content=this.resolveMarkers(startIndex);this.parts.length=startIndex;return content}getDelimiterAt(index){let part=this.parts[index];return part instanceof InlineDelimiter?part:null}skipSpace(from){return skipSpace(this.text,from-this.offset)+this.offset}elt(type,from,to,children){if(typeof type=="string")return elt(this.parser.getNodeType(type),from,to,children);return new TreeElement(type,from)}}InlineContext.linkStart=LinkStart;InlineContext.imageStart=ImageStart;function injectMarks(elements,marks){if(!marks.length)return elements;if(!elements.length)return marks;let elts=elements.slice(),eI=0;for(let mark of marks){while(eI<elts.length&&elts[eI].to<mark.to)eI++;if(eI<elts.length&&elts[eI].from<mark.from){let e=elts[eI];if(e instanceof Element)elts[eI]=new Element(e.type,e.from,e.to,injectMarks(e.children,[mark]))}else{elts.splice(eI++,0,mark)}}return elts}const NotLast=[Type.CodeBlock,Type.ListItem,Type.OrderedList,Type.BulletList];class FragmentCursor{constructor(fragments,input){this.fragments=fragments;this.input=input;this.i=0;this.fragment=null;this.fragmentEnd=-1;this.cursor=null;if(fragments.length)this.fragment=fragments[this.i++]}nextFragment(){this.fragment=this.i<this.fragments.length?this.fragments[this.i++]:null;this.cursor=null;this.fragmentEnd=-1}moveTo(pos,lineStart){while(this.fragment&&this.fragment.to<=pos)this.nextFragment();if(!this.fragment||this.fragment.from>(pos?pos-1:0))return false;if(this.fragmentEnd<0){let end=this.fragment.to;while(end>0&&this.input.read(end-1,end)!="\n")end--;this.fragmentEnd=end?end-1:0}let c=this.cursor;if(!c){c=this.cursor=this.fragment.tree.cursor();c.firstChild()}let rPos=pos+this.fragment.offset;while(c.to<=rPos)if(!c.parent())return false;for(;;){if(c.from>=rPos)return this.fragment.from<=lineStart;if(!c.childAfter(rPos))return false}}matches(hash2){let tree=this.cursor.tree;return tree&&tree.prop(NodeProp.contextHash)==hash2}takeNodes(cx){let cur=this.cursor,off=this.fragment.offset,fragEnd=this.fragmentEnd-(this.fragment.openEnd?1:0);let start=cx.absoluteLineStart,end=start,blockI=cx.block.children.length;let prevEnd=end,prevI=blockI;for(;;){if(cur.to-off>fragEnd){if(cur.type.isAnonymous&&cur.firstChild())continue;break}let pos=toRelative(cur.from-off,cx.ranges);if(cur.to-off<=cx.ranges[cx.rangeI].to){cx.addNode(cur.tree,pos)}else{let dummy=new Tree(cx.parser.nodeSet.types[Type.Paragraph],[],[],0,cx.block.hashProp);cx.reusePlaceholders.set(dummy,cur.tree);cx.addNode(dummy,pos)}if(cur.type.is("Block")){if(NotLast.indexOf(cur.type.id)<0){end=cur.to-off;blockI=cx.block.children.length}else{end=prevEnd;blockI=prevI}prevEnd=cur.to-off;prevI=cx.block.children.length}if(!cur.nextSibling())break}while(cx.block.children.length>blockI){cx.block.children.pop();cx.block.positions.pop()}return end-start}}function toRelative(abs,ranges){let pos=abs;for(let i=1;i<ranges.length;i++){let gapFrom=ranges[i-1].to,gapTo=ranges[i].from;if(gapFrom<abs)pos-=gapTo-gapFrom}return pos}const markdownHighlighting=styleTags({"Blockquote/...":tags$1.quote,HorizontalRule:tags$1.contentSeparator,"ATXHeading1/... SetextHeading1/...":tags$1.heading1,"ATXHeading2/... SetextHeading2/...":tags$1.heading2,"ATXHeading3/...":tags$1.heading3,"ATXHeading4/...":tags$1.heading4,"ATXHeading5/...":tags$1.heading5,"ATXHeading6/...":tags$1.heading6,"Comment CommentBlock":tags$1.comment,Escape:tags$1.escape,Entity:tags$1.character,"Emphasis/...":tags$1.emphasis,"StrongEmphasis/...":tags$1.strong,"Link/... Image/...":tags$1.link,"OrderedList/... BulletList/...":tags$1.list,"BlockQuote/...":tags$1.quote,"InlineCode CodeText":tags$1.monospace,"URL Autolink":tags$1.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":tags$1.processingInstruction,"CodeInfo LinkLabel":tags$1.labelName,LinkTitle:tags$1.string,Paragraph:tags$1.content});const parser=new MarkdownParser(new NodeSet(nodeTypes).extend(markdownHighlighting),Object.keys(DefaultBlockParsers).map(n=>DefaultBlockParsers[n]),Object.keys(DefaultBlockParsers).map(n=>DefaultLeafBlocks[n]),Object.keys(DefaultBlockParsers),DefaultEndLeaf,DefaultSkipMarkup,Object.keys(DefaultInline).map(n=>DefaultInline[n]),Object.keys(DefaultInline),[]);function leftOverSpace(node,from,to){let ranges=[];for(let n=node.firstChild,pos=from;;n=n.nextSibling){let nextPos=n?n.from:to;if(nextPos>pos)ranges.push({from:pos,to:nextPos});if(!n)break;pos=n.to}return ranges}function parseCode(config){let{codeParser,htmlParser}=config;let wrap=parseMixed((node,input)=>{let id=node.type.id;if(codeParser&&(id==Type.CodeBlock||id==Type.FencedCode)){let info="";if(id==Type.FencedCode){let infoNode=node.node.getChild(Type.CodeInfo);if(infoNode)info=input.read(infoNode.from,infoNode.to)}let parser2=codeParser(info);if(parser2)return{parser:parser2,overlay:node2=>node2.type.id==Type.CodeText,bracketed:id==Type.FencedCode}}else if(htmlParser&&(id==Type.HTMLBlock||id==Type.HTMLTag||id==Type.CommentBlock)){return{parser:htmlParser,overlay:leftOverSpace(node.node,node.from,node.to)}}return null});return{wrap}}const StrikethroughDelim={resolve:"Strikethrough",mark:"StrikethroughMark"};const Strikethrough={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":tags$1.strikethrough}},{name:"StrikethroughMark",style:tags$1.processingInstruction}],parseInline:[{name:"Strikethrough",parse(cx,next,pos){if(next!=126||cx.char(pos+1)!=126||cx.char(pos+2)==126)return-1;let before=cx.slice(pos-1,pos),after=cx.slice(pos+2,pos+3);let sBefore=/\s|^$/.test(before),sAfter=/\s|^$/.test(after);let pBefore=Punctuation.test(before),pAfter=Punctuation.test(after);return cx.addDelimiter(StrikethroughDelim,pos,pos+2,!sAfter&&(!pAfter||sBefore||pBefore),!sBefore&&(!pBefore||sAfter||pAfter))},after:"Emphasis"}]};function parseRow(cx,line,startI=0,elts,offset=0){let count2=0,first=true,cellStart=-1,cellEnd=-1,esc=false;let parseCell=()=>{elts.push(cx.elt("TableCell",offset+cellStart,offset+cellEnd,cx.parser.parseInline(line.slice(cellStart,cellEnd),offset+cellStart)))};for(let i=startI;i<line.length;i++){let next=line.charCodeAt(i);if(next==124&&!esc){if(!first||cellStart>-1)count2++;first=false;if(elts){if(cellStart>-1)parseCell();elts.push(cx.elt("TableDelimiter",i+offset,i+offset+1))}cellStart=cellEnd=-1}else if(esc||next!=32&&next!=9){if(cellStart<0)cellStart=i;cellEnd=i+1}esc=!esc&&next==92}if(cellStart>-1){count2++;if(elts)parseCell()}return count2}function hasPipe(str,start){for(let i=start;i<str.length;i++){let next=str.charCodeAt(i);if(next==124)return true;if(next==92)i++}return false}const delimiterLine=/^[>\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/;class TableParser{constructor(){this.rows=null}nextLine(cx,line,leaf){if(this.rows==null){this.rows=false;let lineText;if((line.next==45||line.next==58||line.next==124)&&delimiterLine.test(lineText=line.text.slice(line.pos))){let firstRow=[],firstCount=parseRow(cx,leaf.content,0,firstRow,leaf.start);if(firstCount==parseRow(cx,lineText,0))this.rows=[cx.elt("TableHeader",leaf.start,leaf.start+leaf.content.length,firstRow),cx.elt("TableDelimiter",cx.lineStart+line.pos,cx.lineStart+line.text.length)]}}else if(this.rows){let content=[];parseRow(cx,line.text,line.pos,content,cx.lineStart);this.rows.push(cx.elt("TableRow",cx.lineStart+line.pos,cx.lineStart+line.text.length,content))}return false}finish(cx,leaf){if(!this.rows)return false;cx.addLeafElement(leaf,cx.elt("Table",leaf.start,leaf.start+leaf.content.length,this.rows));return true}}const Table={defineNodes:[{name:"Table",block:true},{name:"TableHeader",style:{"TableHeader/...":tags$1.heading}},"TableRow",{name:"TableCell",style:tags$1.content},{name:"TableDelimiter",style:tags$1.processingInstruction}],parseBlock:[{name:"Table",leaf(_,leaf){return hasPipe(leaf.content,0)?new TableParser:null},endLeaf(cx,line,leaf){if(leaf.parsers.some(p=>p instanceof TableParser)||!hasPipe(line.text,line.basePos))return false;let next=cx.peekLine();return delimiterLine.test(next)&&parseRow(cx,line.text,line.basePos)==parseRow(cx,next,line.basePos)},before:"SetextHeading"}]};class TaskParser{nextLine(){return false}finish(cx,leaf){cx.addLeafElement(leaf,cx.elt("Task",leaf.start,leaf.start+leaf.content.length,[cx.elt("TaskMarker",leaf.start,leaf.start+3),...cx.parser.parseInline(leaf.content.slice(3),leaf.start+3)]));return true}}const TaskList={defineNodes:[{name:"Task",block:true,style:tags$1.list},{name:"TaskMarker",style:tags$1.atom}],parseBlock:[{name:"TaskList",leaf(cx,leaf){return/^\[[ xX]\][ \t]/.test(leaf.content)&&cx.parentType().name=="ListItem"?new TaskParser:null},after:"SetextHeading"}]};const autolinkRE=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy;const urlRE=/[\w-]+(\.[\w-]+)+(:\d+)?(\/[^\s<]*)?/gy;const lastTwoDomainWords=/[\w-]+\.[\w-]+($|[/:])/;const emailRE=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy;const xmppResourceRE=/\/[a-zA-Z\d@.]+/gy;function count(str,from,to,ch){let result=0;for(let i=from;i<to;i++)if(str[i]==ch)result++;return result}function autolinkURLEnd(text,from){urlRE.lastIndex=from;let m=urlRE.exec(text);if(!m||lastTwoDomainWords.exec(m[0])[0].indexOf("_")>-1)return-1;let end=from+m[0].length;for(;;){let last=text[end-1],m2;if(/[?!.,:*_~]/.test(last)||last==")"&&count(text,from,end,")")>count(text,from,end,"("))end--;else if(last==";"&&(m2=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(text.slice(from,end))))end=from+m2.index;else break}return end}function autolinkEmailEnd(text,from){emailRE.lastIndex=from;let m=emailRE.exec(text);if(!m)return-1;let last=m[0][m[0].length-1];return last=="_"||last=="-"?-1:from+m[0].length-(last=="."?1:0)}const Autolink={parseInline:[{name:"Autolink",parse(cx,next,absPos){let pos=absPos-cx.offset;if(pos&&/\w/.test(cx.text[pos-1]))return-1;autolinkRE.lastIndex=pos;let m=autolinkRE.exec(cx.text),end=-1;if(!m)return-1;if(m[1]||m[2]){end=autolinkURLEnd(cx.text,pos+m[0].length);if(end>-1&&cx.hasOpenLink){let noBracket=/([^\[\]]|\[[^\]]*\])*/.exec(cx.text.slice(pos,end));end=pos+noBracket[0].length}}else if(m[3]){end=autolinkEmailEnd(cx.text,pos)}else{end=autolinkEmailEnd(cx.text,pos+m[0].length);if(end>-1&&m[0]=="xmpp:"){xmppResourceRE.lastIndex=end;m=xmppResourceRE.exec(cx.text);if(m)end=m.index+m[0].length}}if(end<0)return-1;cx.addElement(cx.elt("URL",absPos,end+cx.offset));return end+cx.offset}}]};const GFM=[Table,TaskList,Strikethrough,Autolink];function parseSubSuper(ch,node,mark){return(cx,next,pos)=>{if(next!=ch||cx.char(pos+1)==ch)return-1;let elts=[cx.elt(mark,pos,pos+1)];for(let i=pos+1;i<cx.end;i++){let next2=cx.char(i);if(next2==ch)return cx.addElement(cx.elt(node,pos,i+1,elts.concat(cx.elt(mark,i,i+1))));if(next2==92)elts.push(cx.elt("Escape",i,i+++2));if(space(next2))break}return-1}}const Superscript={defineNodes:[{name:"Superscript",style:tags$1.special(tags$1.content)},{name:"SuperscriptMark",style:tags$1.processingInstruction}],parseInline:[{name:"Superscript",parse:parseSubSuper(94,"Superscript","SuperscriptMark")}]};const Subscript={defineNodes:[{name:"Subscript",style:tags$1.special(tags$1.content)},{name:"SubscriptMark",style:tags$1.processingInstruction}],parseInline:[{name:"Subscript",parse:parseSubSuper(126,"Subscript","SubscriptMark")}]};const Emoji={defineNodes:[{name:"Emoji",style:tags$1.character}],parseInline:[{name:"Emoji",parse(cx,next,pos){let match;if(next!=58||!(match=/^[a-zA-Z_0-9]+:/.exec(cx.slice(pos+1,cx.end))))return-1;return cx.addElement(cx.elt("Emoji",pos,pos+1+match[0].length))}}]};const data=defineLanguageFacet({commentTokens:{block:{open:"<!--",close:"-->"}}});const headingProp=new NodeProp;const commonmark=parser.configure({props:[foldNodeProp.add(type=>{return!type.is("Block")||type.is("Document")||isHeading(type)!=null||isList(type)?void 0:(tree,state)=>({from:state.doc.lineAt(tree.from).to,to:tree.to})}),headingProp.add(isHeading),indentNodeProp.add({Document:()=>null}),languageDataProp.add({Document:data})]});function isHeading(type){let match=/^(?:ATX|Setext)Heading(\d)$/.exec(type.name);return match?+match[1]:void 0}function isList(type){return type.name=="OrderedList"||type.name=="BulletList"}function findSectionEnd(headerNode,level){let last=headerNode;for(;;){let next=last.nextSibling,heading;if(!next||(heading=isHeading(next.type))!=null&&heading<=level)break;last=next}return last.to}const headerIndent=foldService.of((state,start,end)=>{for(let node=syntaxTree(state).resolveInner(end,-1);node;node=node.parent){if(node.from<start)break;let heading=node.type.prop(headingProp);if(heading==null)continue;let upto=findSectionEnd(node,heading);if(upto>end)return{from:end,to:upto}}return null});function mkLang(parser2){return new Language(data,parser2,[],"markdown")}const commonmarkLanguage=mkLang(commonmark);const extended=commonmark.configure([GFM,Subscript,Superscript,Emoji,{props:[foldNodeProp.add({Table:(tree,state)=>({from:state.doc.lineAt(tree.from).to,to:tree.to})})]}]);const markdownLanguage=mkLang(extended);function getCodeParser(languages,defaultLanguage){return info=>{if(info&&languages){let found=null;info=/\S*/.exec(info)[0];if(typeof languages=="function")found=languages(info);else found=LanguageDescription.matchLanguageName(languages,info,true);if(found instanceof LanguageDescription)return found.support?found.support.language.parser:ParseContext.getSkippingParser(found.load());else if(found)return found.parser}return defaultLanguage?defaultLanguage.parser:null}}class Context{constructor(node,from,to,spaceBefore,spaceAfter,type,item){this.node=node;this.from=from;this.to=to;this.spaceBefore=spaceBefore;this.spaceAfter=spaceAfter;this.type=type;this.item=item}blank(maxWidth,trailing=true){let result=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(maxWidth!=null){while(result.length<maxWidth)result+=" ";return result}else{for(let i=this.to-this.from-result.length-this.spaceAfter.length;i>0;i--)result+=" ";return result+(trailing?this.spaceAfter:"")}}marker(doc,add){let number=this.node.name=="OrderedList"?String(+itemNumber(this.item,doc)[2]+add):"";return this.spaceBefore+number+this.type+this.spaceAfter}}function getContext(node,doc){let nodes=[],context=[];for(let cur=node;cur;cur=cur.parent){if(cur.name=="FencedCode")return context;if(cur.name=="ListItem"||cur.name=="Blockquote")nodes.push(cur)}for(let i=nodes.length-1;i>=0;i--){let node2=nodes[i],match;let line=doc.lineAt(node2.from),startPos=node2.from-line.from;if(node2.name=="Blockquote"&&(match=/^ *>( ?)/.exec(line.text.slice(startPos)))){context.push(new Context(node2,startPos,startPos+match[0].length,"",match[1],">",null))}else if(node2.name=="ListItem"&&node2.parent.name=="OrderedList"&&(match=/^( *)\d+([.)])( *)/.exec(line.text.slice(startPos)))){let after=match[3],len=match[0].length;if(after.length>=4){after=after.slice(0,after.length-4);len-=4}context.push(new Context(node2.parent,startPos,startPos+len,match[1],after,match[2],node2))}else if(node2.name=="ListItem"&&node2.parent.name=="BulletList"&&(match=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(line.text.slice(startPos)))){let after=match[4],len=match[0].length;if(after.length>4){after=after.slice(0,after.length-4);len-=4}let type=match[2];if(match[3])type+=match[3].replace(/[xX]/," ");context.push(new Context(node2.parent,startPos,startPos+len,match[1],after,type,node2))}}return context}function itemNumber(item,doc){return/^(\s*)(\d+)(?=[.)])/.exec(doc.sliceString(item.from,item.from+10))}function renumberList(after,doc,changes,offset=0){for(let prev=-1,node=after;;){if(node.name=="ListItem"){let m=itemNumber(node,doc);let number=+m[2];if(prev>=0){if(number!=prev+1)return;changes.push({from:node.from+m[1].length,to:node.from+m[0].length,insert:String(prev+2+offset)})}prev=number}let next=node.nextSibling;if(!next)break;node=next}}function normalizeIndent(content,state){let blank=/^[ \t]*/.exec(content)[0].length;if(!blank||state.facet(indentUnit)!=" ")return content;let col=countColumn(content,4,blank);let space2="";for(let i=col;i>0;){if(i>=4){space2+=" ";i-=4}else{space2+=" ";i--}}return space2+content.slice(blank)}const insertNewlineContinueMarkupCommand=(config={})=>({state,dispatch})=>{let tree=syntaxTree(state),{doc}=state;let dont=null,changes=state.changeByRange(range=>{if(!range.empty||!markdownLanguage.isActiveAt(state,range.from,-1)&&!markdownLanguage.isActiveAt(state,range.from,1))return dont={range};let pos=range.from,line=doc.lineAt(pos);let context=getContext(tree.resolveInner(pos,-1),doc);while(context.length&&context[context.length-1].from>pos-line.from)context.pop();if(!context.length)return dont={range};let inner=context[context.length-1];if(inner.to-inner.spaceAfter.length>pos-line.from)return dont={range};let emptyLine=pos>=inner.to-inner.spaceAfter.length&&!/\S/.test(line.text.slice(inner.to));if(inner.item&&emptyLine){if(inner.item.from<line.from&&!/^[\s>]*$/.test(line.text.slice(0,inner.to)))return dont={range};let first=inner.node.firstChild,second=inner.node.getChild("ListItem","ListItem");if(first.to>=pos||second&&second.to<pos||line.from>0&&!/[^\s>]/.test(doc.lineAt(line.from-1).text)||config.nonTightLists===false){let next=context.length>1?context[context.length-2]:null;let delTo,insert2="";if(next&&next.item){delTo=line.from+next.from;insert2=next.marker(doc,1)}else{delTo=line.from+(next?next.to:0)}let changes3=[{from:delTo,to:pos,insert:insert2}];if(inner.node.name=="OrderedList")renumberList(inner.item,doc,changes3,-2);if(next&&next.node.name=="OrderedList")renumberList(next.item,doc,changes3);return{range:EditorSelection.cursor(delTo+insert2.length),changes:changes3}}else{let insert2=blankLine(context,state,line);return{range:EditorSelection.cursor(pos+insert2.length+1),changes:{from:line.from,insert:insert2+state.lineBreak}}}}if(inner.node.name=="Blockquote"&&emptyLine&&line.from){let prevLine=doc.lineAt(line.from-1),quoted=/>\s*$/.exec(prevLine.text);if(quoted&&quoted.index==inner.from){let changes3=state.changes([{from:prevLine.from+quoted.index,to:prevLine.to},{from:line.from+inner.from,to:line.to}]);return{range:range.map(changes3),changes:changes3}}}let changes2=[];if(inner.node.name=="OrderedList")renumberList(inner.item,doc,changes2);let continued=inner.item&&inner.item.from<line.from;let insert="";if(!continued||/^[\s\d.)\-+*>]*/.exec(line.text)[0].length>=inner.to){for(let i=0,e=context.length-1;i<=e;i++){insert+=i==e&&!continued?context[i].marker(doc,1):context[i].blank(i<e?countColumn(line.text,4,context[i+1].from)-insert.length:null)}}let from=pos;while(from>line.from&&/\s/.test(line.text.charAt(from-line.from-1)))from--;insert=normalizeIndent(insert,state);if(nonTightList(inner.node,state.doc))insert=blankLine(context,state,line)+state.lineBreak+insert;changes2.push({from,to:pos,insert:state.lineBreak+insert});return{range:EditorSelection.cursor(from+insert.length+1),changes:changes2}});if(dont)return false;dispatch(state.update(changes,{scrollIntoView:true,userEvent:"input"}));return true};const insertNewlineContinueMarkup=insertNewlineContinueMarkupCommand();function isMark(node){return node.name=="QuoteMark"||node.name=="ListMark"}function nonTightList(node,doc){if(node.name!="OrderedList"&&node.name!="BulletList")return false;let first=node.firstChild,second=node.getChild("ListItem","ListItem");if(!second)return false;let line1=doc.lineAt(first.to),line2=doc.lineAt(second.from);let empty2=/^[\s>]*$/.test(line1.text);return line1.number+(empty2?0:1)<line2.number}function blankLine(context,state,line){let insert="";for(let i=0,e=context.length-2;i<=e;i++){insert+=context[i].blank(i<e?countColumn(line.text,4,context[i+1].from)-insert.length:null,i<e)}return normalizeIndent(insert,state)}function contextNodeForDelete(tree,pos){let node=tree.resolveInner(pos,-1),scan=pos;if(isMark(node)){scan=node.from;node=node.parent}for(let prev;prev=node.childBefore(scan);){if(isMark(prev)){scan=prev.from}else if(prev.name=="OrderedList"||prev.name=="BulletList"){node=prev.lastChild;scan=node.to}else{break}}return node}const deleteMarkupBackward=({state,dispatch})=>{let tree=syntaxTree(state);let dont=null,changes=state.changeByRange(range=>{let pos=range.from,{doc}=state;if(range.empty&&markdownLanguage.isActiveAt(state,range.from)){let line=doc.lineAt(pos);let context=getContext(contextNodeForDelete(tree,pos),doc);if(context.length){let inner=context[context.length-1];let spaceEnd=inner.to-inner.spaceAfter.length+(inner.spaceAfter?1:0);if(pos-line.from>spaceEnd&&!/\S/.test(line.text.slice(spaceEnd,pos-line.from)))return{range:EditorSelection.cursor(line.from+spaceEnd),changes:{from:line.from+spaceEnd,to:pos}};if(pos-line.from==spaceEnd&&(inner.item&&line.from<=inner.item.from||/^[\s>]*$/.test(line.text.slice(0,inner.to)))){let start=line.from+inner.from;if(inner.item&&inner.node.from<inner.item.from&&/\S/.test(line.text.slice(inner.from,inner.to))){let insert=inner.blank(countColumn(line.text,4,inner.to)-countColumn(line.text,4,inner.from));if(start==line.from)insert=normalizeIndent(insert,state);return{range:EditorSelection.cursor(start+insert.length),changes:{from:start,to:line.from+inner.to,insert}}}if(start<pos)return{range:EditorSelection.cursor(start),changes:{from:start,to:pos}}}}}return dont={range}});if(dont)return false;dispatch(state.update(changes,{scrollIntoView:true,userEvent:"delete"}));return true};const markdownKeymap=[{key:"Enter",run:insertNewlineContinueMarkup},{key:"Backspace",run:deleteMarkupBackward}];const htmlNoMatch=html({matchClosingTags:false});function markdown(config={}){let{codeLanguages,defaultCodeLanguage,addKeymap=true,base:{parser:parser2}=commonmarkLanguage,completeHTMLTags=true,pasteURLAsLink:pasteURL=true,htmlTagLanguage=htmlNoMatch}=config;if(!(parser2 instanceof MarkdownParser))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let extensions=config.extensions?[config.extensions]:[];let support=[htmlTagLanguage.support,headerIndent],defaultCode;if(pasteURL)support.push(pasteURLAsLink);if(defaultCodeLanguage instanceof LanguageSupport){support.push(defaultCodeLanguage.support);defaultCode=defaultCodeLanguage.language}else if(defaultCodeLanguage){defaultCode=defaultCodeLanguage}let codeParser=codeLanguages||defaultCode?getCodeParser(codeLanguages,defaultCode):void 0;extensions.push(parseCode({codeParser,htmlParser:htmlTagLanguage.language.parser}));if(addKeymap)support.push(Prec.high(keymap.of(markdownKeymap)));let lang=mkLang(parser2.configure(extensions));if(completeHTMLTags)support.push(lang.data.of({autocomplete:htmlTagCompletion}));return new LanguageSupport(lang,support)}function htmlTagCompletion(context){let{state,pos}=context,m=/<[:\-\.\w\u00b7-\uffff]*$/.exec(state.sliceDoc(pos-25,pos));if(!m)return null;let tree=syntaxTree(state).resolveInner(pos,-1);while(tree&&!tree.type.isTop){if(tree.name=="CodeBlock"||tree.name=="FencedCode"||tree.name=="ProcessingInstructionBlock"||tree.name=="CommentBlock"||tree.name=="Link"||tree.name=="Image")return null;tree=tree.parent}return{from:pos-m[0].length,to:pos,options:htmlTagCompletions(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let _tagCompletions=null;function htmlTagCompletions(){if(_tagCompletions)return _tagCompletions;let result=htmlCompletionSource(new CompletionContext(EditorState.create({extensions:htmlNoMatch}),0,true));return _tagCompletions=result?result.options:[]}const nonPlainText=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i;const pasteURLAsLink=EditorView.domEventHandlers({paste:(event,view)=>{var _a;let{main}=view.state.selection;if(main.empty)return false;let link=(_a=event.clipboardData)===null||_a===void 0?void 0:_a.getData("text/plain");if(!link||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(link))return false;if(/^www\./.test(link))link="https://"+link;if(!markdownLanguage.isActiveAt(view.state,main.from,1))return false;let tree=syntaxTree(view.state),crossesNode=false;tree.iterate({from:main.from,to:main.to,enter:node=>{if(node.from>main.from||nonPlainText.test(node.name))crossesNode=true},leave:node=>{if(node.to<main.to)crossesNode=true}});if(crossesNode)return false;view.dispatch({changes:[{from:main.from,insert:"["},{from:main.to,insert:`](${link})`}],userEvent:"input.paste",scrollIntoView:true});return true}});var words={};function define(style,dict){for(var i=0;i<dict.length;i++){words[dict[i]]=style}}var commonAtoms=["true","false"];var commonKeywords=["if","then","do","else","elif","while","until","for","in","esac","fi","fin","fil","done","exit","set","unset","export","function"];var commonCommands=["ab","awk","bash","beep","cat","cc","cd","chown","chmod","chroot","clear","cp","curl","cut","diff","echo","find","gawk","gcc","get","git","grep","hg","kill","killall","ln","ls","make","mkdir","openssl","mv","nc","nl","node","npm","ping","ps","restart","rm","rmdir","sed","service","sh","shopt","shred","source","sort","sleep","ssh","start","stop","su","sudo","svn","tee","telnet","top","touch","vi","vim","wall","wc","wget","who","write","yes","zsh"];define("atom",commonAtoms);define("keyword",commonKeywords);define("builtin",commonCommands);function tokenBase(stream,state){if(stream.eatSpace())return null;var sol=stream.sol();var ch=stream.next();if(ch==="\\"){stream.next();return null}if(ch==="'"||ch==='"'||ch==="`"){state.tokens.unshift(tokenString(ch,ch==="`"?"quote":"string"));return tokenize$1(stream,state)}if(ch==="#"){if(sol&&stream.eat("!")){stream.skipToEnd();return"meta"}stream.skipToEnd();return"comment"}if(ch==="$"){state.tokens.unshift(tokenDollar);return tokenize$1(stream,state)}if(ch==="+"||ch==="="){return"operator"}if(ch==="-"){stream.eat("-");stream.eatWhile(/\w/);return"attribute"}if(ch=="<"){if(stream.match("<<"))return"operator";var heredoc=stream.match(/^<-?\s*(?:['"]([^'"]*)['"]|([^'"\s]*))/);if(heredoc){state.tokens.unshift(tokenHeredoc(heredoc[1]||heredoc[2]));return"string.special"}}if(/\d/.test(ch)){stream.eatWhile(/\d/);if(stream.eol()||!/\w/.test(stream.peek())){return"number"}}stream.eatWhile(/[\w-]/);var cur=stream.current();if(stream.peek()==="="&&/\w+/.test(cur))return"def";return words.hasOwnProperty(cur)?words[cur]:null}function tokenString(quote,style){var close=quote=="("?")":quote=="{"?"}":quote;return function(stream,state){var next,escaped=false;while((next=stream.next())!=null){if(next===close&&!escaped){state.tokens.shift();break}else if(next==="$"&&!escaped&&quote!=="'"&&stream.peek()!=close){escaped=true;stream.backUp(1);state.tokens.unshift(tokenDollar);break}else if(!escaped&&quote!==close&&next===quote){state.tokens.unshift(tokenString(quote,style));return tokenize$1(stream,state)}else if(!escaped&&/['"]/.test(next)&&!/['"]/.test(quote)){state.tokens.unshift(tokenStringStart(next,"string"));stream.backUp(1);break}escaped=!escaped&&next==="\\"}return style}}function tokenStringStart(quote,style){return function(stream,state){state.tokens[0]=tokenString(quote,style);stream.next();return tokenize$1(stream,state)}}var tokenDollar=function(stream,state){if(state.tokens.length>1)stream.eat("$");var ch=stream.next();if(/['"({]/.test(ch)){state.tokens[0]=tokenString(ch,ch=="("?"quote":ch=="{"?"def":"string");return tokenize$1(stream,state)}if(!/\d/.test(ch))stream.eatWhile(/\w/);state.tokens.shift();return"def"};function tokenHeredoc(delim){return function(stream,state){if(stream.sol()&&stream.string==delim)state.tokens.shift();stream.skipToEnd();return"string.special"}}function tokenize$1(stream,state){return(state.tokens[0]||tokenBase)(stream,state)}const shell={name:"shell",startState:function(){return{tokens:[]}},token:function(stream,state){return tokenize$1(stream,state)},languageData:{autocomplete:commonAtoms.concat(commonKeywords,commonCommands),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}};const _hoisted_1$3=["aria-busy"];const _hoisted_2$3={class:"vibe64-source-explanation__header"};const _hoisted_3$3={class:"vibe64-source-explanation__source"};const _hoisted_4$3=["title"];const _hoisted_5$3={class:"vibe64-source-explanation__range-path"};const _hoisted_6$3={key:0,class:"vibe64-source-explanation__range-suffix"};const _hoisted_7$3={key:0,class:"vibe64-source-explanation__thinking"};const _hoisted_8$3={key:3,class:"vibe64-source-explanation__status vibe64-source-explanation__status--stopped"};const _hoisted_9$3={key:1,class:"vibe64-source-explanation__recovery","aria-label":"Explanation controls"};const _hoisted_10$3={class:"vibe64-source-explanation__recovery-actions"};const _hoisted_11$3={class:"vibe64-source-explanation__followup-footer"};const _sfc_main$4={__name:"Vibe64SourceExplanationPanel",props:{assistantAvailable:{default:true,type:Boolean},assistantUnavailableMessage:{default:"The selected AI connection is unavailable for this account.",type:String},busy:{default:false,type:Boolean},closing:{default:false,type:Boolean},explanation:{default:()=>({body:"",followups:[],messages:[],sourceRange:{},summary:"",title:""}),type:Object},followup:{default:"",type:String},selectedPath:{default:"",type:String}},emits:["collapse","close","open-range","open-source-link","retry","send-followup","stop","update:followup"],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const threadElement=ref(null);const threadBottomElement=ref(null);const followingLatest=ref(true);const chatMessages=computed(()=>{var _a,_b,_c;return(Array.isArray((_a=props.explanation)==null?void 0:_a.messages)&&props.explanation.messages.length?props.explanation.messages:[...((_b=props.explanation)==null?void 0:_b.body)?[{id:"body",role:"assistant",text:props.explanation.body}]:[],...Array.isArray((_c=props.explanation)==null?void 0:_c.followups)?props.explanation.followups:[]]).map(message=>({...message,blocks:parseLongTextReviewBlocks(message.text||"",{preserveParagraphLineBreaks:message.role==="user"})}))});const followupAvailable=computed(()=>{var _a,_b,_c,_d;return Boolean(((_a=props.explanation)==null?void 0:_a.status)!=="failed"&&(((_b=props.explanation)==null?void 0:_b.agentThreadId)||((_c=props.explanation)==null?void 0:_c.engine)==="agent-cache")&&(String(((_d=props.explanation)==null?void 0:_d.body)||"").trim()||chatMessages.value.some(message=>message.role==="assistant"&&message.status==="complete"&&message.text)))});const sourceRange=computed(()=>{var _a;return((_a=props.explanation)==null?void 0:_a.sourceRange)||{}});const sourceRangeFullLabel=computed(()=>sourceRangeDisplayLabel(sourceRange.value,{compact:false}));const sourceRangePathLabel=computed(()=>sourceRangePathDisplayLabel(sourceRange.value));const sourceRangeSuffixLabel=computed(()=>sourceRangeLineSuffix(sourceRange.value));const threadScrollKey=computed(()=>chatMessages.value.map(message=>[message.id||"",message.role||"",message.status||"",String(message.text||"").length].join(":")).join("|"));const{scrollAfterLayout:scrollThreadToBottom}=useScrollToBottom({anchor:threadBottomElement,enabled:computed(()=>followingLatest.value),scrollAnchorIntoView:false,target:threadElement});function normalizePanelSourcePath(value=""){return String(value||"").trim().replaceAll("\\","/").replace(/^\.\/+/u,"")}function sourceRangeLineSuffix({endLine,startLine}={}){const start=Number(startLine);const end=Number(endLine);if(!Number.isFinite(start)||start<1){return""}if(!Number.isFinite(end)||end<1||end===start){return`:${start}`}return`:${start}-${end}`}function compactSourcePath(path="",{maxLength=36}={}){const normalized=normalizePanelSourcePath(path);if(normalized.length<=maxLength){return normalized}return`...${normalized.slice(-maxLength)}`}function sourceRangePathDisplayLabel(range={}){const path=normalizePanelSourcePath(range==null?void 0:range.path);if(!path){return"Source"}return compactSourcePath(path)}function sourceRangeDisplayLabel(range={},{compact=true}={}){const path=normalizePanelSourcePath(range==null?void 0:range.path);if(!path){return"Source"}const displayPath=compact?compactSourcePath(path):path;return`${displayPath}${sourceRangeLineSuffix(range)}`}function submitFollowup(){if(!props.assistantAvailable||!props.followup.trim()||props.busy||props.closing||!followupAvailable.value){return}emit("send-followup")}function queueThreadBottomScroll({force=false}={}){if(force){followingLatest.value=true}void scrollThreadToBottom({behavior:force?"auto":"smooth"})}function updateThreadFollowState(event={}){followingLatest.value=scrollElementNearBottom((event==null?void 0:event.currentTarget)||threadElement.value)}function handleExplanationLinkClick(payload={}){var _a,_b,_c,_d;const target=sourceEditorLinkTarget(payload);if(!target){return}(_b=(_a=payload.event)==null?void 0:_a.preventDefault)==null?void 0:_b.call(_a);(_d=(_c=payload.event)==null?void 0:_c.stopPropagation)==null?void 0:_d.call(_c);emit("open-source-link",target)}watch(()=>{var _a;return((_a=props.explanation)==null?void 0:_a.id)||""},()=>{queueThreadBottomScroll({force:true})},{flush:"post",immediate:true});watch(threadScrollKey,(value,previous)=>{if(!value||value===previous){return}const latestMessage=chatMessages.value.at(-1);queueThreadBottomScroll({force:(latestMessage==null?void 0:latestMessage.role)==="user"})},{flush:"post"});return(_ctx,_cache)=>{return openBlock(),createElementBlock("aside",{"aria-busy":__props.busy||__props.closing?"true":"false",class:"vibe64-source-explanation","aria-label":"Source explanation"},[createBaseVNode("header",_hoisted_2$3,[createBaseVNode("div",_hoisted_3$3,[createBaseVNode("button",{class:"vibe64-source-explanation__range",title:sourceRangeFullLabel.value,type:"button",onClick:_cache[0]||(_cache[0]=$event=>emit("open-range",__props.explanation))},[createBaseVNode("span",_hoisted_5$3,toDisplayString(sourceRangePathLabel.value),1),sourceRangeSuffixLabel.value?(openBlock(),createElementBlock("span",_hoisted_6$3,toDisplayString(sourceRangeSuffixLabel.value),1)):createCommentVNode("",true)],8,_hoisted_4$3),__props.explanation.stale?(openBlock(),createBlock(VChip,{key:0,color:"warning",size:"x-small",variant:"tonal"},{default:withCtx(()=>[..._cache[7]||(_cache[7]=[createTextVNode(" Stale ",-1)])]),_:1})):createCommentVNode("",true)]),createVNode(VBtn,{class:"vibe64-source-explanation__action-target","aria-label":"Collapse explanation",icon:unref(mdiChevronRight),size:"small",title:"Collapse explanation",type:"button",variant:"text",onClick:_cache[1]||(_cache[1]=$event=>emit("collapse",$event))},null,8,["icon"]),createVNode(VBtn,{class:"vibe64-source-explanation__action-target vibe64-source-explanation__close-button","aria-busy":__props.closing?"true":void 0,"aria-label":"Close explanation",disabled:__props.closing,"prepend-icon":unref(mdiClose),size:"x-small",title:__props.closing?"Closing explanation":"Close explanation",type:"button",variant:"text",onClick:_cache[2]||(_cache[2]=$event=>emit("close",$event))},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.closing?"Closing…":"Close"),1)]),_:1},8,["aria-busy","disabled","prepend-icon","title"])]),__props.explanation.stale?(openBlock(),createBlock(VAlert,{key:0,class:"vibe64-source-explanation__stale",density:"compact",type:"warning",variant:"tonal"},{default:withCtx(()=>[createTextVNode(toDisplayString(__props.explanation.staleReason||"The source changed after this explanation was created."),1)]),_:1})):createCommentVNode("",true),createBaseVNode("section",{ref_key:"threadElement",ref:threadElement,class:"vibe64-source-explanation__thread","aria-label":"Explanation chat",tabindex:"0",onScroll:updateThreadFollowState},[(openBlock(true),createElementBlock(Fragment,null,renderList(chatMessages.value,message=>{return openBlock(),createElementBlock("article",{key:message.id,class:normalizeClass(["vibe64-source-explanation__message",[`vibe64-source-explanation__message--${message.role}`,{"vibe64-source-explanation__message--failed":message.status==="failed","vibe64-source-explanation__message--thinking":message.status==="thinking"}]])},[createBaseVNode("strong",null,toDisplayString(message.role==="user"?"You":"Vibe64"),1),message.status==="thinking"?(openBlock(),createElementBlock("div",_hoisted_7$3,[message.text?(openBlock(),createBlock(LongTextPreviewBlocks,{key:0,compact:"",class:"vibe64-source-explanation__thinking-detail",blocks:message.blocks,onLinkClick:handleExplanationLinkClick},null,8,["blocks"])):createCommentVNode("",true),_cache[8]||(_cache[8]=createBaseVNode("div",{class:"vibe64-source-explanation__status",role:"status"},[createBaseVNode("span",{"aria-hidden":"true",class:"vibe64-source-explanation__status-mark"}),createBaseVNode("span",null,"Thinking…")],-1))])):message.status==="failed"&&message.text?(openBlock(),createBlock(LongTextPreviewBlocks,{key:1,class:"vibe64-source-explanation__failure-detail",blocks:message.blocks,onLinkClick:handleExplanationLinkClick},null,8,["blocks"])):message.text?(openBlock(),createBlock(LongTextPreviewBlocks,{key:2,blocks:message.blocks,onLinkClick:handleExplanationLinkClick},null,8,["blocks"])):message.status==="stopped"?(openBlock(),createElementBlock("div",_hoisted_8$3," Stopped. ")):createCommentVNode("",true)],2)}),128)),createBaseVNode("div",{ref_key:"threadBottomElement",ref:threadBottomElement,class:"vibe64-source-explanation__thread-bottom"},null,512)],544),!followupAvailable.value?(openBlock(),createElementBlock("section",_hoisted_9$3,[createBaseVNode("p",null,toDisplayString(__props.closing?"Closing…":__props.busy?"Waiting for the explanation…":"No explanation was produced. Check the assistant provider, then retry."),1),createBaseVNode("div",_hoisted_10$3,[__props.busy&&!__props.closing?(openBlock(),createBlock(VBtn,{key:0,class:"vibe64-source-explanation__action-target","aria-label":"Stop explanation",color:"error",icon:unref(mdiStop),size:"small",title:"Stop explanation",type:"button",variant:"tonal",onClick:_cache[3]||(_cache[3]=$event=>emit("stop"))},null,8,["icon"])):(openBlock(),createBlock(VBtn,{key:1,class:"vibe64-source-explanation__action-target",color:"primary",disabled:__props.closing||!__props.assistantAvailable,"prepend-icon":unref(mdiRefresh),size:"small",title:__props.assistantAvailable?"Retry explanation":__props.assistantUnavailableMessage,type:"button",variant:"flat",onClick:_cache[4]||(_cache[4]=$event=>emit("retry"))},{default:withCtx(()=>[..._cache[9]||(_cache[9]=[createTextVNode(" Retry explanation ",-1)])]),_:1},8,["disabled","prepend-icon","title"]))])])):(openBlock(),createElementBlock("form",{key:2,class:"vibe64-source-explanation__followup",onSubmit:withModifiers(submitFollowup,["prevent"])},[createVNode(Vibe64AutopilotPromptTextarea,{"attachments-enabled":false,"auto-grow":true,disabled:__props.busy||__props.closing||!__props.assistantAvailable,label:"Ask about this explanation","model-value":__props.followup,placeholder:"Ask a follow-up",rows:"1",onSubmit:submitFollowup,"onUpdate:modelValue":_cache[6]||(_cache[6]=$event=>emit("update:followup",$event))},{footer:withCtx(()=>[createBaseVNode("div",_hoisted_11$3,[__props.busy&&!__props.closing?(openBlock(),createBlock(VBtn,{key:0,class:"vibe64-source-explanation__action-target","aria-label":"Stop explanation",color:"error",icon:unref(mdiStop),size:"small",title:"Stop explanation",type:"button",variant:"tonal",onClick:_cache[5]||(_cache[5]=$event=>emit("stop"))},null,8,["icon"])):createCommentVNode("",true),createVNode(VBtn,{class:"vibe64-source-explanation__action-target","aria-label":"Send follow-up",color:"primary",disabled:!__props.followup.trim()||__props.busy||__props.closing||!__props.assistantAvailable,icon:unref(mdiSend),size:"small",title:__props.assistantAvailable?"Send follow-up":__props.assistantUnavailableMessage,type:"submit",variant:"flat"},null,8,["disabled","icon","title"])])]),_:1},8,["disabled","model-value"])],32))],8,_hoisted_1$3)}}};const Vibe64SourceExplanationPanel=_export_sfc(_sfc_main$4,[["__scopeId","data-v-dbf6b072"]]);const _hoisted_1$2={class:"vibe64-source-tree"};const _hoisted_2$2={class:"vibe64-source-tree__row"};const _hoisted_3$2=["title","onClick"];const _hoisted_4$2=["title","onClick"];const _hoisted_5$2={key:1,class:"vibe64-source-tree__chevron-spacer","aria-hidden":"true"};const _hoisted_6$2={key:0,class:"vibe64-source-tree__directory"};const _hoisted_7$2={key:0,class:"vibe64-source-tree__notice"};const _hoisted_8$2={key:1,class:"vibe64-source-tree__notice vibe64-source-tree__notice--error"};const _hoisted_9$2={key:2,class:"vibe64-source-tree__notice"};const _hoisted_10$2={key:0,class:"vibe64-source-tree__item"};const _hoisted_11$2=["disabled","title"];const _hoisted_12$1={key:0};const _hoisted_13$1={key:1};const DIRECTORY_BATCH_SIZE=20;const _sfc_main$3={__name:"Vibe64SourceFileTree",props:{starredPaths:{type:Array,default:()=>[]},expandedPaths:{default:()=>[],type:Array},loadErrors:{default:()=>({}),type:Object},loadingPaths:{default:()=>[],type:Array},node:{default:null,type:Object},selectedPath:{default:"",type:String},depth:{default:0,type:Number},askCodexAvailable:{default:false,type:Boolean}},emits:["ask-codex","copy-path","directory-open-change","download-file","load-more-directory","new-file","open-file","toggle-star"],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const nodes=computed(()=>{var _a;return Array.isArray((_a=props.node)==null?void 0:_a.children)?props.node.children:[]});const visibleNodes=computed(()=>nodes.value);const nodeHasMore=computed(()=>{var _a;return((_a=props.node)==null?void 0:_a.hasMore)===true});const currentNodeLoading=computed(()=>{var _a;return pathLoading(((_a=props.node)==null?void 0:_a.path)||"")});const nextHiddenNodeCount=computed(()=>{var _a;const loadedCount=nodes.value.length;const totalCount=Number(((_a=props.node)==null?void 0:_a.total)||0);return totalCount>loadedCount?Math.min(DIRECTORY_BATCH_SIZE,totalCount-loadedCount):DIRECTORY_BATCH_SIZE});const nodeLabel=computed(()=>{var _a,_b;return((_a=props.node)==null?void 0:_a.path)||((_b=props.node)==null?void 0:_b.name)||"source"});const expandedPathSet=computed(()=>new Set((Array.isArray(props.expandedPaths)?props.expandedPaths:[]).map(path=>normalizeTreePath(path)).filter(Boolean)));const loadingPathSet=computed(()=>new Set((Array.isArray(props.loadingPaths)?props.loadingPaths:[]).map(path=>normalizeTreePath(path))));function normalizeTreePath(value=""){return String(value||"").trim().replaceAll("\\","/").replace(/^\.\/+/u,"")}function directoryExpandable(node={}){return node.type==="directory"&&(node.loaded!==true||node.hasMore===true||Array.isArray(node.children)&&node.children.length>0)}function directoryKey(node={}){return normalizeTreePath(node.path||node.name||"")}function directoryOpen(node={}){return expandedPathSet.value.has(directoryKey(node))}function pathLoading(path=""){return loadingPathSet.value.has(normalizeTreePath(path))}function directoryLoading(node={}){return pathLoading(directoryKey(node))}function directoryLoadError(node={}){var _a;return String(((_a=props.loadErrors)==null?void 0:_a[directoryKey(node)])||"")}function directoryChildCount(node={}){return Array.isArray(node.children)?node.children.length:0}function toggleDirectory(node={}){const key=directoryKey(node);if(!key){return}emit("directory-open-change",{open:!directoryOpen(node),path:key})}function showMore(){var _a;emit("load-more-directory",((_a=props.node)==null?void 0:_a.path)||"")}return(_ctx,_cache)=>{const _component_Vibe64SourceFileTree=resolveComponent("Vibe64SourceFileTree",true);return openBlock(),createElementBlock("ul",_hoisted_1$2,[(openBlock(true),createElementBlock(Fragment,null,renderList(visibleNodes.value,child=>{return openBlock(),createElementBlock("li",{key:child.path||child.name,class:"vibe64-source-tree__item"},[createBaseVNode("div",_hoisted_2$2,[child.type==="file"?(openBlock(),createElementBlock("button",{key:0,class:normalizeClass(["vibe64-source-tree__button",{"vibe64-source-tree__button--active":child.path===__props.selectedPath}]),title:child.path||child.name||"source",type:"button",onClick:$event=>emit("open-file",child.path)},[createVNode(VIcon,{icon:unref(mdiFileDocumentOutline),size:"15"},null,8,["icon"]),createBaseVNode("span",null,toDisplayString(child.name),1),__props.starredPaths.includes(child.path)?(openBlock(),createBlock(VIcon,{key:0,icon:unref(mdiStar),size:"14","aria-label":"Starred"},null,8,["icon"])):createCommentVNode("",true)],10,_hoisted_3$2)):(openBlock(),createElementBlock("button",{key:1,class:"vibe64-source-tree__button vibe64-source-tree__button--directory",title:child.path||child.name||"source",type:"button",onClick:$event=>toggleDirectory(child)},[directoryExpandable(child)?(openBlock(),createBlock(VIcon,{key:0,class:normalizeClass(["vibe64-source-tree__chevron",{"vibe64-source-tree__chevron--open":directoryOpen(child)}]),icon:unref(mdiChevronRight),size:"14"},null,8,["class","icon"])):(openBlock(),createElementBlock("span",_hoisted_5$2)),createVNode(VIcon,{icon:unref(mdiFolderOutline),size:"15"},null,8,["icon"]),createBaseVNode("span",null,toDisplayString(child.name||"source"),1)],8,_hoisted_4$2)),createVNode(VMenu,{location:"bottom end"},{activator:withCtx(({props:activatorProps})=>[createVNode(VBtn,mergeProps({ref_for:true},activatorProps,{"aria-label":`Actions for ${child.path||child.name||"source"}`,class:"vibe64-source-tree__menu-button",icon:unref(mdiDotsVertical),size:"x-small",title:`Actions for ${child.path||child.name||"source"}`,type:"button",variant:"text",onClick:_cache[0]||(_cache[0]=withModifiers(()=>{},["stop"]))}),null,16,["aria-label","icon","title"])]),default:withCtx(()=>[createVNode(VList,{class:"vibe64-source-tree__menu",density:"compact"},{default:withCtx(()=>[child.type==="file"?(openBlock(),createBlock(VListItem,{key:0,"prepend-icon":__props.starredPaths.includes(child.path)?unref(mdiStar):unref(mdiStarOutline),title:__props.starredPaths.includes(child.path)?"Unstar file":"Star file",onClick:$event=>emit("toggle-star",child.path)},null,8,["prepend-icon","title","onClick"])):createCommentVNode("",true),child.type==="file"?(openBlock(),createBlock(VListItem,{key:1,"prepend-icon":unref(mdiDownload),title:"Download file",onClick:$event=>emit("download-file",child.path)},null,8,["prepend-icon","onClick"])):createCommentVNode("",true),child.type==="directory"?(openBlock(),createBlock(VListItem,{key:2,"prepend-icon":unref(mdiFilePlusOutline),title:"New file here",onClick:$event=>emit("new-file",child.path||"")},null,8,["prepend-icon","onClick"])):createCommentVNode("",true),createVNode(VListItem,{"prepend-icon":unref(mdiContentCopy),title:"Copy path",onClick:$event=>emit("copy-path",child.path||child.name||"")},null,8,["prepend-icon","onClick"]),child.type==="file"&&__props.askCodexAvailable?(openBlock(),createBlock(VListItem,{key:3,"prepend-icon":unref(mdiRobotOutline),title:"Ask the AI assistant about this file",onClick:$event=>emit("ask-codex",child.path||"")},null,8,["prepend-icon","onClick"])):createCommentVNode("",true)]),_:2},1024)]),_:2},1024)]),child.type!=="file"&&directoryOpen(child)?(openBlock(),createElementBlock("div",_hoisted_6$2,[createVNode(_component_Vibe64SourceFileTree,{node:child,"ask-codex-available":__props.askCodexAvailable,"selected-path":__props.selectedPath,"starred-paths":__props.starredPaths,"expanded-paths":__props.expandedPaths,"load-errors":__props.loadErrors,"loading-paths":__props.loadingPaths,depth:__props.depth+1,onLoadMoreDirectory:_cache[1]||(_cache[1]=$event=>emit("load-more-directory",$event)),onOpenFile:_cache[2]||(_cache[2]=$event=>emit("open-file",$event)),onToggleStar:_cache[3]||(_cache[3]=$event=>emit("toggle-star",$event)),onDownloadFile:_cache[4]||(_cache[4]=$event=>emit("download-file",$event)),onDirectoryOpenChange:_cache[5]||(_cache[5]=$event=>emit("directory-open-change",$event)),onNewFile:_cache[6]||(_cache[6]=$event=>emit("new-file",$event)),onCopyPath:_cache[7]||(_cache[7]=$event=>emit("copy-path",$event)),onAskCodex:_cache[8]||(_cache[8]=$event=>emit("ask-codex",$event))},null,8,["node","ask-codex-available","selected-path","starred-paths","expanded-paths","load-errors","loading-paths","depth"]),directoryLoading(child)?(openBlock(),createElementBlock("div",_hoisted_7$2," Loading... ")):directoryLoadError(child)?(openBlock(),createElementBlock("div",_hoisted_8$2,toDisplayString(directoryLoadError(child)),1)):directoryOpen(child)&&child.loaded&&!directoryChildCount(child)&&!child.hasMore?(openBlock(),createElementBlock("div",_hoisted_9$2," Empty directory. ")):createCommentVNode("",true)])):createCommentVNode("",true)])}),128)),nodeHasMore.value?(openBlock(),createElementBlock("li",_hoisted_10$2,[createBaseVNode("button",{class:"vibe64-source-tree__button vibe64-source-tree__button--more",disabled:currentNodeLoading.value,title:`Load ${nextHiddenNodeCount.value} more entries in ${nodeLabel.value}`,type:"button",onClick:showMore},[createVNode(VIcon,{icon:unref(mdiDotsHorizontal),size:"15"},null,8,["icon"]),currentNodeLoading.value?(openBlock(),createElementBlock("span",_hoisted_12$1,"Loading...")):(openBlock(),createElementBlock("span",_hoisted_13$1,"Load "+toDisplayString(nextHiddenNodeCount.value)+" more",1))],8,_hoisted_11$2)])):createCommentVNode("",true)])}}};const Vibe64SourceFileTree=_export_sfc(_sfc_main$3,[["__scopeId","data-v-66801c99"]]);function parseJsonStreamEvent(event){try{return JSON.parse((event==null?void 0:event.data)||"{}")}catch{return{}}}function useVibe64SourceEditorFileSync({active=true,onChange=null,onError=null,onReady=null,path="",sessionId="",sessionsApiPath=""}={}){let eventSource=null;function currentValue(value){return String(readRefOrGetterValue(value)||"").trim()}function isActive(){return readRefOrGetterValue(active)!==false}function close(){var _a;(_a=eventSource==null?void 0:eventSource.close)==null?void 0:_a.call(eventSource);eventSource=null}function start(){close();const currentPath=currentValue(path);const currentSessionId=currentValue(sessionId);const currentSessionsApiPath=currentValue(sessionsApiPath);if(!isActive()||!currentPath||!currentSessionId||!currentSessionsApiPath||typeof EventSource!=="function"){return}let source;try{source=new EventSource(resolveStudioRequestUrl(vibe64SourceEditorChangesStreamPath(currentSessionsApiPath,currentSessionId,currentPath)),{withCredentials:true})}catch(error){onError==null?void 0:onError({error:String((error==null?void 0:error.message)||error||"Source file observation could not start."),fatal:true});return}eventSource=source;const isCurrent=()=>eventSource===source;source.addEventListener(VIBE64_SOURCE_EDITOR_FILE_CHANGED_EVENT,event=>{if(isCurrent()){onChange==null?void 0:onChange(parseJsonStreamEvent(event))}});source.addEventListener(VIBE64_SOURCE_EDITOR_SYNC_READY_EVENT,event=>{if(!isCurrent()){return}onReady==null?void 0:onReady(parseJsonStreamEvent(event))});source.addEventListener(VIBE64_SOURCE_EDITOR_SYNC_ERROR_EVENT,event=>{if(isCurrent()){const payload=parseJsonStreamEvent(event);onError==null?void 0:onError(payload);if(payload.fatal===true){close()}}});source.onerror=()=>{if(isCurrent()){onError==null?void 0:onError({error:"Source file observation disconnected.",transient:true})}}}watch([()=>isActive(),()=>currentValue(path),()=>currentValue(sessionId),()=>currentValue(sessionsApiPath)],start,{immediate:true});onBeforeUnmount(close)}const SOURCE_EDITOR_AUTOSAVE_DELAY_MS=700;const SOURCE_EDITOR_FILE_MATCH_DELAY_MS=120;const SOURCE_EDITOR_SEARCH_DELAY_MS=260;const SOURCE_EDITOR_TREE_PAGE_SIZE=20;const SOURCE_EDITOR_REMOTE_CHANGE_MESSAGE="This file changed in another window. Reload it before saving.";let sourceExplanationClientIdCounter=0;function normalizeEditorPath(value=""){return String(value||"").trim().replaceAll("\\","/").replace(/^\.\/+/u,"")}function normalizeSourceEditorSyncValue(value=""){return String(value||"").trim()}function sourceEditorFileChangePayloadMatches({originId=vibe64BrowserTabOriginId(),path="",payload={},projectSlug="",sessionId=""}={}){const normalizedPath=normalizeEditorPath(path);const normalizedProjectSlug=normalizeSourceEditorSyncValue(projectSlug);const normalizedSessionId=normalizeSourceEditorSyncValue(sessionId);if(!normalizedPath||!normalizedProjectSlug||!normalizedSessionId||normalizeEditorPath(payload==null?void 0:payload.path)!==normalizedPath||normalizeSourceEditorSyncValue(payload==null?void 0:payload.projectSlug)!==normalizedProjectSlug||normalizeSourceEditorSyncValue(payload==null?void 0:payload.sessionId)!==normalizedSessionId||vibe64RealtimePayloadFromCurrentTab(payload,{originId})){return false}return Boolean(normalizeSourceEditorSyncValue(payload==null?void 0:payload.hash))}function normalizeEditorQuery(value=""){return String(value||"").trim()}function normalizePolicyDirectories(value=[]){return[...new Set((Array.isArray(value)?value:[]).map(directoryPath=>normalizeEditorPath(directoryPath).replace(/\/+$/u,"")).filter(Boolean))].sort((left,right)=>left.localeCompare(right))}function normalizeSourceEditorPolicy(value={}){const policy=value&&typeof value==="object"&&!Array.isArray(value)?value:{};return{...policy,preexpandedDirectories:normalizePolicyDirectories(policy.preexpandedDirectories),preloadDirectories:normalizePolicyDirectories(policy.preloadDirectories)}}function normalizeFileMatches(value=[]){return(Array.isArray(value)?value:[]).map((file={})=>({language:String(file.language||""),name:String(file.name||""),path:normalizeEditorPath(file.path)})).filter(file=>file.path)}function normalizeSearchResults(value=[]){return(Array.isArray(value)?value:[]).map((result={})=>({column:Math.max(1,Number(result.column||1)),line:Math.max(1,Number(result.line||1)),path:normalizeEditorPath(result.path),preview:String(result.preview||"")})).filter(result=>result.path)}function normalizeResolvedSourceEditorPath(value={}){var _a;const source=value&&typeof value==="object"&&!Array.isArray(value)?value:{};return{path:normalizeEditorPath(source.path||((_a=source.file)==null?void 0:_a.path)),resolved:source.resolved===true}}function normalizeExplanationMessages(value=[],{body="",followups=[]}={}){const messages=(Array.isArray(value)?value:[]).map(entry=>({createdAt:String((entry==null?void 0:entry.createdAt)||""),id:String((entry==null?void 0:entry.id)||""),role:String((entry==null?void 0:entry.role)||""),status:String((entry==null?void 0:entry.status)||"complete"),text:String((entry==null?void 0:entry.text)||"")})).filter(entry=>entry.id&&["assistant","user"].includes(entry.role)&&(entry.text||entry.status!=="complete"));if(messages.length){return messages}const fallback2=[];if(String(body||"").trim()){fallback2.push({createdAt:"",id:"body",role:"assistant",status:"complete",text:String(body||"")})}return[...fallback2,...(Array.isArray(followups)?followups:[]).map(entry=>({createdAt:String((entry==null?void 0:entry.createdAt)||""),id:String((entry==null?void 0:entry.id)||""),role:String((entry==null?void 0:entry.role)||""),status:"complete",text:String((entry==null?void 0:entry.text)||"")})).filter(entry=>entry.id&&["assistant","user"].includes(entry.role)&&entry.text)]}function normalizeExplanationExecutionProfile(value=null){try{return vibe64AgentExecutionProfileAuditSnapshot(value)}catch{return null}}function normalizeExplanation(value=null){if(!value||typeof value!=="object"||Array.isArray(value)){return null}const sourceRange=value.sourceRange&&typeof value.sourceRange==="object"&&!Array.isArray(value.sourceRange)?value.sourceRange:{};const id=String(value.id||"").trim();if(!id){return null}const followups=(Array.isArray(value.followups)?value.followups:[]).map(entry=>({createdAt:String((entry==null?void 0:entry.createdAt)||""),id:String((entry==null?void 0:entry.id)||""),role:String((entry==null?void 0:entry.role)||""),text:String((entry==null?void 0:entry.text)||"")})).filter(entry=>entry.id&&["assistant","user"].includes(entry.role)&&entry.text);return{agentThreadId:String(value.agentThreadId||""),agentSettings:null,agentTurnId:String(value.agentTurnId||""),body:String(value.body||""),createdAt:String(value.createdAt||""),engine:String(value.engine||""),error:String(value.error||""),executionProfile:normalizeExplanationExecutionProfile(value.executionProfile),followups,id,messages:normalizeExplanationMessages(value.messages,{body:value.body,followups}),model:String(value.model||""),sourceRange:{endColumn:Math.max(1,Number(sourceRange.endColumn||1)),endLine:Math.max(1,Number(sourceRange.endLine||1)),language:String(sourceRange.language||""),path:normalizeEditorPath(sourceRange.path),scope:String(sourceRange.scope||"selection"),startColumn:Math.max(1,Number(sourceRange.startColumn||1)),startLine:Math.max(1,Number(sourceRange.startLine||1))},stale:value.stale===true,staleReason:String(value.staleReason||""),status:String(value.status||""),summary:String(value.summary||""),title:String(value.title||"")}}function normalizeTreeNode(value=null){if(!value||typeof value!=="object"||Array.isArray(value)){return null}const type=String(value.type||"");const path=normalizeEditorPath(value.path);if(type==="file"){return{language:String(value.language||""),name:String(value.name||""),path,size:Number(value.size||0),type}}if(type!=="directory"){return null}return{children:(Array.isArray(value.children)?value.children:[]).map(child=>normalizeTreeNode(child)).filter(Boolean),hasMore:value.hasMore===true,limit:Math.max(1,Number(value.limit||SOURCE_EDITOR_TREE_PAGE_SIZE)),loaded:value.loaded===true,name:String(value.name||""),nextOffset:Math.max(0,Number(value.nextOffset||0)),offset:Math.max(0,Number(value.offset||0)),path,total:Math.max(0,Number(value.total||0)),truncated:value.truncated===true,type}}function mergeDirectoryChildren(existingChildren=[],pageChildren=[],append=false){const byKey=new Map((existingChildren||[]).map(child=>[treeNodeKey(child),child]));const mergedChildren=pageChildren.map(child=>{const previous=byKey.get(treeNodeKey(child));return child.type==="directory"&&(previous==null?void 0:previous.loaded)&&!child.loaded?{...child,...previous,name:child.name}:child});if(!append){return mergedChildren}for(const child of mergedChildren){byKey.set(treeNodeKey(child),child)}return[...byKey.values()]}function treeNodeKey(node={}){return normalizeEditorPath(node.path)||String(node.name||"")}function sortTreeNodes(children=[]){return[...children].sort((left,right)=>{if((left==null?void 0:left.type)!==(right==null?void 0:right.type)){return(left==null?void 0:left.type)==="directory"?-1:1}return String((left==null?void 0:left.name)||"").localeCompare(String((right==null?void 0:right.name)||""))})}function mergeDirectoryPage(root=null,directoryPath="",page=null,append=false){const normalizedPath=normalizeEditorPath(directoryPath);const normalizedPage=normalizeTreeNode(page);if(!normalizedPage){return root}if(!normalizedPath){return{...normalizedPage,children:mergeDirectoryChildren(root==null?void 0:root.children,normalizedPage.children,append)}}function visit(node=null){if(!node||node.type!=="directory"){return node}if(normalizeEditorPath(node.path)===normalizedPath){return{...node,...normalizedPage,children:mergeDirectoryChildren(node.children,normalizedPage.children,append)}}return{...node,children:(Array.isArray(node.children)?node.children:[]).map(child=>visit(child))}}return visit(root)}function mergeRevealedTreeNode(existing=null,reveal=null){const normalizedReveal=normalizeTreeNode(reveal);if(!normalizedReveal){return normalizeTreeNode(existing)}const normalizedExisting=normalizeTreeNode(existing);if(!normalizedExisting||treeNodeKey(normalizedExisting)!==treeNodeKey(normalizedReveal)){return normalizedReveal}if(normalizedExisting.type!=="directory"||normalizedReveal.type!=="directory"){return normalizedExisting}const childrenByKey=new Map((normalizedExisting.children||[]).map(child=>[treeNodeKey(child),child]));for(const child of normalizedReveal.children||[]){const key=treeNodeKey(child);childrenByKey.set(key,mergeRevealedTreeNode(childrenByKey.get(key),child))}return{...normalizedExisting,children:sortTreeNodes([...childrenByKey.values()])}}function mergeRevealTree(root=null,revealTree=null){const normalizedReveal=normalizeTreeNode(revealTree);if(!normalizedReveal){return root}return mergeRevealedTreeNode(root,normalizedReveal)}function findTreeDirectory(root=null,directoryPath=""){const normalizedPath=normalizeEditorPath(directoryPath);if(!root||root.type!=="directory"){return null}if(normalizeEditorPath(root.path)===normalizedPath){return root}for(const child of Array.isArray(root.children)?root.children:[]){const found=findTreeDirectory(child,normalizedPath);if(found){return found}}return null}function loadedFileAncestorDirectoryPaths(root=null,filePath="",ancestors=[]){const normalizedFilePath=normalizeEditorPath(filePath);if(!root||!normalizedFilePath){return null}if(root.type==="file"){return normalizeEditorPath(root.path)===normalizedFilePath?ancestors:null}if(root.type!=="directory"){return null}const normalizedDirectoryPath=normalizeEditorPath(root.path);const childAncestors=normalizedDirectoryPath?[...ancestors,normalizedDirectoryPath]:ancestors;for(const child of Array.isArray(root.children)?root.children:[]){const found=loadedFileAncestorDirectoryPaths(child,normalizedFilePath,childAncestors);if(found){return found}}return null}function loadedDirectoryPaths(root=null,directoryPath=""){const directory=findTreeDirectory(root,directoryPath);if(!directory){return[]}const paths=[];function visit(node=null){if(!node||node.type!=="directory"){return}const normalizedPath=normalizeEditorPath(node.path);if(normalizedPath){paths.push(normalizedPath)}for(const child of Array.isArray(node.children)?node.children:[]){visit(child)}}visit(directory);return[...new Set(paths)].sort((left,right)=>left.localeCompare(right))}function loadedTreeDirectoryPaths(root=null){const paths=[];function visit(node=null){if(!node||node.type!=="directory"){return}const normalizedPath=normalizeEditorPath(node.path);if(normalizedPath&&node.loaded===true){paths.push(normalizedPath)}for(const child of Array.isArray(node.children)?node.children:[]){visit(child)}}visit(root);return[...new Set(paths)].sort((left,right)=>{const depthDifference=left.split("/").length-right.split("/").length;return depthDifference||left.localeCompare(right)})}async function sourceEditorRequest(url="",options={}){const payload=await getHttpWebClient().request(url,options);if((payload==null?void 0:payload.ok)===false){const message=vibe64ApiResponseError(payload,"Source editor request failed.");const error=new Error(message);error.payload=payload;throw error}return payload}function sourceEditorClientId(prefix="id"){sourceExplanationClientIdCounter+=1;return`${prefix}_${Date.now().toString(36)}_${sourceExplanationClientIdCounter.toString(36)}`}function nowIso(){return new Date().toISOString()}function sourceEditorExplanationPromptText(filePath="",range={}){return range.scope==="file"?`Explain the whole file ${filePath}.`:`Explain ${filePath}:${range.startLine}-${range.endLine}.`}function sourceEditorExplanationTitle(filePath="",range={}){const name=normalizeEditorPath(filePath).split("/").filter(Boolean).pop()||"Code";return range.scope==="file"?`${name} full file`:`${name} lines ${range.startLine}-${range.endLine}`}function localSourceExplanation({assistantMessageId=sourceEditorClientId("msg"),explanationId=sourceEditorClientId("exp"),filePath="",range={},userMessageId=sourceEditorClientId("msg")}={}){const createdAt=nowIso();const sourceRange={endColumn:Math.max(1,Number(range.endColumn||1)),endLine:Math.max(1,Number(range.endLine||1)),language:String(range.language||""),path:normalizeEditorPath(filePath),scope:String(range.scope||"selection"),startColumn:Math.max(1,Number(range.startColumn||1)),startLine:Math.max(1,Number(range.startLine||1))};return normalizeExplanation({agentThreadId:"",agentSettings:null,agentTurnId:"",body:"",createdAt,engine:"agent-chat",error:"",executionProfile:null,followups:[],id:explanationId,messages:[{createdAt,id:userMessageId,role:"user",status:"complete",text:sourceEditorExplanationPromptText(filePath,sourceRange)},{createdAt,id:assistantMessageId,role:"assistant",status:"thinking",text:""}],model:"",sourceRange,status:"running",summary:"",title:sourceEditorExplanationTitle(filePath,sourceRange)})}function sourceEditorExplanationWithMessage(explanation=null,messageId="",patch={}){const normalized=normalizeExplanation(explanation);if(!normalized){return null}const messages=normalizeExplanationMessages(normalized.messages);const index=messages.findIndex(message=>message.id===messageId);if(index===-1){return normalized}const nextMessages=[...messages];nextMessages[index]={...nextMessages[index],...patch};return{...normalized,messages:normalizeExplanationMessages(nextMessages)}}function appendSourceEditorExplanationMessages(explanation=null,messages=[]){const normalized=normalizeExplanation(explanation);if(!normalized){return null}return{...normalized,messages:normalizeExplanationMessages([...normalized.messages,...messages])}}function useVibe64SourceEditor({active=true,agentActive=false,navigateReferencedSource=null,projectSlug,readCurrentText=null,sessionsApiPath,sessionId}={}){const originId=vibe64BrowserTabOriginId();const explanationFeedback=useUiFeedback({source:"vibe64.source-editor.explanation.feedback"});const tree=ref(null);const policy=ref({});const selectedPath=ref("");const text=ref("");const savedHash=ref("");const dirty=ref(false);const treeLoadingPaths=ref([]);const treeLoadErrors=ref({});const fileQuery=ref("");const fileMatches=ref([]);const fileMatchesError=ref("");const fileMatchesLoading=ref(false);const fileMatchesTruncated=ref(false);const searchQuery=ref("");const searchResults=ref([]);const searchError=ref("");const searchLoading=ref(false);const searchTruncated=ref(false);const activeExplanation=ref(null);const explanationError=ref("");const explanationBusy=ref(false);const explanationClosing=ref(false);const explanationFollowup=ref("");const loadFailure=ref(null);const loadError=computed(()=>{var _a;return((_a=loadFailure.value)==null?void 0:_a.message)||""});const downloadOnlyFile=ref(null);const saveError=ref("");const createFileError=ref("");const creatingFile=ref(false);const loadingTree=ref(false);const loadingFile=ref(false);const loadingPath=ref("");const saving=ref(false);const loadedVersion=ref(0);const cursorRequest=ref(null);const preexpandedDirectoryPaths=ref([]);const revealedDirectoryPaths=ref([]);const selectedRevealTree=ref(null);let treeRequestId=0;const treeDirectoryRequestIds=new Map;let createFileRequestId=0;let fileRequestId=0;let fileRevalidationRequestId=0;let fileMatchesRequestId=0;let searchRequestId=0;let explanationRequestId=0;let explanationAbortController=null;let autosaveTimer=null;let fileMatchesTimer=null;let searchTimer=null;let pendingFileRevalidation=false;let pendingTreeRefresh=false;let refreshPromise=null;let savePromise=null;let textAtUnmount=null;let disposed=false;const currentSessionsApiPath=computed(()=>String(readRefOrGetterValue(sessionsApiPath)||"").trim());const currentSessionId=computed(()=>String(readRefOrGetterValue(sessionId)||"").trim());const currentProjectSlug=computed(()=>String(readRefOrGetterValue(projectSlug)||"").trim());const currentActive=computed(()=>readRefOrGetterValue(active)!==false);const canLoad=computed(()=>Boolean(currentSessionsApiPath.value&&currentSessionId.value));const statusLabel=computed(()=>{if(saveError.value){return saveError.value}if(loadingFile.value){return"Opening..."}if(saving.value){return"Saving..."}if(dirty.value){return"Unsaved"}return selectedPath.value?"Saved":""});useRealtimeEvent({enabled:computed(()=>Boolean(canLoad.value&&currentProjectSlug.value)),event:VIBE64_SOURCE_EDITOR_FILE_CHANGED_EVENT,matches:({payload={}}={})=>payload.operation==="created"&&payload.originId!==originId&&payload.projectSlug===currentProjectSlug.value&&payload.sessionId===currentSessionId.value||sourceEditorFileChangePayloadMatches({originId,path:selectedPath.value,payload,projectSlug:currentProjectSlug.value,sessionId:currentSessionId.value}),onEvent:({payload={}}={})=>{void applyRemoteFileChange(payload);if(payload.operation==="created"){if(currentActive.value){void loadTree()}else{pendingTreeRefresh=true}}}});useVibe64SourceEditorFileSync({active:computed(()=>canLoad.value&&currentActive.value),onChange:(payload={})=>{void applyObservedFileChange(payload)},onError:(error={})=>{vibe64SessionDebugLog("client.sourceEditor.fileSync.error",{error:String(error.error||"Source file observation failed."),path:selectedPath.value,sessionId:currentSessionId.value,transient:error.transient===true})},onReady:()=>{void revalidateSelectedFile()},path:selectedPath,sessionId:currentSessionId,sessionsApiPath:currentSessionsApiPath});function clearAutosave(){if(autosaveTimer){clearTimeout(autosaveTimer);autosaveTimer=null}}function clearFileMatchesTimer(){if(fileMatchesTimer){clearTimeout(fileMatchesTimer);fileMatchesTimer=null}}function clearSearchTimer(){if(searchTimer){clearTimeout(searchTimer);searchTimer=null}}function clearFileMatches(){fileMatchesRequestId+=1;fileMatches.value=[];fileMatchesError.value="";fileMatchesLoading.value=false;fileMatchesTruncated.value=false}function clearSearchResults(){searchRequestId+=1;searchResults.value=[];searchError.value="";searchLoading.value=false;searchTruncated.value=false}function resetDiscoveryState(){clearFileMatchesTimer();clearSearchTimer();fileQuery.value="";searchQuery.value="";clearFileMatches();clearSearchResults()}function treePathKey(value=""){return normalizeEditorPath(value)}function setTreePathLoading(path="",loading=false){const key=treePathKey(path);const current=new Set(treeLoadingPaths.value);if(loading){current.add(key)}else{current.delete(key)}treeLoadingPaths.value=[...current].sort((left,right)=>left.localeCompare(right))}function setTreePathError(path="",message=""){const key=treePathKey(path);const next={...treeLoadErrors.value};if(message){next[key]=message}else{delete next[key]}treeLoadErrors.value=next}async function loadDirectoryPage(directoryPath="",{applyPage=true,append=false,offset=0}={}){const normalizedPath=treePathKey(directoryPath);if(!canLoad.value||disposed){return null}const treeGeneration=treeRequestId;const requestKey=normalizedPath;const requestId=(treeDirectoryRequestIds.get(requestKey)||0)+1;treeDirectoryRequestIds.set(requestKey,requestId);setTreePathLoading(normalizedPath,true);setTreePathError(normalizedPath,"");if(!normalizedPath&&!append){loadingTree.value=true;loadFailure.value=null}try{const response=await sourceEditorRequest(vibe64SourceEditorTreePath(currentSessionsApiPath.value,currentSessionId.value,{limit:SOURCE_EDITOR_TREE_PAGE_SIZE,offset,path:normalizedPath}));if(treeGeneration!==treeRequestId||treeDirectoryRequestIds.get(requestKey)!==requestId){return null}if(!normalizedPath){policy.value=normalizeSourceEditorPolicy(response.policy||{})}const page=normalizeTreeNode(response.tree);if(applyPage){tree.value=mergeDirectoryPage(tree.value,normalizedPath,page,append);if(selectedRevealTree.value){tree.value=mergeRevealTree(tree.value,selectedRevealTree.value)}}if(!normalizedPath){preexpandedDirectoryPaths.value=normalizePolicyDirectories((policy.value.preexpandedDirectories||[]).flatMap(directoryPath2=>loadedDirectoryPaths(tree.value,directoryPath2)))}if(applyPage)revealLoadedFilePath(selectedPath.value);return page}catch(error){if(treeGeneration===treeRequestId&&treeDirectoryRequestIds.get(requestKey)===requestId){const message=String((error==null?void 0:error.message)||error||"Source tree could not be loaded.");setTreePathError(normalizedPath,message);if(!normalizedPath){loadFailure.value={operation:"tree",message}}}return null}finally{if(treeGeneration===treeRequestId&&treeDirectoryRequestIds.get(requestKey)===requestId){setTreePathLoading(normalizedPath,false);if(!normalizedPath&&applyPage){loadingTree.value=false}}}}function revealLoadedFilePath(filePath=""){const ancestors=loadedFileAncestorDirectoryPaths(tree.value,filePath);if(ancestors){revealedDirectoryPaths.value=normalizePolicyDirectories(ancestors)}}async function loadTree({preserveLoadedDirectories=true}={}){const refreshingLoadedTree=preserveLoadedDirectories&&Boolean(tree.value);const directoriesToReload=preserveLoadedDirectories?loadedTreeDirectoryPaths(tree.value):[];const loadedCounts=new Map(["",...directoriesToReload].map(directoryPath=>{var _a,_b;return[directoryPath,((_b=(_a=findTreeDirectory(tree.value,directoryPath))==null?void 0:_a.children)==null?void 0:_b.length)||0]}));const requestId=treeRequestId+1;treeRequestId=requestId;if(!preserveLoadedDirectories){tree.value=null;policy.value=normalizeSourceEditorPolicy({});preexpandedDirectoryPaths.value=[];revealedDirectoryPaths.value=[]}treeDirectoryRequestIds.clear();treeLoadingPaths.value=[];treeLoadErrors.value={};loadFailure.value=null;if(!canLoad.value){return}loadingTree.value=true;let refreshedTree=tree.value;for(const directoryPath of["",...directoriesToReload]){if(requestId!==treeRequestId)return;if(directoryPath&&!findTreeDirectory(refreshedTree,directoryPath)){continue}let offset=0;do{if(disposed||refreshingLoadedTree&&!currentActive.value){pendingTreeRefresh=!disposed;loadingTree.value=false;return}const page=await loadDirectoryPage(directoryPath,{applyPage:false,append:offset>0,offset});if(requestId!==treeRequestId)return;if(page)refreshedTree=mergeDirectoryPage(refreshedTree,directoryPath,page,offset>0);if(!(page==null?void 0:page.hasMore)||!page.nextOffset||page.nextOffset<=offset)break;offset=page.nextOffset}while(offset<loadedCounts.get(directoryPath))}tree.value=refreshedTree;loadingTree.value=false;if(selectedRevealTree.value){tree.value=mergeRevealTree(tree.value,selectedRevealTree.value);revealLoadedFilePath(selectedPath.value)}preexpandedDirectoryPaths.value=normalizePolicyDirectories((policy.value.preexpandedDirectories||[]).flatMap(directoryPath=>loadedDirectoryPaths(tree.value,directoryPath)))}function loadDirectory(directoryPath=""){const normalizedPath=treePathKey(directoryPath);const directory=findTreeDirectory(tree.value,normalizedPath);if((directory==null?void 0:directory.loaded)===true){return}void loadDirectoryPage(normalizedPath,{append:false,offset:0})}function loadMoreDirectory(directoryPath=""){var _a;const normalizedPath=treePathKey(directoryPath);const directory=findTreeDirectory(tree.value,normalizedPath);if(!(directory==null?void 0:directory.hasMore)){return}void loadDirectoryPage(normalizedPath,{append:true,offset:directory.nextOffset||((_a=directory.children)==null?void 0:_a.length)||0})}function applyFileResponse(response={},{column=0,fallbackPath="",line=0,reveal=true}={}){const file=response.file||{};const filePath=normalizeEditorPath(file.path||fallbackPath);if(!filePath){return false}selectedPath.value=filePath;downloadOnlyFile.value=null;selectedRevealTree.value=normalizeTreeNode(response.revealTree);if(selectedRevealTree.value){tree.value=mergeRevealTree(tree.value,selectedRevealTree.value)}text.value=String(file.text||"");savedHash.value=String(file.hash||"");dirty.value=false;if(reveal)revealLoadedFilePath(filePath);cursorRequest.value={column:Number(column||0)||0,line:Number(line||0)||0,path:filePath,version:loadedVersion.value+1};loadedVersion.value+=1;return true}async function openFile(filePath="",options={}){var _a;const normalizedPath=normalizeEditorPath(filePath);if(!normalizedPath||!canLoad.value){return false}if((dirty.value||saving.value)&&!await saveNow()){return false}const requestId=fileRequestId+1;fileRequestId=requestId;fileRevalidationRequestId+=1;loadFailure.value=null;saveError.value="";loadingFile.value=true;loadingPath.value=normalizedPath;try{const response=await sourceEditorRequest(vibe64SourceEditorFilePath(currentSessionsApiPath.value,currentSessionId.value,normalizedPath));if(requestId!==fileRequestId){return false}if(!applyFileResponse(response,{column:options.column,fallbackPath:normalizedPath,line:options.line})){return false}return true}catch(error){if(requestId===fileRequestId){const code=(error==null?void 0:error.code)||((_a=error==null?void 0:error.payload)==null?void 0:_a.code);if(code==="vibe64_source_editor_binary_file"||code==="vibe64_source_editor_file_too_large"){selectedPath.value="";selectedRevealTree.value=null;text.value="";savedHash.value="";downloadOnlyFile.value={path:normalizedPath,message:code==="vibe64_source_editor_binary_file"?"This file cannot be edited as text. Download it to open it in another application.":"This file is too large to edit here. You can download the complete file."};revealLoadedFilePath(normalizedPath);return true}loadFailure.value={operation:"open-file",message:String((error==null?void 0:error.message)||error||"Source file could not be loaded.")}}return false}finally{if(requestId===fileRequestId){loadingFile.value=false;loadingPath.value=""}}}async function createFile(filePath=""){const normalizedPath=normalizeEditorPath(filePath);if(!normalizedPath||!canLoad.value||creatingFile.value){return false}if((dirty.value||saving.value)&&!await saveNow()){return false}const createRequestId=createFileRequestId+1;createFileRequestId=createRequestId;const fileSelectionRequestId=fileRequestId+1;fileRequestId=fileSelectionRequestId;fileRevalidationRequestId+=1;createFileError.value="";loadFailure.value=null;saveError.value="";creatingFile.value=true;try{const response=await sourceEditorRequest(vibe64SourceEditorCreateFilePath(currentSessionsApiPath.value,currentSessionId.value),{body:{originId,path:normalizedPath,projectSlug:currentProjectSlug.value},method:"POST"});if(fileSelectionRequestId!==fileRequestId){return false}if(!applyFileResponse(response,{fallbackPath:normalizedPath})){return false}return true}catch(error){if(fileSelectionRequestId===fileRequestId){createFileError.value=String((error==null?void 0:error.message)||error||"Source file could not be created.")}return false}finally{if(createRequestId===createFileRequestId){creatingFile.value=false}}}async function revalidateSelectedFile(){var _a,_b;const pathAtRequest=selectedPath.value;const sessionIdAtRequest=currentSessionId.value;if(disposed||!pathAtRequest||!canLoad.value||!currentActive.value){return false}if(saving.value){pendingFileRevalidation=true;return false}const requestId=fileRevalidationRequestId+1;fileRevalidationRequestId=requestId;try{const response=await sourceEditorRequest(vibe64SourceEditorFilePath(currentSessionsApiPath.value,sessionIdAtRequest,pathAtRequest));if(requestId!==fileRevalidationRequestId||selectedPath.value!==pathAtRequest||currentSessionId.value!==sessionIdAtRequest){return false}if(((_a=loadFailure.value)==null?void 0:_a.operation)==="revalidation"){loadFailure.value=null}selectedRevealTree.value=normalizeTreeNode(response.revealTree);if(selectedRevealTree.value){tree.value=mergeRevealTree(tree.value,selectedRevealTree.value)}const nextHash=String(((_b=response.file)==null?void 0:_b.hash)||"");if(dirty.value||saving.value){if(nextHash&&nextHash!==savedHash.value){saveError.value=SOURCE_EDITOR_REMOTE_CHANGE_MESSAGE}else if(saveError.value===SOURCE_EDITOR_REMOTE_CHANGE_MESSAGE){saveError.value=""}return false}if(!nextHash||nextHash===savedHash.value){return false}return applyFileResponse(response,{fallbackPath:pathAtRequest,reveal:false})}catch(error){if(requestId===fileRevalidationRequestId&&selectedPath.value===pathAtRequest&&currentSessionId.value===sessionIdAtRequest){loadFailure.value={operation:"revalidation",message:String((error==null?void 0:error.message)||error||"Source file could not be refreshed.")}}return false}}async function applySelectedFileChange({hash:hash2="",path=""}={}){const changedPath=normalizeEditorPath(path);const changedHash=normalizeSourceEditorSyncValue(hash2);if(!changedPath||changedPath!==selectedPath.value||changedHash&&changedHash===savedHash.value){return}if(saving.value){pendingFileRevalidation=true;return}if(dirty.value&&changedHash){saveError.value=SOURCE_EDITOR_REMOTE_CHANGE_MESSAGE;return}await revalidateSelectedFile()}async function applyRemoteFileChange(payload={}){if(!sourceEditorFileChangePayloadMatches({originId,path:selectedPath.value,payload,projectSlug:currentProjectSlug.value,sessionId:currentSessionId.value})){return}await applySelectedFileChange(payload)}async function applyObservedFileChange(payload={}){if(normalizeSourceEditorSyncValue(payload.sessionId)!==currentSessionId.value||normalizeEditorPath(payload.path)!==selectedPath.value){return}await applySelectedFileChange(payload)}function cleanupAbandonedExplanations(){var _a;if(!canLoad.value){return}const activeExplanationIds=((_a=activeExplanation.value)==null?void 0:_a.id)?[activeExplanation.value.id]:[];void sourceEditorRequest(vibe64SourceEditorExplanationsCleanupPath(currentSessionsApiPath.value,currentSessionId.value),{body:{activeExplanationIds,originId},method:"POST"}).catch(error=>{vibe64SessionDebugLog("client.sourceEditor.explanations.cleanup.error",{error:vibe64SessionDebugError(error),sessionId:currentSessionId.value})})}async function loadFileMatches(){const query=normalizeEditorQuery(fileQuery.value);if(!query){clearFileMatches();return}const requestId=fileMatchesRequestId+1;fileMatchesRequestId=requestId;fileMatchesError.value="";if(!canLoad.value){return}fileMatchesLoading.value=true;try{const response=await sourceEditorRequest(vibe64SourceEditorFilesPath(currentSessionsApiPath.value,currentSessionId.value,query));if(requestId!==fileMatchesRequestId){return}fileMatches.value=normalizeFileMatches(response.files);fileMatchesTruncated.value=response.truncated===true}catch(error){if(requestId===fileMatchesRequestId){fileMatches.value=[];fileMatchesError.value=String((error==null?void 0:error.message)||error||"File matches could not be loaded.")}}finally{if(requestId===fileMatchesRequestId){fileMatchesLoading.value=false}}}function updateFileQuery(value=""){fileQuery.value=String(value||"");clearFileMatchesTimer();if(!normalizeEditorQuery(fileQuery.value)){clearFileMatches();return}fileMatchesTimer=setTimeout(()=>{void loadFileMatches()},SOURCE_EDITOR_FILE_MATCH_DELAY_MS)}async function openFileMatch(filePath=""){const normalizedPath=normalizeEditorPath(filePath);if(!normalizedPath){return}clearFileMatchesTimer();fileQuery.value="";clearFileMatches();await openFile(normalizedPath)}async function openReferencedSourcePath({fromPath=selectedPath.value,target=""}={}){const normalizedFromPath=normalizeEditorPath(fromPath);const normalizedTarget=String(target||"").trim();if(!normalizedFromPath||!normalizedTarget||!canLoad.value){return false}try{const response=await sourceEditorRequest(vibe64SourceEditorResolvePathPath(currentSessionsApiPath.value,currentSessionId.value),{body:{fromPath:normalizedFromPath,target:normalizedTarget},method:"POST"});const resolved=normalizeResolvedSourceEditorPath(response);if(!resolved.resolved||!resolved.path){return false}if(typeof navigateReferencedSource==="function"){try{const handled=await navigateReferencedSource({fromPath:normalizedFromPath,path:resolved.path,target:normalizedTarget});if(handled===true){return true}}catch{}}await openFile(resolved.path);return true}catch{return false}}function openFirstFileMatch(){const firstFile=fileMatches.value[0];if(firstFile==null?void 0:firstFile.path){void openFileMatch(firstFile.path)}}async function loadSearchResults(){const query=normalizeEditorQuery(searchQuery.value);if(!query){clearSearchResults();return}const requestId=searchRequestId+1;searchRequestId=requestId;searchError.value="";if(!canLoad.value){return}searchLoading.value=true;try{const response=await sourceEditorRequest(vibe64SourceEditorSearchPath(currentSessionsApiPath.value,currentSessionId.value,query));if(requestId!==searchRequestId){return}searchResults.value=normalizeSearchResults(response.results);searchTruncated.value=response.truncated===true}catch(error){if(requestId===searchRequestId){searchResults.value=[];searchError.value=String((error==null?void 0:error.message)||error||"Search results could not be loaded.")}}finally{if(requestId===searchRequestId){searchLoading.value=false}}}function clearExplanationStream(){var _a;explanationRequestId+=1;(_a=explanationAbortController==null?void 0:explanationAbortController.abort)==null?void 0:_a.call(explanationAbortController);explanationAbortController=null;explanationBusy.value=false}function markActiveExplanationMessage(status="",text2=""){const explanation=activeExplanation.value;const lastAssistant=[...(explanation==null?void 0:explanation.messages)||[]].reverse().find(message=>message.role==="assistant");if(!(lastAssistant==null?void 0:lastAssistant.id)){return}const nextExplanation=sourceEditorExplanationWithMessage(explanation,lastAssistant.id,{status,text:text2||lastAssistant.text});activeExplanation.value=status==="failed"?{...nextExplanation,error:text2||(nextExplanation==null?void 0:nextExplanation.error)||"Source explanation failed.",status:"failed"}:nextExplanation}function applyExplanationStreamEvent(event={},requestId=explanationRequestId){if(requestId!==explanationRequestId){return}if(event.type==="source-explanation.error"||event.ok===false){const message=vibe64ApiResponseError(event,"Source explanation failed.");explanationError.value=message;markActiveExplanationMessage("failed",message);throw new Error(message)}const eventExplanation=normalizeExplanation(event.explanation);if(event.type==="source-explanation.failed"){const message=vibe64ApiResponseError(event,"Source explanation failed.");explanationError.value=message;if(eventExplanation){activeExplanation.value=eventExplanation}else{markActiveExplanationMessage("failed",message)}return}if(event.type==="source-explanation.started"||event.type==="source-explanation.followup.started"){if(eventExplanation){activeExplanation.value=eventExplanation}return}if(event.type==="source-explanation.thread"||event.type==="source-explanation.turn"){if(!activeExplanation.value){return}activeExplanation.value={...activeExplanation.value,agentThreadId:String(event.threadId||activeExplanation.value.agentThreadId||""),agentTurnId:String(event.turnId||activeExplanation.value.agentTurnId||"")};return}if(event.type==="source-explanation.execution-profile"&&eventExplanation){activeExplanation.value=eventExplanation;return}if(event.type==="source-explanation.message"&&event.messageId){activeExplanation.value=sourceEditorExplanationWithMessage(activeExplanation.value,String(event.messageId),{status:String(event.status||"thinking"),text:String(event.text||"")});return}if(event.type==="source-explanation.finished"&&eventExplanation){activeExplanation.value=eventExplanation;if(eventExplanation.status!=="failed"){explanationError.value=""}}}async function streamSourceEditorRequest(url="",body={},requestId=explanationRequestId){const controller=new AbortController;explanationAbortController=controller;await getHttpWebClient().requestStream(url,{body,method:"POST",signal:controller.signal},{onEvent(event){applyExplanationStreamEvent(event,requestId)}})}async function explainSelection(range={}){var _a;if(!selectedPath.value||!canLoad.value||explanationBusy.value||explanationClosing.value){return}const requestId=explanationRequestId+1;explanationRequestId=requestId;(_a=explanationAbortController==null?void 0:explanationAbortController.abort)==null?void 0:_a.call(explanationAbortController);explanationAbortController=null;const explanationId=sourceEditorClientId("exp");const userMessageId=sourceEditorClientId("msg");const assistantMessageId=sourceEditorClientId("msg");const previousExplanation=activeExplanation.value;activeExplanation.value=localSourceExplanation({assistantMessageId,explanationId,filePath:selectedPath.value,range,userMessageId});explanationBusy.value=true;explanationError.value="";explanationFollowup.value="";if(previousExplanation==null?void 0:previousExplanation.id){void disposeExplanation(previousExplanation).catch(()=>null)}try{await streamSourceEditorRequest(vibe64SourceEditorExplanationsStreamPath(currentSessionsApiPath.value,currentSessionId.value),{assistantMessageId,endColumn:range.endColumn,endLine:range.endLine,explanationId,force:range.force===true,originId,path:selectedPath.value,scope:range.scope,startColumn:range.startColumn,startLine:range.startLine,userMessageId},requestId)}catch(error){if(String((error==null?void 0:error.name)||"")==="AbortError"){return}if(requestId===explanationRequestId){const message=String((error==null?void 0:error.message)||error||"Source explanation could not be created.");explanationError.value=message;markActiveExplanationMessage("failed",message)}}finally{if(requestId===explanationRequestId){explanationBusy.value=false;explanationAbortController=null}}}async function retryExplanation(){const explanation=activeExplanation.value;const range=(explanation==null?void 0:explanation.sourceRange)||{};const explanationPath=normalizeEditorPath(range.path);if(!explanationPath||explanationBusy.value||explanationClosing.value){return}if(selectedPath.value!==explanationPath){await openFile(explanationPath);if(selectedPath.value!==explanationPath){return}}await explainSelection({...range,force:true})}async function stopExplanation(){var _a,_b,_c;const explanation=activeExplanation.value;if(!(explanation==null?void 0:explanation.id)||explanationClosing.value){return}const requestId=explanationRequestId+1;explanationRequestId=requestId;const controller=explanationAbortController;explanationAbortController=null;explanationBusy.value=false;explanationError.value="";markActiveExplanationMessage("stopped","Stopped.");(_a=controller==null?void 0:controller.abort)==null?void 0:_a.call(controller);if(!canLoad.value){return}try{const response=await sourceEditorRequest(vibe64SourceEditorExplanationStopPath(currentSessionsApiPath.value,currentSessionId.value,explanation.id),{method:"POST"});if(requestId!==explanationRequestId||((_b=activeExplanation.value)==null?void 0:_b.id)!==explanation.id){return}const stoppedExplanation=normalizeExplanation(response.explanation);if(stoppedExplanation){activeExplanation.value=stoppedExplanation}}catch(error){if(requestId===explanationRequestId&&((_c=activeExplanation.value)==null?void 0:_c.id)===explanation.id){explanationFeedback.error(error,"Source explanation could not be stopped.")}}}async function disposeExplanation(explanation=null,{onError=null,sessionsApiPath:apiPath=currentSessionsApiPath.value,sessionId:targetSessionId=currentSessionId.value}={}){const id=String((explanation==null?void 0:explanation.id)||"").trim();if(!id||!apiPath||!targetSessionId){return true}try{await sourceEditorRequest(vibe64SourceEditorExplanationPath(apiPath,targetSessionId,id),{method:"DELETE"});return true}catch(error){vibe64SessionDebugLog("client.sourceEditor.explanations.cleanup.error",{error:vibe64SessionDebugError(error),sessionId:targetSessionId});onError==null?void 0:onError(error);return false}}async function disposeActiveExplanation(options={}){var _a;const explanation=activeExplanation.value;if(!explanation){return true}const requestId=explanationRequestId;const disposed2=await disposeExplanation(explanation,options);if(disposed2&&requestId===explanationRequestId&&((_a=activeExplanation.value)==null?void 0:_a.id)===explanation.id){activeExplanation.value=null;explanationFollowup.value=""}return disposed2}async function closeExplanation(){const explanation=activeExplanation.value;if(!(explanation==null?void 0:explanation.id)||explanationClosing.value){return false}clearExplanationStream();const requestId=explanationRequestId;explanationClosing.value=true;explanationError.value="";try{const disposed2=await disposeActiveExplanation({onError(error){var _a;if(requestId===explanationRequestId&&((_a=activeExplanation.value)==null?void 0:_a.id)===explanation.id){explanationFeedback.error(error,"Source explanation cleanup failed. Close it again to retry.")}}});return disposed2&&requestId===explanationRequestId}finally{if(requestId===explanationRequestId){explanationClosing.value=false}}}function updateExplanationFollowup(value=""){explanationFollowup.value=String(value||"")}async function sendExplanationFollowup(){var _a;const message=explanationFollowup.value.trim();const explanation=activeExplanation.value;const explanationId=(explanation==null?void 0:explanation.id)||"";if(!message||!explanationId||!canLoad.value||explanationBusy.value||explanationClosing.value){return}const requestId=explanationRequestId+1;explanationRequestId=requestId;(_a=explanationAbortController==null?void 0:explanationAbortController.abort)==null?void 0:_a.call(explanationAbortController);explanationAbortController=null;const createdAt=nowIso();const userMessageId=sourceEditorClientId("msg");const assistantMessageId=sourceEditorClientId("msg");activeExplanation.value=appendSourceEditorExplanationMessages(activeExplanation.value,[{createdAt,id:userMessageId,role:"user",status:"complete",text:message},{createdAt,id:assistantMessageId,role:"assistant",status:"thinking",text:""}]);explanationBusy.value=true;explanationError.value="";explanationFollowup.value="";try{await streamSourceEditorRequest(vibe64SourceEditorExplanationFollowupsStreamPath(currentSessionsApiPath.value,currentSessionId.value,explanationId),{assistantMessageId,message,userMessageId},requestId)}catch(error){if(String((error==null?void 0:error.name)||"")==="AbortError"){return}if(requestId===explanationRequestId){const errorMessage=String((error==null?void 0:error.message)||error||"Source explanation follow-up could not be sent.");explanationError.value=errorMessage;markActiveExplanationMessage("failed",errorMessage)}}finally{if(requestId===explanationRequestId){explanationBusy.value=false;explanationAbortController=null}}}function updateSearchQuery(value=""){searchQuery.value=String(value||"");clearSearchTimer();if(!normalizeEditorQuery(searchQuery.value)){clearSearchResults();return}searchTimer=setTimeout(()=>{void loadSearchResults()},SOURCE_EDITOR_SEARCH_DELAY_MS)}function openSearchResult(result={}){const filePath=normalizeEditorPath(result.path);if(!filePath){return}void openFile(filePath,{column:result.column,line:result.line})}function scheduleSave(){clearAutosave();if(!selectedPath.value||!dirty.value){return}autosaveTimer=setTimeout(()=>{void saveNow()},SOURCE_EDITOR_AUTOSAVE_DELAY_MS)}function updateText(){dirty.value=true;saveError.value="";scheduleSave()}function currentText(){if(textAtUnmount!==null){return textAtUnmount}return typeof readCurrentText==="function"?String(readCurrentText()??""):text.value}async function saveDirtyBuffers(){var _a;while(selectedPath.value&&dirty.value){const pathAtSave=selectedPath.value;const textAtSave=currentText();const baseHashAtSave=savedHash.value;saving.value=true;saveError.value="";try{const response=await sourceEditorRequest(vibe64SourceEditorFilePath(currentSessionsApiPath.value,currentSessionId.value),{body:{baseHash:baseHashAtSave,originId,path:pathAtSave,projectSlug:currentProjectSlug.value,text:textAtSave},method:"PUT"});if(selectedPath.value===pathAtSave){savedHash.value=String(((_a=response.file)==null?void 0:_a.hash)||"");text.value=textAtSave;dirty.value=currentText()!==textAtSave}}catch(error){if(selectedPath.value===pathAtSave){saveError.value=String((error==null?void 0:error.message)||error||"Source file could not be saved.")}return false}finally{saving.value=false}}if(pendingFileRevalidation){pendingFileRevalidation=false;void revalidateSelectedFile()}return!dirty.value}function saveNow(){clearAutosave();if(savePromise){return savePromise}savePromise=saveDirtyBuffers().finally(()=>{savePromise=null});return savePromise}function openRequest(request={}){const filePath=normalizeEditorPath(request.path);if(!filePath){return}void openFile(filePath,{column:request.column,line:request.line})}function refresh(){if(refreshPromise){pendingTreeRefresh=true;return refreshPromise}refreshPromise=(async()=>{do{pendingTreeRefresh=false;selectedRevealTree.value=null;await loadTree();await revalidateSelectedFile()}while(pendingTreeRefresh&&currentActive.value)})().finally(()=>{refreshPromise=null});return refreshPromise}watch([currentSessionId,()=>Boolean(readRefOrGetterValue(agentActive))],([id,working],previous=[])=>{if(id!==previous[0]||!previous[1]||working)return;if(currentActive.value)void refresh();else pendingTreeRefresh=true});if(typeof window!=="undefined"){window.addEventListener("focus",revalidateSelectedFile)}watch([currentSessionsApiPath,currentSessionId,currentActive],async(current,previous=[])=>{if(current[0]===previous[0]&&current[1]===previous[1]){if(current[2]&&pendingTreeRefresh){await refresh()}return}pendingTreeRefresh=false;const closePending=explanationClosing.value;clearExplanationStream();explanationClosing.value=false;if(activeExplanation.value&&!closePending){void disposeActiveExplanation({sessionsApiPath:previous[0]||currentSessionsApiPath.value,sessionId:previous[1]||currentSessionId.value})}resetDiscoveryState();fileRequestId+=1;loadingFile.value=false;loadingPath.value="";fileRevalidationRequestId+=1;pendingFileRevalidation=false;selectedPath.value="";downloadOnlyFile.value=null;selectedRevealTree.value=null;text.value="";savedHash.value="";dirty.value=false;activeExplanation.value=null;explanationFollowup.value="";await loadTree({preserveLoadedDirectories:false});cleanupAbandonedExplanations()},{immediate:true});onBeforeUnmount(()=>{disposed=true;treeRequestId+=1;fileRequestId+=1;fileRevalidationRequestId+=1;textAtUnmount=currentText();const closePending=explanationClosing.value;clearExplanationStream();explanationClosing.value=false;clearAutosave();clearFileMatchesTimer();clearSearchTimer();if(typeof window!=="undefined"){window.removeEventListener("focus",revalidateSelectedFile)}if(!closePending){void disposeActiveExplanation()}void saveNow()});return{activeExplanation,closeExplanation,createFile,createFileError,creatingFile,cursorRequest,dirty,downloadOnlyFile,explanationBusy,explanationClosing,explanationError,explanationFollowup,explainSelection,fileMatches,fileMatchesError,fileMatchesLoading,fileMatchesTruncated,fileQuery,loadError,loadedVersion,loadDirectory,loadMoreDirectory,loadingFile,loadingPath,loadingTree,openFile,openFileMatch,openFirstFileMatch,openReferencedSourcePath,openRequest,openSearchResult,policy,preexpandedDirectoryPaths,refresh,retryExplanation,revealedDirectoryPaths,saveError,saveNow,savedHash,searchError,searchLoading,searchQuery,searchResults,searchTruncated,selectedPath,sendExplanationFollowup,saving,stopExplanation,statusLabel,text,tree,treeLoadErrors,treeLoadingPaths,updateExplanationFollowup,updateFileQuery,updateSearchQuery,updateText}}class LineDiff extends Diff{constructor(){super(...arguments);this.tokenize=tokenize}equals(left,right,options){if(options.ignoreWhitespace){if(!options.newlineIsToken||!left.includes("\n")){left=left.trim()}if(!options.newlineIsToken||!right.includes("\n")){right=right.trim()}}else if(options.ignoreNewlineAtEof&&!options.newlineIsToken){if(left.endsWith("\n")){left=left.slice(0,-1)}if(right.endsWith("\n")){right=right.slice(0,-1)}}return super.equals(left,right,options)}}const lineDiff=new LineDiff;function diffLines(oldStr,newStr,options){return lineDiff.diff(oldStr,newStr,options)}function tokenize(value,options){if(options.stripTrailingCr){value=value.replace(/\r\n/g,"\n")}const retLines=[],linesAndNewlines=value.split(/(\n|\r\n)/);if(!linesAndNewlines[linesAndNewlines.length-1]){linesAndNewlines.pop()}for(let i=0;i<linesAndNewlines.length;i++){const line=linesAndNewlines[i];if(i%2&&!options.newlineIsToken){retLines[retLines.length-1]+=line}else{retLines.push(line)}}return retLines}const SOURCE_EDITOR_DIFF_TIMEOUT_MS=100;function sourceEditorDocumentChanges(currentText,nextText){if(currentText===nextText){return[]}const parts=diffLines(currentText,nextText,{timeout:SOURCE_EDITOR_DIFF_TIMEOUT_MS});if(!parts){return[{from:0,insert:nextText,to:currentText.length}]}const changes=[];let currentPosition=0;let pendingChange=null;for(const part of parts){if(!part.added&&!part.removed){if(pendingChange){changes.push(pendingChange);pendingChange=null}currentPosition+=part.value.length;continue}pendingChange||(pendingChange={from:currentPosition,insert:"",to:currentPosition});if(part.added){pendingChange.insert+=part.value}else{currentPosition+=part.value.length;pendingChange.to=currentPosition}}if(pendingChange){changes.push(pendingChange)}return changes}const _hoisted_1$1={class:"vibe64-source-editor__header"};const _hoisted_2$1={class:"vibe64-source-editor__title"};const _hoisted_3$1=["title"];const _hoisted_4$1={key:1,class:"vibe64-source-editor__mobile-actions"};const _hoisted_5$1={key:2,class:"vibe64-source-editor__actions"};const _hoisted_6$1={key:0,class:"vibe64-source-editor__tools"};const _hoisted_7$1={class:"vibe64-source-editor__tool"};const _hoisted_8$1={key:0,class:"vibe64-source-editor__matches"};const _hoisted_9$1={key:0,class:"vibe64-source-editor__match-note"};const _hoisted_10$1={key:1,class:"vibe64-source-editor__match-note vibe64-source-editor__match-note--error"};const _hoisted_11$1=["title","onClick"];const _hoisted_12={class:"vibe64-source-editor__match-name"};const _hoisted_13={class:"vibe64-source-editor__match-path"};const _hoisted_14={key:0,class:"vibe64-source-editor__match-note"};const _hoisted_15={key:1,class:"vibe64-source-editor__match-note"};const _hoisted_16={class:"vibe64-source-editor__tool"};const _hoisted_17={class:"vibe64-source-editor__tree-toolbar"};const _hoisted_18={class:"vibe64-source-editor__tree-actions"};const _hoisted_19=["open"];const _hoisted_20={key:1,class:"vibe64-source-editor__search-results","aria-label":"Find results"};const _hoisted_21={class:"vibe64-source-editor__search-heading"};const _hoisted_22={key:0,class:"vibe64-source-editor__notice"};const _hoisted_23={key:1,class:"vibe64-source-editor__notice vibe64-source-editor__notice--error"};const _hoisted_24={key:2,class:"vibe64-source-editor__notice"};const _hoisted_25=["title","onClick"];const _hoisted_26={class:"vibe64-source-editor__search-path"};const _hoisted_27={class:"vibe64-source-editor__search-location"};const _hoisted_28={class:"vibe64-source-editor__search-preview"};const _hoisted_29={key:4,class:"vibe64-source-editor__notice"};const _hoisted_30={key:2,class:"vibe64-source-editor__notice"};const _hoisted_31={key:3,class:"vibe64-source-editor__notice vibe64-source-editor__notice--error"};const _hoisted_32={class:"vibe64-source-editor__main"};const _hoisted_33={key:0,class:"vibe64-source-editor__banner"};const _hoisted_34={key:1,class:"vibe64-source-editor__empty"};const _hoisted_35={class:"mb-4"};const _hoisted_36={key:2,class:"vibe64-source-editor__empty"};const _hoisted_37={key:3,class:"vibe64-source-editor__banner vibe64-source-editor__banner--error"};const _hoisted_38=["aria-label"];const _hoisted_39={class:"vibe64-source-editor__download-status",role:"status"};const SOURCE_EDITOR_TREE_STATE_STORAGE_KEY="vibe64:source-editor:tree-state";const _sfc_main$2={__name:"Vibe64SessionSourceEditor",props:{agentActive:{type:Boolean,default:false},fileBookmarks:{type:Object,default:null},active:{default:false,type:Boolean},assistantAvailable:{default:true,type:Boolean},assistantUnavailableMessage:{default:"The selected AI connection is unavailable for this account.",type:String},codeFocusMode:{default:false,type:Boolean},openRequest:{default:null,type:Object},projectSlug:{default:"",type:String},sessionId:{default:"",type:String},sessionsApiPath:{default:"",type:String},askCodexAvailable:{default:false,type:Boolean},navigateReferencedSource:{default:null,type:Function},sourcePathClickWithoutModifier:{default:false,type:Boolean}},emits:["ask-codex-about-file"],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const editorElement=ref(null);let editorView=null;let explanationFocusTimer=null;let renderedEditorPath="";let resettingEditor=false;let sourceEditorUnmounted=false;const editor=useVibe64SourceEditor({active:()=>props.active,agentActive:()=>props.agentActive,navigateReferencedSource:navigation=>{var _a;return(_a=props.navigateReferencedSource)==null?void 0:_a.call(props,navigation)},projectSlug:()=>props.projectSlug,readCurrentText:()=>(editorView==null?void 0:editorView.state.doc.toString())??"",sessionId:()=>props.sessionId,sessionsApiPath:()=>props.sessionsApiPath});const displayedPath=computed(()=>{var _a;return((_a=editor.downloadOnlyFile.value)==null?void 0:_a.path)||editor.selectedPath.value});const selectedStarred=computed(()=>{var _a;return((_a=props.fileBookmarks)==null?void 0:_a.paths.value.includes(displayedPath.value))||false});const downloadingPath=ref("");const downloadDraftOpen=ref(false);const downloadSaving=ref(false);const downloadError=ref("");let draftDownload=null;const downloadFeedback=useUiFeedback({source:"vibe64.source-editor.download"});function requestDownload(filePath){if(!filePath||downloadingPath.value){return}const target={path:filePath,sessionId:props.sessionId,sessionsApiPath:readRefOrGetterValue(props.sessionsApiPath),projectSlug:props.projectSlug};if(filePath===editor.selectedPath.value&&(editor.dirty.value||editor.saving.value)){draftDownload=target;downloadError.value="";downloadDraftOpen.value=true}else{void downloadFile(target)}}async function downloadFile(target){var _a,_b;downloadingPath.value=target.path;try{const url=scopedDevelopmentApiUrl(vibe64SourceEditorDownloadPath(target.sessionsApiPath,target.sessionId,target.path),target.projectSlug);const response=await fetch(url,{credentials:"include"});if(!response.ok||!((_a=response.headers.get("content-disposition"))==null?void 0:_a.startsWith("attachment;"))){const failure=await response.json().catch(()=>({}));const message=typeof failure.error==="string"?failure.error:((_b=failure.error)==null?void 0:_b.message)||"File could not download. Check your connection and access, then retry.";throw new Error(message)}const blob=await response.blob();const objectUrl=URL.createObjectURL(blob);const anchor=document.createElement("a");anchor.href=objectUrl;anchor.download=basename(target.path);document.body.append(anchor);anchor.click();anchor.remove();setTimeout(()=>URL.revokeObjectURL(objectUrl),1e3)}catch(cause){downloadFeedback.error(cause,"File could not download.")}finally{downloadingPath.value=""}}function downloadSavedDraft(){downloadDraftOpen.value=false;void downloadFile(draftDownload)}async function saveAndDownload(){downloadSaving.value=true;await editor.saveNow();downloadSaving.value=false;if(editor.dirty.value||editor.saveError.value){downloadError.value=editor.saveError.value||"The file still has unsaved edits.";return}downloadSavedDraft()}watch([()=>props.active,()=>props.agentActive],([active,working],[wasActive,wasWorking])=>{var _a;if(active&&(!wasActive||wasWorking&&!working)){void((_a=props.fileBookmarks)==null?void 0:_a.refresh())}});watch(()=>props.sessionId,()=>{downloadDraftOpen.value=false});const languageCompartment=new Compartment;const lineWrappingCompartment=new Compartment;const editorPerformanceSetup=[lineNumbers(),highlightActiveLineGutter(),history(),drawSelection(),dropCursor(),EditorState.allowMultipleSelections.of(true),indentOnInput(),syntaxHighlighting(defaultHighlightStyle,{fallback:true}),bracketMatching(),rectangularSelection(),crosshairCursor(),keymap.of([indentWithTab,...defaultKeymap,...historyKeymap,...searchKeymap])];const sourcePathClickExtension=EditorView.domEventHandlers({click(event,view){if(!sourcePathNavigationGesture(event)||event.button!==0){return false}const sourcePath=sourcePathReferenceAtEvent(view,event);if(!sourcePath){return false}event.preventDefault();event.stopPropagation();void editor.openReferencedSourcePath({fromPath:editor.selectedPath.value,target:sourcePath.target});return true},mouseleave(_event,view){setSourcePathHoverState(view,false);return false},mousemove(event,view){setSourcePathHoverState(view,Boolean(sourcePathNavigationGesture(event)&&sourcePathReferenceAtEvent(view,event)));return false}});const expandedDirectoryPaths=ref([]);const explanationCollapsed=ref(false);const{smAndDown:mobile}=useDisplay();const fileListCollapsed=ref(mobile.value);const newFileDialogOpen=ref(false);const sourceEditorElement=ref(null);const newFileDirectory=ref("");const newFileError=ref("");const newFileName=ref("");const treeStateStorageKey=computed(()=>sourceEditorTreeStateStorageKey({sessionId:props.sessionId,sessionsApiPath:props.sessionsApiPath}));const fastOpenPanelVisible=computed(()=>Boolean(editor.fileQuery.value));const searchPanelVisible=computed(()=>Boolean(editor.searchQuery.value)||editor.searchResults.value.length>0);const selectedFileName=computed(()=>editor.loadingPath.value||displayedPath.value?basename(editor.loadingPath.value||displayedPath.value):"Choose a source file");const newFileDirectoryLabel=computed(()=>newFileDirectory.value?`Create in ${newFileDirectory.value}`:"Create in source root");const newFilePath=computed(()=>{const name=normalizeNewFileEntryPath(newFileName.value);if(!name){return""}return newFileDirectory.value?`${newFileDirectory.value}/${name}`:name});const newFileCreateDisabled=computed(()=>Boolean(editor.creatingFile.value||!newFilePath.value));function normalizeTreePath(value=""){return String(value||"").trim().replaceAll("\\","/").replace(/^\.\/+/u,"")}function normalizeNewFileEntryPath(value=""){const raw=normalizeTreePath(value).replace(/\/+$/u,"");if(!raw||raw.startsWith("/")){return""}const parts=raw.split("/").filter(Boolean);if(!parts.length||parts.some(part=>part==="."||part==="..")){return""}return parts.join("/")}function basename(filePath=""){const segments=String(filePath||"").split("/");return segments.at(-1)||filePath}function searchResultTitle(result={}){return`${result.path||""}:${result.line||1}:${result.column||1}`}async function focusAfterLayout(rootElement=null,selector=""){await nextTick();if(sourceEditorUnmounted){return}if(explanationFocusTimer){clearTimeout(explanationFocusTimer)}explanationFocusTimer=setTimeout(()=>{var _a,_b,_c;explanationFocusTimer=null;(_c=(_b=(_a=rootElement==null?void 0:rootElement.querySelector)==null?void 0:_a.call(rootElement,selector))==null?void 0:_b.focus)==null?void 0:_c.call(_b)},0)}function collapseExplanation(event={}){var _a,_b;const rootElement=((_b=(_a=event==null?void 0:event.currentTarget)==null?void 0:_a.closest)==null?void 0:_b.call(_a,".vibe64-source-editor"))||sourceEditorElement.value;explanationCollapsed.value=true;void focusAfterLayout(rootElement,".vibe64-source-editor__side-rail--right")}function expandExplanation(event={}){var _a,_b;const rootElement=((_b=(_a=event==null?void 0:event.currentTarget)==null?void 0:_a.closest)==null?void 0:_b.call(_a,".vibe64-source-editor"))||sourceEditorElement.value;explanationCollapsed.value=false;void focusAfterLayout(rootElement,".vibe64-source-explanation__range")}async function closeExplanationPanel(event={}){var _a,_b;const rootElement=((_b=(_a=event==null?void 0:event.currentTarget)==null?void 0:_a.closest)==null?void 0:_b.call(_a,".vibe64-source-editor"))||sourceEditorElement.value;if(await editor.closeExplanation()){void focusAfterLayout(rootElement,".vibe64-source-editor__explain-button")}}function collapseFileList(){fileListCollapsed.value=true}function expandFileList(){fileListCollapsed.value=false}function normalizeExpandedDirectoryPaths(value=[]){return[...new Set((Array.isArray(value)?value:[]).map(path=>normalizeTreePath(path)).filter(Boolean))].sort((left,right)=>left.localeCompare(right))}function addExpandedDirectoryPaths(paths=[]){const normalizedPaths=normalizeExpandedDirectoryPaths(paths);if(!normalizedPaths.length){return}expandedDirectoryPaths.value=normalizeExpandedDirectoryPaths([...expandedDirectoryPaths.value,...normalizedPaths])}function parentDirectoryPathsFor(filePath=""){const parts=normalizeTreePath(filePath).split("/").filter(Boolean);const paths=[];for(let index=1;index<parts.length;index+=1){paths.push(parts.slice(0,index).join("/"))}return paths}function openNewFileDialog(directoryPath=""){newFileDirectory.value=normalizeTreePath(directoryPath);newFileName.value="";newFileError.value="";newFileDialogOpen.value=true}function closeNewFileDialog(){if(editor.creatingFile.value){return}newFileDialogOpen.value=false;newFileError.value=""}async function submitNewFile(){const filePath=newFilePath.value;if(!filePath||editor.creatingFile.value){if(String(newFileName.value||"").trim()){newFileError.value="Enter a nested file path without absolute or parent-directory segments."}return}const created=await editor.createFile(filePath);if(!created){newFileError.value=editor.createFileError.value||"Source file could not be created.";return}addExpandedDirectoryPaths(parentDirectoryPathsFor(filePath));newFileDialogOpen.value=false;newFileError.value="";if(mobile.value){collapseFileList()}}async function copySourcePath(path=""){const normalizedPath=normalizeTreePath(path);if(!normalizedPath){return}try{await writeClipboardText(normalizedPath)}catch{}}function askCodexAboutPath(path=""){const normalizedPath=normalizeTreePath(path);if(!normalizedPath||!props.askCodexAvailable){return}emit("ask-codex-about-file",normalizedPath)}function sourceEditorTreeStateStorageKey({sessionId="",sessionsApiPath=""}={}){const normalizedSessionId=String(sessionId||"").trim();const normalizedSessionsApiPath=String(sessionsApiPath||"").trim();if(!normalizedSessionId||!normalizedSessionsApiPath){return""}return[SOURCE_EDITOR_TREE_STATE_STORAGE_KEY,stableLocalStorageKeyPart(normalizedSessionsApiPath),stableLocalStorageKeyPart(normalizedSessionId)].join(":")}function languageExtension(filePath=""){const lowerPath=String(filePath||"").toLowerCase();if(lowerPath.endsWith(".vue")){return htmlSourceLanguage({matchClosingTags:false})}if(/\.(html|htm|xhtml|svg)$/u.test(lowerPath)){return htmlSourceLanguage()}if(/\.(js|jsx|mjs|cjs)$/u.test(lowerPath)){return javascript({jsx:true})}if(/\.(ts|tsx)$/u.test(lowerPath)){return javascript({jsx:lowerPath.endsWith(".tsx"),typescript:true})}if(lowerPath.endsWith(".json")){return json()}if(/\.(c|cc|cpp|cxx|h|hh|hpp|hxx)$/u.test(lowerPath)){return cpp()}if(/\.(sh|bash|zsh|fish)$/u.test(lowerPath)){return StreamLanguage.define(shell)}if(sourceEditorPathIsMarkdown(lowerPath)){return markdown()}return[]}function sourceEditorPathIsMarkdown(filePath=""){const lowerPath=String(filePath||"").toLowerCase();return/\.(md|markdown|todo)$/u.test(lowerPath)||/(^|\/)todo$/u.test(lowerPath)}function sourceEditorLineWrappingExtension(filePath=""){return sourceEditorPathIsMarkdown(filePath)?EditorView.lineWrapping:[]}function htmlSourceLanguage(options={}){return html({selfClosingTags:true,...options,nestedLanguages:[{attrs:(attrs={})=>["ts","typescript"].includes(String(attrs.lang||"").toLowerCase()),parser:typescriptLanguage.parser,tag:"script"},{attrs:(attrs={})=>String(attrs.lang||"").toLowerCase()==="jsx",parser:jsxLanguage.parser,tag:"script"},{attrs:(attrs={})=>String(attrs.lang||"").toLowerCase()==="tsx",parser:tsxLanguage.parser,tag:"script"}]})}function sourcePathModifierPressed(event={}){return event.ctrlKey||event.metaKey}function sourcePathNavigationGesture(event={}){return props.sourcePathClickWithoutModifier||sourcePathModifierPressed(event)}function setSourcePathHoverState(view,active=false){view.dom.classList.toggle("vibe64-source-editor__codemirror--source-link-hover",active)}function sourcePathReferenceAtEvent(view,event={}){const position=view.posAtCoords({x:event.clientX,y:event.clientY});if(position==null){return null}const line=view.state.doc.lineAt(position);return sourcePathReferenceAtLineColumn(line.text,position-line.from)}function sourcePathReferenceAtLineColumn(lineText="",column=0){return sourcePathReferencesInLine(lineText).find(reference=>column>=reference.from&&column<=reference.to)||null}function sourcePathReferencesInLine(lineText=""){const references=[];collectQuotedSourcePathReferences(lineText,references);collectUrlSourcePathReferences(lineText,references);return references}function collectQuotedSourcePathReferences(lineText="",references=[]){for(let index=0;index<lineText.length;index+=1){const quote=lineText[index];if(!['"',"'","`"].includes(quote)){continue}let cursor=index+1;let value="";while(cursor<lineText.length){const character=lineText[cursor];if(character==="\\"){value+=lineText[cursor+1]||"";cursor+=2;continue}if(character===quote){const target=sourcePathReferenceTarget(value);if(target){references.push({from:index+1,target,to:cursor})}index=cursor;break}value+=character;cursor+=1}}}function collectUrlSourcePathReferences(lineText="",references=[]){const urlPattern=/url\(\s*([^"'`\s)]+)\s*\)/giu;for(const match of lineText.matchAll(urlPattern)){const rawTarget=match[1]||"";const target=sourcePathReferenceTarget(rawTarget);if(!target){continue}const from=Number(match.index||0)+match[0].indexOf(rawTarget);references.push({from,target,to:from+rawTarget.length})}}function sourcePathReferenceTarget(value=""){const target=String(value||"").trim();if(!target||target.startsWith("//")||/^[a-z][a-z0-9+.-]*:/iu.test(target)){return""}if(target.startsWith("./")||target.startsWith("../")||target.startsWith("/")){return target}return""}function createEditor(){if(!editorElement.value||editorView){return}editorView=new EditorView({parent:editorElement.value,state:EditorState.create({doc:editor.text.value,extensions:[editorPerformanceSetup,sourcePathClickExtension,languageCompartment.of(languageExtension(editor.selectedPath.value)),lineWrappingCompartment.of(sourceEditorLineWrappingExtension(editor.selectedPath.value)),EditorView.updateListener.of(update=>{if(!update.docChanged||resettingEditor){return}editor.updateText()}),EditorView.theme({"&":{backgroundColor:"rgb(var(--v-theme-surface))",color:"rgb(var(--v-theme-on-surface))",fontSize:"13px",height:"100%"},".cm-content":{caretColor:"rgb(var(--v-theme-primary))",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace"},".cm-focused":{outline:"none"},".cm-gutters":{backgroundColor:"rgba(var(--v-theme-surface-variant), 0.38)",borderRight:"1px solid rgba(var(--v-border-color), 0.28)",color:"rgba(var(--v-theme-on-surface), 0.56)"},".cm-scroller":{fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace"},".cm-selectionBackground":{backgroundColor:"rgba(var(--v-theme-primary), 0.22)"}})]})});renderedEditorPath=editor.selectedPath.value}function replaceEditorDocument(){if(!editorView){return}const selectedPath=editor.selectedPath.value;const sameFile=renderedEditorPath===selectedPath;const currentText=editorView.state.doc.toString();const changes=editorView.state.changes(sameFile?sourceEditorDocumentChanges(currentText,editor.text.value):[{from:0,insert:editor.text.value,to:currentText.length}]);const effects=[languageCompartment.reconfigure(languageExtension(selectedPath)),lineWrappingCompartment.reconfigure(sourceEditorLineWrappingExtension(selectedPath))];const cursorRequest=editor.cursorRequest.value;const explicitCursorRequest=(cursorRequest==null?void 0:cursorRequest.path)===selectedPath&&Number(cursorRequest.line||0)>0;if(sameFile&&!explicitCursorRequest){const scrollSnapshot=editorView.scrollSnapshot().map(changes);if(scrollSnapshot){effects.unshift(scrollSnapshot)}}resettingEditor=true;try{editorView.dispatch({changes,effects})}finally{resettingEditor=false}renderedEditorPath=selectedPath;applyCursorRequest()}function applyCursorRequest(){if(!editorView){return}const request=editor.cursorRequest.value;const line=Number((request==null?void 0:request.line)||0);if(!line){return}const boundedLine=Math.max(1,Math.min(line,editorView.state.doc.lines));const lineInfo=editorView.state.doc.line(boundedLine);const column=Math.max(0,Number((request==null?void 0:request.column)||1)-1);const anchor=Math.min(lineInfo.to,lineInfo.from+column);editorView.dispatch({selection:{anchor},scrollIntoView:true});editorView.focus()}function runEditorCommand(command=""){if(!editorView){return}if(command==="undo"){undo(editorView)}else if(command==="redo"){redo(editorView)}}function currentEditorSelectionRange(){if(!editorView){return{endColumn:1,endLine:1,startColumn:1,startLine:1}}const selection=editorView.state.selection.main;const from=Math.min(selection.from,selection.to);const to=Math.max(selection.from,selection.to);const fromLine=editorView.state.doc.lineAt(from);const toLine=editorView.state.doc.lineAt(to);if(selection.empty){const firstLine=editorView.state.doc.line(1);const lastLine=editorView.state.doc.line(editorView.state.doc.lines);return{endColumn:Math.max(1,lastLine.length+1),endLine:lastLine.number,scope:"file",startColumn:1,startLine:firstLine.number}}return{endColumn:Math.max(1,to-toLine.from+1),endLine:toLine.number,scope:"selection",startColumn:Math.max(1,from-fromLine.from+1),startLine:fromLine.number}}function explainCurrentSelection(){if(!props.assistantAvailable){return false}void editor.explainSelection(currentEditorSelectionRange());return true}function retryExplanation(){if(!props.assistantAvailable){return false}void editor.retryExplanation();return true}function sendExplanationFollowup(){if(!props.assistantAvailable){return false}void editor.sendExplanationFollowup();return true}function openExplanationRange(explanation={}){const sourceRange=(explanation==null?void 0:explanation.sourceRange)||{};if(sourceRange.path){void editor.openFile(sourceRange.path,{column:sourceRange.startColumn,line:sourceRange.startLine})}}function openExplanationSourceLink(sourceLink={}){const path=String((sourceLink==null?void 0:sourceLink.path)||"").trim();if(!path){return}void editor.openFile(path,{column:Number(sourceLink.column||0)||0,line:Number(sourceLink.line||0)||0})}function handleDirectoryOpenChange({open=false,path=""}={}){const normalizedPath=normalizeTreePath(path);if(!normalizedPath){return}const nextPaths=new Set(expandedDirectoryPaths.value);if(open){nextPaths.add(normalizedPath);editor.loadDirectory(normalizedPath)}else{nextPaths.delete(normalizedPath)}expandedDirectoryPaths.value=normalizeExpandedDirectoryPaths([...nextPaths])}function resetExpandedDirectoryPaths(){expandedDirectoryPaths.value=normalizeExpandedDirectoryPaths(editor.preexpandedDirectoryPaths.value)}function closeAllDirectories(){expandedDirectoryPaths.value=[]}watch(mobile,compact=>{fileListCollapsed.value=compact});watch(editor.loadingPath,filePath=>{if(mobile.value&&filePath){collapseFileList()}});watch(()=>props.openRequest,(request=null)=>{if(request==null?void 0:request.path){editor.openRequest(request)}},{deep:true,immediate:true});watch(()=>props.active,async active=>{var _a;if(!active){return}await nextTick();(_a=editorView==null?void 0:editorView.requestMeasure)==null?void 0:_a.call(editorView)});watch(editor.loadedVersion,()=>{replaceEditorDocument()});watch(()=>{var _a;return((_a=editor.activeExplanation.value)==null?void 0:_a.id)||""},(explanationId="")=>{if(explanationId){explanationCollapsed.value=false}});watch(editor.preexpandedDirectoryPaths,paths=>{addExpandedDirectoryPaths(paths)});watch(editor.revealedDirectoryPaths,paths=>{addExpandedDirectoryPaths(paths)});watch(treeStateStorageKey,(storageKey="")=>{expandedDirectoryPaths.value=normalizeExpandedDirectoryPaths(readLocalStorageJson(storageKey,[]))},{immediate:true});watch(expandedDirectoryPaths,paths=>{if(treeStateStorageKey.value){writeLocalStorageJson(treeStateStorageKey.value,normalizeExpandedDirectoryPaths(paths))}});onMounted(()=>{createEditor()});onBeforeUnmount(()=>{sourceEditorUnmounted=true;if(explanationFocusTimer){clearTimeout(explanationFocusTimer);explanationFocusTimer=null}editorView==null?void 0:editorView.destroy();editorView=null;renderedEditorPath=""});return(_ctx,_cache)=>{var _a;return openBlock(),createElementBlock("section",{ref_key:"sourceEditorElement",ref:sourceEditorElement,class:normalizeClass(["vibe64-source-editor",{"vibe64-source-editor--code-focus":__props.codeFocusMode,"vibe64-source-editor--mobile":unref(mobile),"vibe64-source-editor--mobile-file-open":unref(mobile)&&fileListCollapsed.value}]),"aria-label":"Session source editor"},[createBaseVNode("header",_hoisted_1$1,[unref(mobile)&&!__props.codeFocusMode?(openBlock(),createBlock(VBtn,{key:0,"aria-expanded":!fileListCollapsed.value,"aria-label":fileListCollapsed.value?"Show files":"Hide files",icon:fileListCollapsed.value?unref(mdiFolderOutline):unref(mdiClose),variant:"text",onClick:_cache[0]||(_cache[0]=$event=>fileListCollapsed.value?expandFileList():collapseFileList())},null,8,["aria-expanded","aria-label","icon"])):createCommentVNode("",true),createBaseVNode("div",_hoisted_2$1,[!unref(mobile)?(openBlock(),createBlock(VIcon,{key:0,icon:unref(mdiFileCodeOutline),size:"19"},null,8,["icon"])):createCommentVNode("",true),createBaseVNode("h2",{title:unref(editor).loadingPath.value||displayedPath.value||"Choose a source file"},toDisplayString(selectedFileName.value),9,_hoisted_3$1)]),unref(mobile)?(openBlock(),createElementBlock("div",_hoisted_4$1,[createVNode(VBtn,{disabled:!unref(editor).dirty.value||unref(editor).saving.value,"aria-label":unref(editor).saving.value?"Saving file":"Save now",icon:unref(mdiContentSaveOutline),variant:"tonal",onClick:unref(editor).saveNow},null,8,["disabled","aria-label","icon","onClick"]),createVNode(VMenu,null,{activator:withCtx(({props:menuProps})=>[createVNode(VBtn,mergeProps(menuProps,{icon:unref(mdiDotsVertical),"aria-label":"File actions",variant:"text"}),null,16,["icon"])]),default:withCtx(()=>[createVNode(VList,{density:"compact"},{default:withCtx(()=>[unref(editor).statusLabel.value?(openBlock(),createBlock(VListItem,{key:0,title:unref(editor).statusLabel.value,class:normalizeClass({"text-error":unref(editor).saveError.value})},null,8,["title","class"])):createCommentVNode("",true),__props.fileBookmarks?(openBlock(),createBlock(VListItem,{key:1,title:selectedStarred.value?"Unstar file":"Star file","prepend-icon":selectedStarred.value?unref(mdiStar):unref(mdiStarOutline),disabled:!displayedPath.value||__props.fileBookmarks.pendingPaths.value.includes(displayedPath.value),onClick:_cache[1]||(_cache[1]=$event=>__props.fileBookmarks.toggle(displayedPath.value))},null,8,["title","prepend-icon","disabled"])):createCommentVNode("",true),createVNode(VListItem,{title:"Download file","prepend-icon":unref(mdiDownload),disabled:!displayedPath.value||unref(editor).loadingFile.value||Boolean(downloadingPath.value),onClick:_cache[2]||(_cache[2]=$event=>requestDownload(displayedPath.value))},null,8,["prepend-icon","disabled"]),createVNode(VListItem,{title:"Undo","prepend-icon":unref(mdiUndoVariant),disabled:!unref(editor).selectedPath.value,onClick:_cache[3]||(_cache[3]=$event=>runEditorCommand("undo"))},null,8,["prepend-icon","disabled"]),createVNode(VListItem,{title:"Redo","prepend-icon":unref(mdiRedoVariant),disabled:!unref(editor).selectedPath.value,onClick:_cache[4]||(_cache[4]=$event=>runEditorCommand("redo"))},null,8,["prepend-icon","disabled"]),createVNode(VListItem,{title:"Explain file or selection","prepend-icon":unref(mdiRobotOutline),disabled:!__props.assistantAvailable||!unref(editor).selectedPath.value||unref(editor).explanationBusy.value||unref(editor).explanationClosing.value,onClick:explainCurrentSelection},null,8,["prepend-icon","disabled"]),createVNode(VListItem,{title:"Refresh files","prepend-icon":unref(mdiRefresh),disabled:unref(editor).loadingTree.value,onClick:unref(editor).refresh},null,8,["prepend-icon","disabled","onClick"])]),_:1})]),_:1})])):(openBlock(),createElementBlock("div",_hoisted_5$1,[__props.fileBookmarks?(openBlock(),createBlock(VBtn,{key:0,"aria-label":selectedStarred.value?"Unstar file":"Star file","aria-pressed":selectedStarred.value,disabled:!displayedPath.value||__props.fileBookmarks.pendingPaths.value.includes(displayedPath.value),icon:selectedStarred.value?unref(mdiStar):unref(mdiStarOutline),size:"small",title:selectedStarred.value?"Unstar file":"Star file",variant:"text",onClick:_cache[5]||(_cache[5]=$event=>__props.fileBookmarks.toggle(displayedPath.value))},null,8,["aria-label","aria-pressed","disabled","icon","title"])):createCommentVNode("",true),createVNode(VBtn,{"aria-label":"Download file",disabled:!displayedPath.value||unref(editor).loadingFile.value||Boolean(downloadingPath.value),icon:unref(mdiDownload),size:"small",title:downloadingPath.value?"Downloading file…":"Download file",variant:"text",onClick:_cache[6]||(_cache[6]=$event=>requestDownload(displayedPath.value))},null,8,["disabled","icon","title"]),unref(editor).statusLabel.value?(openBlock(),createElementBlock("span",{key:1,class:normalizeClass(["vibe64-source-editor__status",{"vibe64-source-editor__status--error":unref(editor).saveError.value}])},toDisplayString(unref(editor).statusLabel.value),3)):createCommentVNode("",true),createVNode(VBtn,{disabled:!unref(editor).selectedPath.value,icon:unref(mdiUndoVariant),size:"small",title:"Undo",type:"button",variant:"text",onClick:_cache[7]||(_cache[7]=$event=>runEditorCommand("undo"))},null,8,["disabled","icon"]),createVNode(VBtn,{disabled:!unref(editor).selectedPath.value,icon:unref(mdiRedoVariant),size:"small",title:"Redo",type:"button",variant:"text",onClick:_cache[8]||(_cache[8]=$event=>runEditorCommand("redo"))},null,8,["disabled","icon"]),createVNode(VBtn,{disabled:!unref(editor).dirty.value||unref(editor).saving.value,icon:unref(mdiContentSaveOutline),loading:unref(editor).saving.value,size:"small",title:"Save now",type:"button",variant:"tonal",onClick:unref(editor).saveNow},null,8,["disabled","icon","loading","onClick"]),createVNode(VBtn,{class:"vibe64-source-editor__explain-button","aria-busy":unref(editor).explanationBusy.value||unref(editor).explanationClosing.value?"true":"false",color:"primary",disabled:!__props.assistantAvailable||!unref(editor).selectedPath.value||unref(editor).explanationBusy.value||unref(editor).explanationClosing.value,"prepend-icon":unref(mdiRobotOutline),size:"small",title:!__props.assistantAvailable?__props.assistantUnavailableMessage:unref(editor).explanationClosing.value?"Closing explanation":unref(editor).explanationBusy.value?"Explanation in progress":"Explain file or selection",type:"button",variant:"tonal",onClick:explainCurrentSelection},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(editor).explanationClosing.value?"Closing…":unref(editor).explanationBusy.value?"Working…":"Explain"),1)]),_:1},8,["aria-busy","disabled","prepend-icon","title"]),createVNode(VBtn,{disabled:unref(editor).loadingTree.value,icon:unref(mdiRefresh),"aria-busy":unref(editor).loadingTree.value,size:"small",title:"Refresh files",type:"button",variant:"text",onClick:unref(editor).refresh},null,8,["disabled","icon","aria-busy","onClick"])]))]),!__props.codeFocusMode&&(!unref(mobile)||!fileListCollapsed.value)?(openBlock(),createElementBlock("div",_hoisted_6$1,[createBaseVNode("div",_hoisted_7$1,[createVNode(VTextField,{autocomplete:"off",clearable:"",density:"compact","hide-details":"",label:"Open file","model-value":unref(editor).fileQuery.value,"prepend-inner-icon":unref(mdiFileSearchOutline),variant:"outlined",onKeydown:withKeys(withModifiers(unref(editor).openFirstFileMatch,["prevent"]),["enter"]),"onUpdate:modelValue":unref(editor).updateFileQuery},null,8,["model-value","prepend-inner-icon","onKeydown","onUpdate:modelValue"]),fastOpenPanelVisible.value?(openBlock(),createElementBlock("div",_hoisted_8$1,[unref(editor).fileMatchesLoading.value?(openBlock(),createElementBlock("div",_hoisted_9$1," Finding files... ")):unref(editor).fileMatchesError.value?(openBlock(),createElementBlock("div",_hoisted_10$1,toDisplayString(unref(editor).fileMatchesError.value),1)):(openBlock(),createElementBlock(Fragment,{key:2},[(openBlock(true),createElementBlock(Fragment,null,renderList(unref(editor).fileMatches.value,file=>{return openBlock(),createElementBlock("button",{key:file.path,class:"vibe64-source-editor__match",title:file.path,type:"button",onClick:$event=>unref(editor).openFileMatch(file.path)},[createBaseVNode("span",_hoisted_12,toDisplayString(file.name||basename(file.path)),1),createBaseVNode("span",_hoisted_13,toDisplayString(file.path),1)],8,_hoisted_11$1)}),128)),!unref(editor).fileMatches.value.length?(openBlock(),createElementBlock("div",_hoisted_14," No matching files. ")):createCommentVNode("",true),unref(editor).fileMatchesTruncated.value?(openBlock(),createElementBlock("div",_hoisted_15," Keep typing to narrow the list. ")):createCommentVNode("",true)],64))])):createCommentVNode("",true)]),createBaseVNode("div",_hoisted_16,[createVNode(VTextField,{autocomplete:"off",clearable:"",density:"compact","hide-details":"",label:"Find in files","model-value":unref(editor).searchQuery.value,"prepend-inner-icon":unref(mdiMagnify),variant:"outlined",onKeydown:_cache[9]||(_cache[9]=withKeys(withModifiers($event=>unref(editor).openSearchResult(unref(editor).searchResults.value[0]),["prevent"]),["enter"])),"onUpdate:modelValue":unref(editor).updateSearchQuery},null,8,["model-value","prepend-inner-icon","onUpdate:modelValue"])])])):createCommentVNode("",true),createBaseVNode("div",{class:normalizeClass(["vibe64-source-editor__body",{"vibe64-source-editor__body--code-focus":__props.codeFocusMode,"vibe64-source-editor__body--file-list-collapsed":fileListCollapsed.value&&!__props.codeFocusMode}])},[!__props.codeFocusMode?withDirectives((openBlock(),createElementBlock("aside",{key:0,class:normalizeClass(["vibe64-source-editor__sidebar",{"vibe64-source-editor__sidebar--collapsed":fileListCollapsed.value}])},[fileListCollapsed.value?(openBlock(),createElementBlock("button",{key:0,"aria-label":"Show files",class:"vibe64-source-editor__side-rail",title:"Show files",type:"button",onClick:expandFileList},[createVNode(VIcon,{icon:unref(mdiChevronRight),size:"22"},null,8,["icon"]),_cache[17]||(_cache[17]=createBaseVNode("span",null,"Files",-1))])):(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode("div",_hoisted_17,[_cache[18]||(_cache[18]=createBaseVNode("span",null,"Files",-1)),createBaseVNode("div",_hoisted_18,[createVNode(VBtn,{"aria-label":"New file at source root",disabled:unref(editor).creatingFile.value||!unref(editor).tree.value,icon:unref(mdiFilePlusOutline),size:"x-small",title:"New file at source root",type:"button",variant:"text",onClick:_cache[10]||(_cache[10]=$event=>openNewFileDialog(""))},null,8,["disabled","icon"]),createVNode(VBtn,{class:"vibe64-source-editor__collapse-files-button","aria-label":"Collapse file list",icon:unref(mdiChevronLeft),size:"small",title:"Collapse file list",type:"button",variant:"text",onClick:collapseFileList},null,8,["icon"]),createVNode(VBtn,{"aria-label":"Reset folder view",disabled:!unref(editor).tree.value,icon:unref(mdiRestore),size:"x-small",title:"Reset folder view",type:"button",variant:"text",onClick:resetExpandedDirectoryPaths},null,8,["disabled","icon"]),createVNode(VBtn,{"aria-label":"Close all folders",disabled:!unref(editor).tree.value||!expandedDirectoryPaths.value.length,icon:unref(mdiCollapseAllOutline),size:"x-small",title:"Close all folders",type:"button",variant:"text",onClick:closeAllDirectories},null,8,["disabled","icon"])])]),__props.fileBookmarks?(openBlock(),createElementBlock("details",{key:0,class:"vibe64-source-editor__starred",open:__props.fileBookmarks.files.value.length<=4},[createBaseVNode("summary",null,[_cache[19]||(_cache[19]=createTextVNode("Starred ",-1)),createBaseVNode("span",null,toDisplayString(__props.fileBookmarks.files.value.length),1)]),createVNode(Vibe64StarredFilesList,{bookmarks:__props.fileBookmarks,compact:"",onOpenFile:unref(editor).openFile},null,8,["bookmarks","onOpenFile"])],8,_hoisted_19)):createCommentVNode("",true),searchPanelVisible.value?(openBlock(),createElementBlock("section",_hoisted_20,[createBaseVNode("div",_hoisted_21,[_cache[20]||(_cache[20]=createBaseVNode("span",null,"Find results",-1)),createBaseVNode("small",null,toDisplayString(unref(editor).searchResults.value.length),1)]),unref(editor).searchLoading.value?(openBlock(),createElementBlock("div",_hoisted_22," Searching files... ")):unref(editor).searchError.value?(openBlock(),createElementBlock("div",_hoisted_23,toDisplayString(unref(editor).searchError.value),1)):!unref(editor).searchResults.value.length?(openBlock(),createElementBlock("div",_hoisted_24," No results. ")):(openBlock(true),createElementBlock(Fragment,{key:3},renderList(unref(editor).searchResults.value,result=>{return openBlock(),createElementBlock("button",{key:`${result.path}:${result.line}:${result.column}:${result.preview}`,class:"vibe64-source-editor__search-result",title:searchResultTitle(result),type:"button",onClick:$event=>unref(editor).openSearchResult(result)},[createBaseVNode("span",_hoisted_26,toDisplayString(result.path),1),createBaseVNode("span",_hoisted_27,"Line "+toDisplayString(result.line),1),createBaseVNode("span",_hoisted_28,toDisplayString(result.preview),1)],8,_hoisted_25)}),128)),unref(editor).searchTruncated.value?(openBlock(),createElementBlock("div",_hoisted_29," Search stopped at the first matches. Narrow the query for more precision. ")):createCommentVNode("",true)])):createCommentVNode("",true),unref(editor).loadingTree.value&&!unref(editor).tree.value?(openBlock(),createElementBlock("div",_hoisted_30," Loading files... ")):unref(editor).loadError.value&&!unref(editor).tree.value?(openBlock(),createElementBlock("div",_hoisted_31,toDisplayString(unref(editor).loadError.value),1)):unref(editor).tree.value?(openBlock(),createBlock(Vibe64SourceFileTree,{key:4,"expanded-paths":expandedDirectoryPaths.value,"load-errors":unref(editor).treeLoadErrors.value,"loading-paths":unref(editor).treeLoadingPaths.value,node:unref(editor).tree.value,"selected-path":displayedPath.value,"starred-paths":((_a=__props.fileBookmarks)==null?void 0:_a.paths.value)||[],"ask-codex-available":__props.askCodexAvailable,onAskCodex:askCodexAboutPath,onCopyPath:copySourcePath,onDirectoryOpenChange:handleDirectoryOpenChange,onLoadMoreDirectory:unref(editor).loadMoreDirectory,onNewFile:openNewFileDialog,onOpenFile:unref(editor).openFile,onToggleStar:_cache[11]||(_cache[11]=$event=>{var _a2;return(_a2=__props.fileBookmarks)==null?void 0:_a2.toggle($event)}),onDownloadFile:requestDownload},null,8,["expanded-paths","load-errors","loading-paths","node","selected-path","starred-paths","ask-codex-available","onLoadMoreDirectory","onOpenFile"])):createCommentVNode("",true)],64))],2)),[[vShow,!unref(mobile)||!fileListCollapsed.value]]):createCommentVNode("",true),withDirectives(createBaseVNode("main",_hoisted_32,[unref(editor).loadError.value&&unref(editor).tree.value?(openBlock(),createElementBlock("div",_hoisted_33,toDisplayString(unref(editor).loadError.value),1)):createCommentVNode("",true),unref(editor).downloadOnlyFile.value&&!unref(editor).loadingFile.value?(openBlock(),createElementBlock("div",_hoisted_34,[createBaseVNode("p",_hoisted_35,toDisplayString(unref(editor).downloadOnlyFile.value.message),1),createVNode(VBtn,{color:"primary",disabled:Boolean(downloadingPath.value),"prepend-icon":unref(mdiDownload),onClick:_cache[12]||(_cache[12]=$event=>requestDownload(unref(editor).downloadOnlyFile.value.path))},{default:withCtx(()=>[createTextVNode(toDisplayString(downloadingPath.value?"Downloading…":"Download file"),1)]),_:1},8,["disabled","prepend-icon"])])):!unref(editor).selectedPath.value&&!unref(editor).loadingFile.value?(openBlock(),createElementBlock("div",_hoisted_36," Select a file to edit. ")):createCommentVNode("",true),unref(editor).explanationError.value&&!unref(editor).activeExplanation.value?(openBlock(),createElementBlock("div",_hoisted_37,toDisplayString(unref(editor).explanationError.value),1)):createCommentVNode("",true),createBaseVNode("div",{class:normalizeClass(["vibe64-source-editor__workspace",{"vibe64-source-editor__workspace--with-explanation":unref(editor).activeExplanation.value,"vibe64-source-editor__workspace--explanation-collapsed":unref(editor).activeExplanation.value&&explanationCollapsed.value}])},[createBaseVNode("div",{ref_key:"editorElement",ref:editorElement,class:normalizeClass(["vibe64-source-editor__codemirror",{"vibe64-source-editor__codemirror--hidden":!unref(editor).selectedPath.value||unref(editor).loadingFile.value}])},null,2),unref(editor).loadingFile.value?(openBlock(),createElementBlock("div",{key:0,"aria-label":`Opening ${selectedFileName.value}`,"aria-live":"polite",class:"vibe64-source-editor__file-loading",role:"status"},[createVNode(VSkeletonLoader,{class:"vibe64-source-editor__file-skeleton",type:"image"})],8,_hoisted_38)):createCommentVNode("",true),unref(editor).activeExplanation.value?(openBlock(),createElementBlock("div",{key:1,class:normalizeClass(["vibe64-source-editor__explanation-dock",{"vibe64-source-editor__explanation-dock--collapsed":explanationCollapsed.value}])},[withDirectives(createVNode(Vibe64SourceExplanationPanel,{"assistant-available":__props.assistantAvailable,"assistant-unavailable-message":__props.assistantUnavailableMessage,busy:unref(editor).explanationBusy.value,closing:unref(editor).explanationClosing.value,explanation:unref(editor).activeExplanation.value,followup:unref(editor).explanationFollowup.value,"selected-path":unref(editor).selectedPath.value,onClose:closeExplanationPanel,onCollapse:collapseExplanation,onOpenRange:openExplanationRange,onOpenSourceLink:openExplanationSourceLink,onRetry:retryExplanation,onSendFollowup:sendExplanationFollowup,onStop:unref(editor).stopExplanation,"onUpdate:followup":unref(editor).updateExplanationFollowup},null,8,["assistant-available","assistant-unavailable-message","busy","closing","explanation","followup","selected-path","onStop","onUpdate:followup"]),[[vShow,!explanationCollapsed.value]]),withDirectives(createBaseVNode("button",{"aria-label":"Show explanation",class:"vibe64-source-editor__side-rail vibe64-source-editor__side-rail--right",title:"Show explanation",type:"button",onClick:expandExplanation},[createVNode(VIcon,{icon:unref(mdiChevronLeft),size:"22"},null,8,["icon"]),_cache[21]||(_cache[21]=createBaseVNode("span",null,"AI",-1))],512),[[vShow,explanationCollapsed.value]])],2)):createCommentVNode("",true)],2)],512),[[vShow,!unref(mobile)||fileListCollapsed.value||__props.codeFocusMode]])],2),createVNode(VDialog,{modelValue:newFileDialogOpen.value,"onUpdate:modelValue":_cache[14]||(_cache[14]=$event=>newFileDialogOpen.value=$event),"max-width":"520"},{default:withCtx(()=>[createVNode(VCard,null,{default:withCtx(()=>[createVNode(VCardTitle,null,{default:withCtx(()=>[..._cache[22]||(_cache[22]=[createTextVNode("New file",-1)])]),_:1}),createVNode(VCardText,{class:"vibe64-source-editor__new-file-dialog"},{default:withCtx(()=>[createBaseVNode("p",null,toDisplayString(newFileDirectoryLabel.value),1),newFileError.value?(openBlock(),createBlock(VAlert,{key:0,density:"compact",type:"warning",variant:"tonal"},{default:withCtx(()=>[createTextVNode(toDisplayString(newFileError.value),1)]),_:1})):createCommentVNode("",true),createVNode(VTextField,{modelValue:newFileName.value,"onUpdate:modelValue":_cache[13]||(_cache[13]=$event=>newFileName.value=$event),autofocus:"",autocomplete:"off",disabled:unref(editor).creatingFile.value,label:"Path",placeholder:"components/NewFile.vue",variant:"outlined",onKeydown:withKeys(withModifiers(submitNewFile,["prevent"]),["enter"])},null,8,["modelValue","disabled","onKeydown"])]),_:1}),createVNode(VCardActions,null,{default:withCtx(()=>[createVNode(VSpacer),createVNode(VBtn,{disabled:unref(editor).creatingFile.value,type:"button",variant:"text",onClick:closeNewFileDialog},{default:withCtx(()=>[..._cache[23]||(_cache[23]=[createTextVNode(" Cancel ",-1)])]),_:1},8,["disabled"]),createVNode(VBtn,{color:"primary",disabled:newFileCreateDisabled.value,loading:unref(editor).creatingFile.value,type:"button",variant:"flat",onClick:submitNewFile},{default:withCtx(()=>[..._cache[24]||(_cache[24]=[createTextVNode(" Create ",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),createVNode(VDialog,{modelValue:downloadDraftOpen.value,"onUpdate:modelValue":_cache[16]||(_cache[16]=$event=>downloadDraftOpen.value=$event),"max-width":"440"},{default:withCtx(()=>[createVNode(VCard,{title:"Download this file?"},{default:withCtx(()=>[createVNode(VCardText,null,{default:withCtx(()=>[_cache[25]||(_cache[25]=createTextVNode(" This file has unsaved edits. Download the saved version, or save your edits first. ",-1)),downloadError.value?(openBlock(),createBlock(VAlert,{key:0,class:"mt-3",density:"compact",type:"error",variant:"tonal"},{default:withCtx(()=>[createTextVNode(toDisplayString(downloadError.value),1)]),_:1})):createCommentVNode("",true)]),_:1}),createVNode(VCardActions,{class:"flex-wrap"},{default:withCtx(()=>[createVNode(VBtn,{disabled:downloadSaving.value,onClick:_cache[15]||(_cache[15]=$event=>downloadDraftOpen.value=false)},{default:withCtx(()=>[..._cache[26]||(_cache[26]=[createTextVNode("Cancel",-1)])]),_:1},8,["disabled"]),createVNode(VBtn,{disabled:downloadSaving.value,onClick:downloadSavedDraft},{default:withCtx(()=>[..._cache[27]||(_cache[27]=[createTextVNode("Download saved file",-1)])]),_:1},8,["disabled"]),createVNode(VBtn,{color:"primary",disabled:downloadSaving.value,onClick:saveAndDownload},{default:withCtx(()=>[createTextVNode(toDisplayString(downloadSaving.value?"Saving…":"Save & download"),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),createBaseVNode("span",_hoisted_39,toDisplayString(downloadingPath.value?"Downloading file…":""),1)],2)}}};const Vibe64SessionSourceEditor=_export_sfc(_sfc_main$2,[["__scopeId","data-v-ab1509c9"]]);const _hoisted_1=["aria-label"];const _hoisted_2={key:0,class:"session-file-area__drop-target",role:"status"};const _hoisted_3={key:1,class:"d-flex align-center ga-2 flex-wrap px-3 pt-2"};const _hoisted_4={class:"text-body-small flex-grow-1"};const _hoisted_5={key:2,class:"d-flex align-center ga-2 flex-wrap px-3"};const _hoisted_6={key:4,class:"pa-4"};const _hoisted_7={class:"text-body-medium session-file-area__filename"};const _hoisted_8={key:1,class:"session-file-area__preview",tabindex:"0"};const _hoisted_9={key:2,class:"pa-4"};const _hoisted_10={key:1,class:"pa-4 text-body-medium"};const _hoisted_11={key:0};const _sfc_main$1={__name:"Vibe64SessionFileArea",props:{area:{type:String,required:true},archived:{type:Boolean,default:false},sessionId:{type:String,required:true},sessionsApiPath:{type:String,required:true},projectSlug:{type:String,default:""},active:{type:Boolean,default:true},agentActive:{type:Boolean,default:false}},setup(__props){const props=__props;const{smAndDown:mobile}=useDisplay();const writable=computed(()=>props.area==="drop-zone");const base=computed(()=>`${props.sessionsApiPath}/${encodeURIComponent(props.sessionId)}/files/${encodeURIComponent(props.area)}`);const directory=ref("");const entries=ref([]);const location=ref("");const expired=ref(false);const hasMore=ref(false);const nextOffset=ref(0);const loading=ref(false);const loadError=ref("");const busy=ref(false);const file=ref(null);const draft=ref("");const dirty=computed(()=>file.value&&typeof file.value.text==="string"&&draft.value!==file.value.text);const uploadInput=ref(null);const dragDepth=ref(0);let disposed=false;const dialogOpen=ref(false);const dialogOperation=ref("");const dialogEntry=ref(null);const dialogName=ref("");const nameError=ref("");const feedback=useUiFeedback({source:"vibe64.files"});let generation=0;let pendingRefresh=false;const breadcrumbs=computed(()=>[{title:writable.value?"Drop Zone":"Session",path:""},...directory.value.split("/").filter(Boolean).map((name,i,parts)=>({title:name,path:parts.slice(0,i+1).join("/")}))]);function url(operation,filePath,offset=0){return`${base.value}/${operation}?${new URLSearchParams({path:filePath,offset})}`}async function request(endpoint,options){const result=await getHttpWebClient().request(endpoint,options);if((result==null?void 0:result.ok)===false)throw new Error(vibe64ApiResponseError(result,"File operation failed."));return result}async function loadDirectory(target="",append=false){const current=++generation;loading.value=true;loadError.value="";file.value=null;try{const result=await request(url("tree",target,append?nextOffset.value:0));if(current!==generation)return;directory.value=target;entries.value=append?[...entries.value,...result.tree.children]:result.tree.children;hasMore.value=result.tree.hasMore;nextOffset.value=result.tree.nextOffset;location.value=result.location||"";expired.value=result.expired===true}catch(error){if(current===generation)loadError.value=error.message}finally{if(current===generation)loading.value=false}}async function openEntry(entry){if(entry.type==="directory")return loadDirectory(entry.path);const current=++generation;loading.value=true;try{const result=await request(url("file",entry.path));if(current!==generation)return;file.value=result.file;draft.value=result.file.text}catch(error){if(current!==generation)return;file.value={path:entry.path,message:error.message}}finally{if(current===generation)loading.value=false}}async function command(run){if(busy.value)return;busy.value=true;try{await run()}catch(error){feedback.error(error,"File operation failed.")}finally{busy.value=false}}function save(){return command(async()=>{const result=await request(`${base.value}/file`,{method:"PUT",body:{path:file.value.path,baseHash:file.value.hash,text:draft.value}});file.value=result.file;draft.value=result.file.text})}function dragEnter(event){var _a;if(writable.value&&!expired.value&&!busy.value&&((_a=event.dataTransfer)==null?void 0:_a.types.includes("Files"))){dragDepth.value+=1}}function dragOver(event){if(event.dataTransfer){const canUpload=writable.value&&!expired.value&&!busy.value&&!dirty.value;event.dataTransfer.dropEffect=canUpload?"copy":"none"}}function dragLeave(){dragDepth.value=Math.max(0,dragDepth.value-1)}function dropFiles(event){var _a,_b;dragDepth.value=0;if(!writable.value||expired.value||busy.value)return;if(dirty.value){feedback.error(new Error("Save or discard your edits before uploading files."));return}const items=[...((_a=event.dataTransfer)==null?void 0:_a.items)||[]];if(items.some(item=>{var _a2,_b2;return(_b2=(_a2=item.webkitGetAsEntry)==null?void 0:_a2.call(item))==null?void 0:_b2.isDirectory})){feedback.error(new Error("Drop files individually, or upload a zip for a whole folder."));return}return uploadFiles([...((_b=event.dataTransfer)==null?void 0:_b.files)||[]])}function upload(event){const files=[...event.target.files||[]];event.target.value="";return uploadFiles(files)}function uploadFiles(files){if(!files.length)return;const endpoint=base.value;const folder=directory.value;return command(async()=>{for(const selected of files){if(disposed)break;try{if(selected.size>100*1024*1024)throw new Error("Choose a file no larger than 100 MiB.");const data2=new FormData;data2.append("file",selected);const target=[folder,selected.name].filter(Boolean).join("/");await request(`${endpoint}/upload?${new URLSearchParams({path:target})}`,{method:"POST",body:data2})}catch(error){feedback.error(new Error(`${selected.name}: ${error.message}`),"Upload failed.")}}if(!disposed)await loadDirectory(folder)})}function download(target,operation="download"){return command(async()=>{var _a;const response=await fetch(scopedDevelopmentApiUrl(url(operation,target),props.projectSlug),{credentials:"include"});if(!response.ok||!((_a=response.headers.get("content-disposition"))==null?void 0:_a.startsWith("attachment;"))){throw new Error(vibe64ApiResponseError(await response.json().catch(()=>({})),"Download failed."))}const objectUrl=URL.createObjectURL(await response.blob());const anchor=document.createElement("a");anchor.href=objectUrl;anchor.download=target.split("/").at(-1);document.body.append(anchor);anchor.click();anchor.remove();setTimeout(()=>URL.revokeObjectURL(objectUrl),1e3)})}function openDialog(operation,entry=null){dialogOperation.value=operation;dialogEntry.value=entry;dialogName.value=(entry==null?void 0:entry.name)||"";nameError.value="";dialogOpen.value=true}function confirmDialog(){const operation=dialogOperation.value;if(operation!=="delete"&&(!dialogName.value.trim()||/[/\\]/u.test(dialogName.value)||[".",".."].includes(dialogName.value.trim()))){nameError.value="Enter a name without directory separators.";return}return command(async()=>{const suffix=operation==="mkdir"?"directory":operation==="delete"?"file":"rename";const destination=[directory.value,dialogName.value.trim()].filter(Boolean).join("/");await request(`${base.value}/${suffix}`,{method:operation==="delete"?"DELETE":"POST",body:{path:operation==="mkdir"?destination:dialogEntry.value.path,destination}});dialogOpen.value=false;await loadDirectory(directory.value)})}function copyLocation(){return command(()=>writeClipboardText(location.value))}function refresh(){if(dirty.value||busy.value){pendingRefresh=true;return}pendingRefresh=false;return file.value?openEntry({type:"file",path:file.value.path}):loadDirectory(directory.value)}function formatSize(bytes){if(bytes<1024)return`${bytes} B`;if(bytes<1024*1024)return`${(bytes/1024).toFixed(1)} KiB`;return`${(bytes/(1024*1024)).toFixed(1)} MiB`}watch(base,()=>{directory.value="";void loadDirectory()},{immediate:true});watch(()=>props.agentActive,(working,wasWorking)=>{if(!wasWorking||working)return;if(props.active)void refresh();else pendingRefresh=true});watch([()=>props.active,dirty],([active,changed])=>{if(active&&!changed&&pendingRefresh)void refresh()});onScopeDispose(()=>{disposed=true;generation+=1});return(_ctx,_cache)=>{return openBlock(),createElementBlock("section",{class:normalizeClass(["session-file-area",{"session-file-area--mobile":unref(mobile)}]),"aria-label":__props.area==="session"?"Session files, read only":"Drop Zone files",onDragenter:withModifiers(dragEnter,["prevent"]),onDragover:withModifiers(dragOver,["prevent"]),onDragleave:withModifiers(dragLeave,["prevent"]),onDrop:withModifiers(dropFiles,["prevent"])},[dragDepth.value>0&&writable.value&&!expired.value&&!busy.value?(openBlock(),createElementBlock("div",_hoisted_2,[createVNode(VIcon,{icon:unref(mdiUpload),size:"40"},null,8,["icon"]),_cache[14]||(_cache[14]=createBaseVNode("span",null,"Drop files here to upload",-1))])):createCommentVNode("",true),!unref(mobile)||!file.value?(openBlock(),createElementBlock("div",_hoisted_3,[createBaseVNode("span",_hoisted_4,toDisplayString(__props.area==="session"?"Session runtime files · Read only":"Temporary file exchange · Deleted when this session is archived"),1),__props.archived&&__props.area==="session"?(openBlock(),createBlock(VBtn,{key:0,"prepend-icon":unref(mdiDownload),size:"small",variant:"text",disabled:busy.value,onClick:_cache[0]||(_cache[0]=$event=>download(`${__props.sessionId}.tar.gz`,"archive"))},{default:withCtx(()=>[..._cache[15]||(_cache[15]=[createTextVNode("Download archive",-1)])]),_:1},8,["prepend-icon","disabled"])):createCommentVNode("",true),location.value?(openBlock(),createBlock(VBtn,{key:1,"prepend-icon":unref(mdiContentCopy),size:"small",variant:"text",onClick:copyLocation},{default:withCtx(()=>[..._cache[16]||(_cache[16]=[createTextVNode("Copy AI path",-1)])]),_:1},8,["prepend-icon"])):createCommentVNode("",true),createVNode(VBtn,{icon:unref(mdiRefresh),"aria-label":"Refresh files",title:"Refresh files",variant:"text",disabled:loading.value||busy.value,onClick:refresh},null,8,["icon","disabled"])])):createCommentVNode("",true),!unref(mobile)||!file.value?(openBlock(),createElementBlock("div",_hoisted_5,[file.value?(openBlock(),createBlock(VBtn,{key:0,"prepend-icon":unref(mdiArrowLeft),variant:"text",disabled:dirty.value||busy.value,onClick:_cache[1]||(_cache[1]=$event=>file.value=null)},{default:withCtx(()=>[..._cache[17]||(_cache[17]=[createTextVNode("Back to folder",-1)])]),_:1},8,["prepend-icon","disabled"])):(openBlock(),createBlock(VBreadcrumbs,{key:1,items:breadcrumbs.value,density:"compact",class:"pa-0 flex-grow-1"},{item:withCtx(({item})=>[createVNode(VBtn,{size:"small",variant:"text",disabled:loading.value||busy.value,onClick:$event=>loadDirectory(item.path)},{default:withCtx(()=>[createTextVNode(toDisplayString(item.title),1)]),_:2},1032,["disabled","onClick"])]),_:1},8,["items"])),writable.value&&!expired.value&&!file.value?(openBlock(),createElementBlock(Fragment,{key:2},[createBaseVNode("input",{ref_key:"uploadInput",ref:uploadInput,type:"file",multiple:"",class:"d-none","aria-label":"Choose a file to upload",onChange:upload},null,544),createVNode(VBtn,{"prepend-icon":unref(mdiFolderPlusOutline),variant:"text",disabled:busy.value,onClick:_cache[2]||(_cache[2]=$event=>openDialog("mkdir"))},{default:withCtx(()=>[..._cache[18]||(_cache[18]=[createTextVNode("New folder",-1)])]),_:1},8,["prepend-icon","disabled"]),createVNode(VBtn,{"prepend-icon":unref(mdiUpload),variant:"tonal",disabled:busy.value,onClick:_cache[3]||(_cache[3]=$event=>uploadInput.value.click())},{default:withCtx(()=>[createTextVNode(toDisplayString(busy.value?"Working…":"Upload"),1)]),_:1},8,["prepend-icon","disabled"])],64)):createCommentVNode("",true)])):createCommentVNode("",true),loading.value?(openBlock(),createBlock(VSkeletonLoader,{key:3,type:"list-item-two-line@5",class:"flex-grow-1"})):loadError.value?(openBlock(),createElementBlock("div",_hoisted_6,[createVNode(VAlert,{type:"error",variant:"tonal"},{default:withCtx(()=>[createTextVNode(toDisplayString(loadError.value),1)]),_:1}),createVNode(VBtn,{class:"mt-3",variant:"tonal",onClick:refresh},{default:withCtx(()=>[..._cache[19]||(_cache[19]=[createTextVNode("Retry",-1)])]),_:1})])):file.value?(openBlock(),createElementBlock(Fragment,{key:5},[createBaseVNode("div",{class:normalizeClass(["d-flex align-center",unref(mobile)?"ga-0 px-1":"ga-2 flex-wrap px-3 py-2"])},[unref(mobile)?(openBlock(),createBlock(VBtn,{key:0,icon:unref(mdiArrowLeft),"aria-label":"Back to folder",variant:"text",disabled:dirty.value||busy.value,onClick:_cache[4]||(_cache[4]=$event=>file.value=null)},null,8,["icon","disabled"])):createCommentVNode("",true),createBaseVNode("span",_hoisted_7,toDisplayString(file.value.path),1),createVNode(VSpacer),dirty.value?(openBlock(),createElementBlock(Fragment,{key:1},[createVNode(VBtn,{variant:"text",disabled:busy.value,onClick:_cache[5]||(_cache[5]=$event=>draft.value=file.value.text)},{default:withCtx(()=>[..._cache[20]||(_cache[20]=[createTextVNode("Discard edits",-1)])]),_:1},8,["disabled"]),createVNode(VBtn,{color:"primary",variant:"tonal",disabled:busy.value,onClick:save},{default:withCtx(()=>[createTextVNode(toDisplayString(busy.value?"Saving…":"Save"),1)]),_:1},8,["disabled"])],64)):createCommentVNode("",true),createVNode(VBtn,{icon:unref(mobile)?unref(mdiDownload):void 0,"prepend-icon":unref(mobile)?void 0:unref(mdiDownload),text:unref(mobile)?void 0:"Download","aria-label":"Download file",variant:"text",disabled:dirty.value||busy.value,onClick:_cache[6]||(_cache[6]=$event=>download(file.value.path))},null,8,["icon","prepend-icon","text","disabled"]),unref(mobile)?(openBlock(),createBlock(VMenu,{key:2},{activator:withCtx(({props:menuProps})=>[createVNode(VBtn,mergeProps(menuProps,{icon:unref(mdiDotsVertical),"aria-label":"File actions",variant:"text"}),null,16,["icon"])]),default:withCtx(()=>[createVNode(VList,{density:"compact"},{default:withCtx(()=>[location.value?(openBlock(),createBlock(VListItem,{key:0,title:"Copy AI path","prepend-icon":unref(mdiContentCopy),onClick:copyLocation},null,8,["prepend-icon"])):createCommentVNode("",true),createVNode(VListItem,{title:"Refresh files","prepend-icon":unref(mdiRefresh),disabled:loading.value||busy.value,onClick:refresh},null,8,["prepend-icon","disabled"]),__props.archived&&__props.area==="session"?(openBlock(),createBlock(VListItem,{key:1,title:"Download archive","prepend-icon":unref(mdiDownload),disabled:busy.value,onClick:_cache[7]||(_cache[7]=$event=>download(`${__props.sessionId}.tar.gz`,"archive"))},null,8,["prepend-icon","disabled"])):createCommentVNode("",true)]),_:1})]),_:1})):createCommentVNode("",true)],2),writable.value&&typeof file.value.text==="string"?(openBlock(),createBlock(VTextarea,{key:0,modelValue:draft.value,"onUpdate:modelValue":_cache[8]||(_cache[8]=$event=>draft.value=$event),"aria-label":"File contents",class:"mx-3 session-file-area__text",disabled:busy.value,variant:"outlined",rows:"18","hide-details":""},null,8,["modelValue","disabled"])):typeof file.value.text==="string"?(openBlock(),createElementBlock("pre",_hoisted_8,toDisplayString(file.value.text),1)):(openBlock(),createElementBlock("p",_hoisted_9,toDisplayString(file.value.message),1))],64)):(openBlock(),createElementBlock(Fragment,{key:6},[entries.value.length?(openBlock(),createBlock(VList,{key:0,class:"session-file-area__listing","aria-label":"Files and folders"},{default:withCtx(()=>[(openBlock(true),createElementBlock(Fragment,null,renderList(entries.value,entry=>{return openBlock(),createBlock(VListItem,{key:entry.path,title:entry.name,subtitle:entry.type==="file"?formatSize(entry.size):"Folder","prepend-icon":entry.type==="directory"?unref(mdiFolderOutline):unref(mdiFileOutline),disabled:busy.value,onClick:$event=>openEntry(entry)},{append:withCtx(()=>[entry.type==="file"?(openBlock(),createBlock(VBtn,{key:0,icon:unref(mdiDownload),"aria-label":`Download ${entry.name}`,variant:"text",onClick:withModifiers($event=>download(entry.path),["stop"])},null,8,["icon","aria-label","onClick"])):createCommentVNode("",true),writable.value?(openBlock(),createBlock(VMenu,{key:1,"close-on-content-click":true},{activator:withCtx(({props:menuProps})=>[createVNode(VBtn,mergeProps({ref_for:true},menuProps,{icon:unref(mdiDotsVertical),"aria-label":`Actions for ${entry.name}`,variant:"text",onClick:_cache[9]||(_cache[9]=withModifiers(()=>{},["stop"]))}),null,16,["icon","aria-label"])]),default:withCtx(()=>[createVNode(VList,null,{default:withCtx(()=>[createVNode(VListItem,{"prepend-icon":unref(mdiPencilOutline),title:"Rename",onClick:$event=>openDialog("rename",entry)},null,8,["prepend-icon","onClick"]),createVNode(VListItem,{"prepend-icon":unref(mdiDeleteOutline),title:"Delete",onClick:$event=>openDialog("delete",entry)},null,8,["prepend-icon","onClick"])]),_:2},1024)]),_:2},1024)):createCommentVNode("",true)]),_:2},1032,["title","subtitle","prepend-icon","disabled","onClick"])}),128))]),_:1})):(openBlock(),createElementBlock("p",_hoisted_10,toDisplayString(expired.value?"This session’s Drop Zone has expired.":writable.value?"Nothing here yet. Drop files here, use Upload, or ask the AI to put files in this session’s Drop Zone.":"This folder is empty."),1)),hasMore.value?(openBlock(),createBlock(VBtn,{key:2,class:"ma-3 align-self-start",variant:"text",disabled:busy.value,onClick:_cache[10]||(_cache[10]=$event=>loadDirectory(directory.value,true))},{default:withCtx(()=>[..._cache[21]||(_cache[21]=[createTextVNode("Load more",-1)])]),_:1},8,["disabled"])):createCommentVNode("",true)],64)),createVNode(VDialog,{modelValue:dialogOpen.value,"onUpdate:modelValue":_cache[13]||(_cache[13]=$event=>dialogOpen.value=$event),"max-width":"460",persistent:busy.value},{default:withCtx(()=>[createVNode(VCard,{title:dialogOperation.value==="delete"?"Delete from Drop Zone?":dialogOperation.value==="rename"?"Rename item":"New folder"},{default:withCtx(()=>[createVNode(VCardText,null,{default:withCtx(()=>{var _a,_b;return[dialogOperation.value==="delete"?(openBlock(),createElementBlock("p",_hoisted_11,toDisplayString((_a=dialogEntry.value)==null?void 0:_a.name)+toDisplayString(((_b=dialogEntry.value)==null?void 0:_b.type)==="directory"?" and everything inside it will be deleted.":" will be deleted."),1)):(openBlock(),createBlock(VTextField,{key:1,modelValue:dialogName.value,"onUpdate:modelValue":_cache[11]||(_cache[11]=$event=>dialogName.value=$event),label:"Name",autofocus:"",disabled:busy.value,"error-messages":nameError.value,onKeyup:withKeys(confirmDialog,["enter"])},null,8,["modelValue","disabled","error-messages"]))]}),_:1}),createVNode(VCardActions,null,{default:withCtx(()=>[createVNode(VSpacer),createVNode(VBtn,{disabled:busy.value,onClick:_cache[12]||(_cache[12]=$event=>dialogOpen.value=false)},{default:withCtx(()=>[..._cache[22]||(_cache[22]=[createTextVNode("Cancel",-1)])]),_:1},8,["disabled"]),createVNode(VBtn,{color:dialogOperation.value==="delete"?"error":"primary",disabled:busy.value,onClick:confirmDialog},{default:withCtx(()=>[createTextVNode(toDisplayString(busy.value?"Working…":dialogOperation.value==="delete"?"Delete":dialogOperation.value==="rename"?"Rename":"Create"),1)]),_:1},8,["color","disabled"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue","persistent"])],42,_hoisted_1)}}};const Vibe64SessionFileArea=_export_sfc(_sfc_main$1,[["__scopeId","data-v-cd420eab"]]);const _sfc_main=Object.assign({inheritAttrs:false},{__name:"Vibe64SessionFiles",props:{repoAvailable:{type:Boolean,default:true},archived:{type:Boolean,default:false},active:{type:Boolean,default:true},sessionId:{type:String,required:true},sessionsApiPath:{type:String,required:true},projectSlug:{type:String,default:""},openRequest:{type:Object,default:null}},emits:["ask-codex-about-file"],setup(__props){const props=__props;const area=ref(props.archived||!props.repoAvailable?"drop-zone":"repo");const visitedAreas=ref([]);watch(area,value=>{if(value!=="repo"&&!visitedAreas.value.includes(value))visitedAreas.value.push(value)},{immediate:true});const areas=ref(["repo"]);const mountedAreas=computed(()=>visitedAreas.value.filter(value=>areas.value.includes(value)));const areaError=ref("");const loadingAreas=ref(false);let generation=0;async function loadAreas(){const current=++generation;areas.value=["repo"];areaError.value="";loadingAreas.value=true;try{const result=await getHttpWebClient().request(`${props.sessionsApiPath}/${encodeURIComponent(props.sessionId)}/files`);if((result==null?void 0:result.ok)===false)throw new Error(vibe64ApiResponseError(result,"File areas could not load."));if(current!==generation)return;areas.value=result.areas;if(props.archived)area.value=areas.value.includes("session")?"session":"drop-zone";else if(!props.repoAvailable)area.value="drop-zone";else if(!areas.value.includes(area.value))area.value="repo"}catch(error){if(current===generation){areaError.value=error.message;area.value="repo"}}finally{if(current===generation)loadingAreas.value=false}}watch(()=>[props.sessionsApiPath,props.sessionId],loadAreas,{immediate:true});watch(()=>props.openRequest,()=>{area.value="repo"});onScopeDispose(()=>{generation+=1});return(_ctx,_cache)=>{return openBlock(),createElementBlock("section",{class:normalizeClass(["vibe64-session-files",_ctx.$attrs.class]),style:normalizeStyle(_ctx.$attrs.style),"aria-label":"Session files"},[createVNode(VTabs,{modelValue:area.value,"onUpdate:modelValue":_cache[0]||(_cache[0]=$event=>area.value=$event),density:"compact","aria-label":"File areas",disabled:loadingAreas.value},{default:withCtx(()=>[createVNode(VTab,{disabled:__props.archived||!__props.repoAvailable,value:"repo","prepend-icon":unref(mdiSourceRepository)},{default:withCtx(()=>[..._cache[2]||(_cache[2]=[createTextVNode("Repo",-1)])]),_:1},8,["disabled","prepend-icon"]),areas.value.includes("drop-zone")?(openBlock(),createBlock(VTab,{key:0,value:"drop-zone","prepend-icon":unref(mdiTrayArrowUp)},{default:withCtx(()=>[..._cache[3]||(_cache[3]=[createTextVNode("Drop Zone",-1)])]),_:1},8,["prepend-icon"])):createCommentVNode("",true),areas.value.includes("session")?(openBlock(),createBlock(VTab,{key:1,value:"session","prepend-icon":unref(mdiArchiveClockOutline)},{default:withCtx(()=>[..._cache[4]||(_cache[4]=[createTextVNode("Session",-1)])]),_:1},8,["prepend-icon"])):createCommentVNode("",true)]),_:1},8,["modelValue","disabled"]),areaError.value?(openBlock(),createBlock(VAlert,{key:0,type:"error",variant:"tonal",density:"compact"},{default:withCtx(()=>[createTextVNode(toDisplayString(areaError.value)+" ",1),createVNode(VBtn,{variant:"text",onClick:loadAreas},{default:withCtx(()=>[..._cache[5]||(_cache[5]=[createTextVNode("Retry",-1)])]),_:1})]),_:1})):createCommentVNode("",true),!__props.archived&&__props.repoAvailable?withDirectives((openBlock(),createBlock(Vibe64SessionSourceEditor,mergeProps({key:1},_ctx.$attrs,{class:"vibe64-session-files__content",active:__props.active&&area.value==="repo","session-id":__props.sessionId,"sessions-api-path":__props.sessionsApiPath,"project-slug":__props.projectSlug,"open-request":__props.openRequest,onAskCodexAboutFile:_cache[1]||(_cache[1]=$event=>_ctx.$emit("ask-codex-about-file",$event))}),null,16,["active","session-id","sessions-api-path","project-slug","open-request"])),[[vShow,area.value==="repo"]]):createCommentVNode("",true),(openBlock(true),createElementBlock(Fragment,null,renderList(mountedAreas.value,visitedArea=>{return withDirectives((openBlock(),createBlock(Vibe64SessionFileArea,{key:`${__props.sessionId}:${visitedArea}`,class:"vibe64-session-files__content",active:__props.active&&area.value===visitedArea,area:visitedArea,archived:__props.archived,"session-id":__props.sessionId,"sessions-api-path":__props.sessionsApiPath,"project-slug":__props.projectSlug,"agent-active":_ctx.$attrs.agentActive??_ctx.$attrs["agent-active"]??false},null,8,["active","area","archived","session-id","sessions-api-path","project-slug","agent-active"])),[[vShow,area.value===visitedArea]])}),128))],6)}}});const Vibe64SessionFiles=_export_sfc(_sfc_main,[["__scopeId","data-v-b9bb0099"]]);export{LongTextPreviewBlocks as L,Vibe64StarredFilesList as V,Vibe64ConversationProgress as a,Vibe64ConversationAttachments as b,Vibe64AutopilotPromptTextarea as c,parseAnswerChoicePrompt as d,parseNumberedQuestionPrompt as e,Vibe64ConversationLog as f,Vibe64SessionFiles as g,useAgentAttachments as h,Vibe64AttachmentQueue as i,numberedQuestionSubmissionText as n,parseLongTextReviewBlocks as p,useVibe64AttachmentCommands as u};