diff --git a/js/activity-app.mjs b/js/activity-app.mjs index b6ebf1310..47fc2d900 100644 --- a/js/activity-app.mjs +++ b/js/activity-app.mjs @@ -4,4 +4,4 @@ import{d as lt,c as et,t as L,r as M,o as Ne,w as Le,g as Ee,a as ee,V as G,b as -`,Lr=lt({__name:"ActivityAppFeed",props:{filter:{default:"all"}},setup(t){const e=t,n=M(!1),i=M(!0),r=M([]),a=M(),o=M();He(o,async()=>{i.value&&await c()},{distance:100});const s=et(()=>{const l={};for(const v of r.value){const d=z(v.datetime).format("LL");l[d]===void 0?l[d]=[v]:l[d].push(v)}return l});async function c(){if(!n.value)try{const l=a.value??"0";n.value=!0;const v=await re.get(Ee("apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}",{filter:e.filter,since:l}));r.value.push(...v.data.ocs.data.map(d=>new De(d))),a.value=v.headers["x-activity-last-given"],i.value=!0}catch(l){if(We.isAxiosError(l)&&l.response?.status===304){i.value=!1;return}gt.error(l),ae(L("activity","Could not load activities"))}finally{n.value=!1}}return Ne(()=>{c()}),Le(e,()=>{r.value=[],a.value=void 0,c()}),{__sfc:!0,props:e,loading:n,hasMoreActivites:i,allActivities:r,lastActivityLoaded:a,container:o,groupedActivities:s,loadActivities:c,NcAppContent:Ue,NcIconSvgWrapper:qe,NcEmptyContent:Fe,NcLoadingIcon:ie,ActivityGroup:Sr,appIconSVG:Nr,t:L}}});var Er=function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e(n.NcAppContent,{staticClass:"activity-app"},[e("h1",{staticClass:"activity-app__heading"},[t._v(" "+t._s(n.t("activity","Your activities"))+" ")]),n.hasMoreActivites&&n.allActivities.length===0?e(n.NcEmptyContent,{staticClass:"activity-app__empty-content",attrs:{name:n.t("activity","Loading activities"),description:n.t("activity","This stream will show events like additions, changes & shares")},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcLoadingIcon,{attrs:{size:36}})]},proxy:!0}],null,!1,3043861167)}):n.allActivities.length===0?e(n.NcEmptyContent,{staticClass:"activity-app__empty-content",attrs:{name:n.t("activity","No activity yet"),description:n.t("activity","This stream will show events like additions, changes & shares")},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{svg:n.appIconSVG,size:36}})]},proxy:!0}])}):t._e(),e("div",{ref:"container",staticClass:"activity-app__container"},[t._l(n.groupedActivities,function(i,r){return e(n.ActivityGroup,{key:r,attrs:{activities:i}})}),n.hasMoreActivites&&n.allActivities.length>0?e(n.NcLoadingIcon,{staticClass:"activity-app__loading-indicator",attrs:{name:n.t("activity","Loading more activities"),size:64}}):!n.hasMoreActivites&&n.allActivities.length>0?e("div",{staticClass:"activity-app__loading-indicator"},[t._v(" "+t._s(n.t("activity","No more activities."))+" ")]):t._e()],2)],1)},Rr=[],$r=F(Lr,Er,Rr,!1,null,"04f7c88f",null,null);const Or=$r.exports,Tr={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var Br=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon content-copy-icon",attrs:{"aria-hidden":!t.title,"aria-label":t.title,role:"img"},on:{click:function(n){return t.$emit("click",n)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},Pr=[],Ir=F(Tr,Br,Pr,!1,null,null,null,null);const Mr=Ir.exports,jr=lt({__name:"ActivityAppNavigation",setup(t){const{rssLink:e,personalSettingsLink:n}=Ot($t,"settings"),i=Ot($t,"navigationList"),r=M(e),a=et(()=>!!r.value);async function o(){try{const{data:c}=await re.post(ee("/apps/activity/settings/feed"),{enable:!a.value});r.value=c.data.rsslink}catch(c){ae(L("activity","Could not enable RSS link")),gt.error(c)}}async function s(){try{window.navigator.clipboard.writeText(r.value),Qe(L("activity","RSS link copied to clipboard"))}catch(c){gt.debug(c),window.prompt(L("activity","Could not copy the RSS link, please copy manually:"),r.value)}}return{__sfc:!0,initialRSSLink:e,personalSettingsLink:n,navigationList:i,rssLink:r,hasRSSLink:a,toggleRSSLink:o,copyRSSLink:s,t:L,NcAppNavigation:$i,NcAppNavigationItem:sr,NcAppNavigationSettings:Ke,NcButton:ut,NcCheckboxRadioSwitch:Xe,NcInputField:Ze,IconContentCopy:Mr}}});var Vr=function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e(n.NcAppNavigation,{scopedSlots:t._u([{key:"list",fn:function(){return t._l(n.navigationList,function(i){return e(n.NcAppNavigationItem,{key:i.id,attrs:{"data-navigation":i.id,to:i.id,name:i.name},scopedSlots:t._u([i.icon?{key:"icon",fn:function(){return[e("img",{staticClass:"navigation-icon",attrs:{alt:"",src:i.icon,role:"presentation"}})]},proxy:!0}:null],null,!0)})})},proxy:!0},{key:"footer",fn:function(){return[e(n.NcAppNavigationSettings,{attrs:{name:n.t("activity","Activity settings")}},[e(n.NcCheckboxRadioSwitch,{attrs:{type:"switch",checked:n.hasRSSLink},on:{"update:checked":n.toggleRSSLink}},[t._v(" "+t._s(n.t("activity","Enable RSS feed"))+" ")]),n.hasRSSLink?e(n.NcInputField,{attrs:{label:n.t("activity","RSS feed"),"show-trailing-button":!0,"trailing-button-label":n.t("activity","Copy RSS feed link"),readonly:"readonly"},on:{"trailing-button-click":n.copyRSSLink},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[e(n.IconContentCopy,{attrs:{size:20}})]},proxy:!0}],null,!1,4025534811),model:{value:n.rssLink,callback:function(i){n.rssLink=i},expression:"rssLink"}}):t._e(),e(n.NcButton,{staticClass:"settings-link",attrs:{href:n.personalSettingsLink,title:n.t("activity","Personal notification settings"),type:"tertiary"}},[t._v(" "+t._s(n.t("activity","Personal notification settings"))+" ")])],1)]},proxy:!0}])})},zr=[],Hr=F(jr,Vr,zr,!1,null,null,null,null);const Ur=Hr.exports,qr=[{path:"/",name:"root",redirect:{path:"/all"}},{path:"/:filter?",components:{default:Or,navigation:Ur},props:{default:!0}}];G.prototype.t=L,G.prototype.n=Re,G.use(xe);const Fr=new xe({mode:"history",base:ee("/apps/activity"),linkActiveClass:"active",routes:qr});new G({el:"#content",name:"ActivityRoot",router:Fr,render:t=>t(pi)}); +`,Lr=lt({__name:"ActivityAppFeed",props:{filter:{default:"all"}},setup(t){const e=t,n=M(!1),i=M(!0),r=M([]),a=M(),o=M();He(o,async()=>{i.value&&await c()},{distance:100});const s=et(()=>{const l={};for(const v of r.value){const d=z(v.datetime).format("LL");l[d]===void 0?l[d]=[v]:l[d].push(v)}return l});async function c(){if(!n.value)try{const l=a.value??"0";n.value=!0;const v=await re.get(Ee("apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}",{filter:e.filter,since:l}));r.value.push(...v.data.ocs.data.map(d=>new De(d))),a.value=v.headers["x-activity-last-given"],i.value=!0}catch(l){if(We.isAxiosError(l)&&l.response?.status===304){i.value=!1;return}gt.error(l),ae(L("activity","Could not load activities"))}finally{n.value=!1}}return Ne(()=>{c()}),Le(e,()=>{r.value=[],a.value=void 0,c()}),{__sfc:!0,props:e,loading:n,hasMoreActivites:i,allActivities:r,lastActivityLoaded:a,container:o,groupedActivities:s,loadActivities:c,NcAppContent:Ue,NcIconSvgWrapper:qe,NcEmptyContent:Fe,NcLoadingIcon:ie,ActivityGroup:Sr,appIconSVG:Nr,t:L}}});var Er=function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e(n.NcAppContent,{staticClass:"activity-app"},[e("h1",{staticClass:"activity-app__heading"},[t._v(" "+t._s(n.t("activity","Your activities"))+" ")]),n.hasMoreActivites&&n.allActivities.length===0?e(n.NcEmptyContent,{staticClass:"activity-app__empty-content",attrs:{name:n.t("activity","Loading activities"),description:n.t("activity","This stream will show events like additions, changes & shares")},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcLoadingIcon,{attrs:{size:36}})]},proxy:!0}],null,!1,3043861167)}):n.allActivities.length===0?e(n.NcEmptyContent,{staticClass:"activity-app__empty-content",attrs:{name:n.t("activity","No activity yet"),description:n.t("activity","This stream will show events like additions, changes & shares")},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcIconSvgWrapper,{attrs:{svg:n.appIconSVG,size:36}})]},proxy:!0}])}):t._e(),e("div",{ref:"container",staticClass:"activity-app__container"},[t._l(n.groupedActivities,function(i,r){return e(n.ActivityGroup,{key:r,attrs:{activities:i}})}),n.hasMoreActivites&&n.allActivities.length>0?e(n.NcLoadingIcon,{staticClass:"activity-app__loading-indicator",attrs:{name:n.t("activity","Loading more activities"),size:64}}):!n.hasMoreActivites&&n.allActivities.length>0?e("div",{staticClass:"activity-app__loading-indicator"},[t._v(" "+t._s(n.t("activity","No more activities."))+" ")]):t._e()],2)],1)},Rr=[],$r=F(Lr,Er,Rr,!1,null,"04f7c88f",null,null);const Or=$r.exports,Tr={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var Br=function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon content-copy-icon",attrs:{"aria-hidden":!t.title,"aria-label":t.title,role:"img"},on:{click:function(n){return t.$emit("click",n)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},Pr=[],Ir=F(Tr,Br,Pr,!1,null,null,null,null);const Mr=Ir.exports,jr=lt({__name:"ActivityAppNavigation",setup(t){const{rssLink:e,personalSettingsLink:n}=Ot($t,"settings"),i=Ot($t,"navigationList"),r=M(e),a=et(()=>!!r.value);async function o(){try{const{data:c}=await re.post(ee("/apps/activity/settings/feed"),{enable:!a.value});r.value=c.data.rsslink}catch(c){ae(L("activity","Could not enable RSS link")),gt.error(c)}}async function s(){try{window.navigator.clipboard.writeText(r.value),Qe(L("activity","RSS link copied to clipboard"))}catch(c){gt.debug(c),window.prompt(L("activity","Could not copy the RSS link, please copy manually:"),r.value)}}return{__sfc:!0,initialRSSLink:e,personalSettingsLink:n,navigationList:i,rssLink:r,hasRSSLink:a,toggleRSSLink:o,copyRSSLink:s,t:L,NcAppNavigation:$i,NcAppNavigationItem:sr,NcAppNavigationSettings:Ke,NcButton:ut,NcCheckboxRadioSwitch:Xe,NcInputField:Ze,IconContentCopy:Mr}}});var Vr=function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e(n.NcAppNavigation,{attrs:{"aria-label":n.t("activity","Activity")},scopedSlots:t._u([{key:"list",fn:function(){return t._l(n.navigationList,function(i){return e(n.NcAppNavigationItem,{key:i.id,attrs:{"data-navigation":i.id,to:i.id,name:i.name},scopedSlots:t._u([i.icon?{key:"icon",fn:function(){return[e("img",{staticClass:"navigation-icon",attrs:{alt:"",src:i.icon,role:"presentation"}})]},proxy:!0}:null],null,!0)})})},proxy:!0},{key:"footer",fn:function(){return[e(n.NcAppNavigationSettings,{attrs:{name:n.t("activity","Activity settings")}},[e(n.NcCheckboxRadioSwitch,{attrs:{type:"switch",checked:n.hasRSSLink},on:{"update:checked":n.toggleRSSLink}},[t._v(" "+t._s(n.t("activity","Enable RSS feed"))+" ")]),n.hasRSSLink?e(n.NcInputField,{attrs:{label:n.t("activity","RSS feed"),"show-trailing-button":!0,"trailing-button-label":n.t("activity","Copy RSS feed link"),readonly:"readonly"},on:{"trailing-button-click":n.copyRSSLink},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[e(n.IconContentCopy,{attrs:{size:20}})]},proxy:!0}],null,!1,4025534811),model:{value:n.rssLink,callback:function(i){n.rssLink=i},expression:"rssLink"}}):t._e(),e(n.NcButton,{staticClass:"settings-link",attrs:{href:n.personalSettingsLink,title:n.t("activity","Personal notification settings"),type:"tertiary"}},[t._v(" "+t._s(n.t("activity","Personal notification settings"))+" ")])],1)]},proxy:!0}])})},zr=[],Hr=F(jr,Vr,zr,!1,null,null,null,null);const Ur=Hr.exports,qr=[{path:"/",name:"root",redirect:{path:"/all"}},{path:"/:filter?",components:{default:Or,navigation:Ur},props:{default:!0}}];G.prototype.t=L,G.prototype.n=Re,G.use(xe);const Fr=new xe({mode:"history",base:ee("/apps/activity"),linkActiveClass:"active",routes:qr});new G({el:"#content",name:"ActivityRoot",router:Fr,render:t=>t(pi)}); diff --git a/js/activity-app.mjs.map b/js/activity-app.mjs.map index f8aa90349..dff55d5a2 100644 --- a/js/activity-app.mjs.map +++ b/js/activity-app.mjs.map @@ -1 +1 @@ -{"version":3,"file":"activity-app.mjs","sources":["../node_modules/vue-router/dist/vue-router.esm.js","../node_modules/@nextcloud/vue/dist/Components/NcContent.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationToggle-2574bba5.mjs","../node_modules/@nextcloud/vue/dist/Components/NcAppNavigation.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-a612e6a3.mjs","../node_modules/@nextcloud/vue/dist/Components/NcAppNavigationItem.mjs","../node_modules/vue-frag/dist/frag.esm.js","../src/components/ActivityGroup.vue","../img/activity-dark.svg?raw","../src/views/ActivityAppFeed.vue","../node_modules/vue-material-design-icons/ContentCopy.vue","../src/views/ActivityAppNavigation.vue","../src/routes.ts","../src/app.ts"],"sourcesContent":["/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","import \"../assets/index-a9e4fe04.css\";\nimport { n } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst r = {\n props: {\n appName: {\n type: String,\n required: !0\n }\n }\n};\nvar s = function() {\n var e = this, t = e._self._c;\n return t(\"div\", { staticClass: \"content\", class: `app-${e.appName.toLowerCase()}`, attrs: { id: \"content-vue\" } }, [e._t(\"default\")], 2);\n}, _ = [], a = /* @__PURE__ */ n(\n r,\n s,\n _,\n !1,\n null,\n \"eb1078f7\",\n null,\n null\n);\nconst l = a.exports;\nexport {\n l as default\n};\n","import \"../assets/NcAppNavigationToggle-9e170630.css\";\nimport l from \"../Components/NcButton.mjs\";\nimport \"../Directives/Tooltip.mjs\";\nimport { t as o } from \"./l10n-ef44019c.mjs\";\nimport { n as i } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { VTooltip as r } from \"floating-vue\";\nconst s = {\n name: \"MenuIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar c = function() {\n var t = this, e = t._self._c;\n return e(\"span\", t._b({ staticClass: \"material-design-icon menu-icon\", attrs: { \"aria-hidden\": !t.title, \"aria-label\": t.title, role: \"img\" }, on: { click: function(n) {\n return t.$emit(\"click\", n);\n } } }, \"span\", t.$attrs, !1), [e(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: t.fillColor, width: t.size, height: t.size, viewBox: \"0 0 24 24\" } }, [e(\"path\", { attrs: { d: \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\" } }, [t.title ? e(\"title\", [t._v(t._s(t.title))]) : t._e()])])]);\n}, p = [], _ = /* @__PURE__ */ i(\n s,\n c,\n p,\n !1,\n null,\n null,\n null,\n null\n);\nconst u = _.exports, m = {\n name: \"MenuOpenIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar f = function() {\n var t = this, e = t._self._c;\n return e(\"span\", t._b({ staticClass: \"material-design-icon menu-open-icon\", attrs: { \"aria-hidden\": !t.title, \"aria-label\": t.title, role: \"img\" }, on: { click: function(n) {\n return t.$emit(\"click\", n);\n } } }, \"span\", t.$attrs, !1), [e(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: t.fillColor, width: t.size, height: t.size, viewBox: \"0 0 24 24\" } }, [e(\"path\", { attrs: { d: \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\" } }, [t.title ? e(\"title\", [t._v(t._s(t.title))]) : t._e()])])]);\n}, v = [], d = /* @__PURE__ */ i(\n m,\n f,\n v,\n !1,\n null,\n null,\n null,\n null\n);\nconst g = d.exports;\nconst h = {\n name: \"NcAppNavigationToggle\",\n directives: {\n tooltip: r\n },\n components: {\n NcButton: l,\n MenuIcon: u,\n MenuOpenIcon: g\n },\n props: {\n open: {\n type: Boolean,\n required: !0\n }\n },\n emits: [\"update:open\"],\n computed: {\n label() {\n return this.open ? o(\"Close navigation\") : o(\"Open navigation\");\n }\n },\n methods: {\n toggleNavigation() {\n this.$emit(\"update:open\", !this.open);\n }\n }\n};\nvar N = function() {\n var t = this, e = t._self._c;\n return e(\"NcButton\", { directives: [{ name: \"tooltip\", rawName: \"v-tooltip.auto\", value: t.label, expression: \"label\", modifiers: { auto: !0 } }], staticClass: \"app-navigation-toggle\", attrs: { type: \"tertiary\", \"aria-expanded\": t.open ? \"true\" : \"false\", \"aria-label\": t.label, \"aria-controls\": \"app-navigation-vue\" }, on: { click: t.toggleNavigation }, scopedSlots: t._u([{ key: \"icon\", fn: function() {\n return [t.open ? e(\"MenuOpenIcon\", { attrs: { size: 20 } }) : e(\"MenuIcon\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) });\n}, b = [], y = /* @__PURE__ */ i(\n h,\n N,\n b,\n !1,\n null,\n \"13b4f13a\",\n null,\n null\n);\nconst z = y.exports;\nexport {\n z as N\n};\n","import \"../assets/index-4437e6bf.css\";\nimport { N as n } from \"../chunks/NcAppNavigationToggle-2574bba5.mjs\";\nimport { useIsMobile as s } from \"../Composables/useIsMobile.mjs\";\nimport { g as p } from \"../chunks/focusTrap-5d0f71d4.mjs\";\nimport { subscribe as l, emit as o, unsubscribe as r } from \"@nextcloud/event-bus\";\nimport { createFocusTrap as g } from \"focus-trap\";\nimport { n as c } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst u = {\n name: \"NcAppNavigation\",\n components: {\n NcAppNavigationToggle: n\n },\n setup() {\n return {\n isMobile: s()\n };\n },\n props: {\n /**\n * The aria label to describe the navigation\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * aria-labelledby attribute to describe the navigation\n */\n ariaLabelledby: {\n type: String,\n default: \"\"\n }\n },\n data() {\n return {\n open: !0,\n focusTrap: null\n };\n },\n watch: {\n isMobile() {\n this.open = !this.isMobile, this.toggleFocusTrap();\n },\n open() {\n this.toggleFocusTrap();\n }\n },\n mounted() {\n l(\"toggle-navigation\", this.toggleNavigationByEventBus), o(\"navigation-toggled\", {\n open: this.open\n }), this.focusTrap = g(this.$refs.appNavigationContainer, {\n allowOutsideClick: !0,\n fallbackFocus: this.$refs.appNavigationContainer,\n trapStack: p(),\n escapeDeactivates: !1\n }), this.toggleFocusTrap();\n },\n unmounted() {\n r(\"toggle-navigation\", this.toggleNavigationByEventBus), this.focusTrap.deactivate();\n },\n methods: {\n /**\n * Toggle the navigation\n *\n * @param {boolean} [state] set the state instead of inverting the current one\n */\n toggleNavigation(e) {\n this.open = typeof e > \"u\" ? !this.open : e;\n const t = getComputedStyle(document.body), a = parseInt(t.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n o(\"navigation-toggled\", {\n open: this.open\n });\n }, 1.5 * a);\n },\n toggleNavigationByEventBus({ open: e }) {\n this.toggleNavigation(e);\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n this.isMobile && this.open ? this.focusTrap.activate() : this.focusTrap.deactivate();\n },\n handleEsc() {\n this.isMobile && this.toggleNavigation(!1);\n }\n }\n};\nvar d = function() {\n var t = this, a = t._self._c;\n return a(\"div\", { ref: \"appNavigationContainer\", staticClass: \"app-navigation\", class: { \"app-navigation--close\": !t.open } }, [a(\"div\", { staticClass: \"app-navigation__toggle-wrapper\" }, [a(\"NcAppNavigationToggle\", { attrs: { open: t.open }, on: { \"update:open\": t.toggleNavigation } })], 1), a(\"nav\", { staticClass: \"app-navigation__content\", attrs: { id: \"app-navigation-vue\", \"aria-hidden\": t.open ? \"false\" : \"true\", \"aria-label\": t.ariaLabel || void 0, \"aria-labelledby\": t.ariaLabelledby || void 0, inert: !t.open || void 0 }, on: { keydown: function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"esc\", 27, i.key, [\"Esc\", \"Escape\"]) ? null : t.handleEsc.apply(null, arguments);\n } } }, [t._t(\"default\"), a(\"ul\", { staticClass: \"app-navigation__list\" }, [t._t(\"list\")], 2), t._t(\"footer\")], 2)]);\n}, v = [], f = /* @__PURE__ */ c(\n u,\n d,\n v,\n !1,\n null,\n \"926cf86d\",\n null,\n null\n);\nconst C = f.exports;\nexport {\n C as default\n};\n","import \"../assets/NcInputConfirmCancel-45d1d76b.css\";\nimport o from \"../Components/NcButton.mjs\";\nimport { t as a } from \"./l10n-ef44019c.mjs\";\nimport { A as l } from \"./ArrowRight-74a9fcb2.mjs\";\nimport { C as i } from \"./Close-271f72e2.mjs\";\nimport { n as c } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst u = {\n name: \"NcInputConfirmCancel\",\n components: {\n NcButton: o,\n ArrowRight: l,\n Close: i\n },\n props: {\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n default: !1,\n type: Boolean\n },\n placeholder: {\n default: \"\",\n type: String\n },\n value: {\n default: \"\",\n type: String\n }\n },\n emits: [\n \"input\",\n \"confirm\",\n \"cancel\"\n ],\n data() {\n return {\n labelConfirm: a(\"Confirm changes\"),\n labelCancel: a(\"Cancel changes\")\n };\n },\n computed: {\n valueModel: {\n get() {\n return this.value;\n },\n set(r) {\n this.$emit(\"input\", r);\n }\n }\n },\n methods: {\n confirm() {\n this.$emit(\"confirm\");\n },\n cancel() {\n this.$emit(\"cancel\");\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\nvar p = function() {\n var e = this, n = e._self._c;\n return n(\"div\", { staticClass: \"app-navigation-input-confirm\" }, [n(\"form\", { on: { submit: function(t) {\n return t.preventDefault(), e.confirm.apply(null, arguments);\n }, keydown: function(t) {\n return !t.type.indexOf(\"key\") && e._k(t.keyCode, \"esc\", 27, t.key, [\"Esc\", \"Escape\"]) || t.ctrlKey || t.shiftKey || t.altKey || t.metaKey ? null : (t.stopPropagation(), t.preventDefault(), e.cancel.apply(null, arguments));\n }, click: function(t) {\n t.stopPropagation(), t.preventDefault();\n } } }, [n(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: e.valueModel, expression: \"valueModel\" }], ref: \"input\", staticClass: \"app-navigation-input-confirm__input\", attrs: { type: \"text\", placeholder: e.placeholder }, domProps: { value: e.valueModel }, on: { input: function(t) {\n t.target.composing || (e.valueModel = t.target.value);\n } } }), n(\"NcButton\", { attrs: { \"native-type\": \"submit\", type: \"primary\", \"aria-label\": e.labelConfirm }, on: { click: function(t) {\n return t.stopPropagation(), t.preventDefault(), e.confirm.apply(null, arguments);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [n(\"ArrowRight\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }), n(\"NcButton\", { attrs: { \"native-type\": \"reset\", type: e.primary ? \"primary\" : \"tertiary\", \"aria-label\": e.labelCancel }, on: { click: function(t) {\n return t.stopPropagation(), t.preventDefault(), e.cancel.apply(null, arguments);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [n(\"Close\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) })], 1)]);\n}, s = [], f = /* @__PURE__ */ c(\n u,\n p,\n s,\n !1,\n null,\n \"dcf0becf\",\n null,\n null\n);\nconst v = f.exports;\nexport {\n v as N\n};\n","import \"../assets/index-f8d6daf3.css\";\nimport c from \"./NcActions.mjs\";\nimport u from \"./NcActionButton.mjs\";\nimport p from \"./NcLoadingIcon.mjs\";\nimport d from \"./NcVNodes.mjs\";\nimport f from \"./NcButton.mjs\";\nimport { t as s } from \"../chunks/l10n-ef44019c.mjs\";\nimport { C as _ } from \"../chunks/ChevronDown-a72d365d.mjs\";\nimport { n as l } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { useIsMobile as m } from \"../Composables/useIsMobile.mjs\";\nimport { N as h } from \"../chunks/NcInputConfirmCancel-a612e6a3.mjs\";\nimport { G as g } from \"../chunks/GenRandomId-cb9ccebe.mjs\";\nconst v = {\n name: \"ChevronUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar y = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon chevron-up-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(a) {\n return e.$emit(\"click\", a);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, C = [], b = /* @__PURE__ */ l(\n v,\n y,\n C,\n !1,\n null,\n null,\n null,\n null\n);\nconst k = b.exports;\nconst $ = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton: f,\n ChevronDown: _,\n ChevronUp: k\n },\n props: {\n open: {\n type: Boolean,\n default: !0\n }\n },\n emits: [\"click\"],\n computed: {\n labelButton() {\n return this.open ? s(\"Collapse menu\") : s(\"Open menu\");\n }\n },\n methods: {\n onClick(n) {\n this.$emit(\"click\", n);\n }\n }\n};\nvar N = function() {\n var e = this, t = e._self._c;\n return t(\"NcButton\", { staticClass: \"icon-collapse\", class: { \"icon-collapse--open\": e.open }, attrs: { type: \"tertiary\", \"aria-label\": e.labelButton }, on: { click: e.onClick }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e.open ? t(\"ChevronUp\", { attrs: { size: 20 } }) : t(\"ChevronDown\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) });\n}, B = [], L = /* @__PURE__ */ l(\n $,\n N,\n B,\n !1,\n null,\n \"07582bf6\",\n null,\n null\n);\nconst A = L.exports, S = {\n name: \"PencilIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar x = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon pencil-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(a) {\n return e.$emit(\"click\", a);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, I = [], z = /* @__PURE__ */ l(\n S,\n x,\n I,\n !1,\n null,\n null,\n null,\n null\n);\nconst w = z.exports, V = {\n name: \"UndoIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar U = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon undo-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(a) {\n return e.$emit(\"click\", a);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, D = [], E = /* @__PURE__ */ l(\n V,\n U,\n D,\n !1,\n null,\n null,\n null,\n null\n);\nconst M = E.exports;\nconst O = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions: c,\n NcActionButton: u,\n NcAppNavigationIconCollapsible: A,\n NcInputConfirmCancel: h,\n NcLoadingIcon: p,\n NcVNodes: d,\n Pencil: w,\n Undo: M\n },\n props: {\n /**\n * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n * When using vue-router and the `to` property this is set automatically.\n */\n active: {\n type: Boolean,\n default: !1\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: !0\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * id attribute of the list item element\n */\n id: {\n type: String,\n default: () => \"app-navigation-item-\" + g(),\n validator: (n) => n.trim() !== \"\"\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: !1\n },\n /**\n * Passing in a route will make the root element of this\n * component a `` that points to that route.\n * By leaving this blank, the root element will be a `
  • `.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * A direct link. This will be used as the `href` attribute.\n * This will ignore any `to` prop being defined.\n */\n href: {\n type: String,\n default: null\n },\n /**\n * Pass in `true` if you want the matching behaviour to\n * be non-inclusive: https://router.vuejs.org/api/#exact\n */\n exact: {\n type: Boolean,\n default: !1\n },\n /**\n * Gives the possibility to collapse the children elements into the\n * parent element (true) or expands the children elements (false).\n */\n allowCollapse: {\n type: Boolean,\n default: !1\n },\n /**\n * Makes the name of the item editable by providing an `ActionButton`\n * component that toggles a form\n */\n editable: {\n type: Boolean,\n default: !1\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Pins the item to the bottom left area, above the settings. Do not\n * place 'non-pinned' `AppnavigationItem` components below `pinned`\n * ones.\n */\n pinned: {\n type: Boolean,\n default: !1\n },\n /**\n * Puts the item in the 'undo' state.\n */\n undo: {\n type: Boolean,\n default: !1\n },\n /**\n * The navigation collapsible state (synced)\n */\n open: {\n type: Boolean,\n default: !1\n },\n /**\n * The actions menu open state (synced)\n */\n menuOpen: {\n type: Boolean,\n default: !1\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: !1\n },\n /**\n * The action's menu default icon\n */\n menuIcon: {\n type: String,\n default: void 0\n },\n /**\n * The action's menu direction\n */\n menuPlacement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Entry aria details\n */\n ariaDescription: {\n type: String,\n default: null\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: !1\n },\n /**\n * Number of action items outside the menu\n */\n inlineActions: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"update:menuOpen\",\n \"update:open\",\n \"update:name\",\n \"click\",\n \"undo\"\n ],\n setup() {\n return {\n isMobile: m()\n };\n },\n data() {\n return {\n editingValue: \"\",\n opened: this.open,\n // Collapsible state\n editingActive: !1,\n hasChildren: !1,\n /**\n * Tracks the open state of the actions menu\n */\n menuOpenLocalValue: !1,\n focused: !1\n };\n },\n computed: {\n isRouterLink() {\n return this.to && !this.href;\n },\n collapsible() {\n return this.allowCollapse && !!this.$slots.default;\n },\n // Checks if the component is already a children of another\n // instance of AppNavigationItem\n canHaveChildren() {\n return this.$parent.$options._componentTag !== \"AppNavigationItem\";\n },\n hasUtils() {\n return !!(this.$slots.actions || this.$slots.counter || this.editable || this.undo);\n },\n editButtonAriaLabel() {\n return this.editLabel ? this.editLabel : s(\"Edit item\");\n },\n undoButtonAriaLabel() {\n return s(\"Undo changes\");\n },\n actionsBoundariesElement() {\n return document.querySelector(\"#content-vue\") || void 0;\n }\n },\n watch: {\n open(n) {\n this.opened = n;\n }\n },\n created() {\n this.updateSlotInfo();\n },\n beforeUpdate() {\n this.updateSlotInfo();\n },\n methods: {\n // sync opened menu state with prop\n onMenuToggle(n) {\n this.$emit(\"update:menuOpen\", n), this.menuOpenLocalValue = n;\n },\n // toggle the collapsible state\n toggleCollapse() {\n this.opened = !this.opened, this.$emit(\"update:open\", this.opened);\n },\n /**\n * Handle link click\n *\n * @param {PointerEvent} event - Native click event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(n, e, t) {\n this.$emit(\"click\", n), !(n.metaKey || n.altKey || n.ctrlKey || n.shiftKey) && t && (e == null || e(n), n.preventDefault());\n },\n // Edition methods\n handleEdit() {\n this.editingValue = this.name, this.editingActive = !0, this.onMenuToggle(!1), this.$nextTick(() => {\n this.$refs.editingInput.focusInput();\n });\n },\n cancelEditing() {\n this.editingActive = !1;\n },\n handleEditingDone() {\n this.$emit(\"update:name\", this.editingValue), this.editingValue = \"\", this.editingActive = !1;\n },\n // Undo methods\n handleUndo() {\n this.$emit(\"undo\");\n },\n updateSlotInfo() {\n this.hasChildren = !!this.$slots.default;\n },\n /**\n * Show actions upon focus\n */\n handleFocus() {\n this.focused = !0;\n },\n handleBlur() {\n this.focused = !1;\n },\n /**\n * This method checks if the root element of the component is focused and\n * if that's the case it focuses the actions button if available\n *\n * @param {Event} e the keydown event\n */\n handleTab(n) {\n this.$refs.actions && (this.focused ? (n.preventDefault(), this.$refs.actions.$refs.menuButton.$el.focus(), this.focused = !1) : this.$refs.actions.$refs.menuButton.$el.blur());\n },\n /**\n * Is this an external link\n *\n * @param {string} href The link to check\n * @return {boolean} Whether it is external or not\n */\n isExternal(n) {\n return n && n.match(/[a-z]+:\\/\\//i);\n }\n }\n};\nvar R = function() {\n var e = this, t = e._self._c;\n return t(\"li\", { staticClass: \"app-navigation-entry-wrapper\", class: {\n \"app-navigation-entry--opened\": e.opened,\n \"app-navigation-entry--pinned\": e.pinned,\n \"app-navigation-entry--collapsible\": e.collapsible\n }, attrs: { id: e.id } }, [t(e.isRouterLink ? \"router-link\" : \"NcVNodes\", { tag: \"component\", attrs: { custom: !!e.isRouterLink, to: e.to, exact: e.isRouterLink ? e.exact : null }, scopedSlots: e._u([{ key: \"default\", fn: function({ href: a, navigate: r, isActive: o }) {\n return [t(\"div\", { staticClass: \"app-navigation-entry\", class: {\n \"app-navigation-entry--editing\": e.editingActive,\n \"app-navigation-entry--deleted\": e.undo,\n active: o && e.to || e.active\n } }, [e.undo ? e._e() : t(\"a\", { staticClass: \"app-navigation-entry-link\", attrs: { \"aria-current\": e.active || o && e.to ? \"page\" : void 0, \"aria-description\": e.ariaDescription, \"aria-expanded\": e.hasChildren ? e.opened.toString() : void 0, href: e.href || a || \"#\", target: e.isExternal(e.href) ? \"_blank\" : void 0, title: e.title || e.name }, on: { blur: e.handleBlur, click: function(i) {\n return e.onClick(i, r, a);\n }, focus: e.handleFocus, keydown: function(i) {\n return !i.type.indexOf(\"key\") && e._k(i.keyCode, \"tab\", 9, i.key, \"Tab\") || i.ctrlKey || i.shiftKey || i.altKey || i.metaKey ? null : e.handleTab.apply(null, arguments);\n } } }, [t(\"div\", { staticClass: \"app-navigation-entry-icon\", class: { [e.icon]: e.icon } }, [e.loading ? t(\"NcLoadingIcon\") : e._t(\"icon\")], 2), e.editingActive ? e._e() : t(\"span\", { staticClass: \"app-navigation-entry__name\" }, [e._v(\" \" + e._s(e.name) + \" \")]), e.editingActive ? t(\"div\", { staticClass: \"editingContainer\" }, [t(\"NcInputConfirmCancel\", { ref: \"editingInput\", attrs: { placeholder: e.editPlaceholder !== \"\" ? e.editPlaceholder : e.name, primary: o && e.to }, on: { cancel: e.cancelEditing, confirm: e.handleEditingDone }, model: { value: e.editingValue, callback: function(i) {\n e.editingValue = i;\n }, expression: \"editingValue\" } })], 1) : e._e()]), e.undo ? t(\"div\", { staticClass: \"app-navigation-entry__deleted\" }, [t(\"div\", { staticClass: \"app-navigation-entry__deleted-description\" }, [e._v(\" \" + e._s(e.name) + \" \")])]) : e._e(), e.hasUtils && !e.editingActive ? t(\"div\", { staticClass: \"app-navigation-entry__utils\", class: { \"app-navigation-entry__utils--display-actions\": e.forceDisplayActions || e.menuOpenLocalValue || e.menuOpen } }, [e.$slots.counter ? t(\"div\", { staticClass: \"app-navigation-entry__counter-wrapper\" }, [e._t(\"counter\")], 2) : e._e(), e.$slots.actions || e.editable && !e.editingActive || e.undo ? t(\"NcActions\", { ref: \"actions\", staticClass: \"app-navigation-entry__actions\", attrs: { inline: e.inlineActions, container: \"#app-navigation-vue\", \"boundaries-element\": e.actionsBoundariesElement, placement: e.menuPlacement, open: e.menuOpen, type: o && e.to ? \"primary\" : null, \"force-menu\": e.forceMenu, \"default-icon\": e.menuIcon }, on: { \"update:open\": e.onMenuToggle }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e._t(\"menu-icon\")];\n }, proxy: !0 }], null, !0) }, [e.editable && !e.editingActive ? t(\"NcActionButton\", { attrs: { \"aria-label\": e.editButtonAriaLabel }, on: { click: e.handleEdit }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Pencil\", { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !0) }, [e._v(\" \" + e._s(e.editLabel) + \" \")]) : e._e(), e.undo ? t(\"NcActionButton\", { attrs: { \"aria-label\": e.undoButtonAriaLabel }, on: { click: e.handleUndo }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Undo\", { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !0) }) : e._e(), e._t(\"actions\")], 2) : e._e()], 1) : e._e(), e.collapsible ? t(\"NcAppNavigationIconCollapsible\", { attrs: { open: e.opened }, on: { click: function(i) {\n return i.preventDefault(), i.stopPropagation(), e.toggleCollapse.apply(null, arguments);\n } } }) : e._e(), e._t(\"extra\")], 2)];\n } }], null, !0) }), e.canHaveChildren && e.hasChildren ? t(\"ul\", { staticClass: \"app-navigation-entry__children\" }, [e._t(\"default\")], 2) : e._e()], 1);\n}, P = [], K = /* @__PURE__ */ l(\n O,\n R,\n P,\n !1,\n null,\n \"24094dee\",\n null,\n null\n);\nconst ee = K.exports;\nexport {\n ee as default\n};\n","var $placeholder = Symbol();\n\nvar $fakeParent = Symbol();\n\nvar $nextSiblingPatched = Symbol();\n\nvar $childNodesPatched = Symbol();\n\nvar isFrag = function isFrag(node) {\n return \"frag\" in node;\n};\n\nvar parentNodeDescriptor = {\n get: function get() {\n return this[$fakeParent] || this.parentElement;\n },\n configurable: true\n};\n\nvar patchParentNode = function patchParentNode(node, fakeParent) {\n if ($fakeParent in node) {\n return;\n }\n node[$fakeParent] = fakeParent;\n Object.defineProperty(node, \"parentNode\", parentNodeDescriptor);\n};\n\nvar nextSiblingDescriptor = {\n get: function get() {\n var childNodes = this.parentNode.childNodes;\n var index = childNodes.indexOf(this);\n if (index > -1) {\n return childNodes[index + 1] || null;\n }\n return null;\n }\n};\n\nvar patchNextSibling = function patchNextSibling(node) {\n if ($nextSiblingPatched in node) {\n return;\n }\n node[$nextSiblingPatched] = true;\n Object.defineProperty(node, \"nextSibling\", nextSiblingDescriptor);\n};\n\nvar getTopFragment = function getTopFragment(node, fromParent) {\n while (node.parentNode !== fromParent) {\n var _node = node, parentNode = _node.parentNode;\n if (parentNode) {\n node = parentNode;\n }\n }\n return node;\n};\n\nvar getChildNodes;\n\nvar getChildNodesWithFragments = function getChildNodesWithFragments(node) {\n if (!getChildNodes) {\n var _childNodesDescriptor = Object.getOwnPropertyDescriptor(Node.prototype, \"childNodes\");\n getChildNodes = _childNodesDescriptor.get;\n }\n var realChildNodes = getChildNodes.apply(node);\n var childNodes = Array.from(realChildNodes).map((function(childNode) {\n return getTopFragment(childNode, node);\n }));\n return childNodes.filter((function(childNode, index) {\n return childNode !== childNodes[index - 1];\n }));\n};\n\nvar childNodesDescriptor = {\n get: function get() {\n return this.frag || getChildNodesWithFragments(this);\n }\n};\n\nvar firstChildDescriptor = {\n get: function get() {\n return this.childNodes[0] || null;\n }\n};\n\nfunction hasChildNodes() {\n return this.childNodes.length > 0;\n}\n\nvar patchChildNodes = function patchChildNodes(node) {\n if ($childNodesPatched in node) {\n return;\n }\n node[$childNodesPatched] = true;\n Object.defineProperties(node, {\n childNodes: childNodesDescriptor,\n firstChild: firstChildDescriptor\n });\n node.hasChildNodes = hasChildNodes;\n};\n\nfunction before() {\n var _this$frag$;\n (_this$frag$ = this.frag[0]).before.apply(_this$frag$, arguments);\n}\n\nfunction remove() {\n var frag = this.frag;\n var removed = frag.splice(0, frag.length);\n removed.forEach((function(node) {\n node.remove();\n }));\n}\n\nvar getFragmentLeafNodes = function getFragmentLeafNodes(children) {\n var _Array$prototype;\n return (_Array$prototype = Array.prototype).concat.apply(_Array$prototype, children.map((function(childNode) {\n return isFrag(childNode) ? getFragmentLeafNodes(childNode.frag) : childNode;\n })));\n};\n\nvar addPlaceholder = function addPlaceholder(node, insertBeforeNode) {\n var placeholder = node[$placeholder];\n insertBeforeNode.before(placeholder);\n patchParentNode(placeholder, node);\n node.frag.unshift(placeholder);\n};\n\nfunction removeChild(node) {\n if (isFrag(this)) {\n var hasChildInFragment = this.frag.indexOf(node);\n if (hasChildInFragment > -1) {\n var _this$frag$splice = this.frag.splice(hasChildInFragment, 1), removedNode = _this$frag$splice[0];\n if (this.frag.length === 0) {\n addPlaceholder(this, removedNode);\n }\n node.remove();\n }\n } else {\n var children = getChildNodesWithFragments(this);\n var hasChild = children.indexOf(node);\n if (hasChild > -1) {\n node.remove();\n }\n }\n return node;\n}\n\nfunction insertBefore(insertNode, insertBeforeNode) {\n var _this = this;\n var insertNodes = insertNode.frag || [ insertNode ];\n if (isFrag(this)) {\n if (insertNode[$fakeParent] === this && insertNode.parentElement) {\n return insertNode;\n }\n var _frag = this.frag;\n if (insertBeforeNode) {\n var index = _frag.indexOf(insertBeforeNode);\n if (index > -1) {\n _frag.splice.apply(_frag, [ index, 0 ].concat(insertNodes));\n insertBeforeNode.before.apply(insertBeforeNode, insertNodes);\n }\n } else {\n var _lastNode = _frag[_frag.length - 1];\n _frag.push.apply(_frag, insertNodes);\n _lastNode.after.apply(_lastNode, insertNodes);\n }\n removePlaceholder(this);\n } else if (insertBeforeNode) {\n if (this.childNodes.includes(insertBeforeNode)) {\n insertBeforeNode.before.apply(insertBeforeNode, insertNodes);\n }\n } else {\n this.append.apply(this, insertNodes);\n }\n insertNodes.forEach((function(node) {\n patchParentNode(node, _this);\n }));\n var lastNode = insertNodes[insertNodes.length - 1];\n patchNextSibling(lastNode);\n return insertNode;\n}\n\nfunction appendChild(node) {\n if (node[$fakeParent] === this && node.parentElement) {\n return node;\n }\n var frag = this.frag;\n var lastChild = frag[frag.length - 1];\n lastChild.after(node);\n patchParentNode(node, this);\n removePlaceholder(this);\n frag.push(node);\n return node;\n}\n\nvar removePlaceholder = function removePlaceholder(node) {\n var placeholder = node[$placeholder];\n if (node.frag[0] === placeholder) {\n node.frag.shift();\n placeholder.remove();\n }\n};\n\nvar innerHTMLDescriptor = {\n set: function set(htmlString) {\n var _this2 = this;\n if (this.frag[0] !== this[$placeholder]) {\n this.frag.slice().forEach((function(child) {\n return _this2.removeChild(child);\n }));\n }\n if (htmlString) {\n var domify = document.createElement(\"div\");\n domify.innerHTML = htmlString;\n Array.from(domify.childNodes).forEach((function(node) {\n _this2.appendChild(node);\n }));\n }\n },\n get: function get() {\n return \"\";\n }\n};\n\nvar frag = {\n inserted: function inserted(element) {\n var parentNode = element.parentNode, nextSibling = element.nextSibling, previousSibling = element.previousSibling;\n var childNodes = Array.from(element.childNodes);\n var placeholder = document.createComment(\"\");\n if (childNodes.length === 0) {\n childNodes.push(placeholder);\n }\n element.frag = childNodes;\n element[$placeholder] = placeholder;\n var fragment = document.createDocumentFragment();\n fragment.append.apply(fragment, getFragmentLeafNodes(childNodes));\n element.replaceWith(fragment);\n childNodes.forEach((function(node) {\n patchParentNode(node, element);\n patchNextSibling(node);\n }));\n patchChildNodes(element);\n Object.assign(element, {\n remove: remove,\n appendChild: appendChild,\n insertBefore: insertBefore,\n removeChild: removeChild,\n before: before\n });\n Object.defineProperty(element, \"innerHTML\", innerHTMLDescriptor);\n if (parentNode) {\n Object.assign(parentNode, {\n removeChild: removeChild,\n insertBefore: insertBefore\n });\n patchParentNode(element, parentNode);\n patchChildNodes(parentNode);\n }\n if (nextSibling) {\n patchNextSibling(element);\n }\n if (previousSibling) {\n patchNextSibling(previousSibling);\n }\n },\n unbind: function unbind(element) {\n element.remove();\n }\n};\n\nvar fragment = {\n name: \"Fragment\",\n directives: {\n frag: frag\n },\n render: function render(h) {\n return h(\"div\", {\n directives: [ {\n name: \"frag\"\n } ]\n }, this.$slots[\"default\"]);\n }\n};\n\nexport { fragment as Fragment, frag as default };\n","\n\n\n\n\n","export default \"\\n\\n \\n\\n\"","\n\n\n\n\n\n","\n\n","\n\n\n\n\n","/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport type { RouteConfig } from 'vue-router'\nimport ActivityAppFeed from './views/ActivityAppFeed.vue'\nimport ActivityAppNavigation from './views/ActivityAppNavigation.vue'\n\nexport const routes = [\n\t{\n\t\tpath: '/',\n\t\tname: 'root',\n\t\tredirect: { path: '/all' },\n\t},\n\t{\n\t\tpath: '/:filter?',\n\t\tcomponents: {\n\t\t\tdefault: ActivityAppFeed,\n\t\t\tnavigation: ActivityAppNavigation,\n\t\t},\n\t\tprops: {\n\t\t\tdefault: true,\n\t\t},\n\t},\n] as RouteConfig[]\n","/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport ActivityApp from './views/ActivityApp.vue'\n\nimport { translate, translatePlural } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\n\nimport { routes } from './routes'\n\n// Set up Vue\nVue.prototype.t = translate\nVue.prototype.n = translatePlural\n\nVue.use(VueRouter)\n\nconst router = new VueRouter({\n\tmode: 'history',\n\tbase: generateUrl('/apps/activity'),\n\tlinkActiveClass: 'active',\n\troutes,\n})\n\nexport default new Vue({\n\tel: '#content',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'ActivityRoot',\n\trouter,\n\trender: h => h(ActivityApp),\n})\n"],"names":["extend","a","b","key","encodeReserveRE","encodeReserveReplacer","c","commaRE","encode","str","decode","resolveQuery","query","extraQuery","_parseQuery","parse","parseQuery","parsedQuery","value","castQueryParamValue","res","param","parts","val","stringifyQuery","obj","result","val2","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","clone","route","getFullPath","formatMatch","START","ref","_stringifyQuery","path","hash","stringify","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","i","aVal","bKey","bVal","isIncludedRoute","current","target","queryIncludes","handleRouteEntered","name","instance","cbs","i$1","View","_","props","children","parent","data","h","cache","depth","inactive","vnodeData","cachedData","cachedComponent","fillPropsinData","matched","component","vm","vnode","configProps","propsToPass","resolveProps","attrs","config","resolvePath","relative","base","append","firstChar","stack","segments","segment","parsePath","hashIndex","queryIndex","cleanPath","isarray","arr","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","options","tokens","index","defaultDelimiter","m","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","delimiter","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeAsterisk","matches","flags","opts","token","j","attachKeys","re","keys","regexpToRegexp","groups","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","fillParams","params","routeMsg","filler","normalizeLocation","raw","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","noop","Link","this$1$1","href","classes","globalActiveClass","globalExactActiveClass","activeClassFallback","exactActiveClassFallback","activeClass","exactActiveClass","compareTarget","ariaCurrentValue","handler","e","guardEvent","on","scopedSlot","findAnchor","aData","event","handler$1","event$1","aAttrs","child","_Vue","install","Vue","isDef","v","registerInstance","callVal","strats","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","compileRouteRegex","childMatchAs","aliases","alias","aliasRoute","regex","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","match","currentRoute","_createRoute","paramNames","record$1","matchRoute","redirect","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","len","Time","genStateKey","_key","getStateKey","setStateKey","positionStore","setupScroll","protocolAndPath","absolutePath","stateCopy","handlePopState","handleScroll","to","from","isPop","behavior","position","getScrollPosition","shouldScroll","scrollToPosition","err","saveScrollPosition","getElementPosition","el","docEl","docRect","elRect","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","supportsPushState","ua","pushState","url","replace","history","replaceState","NavigationFailureType","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","type","message","propertiesToLog","isError","isNavigationFailure","errorType","runQueue","queue","fn","cb","step","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","resolve","once","resolvedDef","isESModule","reject","reason","msg","comp","flatten","hasSymbol","called","args","History","normalizeBase","errorCb","onComplete","onAbort","prev","hook","abort","lastRouteIndex","lastCurrentIndex","resolveQueue","updated","deactivated","activated","extractLeaveGuards","extractUpdateHooks","iterator","enterGuards","extractEnterGuards","cleanupListener","baseEl","max","extractGuards","records","bind","reverse","guards","guard","extractGuard","bindGuard","bindEnterGuard","HTML5History","getLocation","expectScroll","supportsScroll","handleRoutingEvent","n","fromRoute","push","pathLowerCase","baseLowerCase","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","mode","prototypeAccessors","app","handleInitialScroll","routeOrError","setupListeners","registerHook","fullPath","createHref","VueRouter$1","list","r","s","t","l","p","u","f","d","g","o","N","y","z","C","k","$","B","L","A","S","I","w","V","U","D","E","M","O","R","P","K","ee","$placeholder","$fakeParent","$nextSiblingPatched","$childNodesPatched","isFrag","node","parentNodeDescriptor","patchParentNode","fakeParent","nextSiblingDescriptor","childNodes","patchNextSibling","getTopFragment","fromParent","_node","parentNode","getChildNodes","getChildNodesWithFragments","_childNodesDescriptor","realChildNodes","childNode","childNodesDescriptor","firstChildDescriptor","hasChildNodes","patchChildNodes","before","_this$frag$","remove","frag","removed","getFragmentLeafNodes","_Array$prototype","addPlaceholder","insertBeforeNode","placeholder","removeChild","hasChildInFragment","_this$frag$splice","removedNode","hasChild","insertBefore","insertNode","_this","insertNodes","_frag","_lastNode","removePlaceholder","lastNode","appendChild","lastChild","innerHTMLDescriptor","htmlString","_this2","domify","element","nextSibling","previousSibling","fragment","dateText","computed","today","moment","yesterday","first","fullDate","formatted","appIconSVG","loading","hasMoreActivites","allActivities","lastActivityLoaded","container","useInfiniteScroll","loadActivities","groupedActivities","activity","date","since","response","ncAxios","generateOcsUrl","ActivityModel","axios","logger","showError","onMounted","watch","_sfc_main","initialRSSLink","personalSettingsLink","loadState","appName","navigationList","rssLink","hasRSSLink","toggleRSSLink","generateUrl","copyRSSLink","showSuccess","ActivityAppFeed","ActivityAppNavigation","translate","translatePlural","ActivityApp"],"mappings":";klBAmBA,SAASA,EAAQC,EAAGC,EAAG,CACrB,QAASC,KAAOD,EACdD,EAAEE,CAAG,EAAID,EAAEC,CAAG,EAEhB,OAAOF,CACT,CAIA,IAAIG,GAAkB,WAClBC,GAAwB,SAAUC,EAAG,CAAE,MAAO,IAAMA,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,CAAE,EACjFC,GAAU,OAKVC,EAAS,SAAUC,EAAK,CAAE,OAAO,mBAAmBA,CAAG,EACtD,QAAQL,GAAiBC,EAAqB,EAC9C,QAAQE,GAAS,GAAG,GAEzB,SAASG,GAAQD,EAAK,CACpB,GAAI,CACF,OAAO,mBAAmBA,CAAG,CAC9B,MAAa,CAIb,CACD,OAAOA,CACT,CAEA,SAASE,GACPC,EACAC,EACAC,EACA,CACKD,IAAe,SAASA,EAAa,CAAA,GAE1C,IAAIE,EAAQD,GAAeE,GACvBC,EACJ,GAAI,CACFA,EAAcF,EAAMH,GAAS,EAAE,CAChC,MAAW,CAEVK,EAAc,CAAA,CACf,CACD,QAASd,KAAOU,EAAY,CAC1B,IAAIK,EAAQL,EAAWV,CAAG,EAC1Bc,EAAYd,CAAG,EAAI,MAAM,QAAQe,CAAK,EAClCA,EAAM,IAAIC,EAAmB,EAC7BA,GAAoBD,CAAK,CAC9B,CACD,OAAOD,CACT,CAEA,IAAIE,GAAsB,SAAUD,EAAO,CAAE,OAAQA,GAAS,MAAQ,OAAOA,GAAU,SAAWA,EAAQ,OAAOA,CAAK,CAAG,EAEzH,SAASF,GAAYJ,EAAO,CAC1B,IAAIQ,EAAM,CAAA,EAIV,OAFAR,EAAQA,EAAM,KAAI,EAAG,QAAQ,YAAa,EAAE,EAEvCA,GAILA,EAAM,MAAM,GAAG,EAAE,QAAQ,SAAUS,EAAO,CACxC,IAAIC,EAAQD,EAAM,QAAQ,MAAO,GAAG,EAAE,MAAM,GAAG,EAC3ClB,EAAMO,GAAOY,EAAM,MAAO,CAAA,EAC1BC,EAAMD,EAAM,OAAS,EAAIZ,GAAOY,EAAM,KAAK,GAAG,CAAC,EAAI,KAEnDF,EAAIjB,CAAG,IAAM,OACfiB,EAAIjB,CAAG,EAAIoB,EACF,MAAM,QAAQH,EAAIjB,CAAG,CAAC,EAC/BiB,EAAIjB,CAAG,EAAE,KAAKoB,CAAG,EAEjBH,EAAIjB,CAAG,EAAI,CAACiB,EAAIjB,CAAG,EAAGoB,CAAG,CAE/B,CAAG,EAEMH,CACT,CAEA,SAASI,GAAgBC,EAAK,CAC5B,IAAIL,EAAMK,EACN,OAAO,KAAKA,CAAG,EACd,IAAI,SAAUtB,EAAK,CAClB,IAAIoB,EAAME,EAAItB,CAAG,EAEjB,GAAIoB,IAAQ,OACV,MAAO,GAGT,GAAIA,IAAQ,KACV,OAAOf,EAAOL,CAAG,EAGnB,GAAI,MAAM,QAAQoB,CAAG,EAAG,CACtB,IAAIG,EAAS,CAAA,EACb,OAAAH,EAAI,QAAQ,SAAUI,EAAM,CACtBA,IAAS,SAGTA,IAAS,KACXD,EAAO,KAAKlB,EAAOL,CAAG,CAAC,EAEvBuB,EAAO,KAAKlB,EAAOL,CAAG,EAAI,IAAMK,EAAOmB,CAAI,CAAC,EAE1D,CAAW,EACMD,EAAO,KAAK,GAAG,CACvB,CAED,OAAOlB,EAAOL,CAAG,EAAI,IAAMK,EAAOe,CAAG,CAC7C,CAAO,EACA,OAAO,SAAUK,EAAG,CAAE,OAAOA,EAAE,OAAS,EAAI,EAC5C,KAAK,GAAG,EACT,KACJ,OAAOR,EAAO,IAAMA,EAAO,EAC7B,CAIA,IAAIS,GAAkB,OAEtB,SAASC,GACPC,EACAC,EACAC,EACAC,EACA,CACA,IAAIV,EAAiBU,GAAUA,EAAO,QAAQ,eAE1CtB,EAAQoB,EAAS,OAAS,GAC9B,GAAI,CACFpB,EAAQuB,GAAMvB,CAAK,CACvB,MAAc,CAAE,CAEd,IAAIwB,EAAQ,CACV,KAAMJ,EAAS,MAASD,GAAUA,EAAO,KACzC,KAAOA,GAAUA,EAAO,MAAS,CAAE,EACnC,KAAMC,EAAS,MAAQ,IACvB,KAAMA,EAAS,MAAQ,GACvB,MAAOpB,EACP,OAAQoB,EAAS,QAAU,CAAE,EAC7B,SAAUK,GAAYL,EAAUR,CAAc,EAC9C,QAASO,EAASO,GAAYP,CAAM,EAAI,CAAE,CAC9C,EACE,OAAIE,IACFG,EAAM,eAAiBC,GAAYJ,EAAgBT,CAAc,GAE5D,OAAO,OAAOY,CAAK,CAC5B,CAEA,SAASD,GAAOjB,EAAO,CACrB,GAAI,MAAM,QAAQA,CAAK,EACrB,OAAOA,EAAM,IAAIiB,EAAK,EACjB,GAAIjB,GAAS,OAAOA,GAAU,SAAU,CAC7C,IAAIE,EAAM,CAAA,EACV,QAASjB,KAAOe,EACdE,EAAIjB,CAAG,EAAIgC,GAAMjB,EAAMf,CAAG,CAAC,EAE7B,OAAOiB,CACX,KACWF,QAAAA,CAEX,CAGA,IAAIqB,EAAQT,GAAY,KAAM,CAC5B,KAAM,GACR,CAAC,EAED,SAASQ,GAAaP,EAAQ,CAE5B,QADIX,EAAM,CAAA,EACHW,GACLX,EAAI,QAAQW,CAAM,EAClBA,EAASA,EAAO,OAElB,OAAOX,CACT,CAEA,SAASiB,GACPG,EACAC,EACA,CACA,IAAIC,EAAOF,EAAI,KACX5B,EAAQ4B,EAAI,MAAY5B,IAAU,SAASA,EAAQ,IACvD,IAAI+B,EAAOH,EAAI,KAAWG,IAAS,SAASA,EAAO,IAEnD,IAAIC,EAAYH,GAAmBjB,GACnC,OAAQkB,GAAQ,KAAOE,EAAUhC,CAAK,EAAI+B,CAC5C,CAEA,SAASE,GAAa5C,EAAGC,EAAG4C,EAAU,CACpC,OAAI5C,IAAMqC,EACDtC,IAAMC,EACHA,EAEDD,EAAE,MAAQC,EAAE,KACdD,EAAE,KAAK,QAAQ4B,GAAiB,EAAE,IAAM3B,EAAE,KAAK,QAAQ2B,GAAiB,EAAE,IAAMiB,GACrF7C,EAAE,OAASC,EAAE,MACb6C,EAAc9C,EAAE,MAAOC,EAAE,KAAK,GACvBD,EAAE,MAAQC,EAAE,KAEnBD,EAAE,OAASC,EAAE,OACZ4C,GACC7C,EAAE,OAASC,EAAE,MACf6C,EAAc9C,EAAE,MAAOC,EAAE,KAAK,GAC9B6C,EAAc9C,EAAE,OAAQC,EAAE,MAAM,GAI3B,GAfA,EAiBX,CAEA,SAAS6C,EAAe9C,EAAGC,EAAG,CAK5B,GAJKD,IAAM,SAASA,EAAI,CAAA,GACnBC,IAAM,SAASA,EAAI,CAAA,GAGpB,CAACD,GAAK,CAACC,EAAK,OAAOD,IAAMC,EAC7B,IAAI8C,EAAQ,OAAO,KAAK/C,CAAC,EAAE,KAAI,EAC3BgD,EAAQ,OAAO,KAAK/C,CAAC,EAAE,KAAI,EAC/B,OAAI8C,EAAM,SAAWC,EAAM,OAClB,GAEFD,EAAM,MAAM,SAAU7C,EAAK+C,EAAG,CACnC,IAAIC,EAAOlD,EAAEE,CAAG,EACZiD,EAAOH,EAAMC,CAAC,EAClB,GAAIE,IAASjD,EAAO,MAAO,GAC3B,IAAIkD,EAAOnD,EAAEC,CAAG,EAEhB,OAAIgD,GAAQ,MAAQE,GAAQ,KAAeF,IAASE,EAEhD,OAAOF,GAAS,UAAY,OAAOE,GAAS,SACvCN,EAAcI,EAAME,CAAI,EAE1B,OAAOF,CAAI,IAAM,OAAOE,CAAI,CACvC,CAAG,CACH,CAEA,SAASC,GAAiBC,EAASC,EAAQ,CACzC,OACED,EAAQ,KAAK,QAAQ1B,GAAiB,GAAG,EAAE,QACzC2B,EAAO,KAAK,QAAQ3B,GAAiB,GAAG,CAC9C,IAAU,IACL,CAAC2B,EAAO,MAAQD,EAAQ,OAASC,EAAO,OACzCC,GAAcF,EAAQ,MAAOC,EAAO,KAAK,CAE7C,CAEA,SAASC,GAAeF,EAASC,EAAQ,CACvC,QAASrD,KAAOqD,EACd,GAAI,EAAErD,KAAOoD,GACX,MAAO,GAGX,MAAO,EACT,CAEA,SAASG,GAAoBtB,EAAO,CAClC,QAASc,EAAI,EAAGA,EAAId,EAAM,QAAQ,OAAQc,IAAK,CAC7C,IAAInB,EAASK,EAAM,QAAQc,CAAC,EAC5B,QAASS,KAAQ5B,EAAO,UAAW,CACjC,IAAI6B,EAAW7B,EAAO,UAAU4B,CAAI,EAChCE,EAAM9B,EAAO,WAAW4B,CAAI,EAChC,GAAI,EAAA,CAACC,GAAY,CAACC,GAClB,CAAO9B,OAAAA,EAAO,WAAW4B,CAAI,EAC7B,QAASG,EAAM,EAAGA,EAAMD,EAAI,OAAQC,IAC7BF,EAAS,mBAAqBC,EAAIC,CAAG,EAAEF,CAAQ,CAEvD,CAAA,CACF,CACH,CAEA,IAAIG,GAAO,CACT,KAAM,aACN,WAAY,GACZ,MAAO,CACL,KAAM,CACJ,KAAM,OACN,QAAS,SACV,CACF,EACD,OAAQ,SAAiBC,EAAGxB,EAAK,CAC/B,IAAIyB,EAAQzB,EAAI,MACZ0B,EAAW1B,EAAI,SACf2B,EAAS3B,EAAI,OACb4B,EAAO5B,EAAI,KAGf4B,EAAK,WAAa,GAalB,QATIC,EAAIF,EAAO,eACXR,EAAOM,EAAM,KACb7B,EAAQ+B,EAAO,OACfG,EAAQH,EAAO,mBAAqBA,EAAO,iBAAmB,CAAA,GAI9DI,EAAQ,EACRC,EAAW,GACRL,GAAUA,EAAO,cAAgBA,GAAQ,CAC9C,IAAIM,EAAYN,EAAO,OAASA,EAAO,OAAO,KAAO,GACjDM,EAAU,YACZF,IAEEE,EAAU,WAAaN,EAAO,iBAAmBA,EAAO,YAC1DK,EAAW,IAEbL,EAASA,EAAO,OACjB,CAID,GAHAC,EAAK,gBAAkBG,EAGnBC,EAAU,CACZ,IAAIE,EAAaJ,EAAMX,CAAI,EACvBgB,EAAkBD,GAAcA,EAAW,UAC/C,OAAIC,GAGED,EAAW,aACbE,GAAgBD,EAAiBP,EAAMM,EAAW,MAAOA,EAAW,WAAW,EAE1EL,EAAEM,EAAiBP,EAAMF,CAAQ,GAGjCG,EAAG,CAEb,CAED,IAAIQ,EAAUzC,EAAM,QAAQmC,CAAK,EAC7BO,EAAYD,GAAWA,EAAQ,WAAWlB,CAAI,EAGlD,GAAI,CAACkB,GAAW,CAACC,EACf,OAAAR,EAAMX,CAAI,EAAI,KACPU,EAAG,EAIZC,EAAMX,CAAI,EAAI,CAAE,UAAWmB,CAAS,EAIpCV,EAAK,sBAAwB,SAAUW,EAAIxD,EAAK,CAE9C,IAAIgC,EAAUsB,EAAQ,UAAUlB,CAAI,GAEjCpC,GAAOgC,IAAYwB,GACnB,CAACxD,GAAOgC,IAAYwB,KAErBF,EAAQ,UAAUlB,CAAI,EAAIpC,EAE7B,GAIC6C,EAAK,OAASA,EAAK,KAAO,CAAE,IAAG,SAAW,SAAUJ,EAAGgB,EAAO,CAC9DH,EAAQ,UAAUlB,CAAI,EAAIqB,EAAM,iBACtC,EAIIZ,EAAK,KAAK,KAAO,SAAUY,EAAO,CAC5BA,EAAM,KAAK,WACbA,EAAM,mBACNA,EAAM,oBAAsBH,EAAQ,UAAUlB,CAAI,IAElDkB,EAAQ,UAAUlB,CAAI,EAAIqB,EAAM,mBAMlCtB,GAAmBtB,CAAK,CAC9B,EAEI,IAAI6C,EAAcJ,EAAQ,OAASA,EAAQ,MAAMlB,CAAI,EAErD,OAAIsB,IACFjF,EAAOsE,EAAMX,CAAI,EAAG,CAClB,MAAOvB,EACP,YAAa6C,CACrB,CAAO,EACDL,GAAgBE,EAAWV,EAAMhC,EAAO6C,CAAW,GAG9CZ,EAAES,EAAWV,EAAMF,CAAQ,CACnC,CACH,EAEA,SAASU,GAAiBE,EAAWV,EAAMhC,EAAO6C,EAAa,CAE7D,IAAIC,EAAcd,EAAK,MAAQe,GAAa/C,EAAO6C,CAAW,EAC9D,GAAIC,EAAa,CAEfA,EAAcd,EAAK,MAAQpE,EAAO,CAAE,EAAEkF,CAAW,EAEjD,IAAIE,EAAQhB,EAAK,MAAQA,EAAK,OAAS,CAAA,EACvC,QAASjE,KAAO+E,GACV,CAACJ,EAAU,OAAS,EAAE3E,KAAO2E,EAAU,UACzCM,EAAMjF,CAAG,EAAI+E,EAAY/E,CAAG,EAC5B,OAAO+E,EAAY/E,CAAG,EAG3B,CACH,CAEA,SAASgF,GAAc/C,EAAOiD,EAAQ,CACpC,OAAQ,OAAOA,EAAM,CACnB,IAAK,YACH,OACF,IAAK,SACH,OAAOA,EACT,IAAK,WACH,OAAOA,EAAOjD,CAAK,EACrB,IAAK,UACH,OAAOiD,EAASjD,EAAM,OAAS,MASlC,CACH,CAIA,SAASkD,GACPC,EACAC,EACAC,EACA,CACA,IAAIC,EAAYH,EAAS,OAAO,CAAC,EACjC,GAAIG,IAAc,IAChB,OAAOH,EAGT,GAAIG,IAAc,KAAOA,IAAc,IACrC,OAAOF,EAAOD,EAGhB,IAAII,EAAQH,EAAK,MAAM,GAAG,GAKtB,CAACC,GAAU,CAACE,EAAMA,EAAM,OAAS,CAAC,IACpCA,EAAM,IAAG,EAKX,QADIC,EAAWL,EAAS,QAAQ,MAAO,EAAE,EAAE,MAAM,GAAG,EAC3CrC,EAAI,EAAGA,EAAI0C,EAAS,OAAQ1C,IAAK,CACxC,IAAI2C,EAAUD,EAAS1C,CAAC,EACpB2C,IAAY,KACdF,EAAM,IAAG,EACAE,IAAY,KACrBF,EAAM,KAAKE,CAAO,CAErB,CAGD,OAAIF,EAAM,CAAC,IAAM,IACfA,EAAM,QAAQ,EAAE,EAGXA,EAAM,KAAK,GAAG,CACvB,CAEA,SAASG,GAAWpD,EAAM,CACxB,IAAIC,EAAO,GACP/B,EAAQ,GAERmF,EAAYrD,EAAK,QAAQ,GAAG,EAC5BqD,GAAa,IACfpD,EAAOD,EAAK,MAAMqD,CAAS,EAC3BrD,EAAOA,EAAK,MAAM,EAAGqD,CAAS,GAGhC,IAAIC,EAAatD,EAAK,QAAQ,GAAG,EACjC,OAAIsD,GAAc,IAChBpF,EAAQ8B,EAAK,MAAMsD,EAAa,CAAC,EACjCtD,EAAOA,EAAK,MAAM,EAAGsD,CAAU,GAG1B,CACL,KAAMtD,EACN,MAAO9B,EACP,KAAM+B,CACP,CACH,CAEA,SAASsD,EAAWvD,EAAM,CACxB,OAAOA,EAAK,QAAQ,gBAAiB,GAAG,CAC1C,CAEA,IAAIwD,GAAU,MAAM,SAAW,SAAUC,EAAK,CAC5C,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,GAAK,gBAChD,EAKIC,EAAiBC,GACjBC,GAAUvF,GACVwF,GAAYC,GACZC,GAAqBC,GACrBC,GAAmBC,GAOnBC,GAAc,IAAI,OAAO,CAG3B,UAOA,wGACF,EAAE,KAAK,GAAG,EAAG,GAAG,EAShB,SAAS9F,GAAON,EAAKqG,EAAS,CAQ5B,QAPIC,EAAS,CAAA,EACT5G,EAAM,EACN6G,EAAQ,EACRtE,EAAO,GACPuE,EAAmBH,GAAWA,EAAQ,WAAa,IACnD1F,GAEIA,EAAMyF,GAAY,KAAKpG,CAAG,IAAM,MAAM,CAC5C,IAAIyG,EAAI9F,EAAI,CAAC,EACT+F,EAAU/F,EAAI,CAAC,EACfgG,EAAShG,EAAI,MAKjB,GAJAsB,GAAQjC,EAAI,MAAMuG,EAAOI,CAAM,EAC/BJ,EAAQI,EAASF,EAAE,OAGfC,EAAS,CACXzE,GAAQyE,EAAQ,CAAC,EACjB,QACD,CAED,IAAIE,EAAO5G,EAAIuG,CAAK,EAChBM,EAASlG,EAAI,CAAC,EACduC,EAAOvC,EAAI,CAAC,EACZmG,EAAUnG,EAAI,CAAC,EACfoG,EAAQpG,EAAI,CAAC,EACbqG,EAAWrG,EAAI,CAAC,EAChBsG,EAAWtG,EAAI,CAAC,EAGhBsB,IACFqE,EAAO,KAAKrE,CAAI,EAChBA,EAAO,IAGT,IAAIiF,EAAUL,GAAU,MAAQD,GAAQ,MAAQA,IAASC,EACrDM,EAASH,IAAa,KAAOA,IAAa,IAC1CI,EAAWJ,IAAa,KAAOA,IAAa,IAC5CK,EAAY1G,EAAI,CAAC,GAAK6F,EACtBc,EAAUR,GAAWC,EAEzBT,EAAO,KAAK,CACV,KAAMpD,GAAQxD,IACd,OAAQmH,GAAU,GAClB,UAAWQ,EACX,SAAUD,EACV,OAAQD,EACR,QAASD,EACT,SAAU,CAAC,CAACD,EACZ,QAASK,EAAUC,GAAYD,CAAO,EAAKL,EAAW,KAAO,KAAOO,EAAaH,CAAS,EAAI,KACpG,CAAK,CACF,CAGD,OAAId,EAAQvG,EAAI,SACdiC,GAAQjC,EAAI,OAAOuG,CAAK,GAItBtE,GACFqE,EAAO,KAAKrE,CAAI,EAGXqE,CACT,CASA,SAASP,GAAS/F,EAAKqG,EAAS,CAC9B,OAAOJ,GAAiB3F,GAAMN,EAAKqG,CAAO,EAAGA,CAAO,CACtD,CAQA,SAASoB,GAA0BzH,EAAK,CACtC,OAAO,UAAUA,CAAG,EAAE,QAAQ,UAAW,SAAUH,EAAG,CACpD,MAAO,IAAMA,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,YAAa,CAC3D,CAAG,CACH,CAQA,SAAS6H,GAAgB1H,EAAK,CAC5B,OAAO,UAAUA,CAAG,EAAE,QAAQ,QAAS,SAAUH,EAAG,CAClD,MAAO,IAAMA,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,YAAa,CAC3D,CAAG,CACH,CAKA,SAASoG,GAAkBK,EAAQD,EAAS,CAK1C,QAHIsB,EAAU,IAAI,MAAMrB,EAAO,MAAM,EAG5B7D,EAAI,EAAGA,EAAI6D,EAAO,OAAQ7D,IAC7B,OAAO6D,EAAO7D,CAAC,GAAM,WACvBkF,EAAQlF,CAAC,EAAI,IAAI,OAAO,OAAS6D,EAAO7D,CAAC,EAAE,QAAU,KAAMmF,GAAMvB,CAAO,CAAC,GAI7E,OAAO,SAAUrF,EAAK6G,EAAM,CAM1B,QALI5F,EAAO,GACP0B,EAAO3C,GAAO,GACdqF,EAAUwB,GAAQ,GAClB9H,EAASsG,EAAQ,OAASoB,GAA2B,mBAEhDhF,EAAI,EAAGA,EAAI6D,EAAO,OAAQ7D,IAAK,CACtC,IAAIqF,EAAQxB,EAAO7D,CAAC,EAEpB,GAAI,OAAOqF,GAAU,SAAU,CAC7B7F,GAAQ6F,EAER,QACD,CAED,IAAIrH,EAAQkD,EAAKmE,EAAM,IAAI,EACvB1C,EAEJ,GAAI3E,GAAS,KACX,GAAIqH,EAAM,SAAU,CAEdA,EAAM,UACR7F,GAAQ6F,EAAM,QAGhB,QACV,KACU,OAAM,IAAI,UAAU,aAAeA,EAAM,KAAO,iBAAiB,EAIrE,GAAIrC,GAAQhF,CAAK,EAAG,CAClB,GAAI,CAACqH,EAAM,OACT,MAAM,IAAI,UAAU,aAAeA,EAAM,KAAO,kCAAoC,KAAK,UAAUrH,CAAK,EAAI,GAAG,EAGjH,GAAIA,EAAM,SAAW,EAAG,CACtB,GAAIqH,EAAM,SACR,SAEA,MAAM,IAAI,UAAU,aAAeA,EAAM,KAAO,mBAAmB,CAEtE,CAED,QAASC,EAAI,EAAGA,EAAItH,EAAM,OAAQsH,IAAK,CAGrC,GAFA3C,EAAUrF,EAAOU,EAAMsH,CAAC,CAAC,EAErB,CAACJ,EAAQlF,CAAC,EAAE,KAAK2C,CAAO,EAC1B,MAAM,IAAI,UAAU,iBAAmB0C,EAAM,KAAO,eAAiBA,EAAM,QAAU,oBAAsB,KAAK,UAAU1C,CAAO,EAAI,GAAG,EAG1InD,IAAS8F,IAAM,EAAID,EAAM,OAASA,EAAM,WAAa1C,CACtD,CAED,QACD,CAID,GAFAA,EAAU0C,EAAM,SAAWJ,GAAejH,CAAK,EAAIV,EAAOU,CAAK,EAE3D,CAACkH,EAAQlF,CAAC,EAAE,KAAK2C,CAAO,EAC1B,MAAM,IAAI,UAAU,aAAe0C,EAAM,KAAO,eAAiBA,EAAM,QAAU,oBAAsB1C,EAAU,GAAG,EAGtHnD,GAAQ6F,EAAM,OAAS1C,CACxB,CAED,OAAOnD,CACR,CACH,CAQA,SAASuF,EAAcxH,EAAK,CAC1B,OAAOA,EAAI,QAAQ,6BAA8B,MAAM,CACzD,CAQA,SAASuH,GAAaR,EAAO,CAC3B,OAAOA,EAAM,QAAQ,gBAAiB,MAAM,CAC9C,CASA,SAASiB,GAAYC,EAAIC,EAAM,CAC7B,OAAAD,EAAG,KAAOC,EACHD,CACT,CAQA,SAASL,GAAOvB,EAAS,CACvB,OAAOA,GAAWA,EAAQ,UAAY,GAAK,GAC7C,CASA,SAAS8B,GAAgBlG,EAAMiG,EAAM,CAEnC,IAAIE,EAASnG,EAAK,OAAO,MAAM,WAAW,EAE1C,GAAImG,EACF,QAAS3F,EAAI,EAAGA,EAAI2F,EAAO,OAAQ3F,IACjCyF,EAAK,KAAK,CACR,KAAMzF,EACN,OAAQ,KACR,UAAW,KACX,SAAU,GACV,OAAQ,GACR,QAAS,GACT,SAAU,GACV,QAAS,IACjB,CAAO,EAIL,OAAOuF,GAAW/F,EAAMiG,CAAI,CAC9B,CAUA,SAASG,GAAepG,EAAMiG,EAAM7B,EAAS,CAG3C,QAFIxF,EAAQ,CAAA,EAEH4B,EAAI,EAAGA,EAAIR,EAAK,OAAQQ,IAC/B5B,EAAM,KAAK+E,GAAa3D,EAAKQ,CAAC,EAAGyF,EAAM7B,CAAO,EAAE,MAAM,EAGxD,IAAIiC,EAAS,IAAI,OAAO,MAAQzH,EAAM,KAAK,GAAG,EAAI,IAAK+G,GAAMvB,CAAO,CAAC,EAErE,OAAO2B,GAAWM,EAAQJ,CAAI,CAChC,CAUA,SAASK,GAAgBtG,EAAMiG,EAAM7B,EAAS,CAC5C,OAAOF,GAAe7F,GAAM2B,EAAMoE,CAAO,EAAG6B,EAAM7B,CAAO,CAC3D,CAUA,SAASF,GAAgBG,EAAQ4B,EAAM7B,EAAS,CACzCZ,GAAQyC,CAAI,IACf7B,EAAkC6B,GAAQ7B,EAC1C6B,EAAO,CAAA,GAGT7B,EAAUA,GAAW,GAOrB,QALImC,EAASnC,EAAQ,OACjBoC,EAAMpC,EAAQ,MAAQ,GACtB1E,EAAQ,GAGHc,EAAI,EAAGA,EAAI6D,EAAO,OAAQ7D,IAAK,CACtC,IAAIqF,EAAQxB,EAAO7D,CAAC,EAEpB,GAAI,OAAOqF,GAAU,SACnBnG,GAAS6F,EAAaM,CAAK,MACtB,CACL,IAAIjB,EAASW,EAAaM,EAAM,MAAM,EAClChB,EAAU,MAAQgB,EAAM,QAAU,IAEtCI,EAAK,KAAKJ,CAAK,EAEXA,EAAM,SACRhB,GAAW,MAAQD,EAASC,EAAU,MAGpCgB,EAAM,SACHA,EAAM,QAGThB,EAAUD,EAAS,IAAMC,EAAU,KAFnCA,EAAU,MAAQD,EAAS,IAAMC,EAAU,MAK7CA,EAAUD,EAAS,IAAMC,EAAU,IAGrCnF,GAASmF,CACV,CACF,CAED,IAAIO,EAAYG,EAAanB,EAAQ,WAAa,GAAG,EACjDqC,EAAoB/G,EAAM,MAAM,CAAC0F,EAAU,MAAM,IAAMA,EAM3D,OAAKmB,IACH7G,GAAS+G,EAAoB/G,EAAM,MAAM,EAAG,CAAC0F,EAAU,MAAM,EAAI1F,GAAS,MAAQ0F,EAAY,WAG5FoB,EACF9G,GAAS,IAITA,GAAS6G,GAAUE,EAAoB,GAAK,MAAQrB,EAAY,MAG3DW,GAAW,IAAI,OAAO,IAAMrG,EAAOiG,GAAMvB,CAAO,CAAC,EAAG6B,CAAI,CACjE,CAcA,SAAStC,GAAc3D,EAAMiG,EAAM7B,EAAS,CAQ1C,OAPKZ,GAAQyC,CAAI,IACf7B,EAAkC6B,GAAQ7B,EAC1C6B,EAAO,CAAA,GAGT7B,EAAUA,GAAW,GAEjBpE,aAAgB,OACXkG,GAAelG,EAA6BiG,CAAM,EAGvDzC,GAAQxD,CAAI,EACPoG,GAAqCpG,EAA8BiG,EAAO7B,CAAO,EAGnFkC,GAAsCtG,EAA8BiG,EAAO7B,CAAO,CAC3F,CACAV,EAAe,MAAQE,GACvBF,EAAe,QAAUG,GACzBH,EAAe,iBAAmBK,GAClCL,EAAe,eAAiBO,GAKhC,IAAIyC,GAAqB,OAAO,OAAO,IAAI,EAE3C,SAASC,EACP3G,EACA4G,EACAC,EACA,CACAD,EAASA,GAAU,GACnB,GAAI,CACF,IAAIE,EACFJ,GAAmB1G,CAAI,IACtB0G,GAAmB1G,CAAI,EAAI0D,EAAe,QAAQ1D,CAAI,GAIzD,OAAI,OAAO4G,EAAO,WAAc,WAAYA,EAAO,CAAC,EAAIA,EAAO,WAExDE,EAAOF,EAAQ,CAAE,OAAQ,EAAI,CAAE,CACvC,MAAW,CAKV,MAAO,EACX,SAEI,OAAOA,EAAO,CAAC,CAChB,CACH,CAIA,SAASG,GACPC,EACAnG,EACAkC,EACAvD,EACA,CACA,IAAImF,EAAO,OAAOqC,GAAQ,SAAW,CAAE,KAAMA,CAAK,EAAGA,EAErD,GAAIrC,EAAK,YACP,OAAOA,EACF,GAAIA,EAAK,KAAM,CACpBA,EAAOrH,EAAO,GAAI0J,CAAG,EACrB,IAAIJ,EAASjC,EAAK,OAClB,OAAIiC,GAAU,OAAOA,GAAW,WAC9BjC,EAAK,OAASrH,EAAO,CAAE,EAAEsJ,CAAM,GAE1BjC,CACR,CAGD,GAAI,CAACA,EAAK,MAAQA,EAAK,QAAU9D,EAAS,CACxC8D,EAAOrH,EAAO,GAAIqH,CAAI,EACtBA,EAAK,YAAc,GACnB,IAAIsC,EAAW3J,EAAOA,EAAO,CAAE,EAAEuD,EAAQ,MAAM,EAAG8D,EAAK,MAAM,EAC7D,GAAI9D,EAAQ,KACV8D,EAAK,KAAO9D,EAAQ,KACpB8D,EAAK,OAASsC,UACLpG,EAAQ,QAAQ,OAAQ,CACjC,IAAIqG,EAAUrG,EAAQ,QAAQA,EAAQ,QAAQ,OAAS,CAAC,EAAE,KAC1D8D,EAAK,KAAOgC,EAAWO,EAASD,EAAW,QAAWpG,EAAQ,KACpE,CAGI,OAAO8D,CACR,CAED,IAAIwC,EAAa/D,GAAUuB,EAAK,MAAQ,EAAE,EACtCyC,EAAYvG,GAAWA,EAAQ,MAAS,IACxCb,EAAOmH,EAAW,KAClBvE,GAAYuE,EAAW,KAAMC,EAAUrE,GAAU4B,EAAK,MAAM,EAC5DyC,EAEAlJ,EAAQD,GACVkJ,EAAW,MACXxC,EAAK,MACLnF,GAAUA,EAAO,QAAQ,UAC7B,EAEMS,EAAO0E,EAAK,MAAQwC,EAAW,KACnC,OAAIlH,GAAQA,EAAK,OAAO,CAAC,IAAM,MAC7BA,EAAO,IAAMA,GAGR,CACL,YAAa,GACb,KAAMD,EACN,MAAO9B,EACP,KAAM+B,CACP,CACH,CAKA,IAAIoH,GAAU,CAAC,OAAQ,MAAM,EACzBC,GAAa,CAAC,OAAQ,KAAK,EAE3BC,GAAO,UAAY,CAAA,EAMnBC,GAAO,CACT,KAAM,aACN,MAAO,CACL,GAAI,CACF,KAAMH,GACN,SAAU,EACX,EACD,IAAK,CACH,KAAM,OACN,QAAS,GACV,EACD,OAAQ,QACR,MAAO,QACP,UAAW,QACX,OAAQ,QACR,QAAS,QACT,YAAa,OACb,iBAAkB,OAClB,iBAAkB,CAChB,KAAM,OACN,QAAS,MACV,EACD,MAAO,CACL,KAAMC,GACN,QAAS,OACV,CACF,EACD,OAAQ,SAAiB3F,EAAG,CAC1B,IAAI8F,EAAW,KAEXjI,EAAS,KAAK,QACdqB,EAAU,KAAK,OACff,EAAMN,EAAO,QACf,KAAK,GACLqB,EACA,KAAK,MACX,EACQvB,EAAWQ,EAAI,SACfJ,EAAQI,EAAI,MACZ4H,EAAO5H,EAAI,KAEX6H,EAAU,CAAA,EACVC,EAAoBpI,EAAO,QAAQ,gBACnCqI,EAAyBrI,EAAO,QAAQ,qBAExCsI,EACFF,GAA4B,qBAC1BG,EACFF,GACI,2BAEFG,EACF,KAAK,aAAe,KAAOF,EAAsB,KAAK,YACpDG,EACF,KAAK,kBAAoB,KACrBF,EACA,KAAK,iBAEPG,EAAgBxI,EAAM,eACtBN,GAAY,KAAM2H,GAAkBrH,EAAM,cAAc,EAAG,KAAMF,CAAM,EACvEE,EAEJiI,EAAQM,CAAgB,EAAI9H,GAAYU,EAASqH,EAAe,KAAK,SAAS,EAC9EP,EAAQK,CAAW,EAAI,KAAK,OAAS,KAAK,UACtCL,EAAQM,CAAgB,EACxBrH,GAAgBC,EAASqH,CAAa,EAE1C,IAAIC,EAAmBR,EAAQM,CAAgB,EAAI,KAAK,iBAAmB,KAEvEG,EAAU,SAAUC,GAAG,CACrBC,GAAWD,EAAC,IACVZ,EAAS,QACXjI,EAAO,QAAQF,EAAUiI,EAAI,EAE7B/H,EAAO,KAAKF,EAAUiI,EAAI,EAGpC,EAEQgB,EAAK,CAAE,MAAOD,IACd,MAAM,QAAQ,KAAK,KAAK,EAC1B,KAAK,MAAM,QAAQ,SAAUD,GAAG,CAC9BE,EAAGF,EAAC,EAAID,CAChB,CAAO,EAEDG,EAAG,KAAK,KAAK,EAAIH,EAGnB,IAAI1G,EAAO,CAAE,MAAOiG,GAEhBa,EACF,CAAC,KAAK,aAAa,YACnB,KAAK,aAAa,SAClB,KAAK,aAAa,QAAQ,CACxB,KAAMd,EACN,MAAOhI,EACP,SAAU0I,EACV,SAAUT,EAAQK,CAAW,EAC7B,cAAeL,EAAQM,CAAgB,CAC/C,CAAO,EAEH,GAAIO,EAAY,CAKd,GAAIA,EAAW,SAAW,EACxB,OAAOA,EAAW,CAAC,EACd,GAAIA,EAAW,OAAS,GAAK,CAACA,EAAW,OAO9C,OAAOA,EAAW,SAAW,EAAI7G,EAAG,EAAGA,EAAE,OAAQ,CAAE,EAAE6G,CAAU,CAElE,CAmBD,GAAI,KAAK,MAAQ,IACf9G,EAAK,GAAK6G,EACV7G,EAAK,MAAQ,CAAE,KAAMgG,EAAM,eAAgBS,OACtC,CAEL,IAAI5K,EAAIkL,GAAW,KAAK,OAAO,OAAO,EACtC,GAAIlL,EAAG,CAELA,EAAE,SAAW,GACb,IAAImL,EAASnL,EAAE,KAAOD,EAAO,CAAA,EAAIC,EAAE,IAAI,EACvCmL,EAAM,GAAKA,EAAM,IAAM,CAAA,EAEvB,QAASC,KAASD,EAAM,GAAI,CAC1B,IAAIE,EAAYF,EAAM,GAAGC,CAAK,EAC1BA,KAASJ,IACXG,EAAM,GAAGC,CAAK,EAAI,MAAM,QAAQC,CAAS,EAAIA,EAAY,CAACA,CAAS,EAEtE,CAED,QAASC,KAAWN,EACdM,KAAWH,EAAM,GAEnBA,EAAM,GAAGG,CAAO,EAAE,KAAKN,EAAGM,CAAO,CAAC,EAElCH,EAAM,GAAGG,CAAO,EAAIT,EAIxB,IAAIU,GAAUvL,EAAE,KAAK,MAAQD,EAAO,CAAE,EAAEC,EAAE,KAAK,KAAK,EACpDuL,GAAO,KAAOpB,EACdoB,GAAO,cAAc,EAAIX,CACjC,MAEQzG,EAAK,GAAK6G,CAEb,CAED,OAAO5G,EAAE,KAAK,IAAKD,EAAM,KAAK,OAAO,OAAO,CAC7C,CACH,EAEA,SAAS4G,GAAYD,EAAG,CAEtB,GAAI,EAAAA,EAAE,SAAWA,EAAE,QAAUA,EAAE,SAAWA,EAAE,WAExC,CAAAA,EAAE,kBAEF,EAAAA,EAAE,SAAW,QAAaA,EAAE,SAAW,GAE3C,IAAIA,EAAE,eAAiBA,EAAE,cAAc,aAAc,CACnD,IAAIvH,EAASuH,EAAE,cAAc,aAAa,QAAQ,EAClD,GAAI,cAAc,KAAKvH,CAAM,EAAK,MACnC,CAED,OAAIuH,EAAE,gBACJA,EAAE,eAAc,EAEX,EACT,CAAA,CAEA,SAASI,GAAYjH,EAAU,CAC7B,GAAIA,GAEF,QADIuH,EACKvI,EAAI,EAAGA,EAAIgB,EAAS,OAAQhB,IAKnC,GAJAuI,EAAQvH,EAAShB,CAAC,EACduI,EAAM,MAAQ,KAGdA,EAAM,WAAaA,EAAQN,GAAWM,EAAM,QAAQ,GACtD,OAAOA,EAIf,CAEA,IAAIC,GAEJ,SAASC,GAASC,EAAK,CACrB,GAAI,EAAAD,GAAQ,WAAaD,KAASE,GAClC,CAAAD,GAAQ,UAAY,GAEpBD,GAAOE,EAEP,IAAIC,EAAQ,SAAUC,EAAG,CAAE,OAAOA,IAAM,QAEpCC,EAAmB,SAAUhH,EAAIiH,EAAS,CAC5C,IAAI9I,EAAI6B,EAAG,SAAS,aAChB8G,EAAM3I,CAAC,GAAK2I,EAAM3I,EAAIA,EAAE,IAAI,GAAK2I,EAAM3I,EAAIA,EAAE,qBAAqB,GACpEA,EAAE6B,EAAIiH,CAAO,CAEnB,EAEEJ,EAAI,MAAM,CACR,aAAc,UAAyB,CACjCC,EAAM,KAAK,SAAS,MAAM,GAC5B,KAAK,YAAc,KACnB,KAAK,QAAU,KAAK,SAAS,OAC7B,KAAK,QAAQ,KAAK,IAAI,EACtBD,EAAI,KAAK,eAAe,KAAM,SAAU,KAAK,QAAQ,QAAQ,OAAO,GAEpE,KAAK,YAAe,KAAK,SAAW,KAAK,QAAQ,aAAgB,KAEnEG,EAAiB,KAAM,IAAI,CAC5B,EACD,UAAW,UAAsB,CAC/BA,EAAiB,IAAI,CACtB,CACL,CAAG,EAED,OAAO,eAAeH,EAAI,UAAW,UAAW,CAC9C,IAAK,UAAgB,CAAE,OAAO,KAAK,YAAY,OAAS,CAC5D,CAAG,EAED,OAAO,eAAeA,EAAI,UAAW,SAAU,CAC7C,IAAK,UAAgB,CAAE,OAAO,KAAK,YAAY,MAAQ,CAC3D,CAAG,EAEDA,EAAI,UAAU,aAAc7H,EAAI,EAChC6H,EAAI,UAAU,aAAc1B,EAAI,EAEhC,IAAI+B,EAASL,EAAI,OAAO,sBAExBK,EAAO,iBAAmBA,EAAO,iBAAmBA,EAAO,kBAAoBA,EAAO,OAAA,CACxF,CAIA,IAAIC,EAAY,OAAO,OAAW,IAIlC,SAASC,EACPC,EACAC,EACAC,EACAC,EACAC,EACA,CAEA,IAAIC,EAAWJ,GAAe,GAE1BK,EAAUJ,GAAc,OAAO,OAAO,IAAI,EAE1CK,EAAUJ,GAAc,OAAO,OAAO,IAAI,EAE9CH,EAAO,QAAQ,SAAUhK,EAAO,CAC9BwK,GAAeH,EAAUC,EAASC,EAASvK,EAAOoK,CAAW,CACjE,CAAG,EAGD,QAAStJ,EAAI,EAAG,EAAIuJ,EAAS,OAAQvJ,EAAI,EAAGA,IACtCuJ,EAASvJ,CAAC,IAAM,MAClBuJ,EAAS,KAAKA,EAAS,OAAOvJ,EAAG,CAAC,EAAE,CAAC,CAAC,EACtC,IACAA,KAgBJ,MAAO,CACL,SAAUuJ,EACV,QAASC,EACT,QAASC,CACV,CACH,CAEA,SAASC,GACPH,EACAC,EACAC,EACAvK,EACA+B,EACA0I,EACA,CACA,IAAInK,EAAON,EAAM,KACbuB,EAAOvB,EAAM,KAmBb0K,EACF1K,EAAM,qBAAuB,GAC3B2K,EAAiBC,GAActK,EAAMyB,EAAQ2I,EAAoB,MAAM,EAEvE,OAAO1K,EAAM,eAAkB,YACjC0K,EAAoB,UAAY1K,EAAM,eAGxC,IAAIL,EAAS,CACX,KAAMgL,EACN,MAAOE,GAAkBF,EAAgBD,CAAmB,EAC5D,WAAY1K,EAAM,YAAc,CAAE,QAASA,EAAM,SAAW,EAC5D,MAAOA,EAAM,MACT,OAAOA,EAAM,OAAU,SACrB,CAACA,EAAM,KAAK,EACZA,EAAM,MACR,CAAE,EACN,UAAW,CAAE,EACb,WAAY,CAAE,EACd,KAAMuB,EACN,OAAQQ,EACR,QAAS0I,EACT,SAAUzK,EAAM,SAChB,YAAaA,EAAM,YACnB,KAAMA,EAAM,MAAQ,CAAE,EACtB,MACEA,EAAM,OAAS,KACX,CAAE,EACFA,EAAM,WACJA,EAAM,MACN,CAAE,QAASA,EAAM,KAAO,CACpC,EAmCE,GAjCIA,EAAM,UAoBRA,EAAM,SAAS,QAAQ,SAAUqJ,EAAO,CACtC,IAAIyB,EAAeL,EACf5G,EAAW4G,EAAU,IAAOpB,EAAM,IAAO,EACzC,OACJmB,GAAeH,EAAUC,EAASC,EAASlB,EAAO1J,EAAQmL,CAAY,CAC5E,CAAK,EAGER,EAAQ3K,EAAO,IAAI,IACtB0K,EAAS,KAAK1K,EAAO,IAAI,EACzB2K,EAAQ3K,EAAO,IAAI,EAAIA,GAGrBK,EAAM,QAAU,OAElB,QADI+K,EAAU,MAAM,QAAQ/K,EAAM,KAAK,EAAIA,EAAM,MAAQ,CAACA,EAAM,KAAK,EAC5Dc,EAAI,EAAGA,EAAIiK,EAAQ,OAAQ,EAAEjK,EAAG,CACvC,IAAIkK,EAAQD,EAAQjK,CAAC,EAUjBmK,EAAa,CACf,KAAMD,EACN,SAAUhL,EAAM,QACxB,EACMwK,GACEH,EACAC,EACAC,EACAU,EACAlJ,EACApC,EAAO,MAAQ,GACvB,CACK,CAGC4B,IACGgJ,EAAQhJ,CAAI,IACfgJ,EAAQhJ,CAAI,EAAI5B,GAStB,CAEA,SAASkL,GACPvK,EACAoK,EACA,CACA,IAAIQ,EAAQlH,EAAe1D,EAAM,CAAE,EAAEoK,CAAmB,EAWxD,OAAOQ,CACT,CAEA,SAASN,GACPtK,EACAyB,EACA8E,EACA,CAGA,OAFKA,IAAUvG,EAAOA,EAAK,QAAQ,MAAO,EAAE,GACxCA,EAAK,CAAC,IAAM,KACZyB,GAAU,KAAezB,EACtBuD,EAAY9B,EAAO,KAAQ,IAAMzB,CAAM,CAChD,CAMA,SAAS6K,GACPnB,EACAlK,EACA,CACA,IAAIM,EAAM2J,EAAeC,CAAM,EAC3BK,EAAWjK,EAAI,SACfkK,EAAUlK,EAAI,QACdmK,EAAUnK,EAAI,QAElB,SAASgL,EAAWpB,EAAQ,CAC1BD,EAAeC,EAAQK,EAAUC,EAASC,CAAO,CAClD,CAED,SAASc,EAAUC,EAAetL,EAAO,CACvC,IAAI+B,EAAU,OAAOuJ,GAAkB,SAAYf,EAAQe,CAAa,EAAI,OAE5EvB,EAAe,CAAC/J,GAASsL,CAAa,EAAGjB,EAAUC,EAASC,EAASxI,CAAM,EAGvEA,GAAUA,EAAO,MAAM,QACzBgI,EAEEhI,EAAO,MAAM,IAAI,SAAUiJ,EAAO,CAAE,MAAQ,CAAE,KAAMA,EAAO,SAAU,CAAChL,CAAK,CAAC,CAAI,CAAE,EAClFqK,EACAC,EACAC,EACAxI,CACR,CAEG,CAED,SAASwJ,GAAa,CACpB,OAAOlB,EAAS,IAAI,SAAU/J,EAAM,CAAE,OAAOgK,EAAQhK,CAAI,EAAI,CAC9D,CAED,SAASkL,EACPlE,EACAmE,EACA5L,EACA,CACA,IAAID,EAAWyH,GAAkBC,EAAKmE,EAAc,GAAO3L,CAAM,EAC7DyB,EAAO3B,EAAS,KAEpB,GAAI2B,EAAM,CACR,IAAI5B,EAAS4K,EAAQhJ,CAAI,EAIzB,GAAI,CAAC5B,EAAU,OAAO+L,EAAa,KAAM9L,CAAQ,EACjD,IAAI+L,EAAahM,EAAO,MAAM,KAC3B,OAAO,SAAU5B,EAAK,CAAE,MAAO,CAACA,EAAI,SAAW,EAC/C,IAAI,SAAUA,EAAK,CAAE,OAAOA,EAAI,IAAK,CAAE,EAM1C,GAJI,OAAO6B,EAAS,QAAW,WAC7BA,EAAS,OAAS,IAGhB6L,GAAgB,OAAOA,EAAa,QAAW,SACjD,QAAS1N,KAAO0N,EAAa,OACvB,EAAE1N,KAAO6B,EAAS,SAAW+L,EAAW,QAAQ5N,CAAG,EAAI,KACzD6B,EAAS,OAAO7B,CAAG,EAAI0N,EAAa,OAAO1N,CAAG,GAKpD,OAAA6B,EAAS,KAAOqH,EAAWtH,EAAO,KAAMC,EAAS,MAAwC,EAClF8L,EAAa/L,EAAQC,EAAUC,CAAc,CAC1D,SAAeD,EAAS,KAAM,CACxBA,EAAS,OAAS,GAClB,QAASkB,EAAI,EAAGA,EAAIuJ,EAAS,OAAQvJ,IAAK,CACxC,IAAIR,EAAO+J,EAASvJ,CAAC,EACjB8K,EAAWtB,EAAQhK,CAAI,EAC3B,GAAIuL,GAAWD,EAAS,MAAOhM,EAAS,KAAMA,EAAS,MAAM,EAC3D,OAAO8L,EAAaE,EAAUhM,EAAUC,CAAc,CAEzD,CACF,CAED,OAAO6L,EAAa,KAAM9L,CAAQ,CACnC,CAED,SAASkM,EACPnM,EACAC,EACA,CACA,IAAImM,EAAmBpM,EAAO,SAC1BmM,EAAW,OAAOC,GAAqB,WACvCA,EAAiBrM,GAAYC,EAAQC,EAAU,KAAME,CAAM,CAAC,EAC5DiM,EAMJ,GAJI,OAAOD,GAAa,WACtBA,EAAW,CAAE,KAAMA,IAGjB,CAACA,GAAY,OAAOA,GAAa,SAMnC,OAAOJ,EAAa,KAAM9L,CAAQ,EAGpC,IAAI0G,EAAKwF,EACLvK,EAAO+E,EAAG,KACVhG,EAAOgG,EAAG,KACV9H,EAAQoB,EAAS,MACjBW,EAAOX,EAAS,KAChBsH,EAAStH,EAAS,OAKtB,GAJApB,EAAQ8H,EAAG,eAAe,OAAO,EAAIA,EAAG,MAAQ9H,EAChD+B,EAAO+F,EAAG,eAAe,MAAM,EAAIA,EAAG,KAAO/F,EAC7C2G,EAASZ,EAAG,eAAe,QAAQ,EAAIA,EAAG,OAASY,EAE/C3F,EAEiB,OAAAgJ,EAAQhJ,CAAI,EAIxBiK,EAAM,CACX,YAAa,GACb,KAAMjK,EACN,MAAO/C,EACP,KAAM+B,EACN,OAAQ2G,CAChB,EAAS,OAAWtH,CAAQ,EACjB,GAAIU,EAAM,CAEf,IAAIkH,EAAUwE,GAAkB1L,EAAMX,CAAM,EAExCsM,EAAehF,EAAWO,EAASN,CAAwD,EAE/F,OAAOsE,EAAM,CACX,YAAa,GACb,KAAMS,EACN,MAAOzN,EACP,KAAM+B,CACd,EAAS,OAAWX,CAAQ,CAC5B,KAIa8L,QAAAA,EAAa,KAAM9L,CAAQ,CAErC,CAED,SAASoL,EACPrL,EACAC,EACA6K,EACA,CACA,IAAIyB,EAAcjF,EAAWwD,EAAS7K,EAAS,MAAuD,EAClGuM,EAAeX,EAAM,CACvB,YAAa,GACb,KAAMU,CACZ,CAAK,EACD,GAAIC,EAAc,CAChB,IAAI1J,EAAU0J,EAAa,QACvBC,EAAgB3J,EAAQA,EAAQ,OAAS,CAAC,EAC9C,OAAA7C,EAAS,OAASuM,EAAa,OACxBT,EAAaU,EAAexM,CAAQ,CAC5C,CACD,OAAO8L,EAAa,KAAM9L,CAAQ,CACnC,CAED,SAAS8L,EACP/L,EACAC,EACAC,EACA,CACA,OAAIF,GAAUA,EAAO,SACZmM,EAASnM,EAAQE,GAAkBD,CAAQ,EAEhDD,GAAUA,EAAO,QACZqL,EAAMrL,EAAQC,EAAUD,EAAO,OAAO,EAExCD,GAAYC,EAAQC,EAAUC,EAAgBC,CAAM,CAC5D,CAED,MAAO,CACL,MAAO0L,EACP,SAAUH,EACV,UAAWE,EACX,UAAWH,CACZ,CACH,CAEA,SAASS,GACPX,EACA5K,EACA4G,EACA,CACA,IAAIpC,EAAIxE,EAAK,MAAM4K,CAAK,EAExB,GAAKpG,GAEE,GAAI,CAACoC,EACV,MAAO,OAFA,OAAA,GAKT,QAASpG,EAAI,EAAGuL,EAAMvH,EAAE,OAAQhE,EAAIuL,EAAK,EAAEvL,EAAG,CAC5C,IAAI/C,EAAMmN,EAAM,KAAKpK,EAAI,CAAC,EACtB/C,IAEFmJ,EAAOnJ,EAAI,MAAQ,WAAW,EAAI,OAAO+G,EAAEhE,CAAC,GAAM,SAAWxC,GAAOwG,EAAEhE,CAAC,CAAC,EAAIgE,EAAEhE,CAAC,EAElF,CAED,MAAO,EACT,CAEA,SAASkL,GAAmB1L,EAAMX,EAAQ,CACxC,OAAOuD,GAAY5C,EAAMX,EAAO,OAASA,EAAO,OAAO,KAAO,IAAK,EAAI,CACzE,CAKA,IAAI2M,GACFxC,GAAa,OAAO,aAAe,OAAO,YAAY,IAClD,OAAO,YACP,KAEN,SAASyC,IAAe,CACtB,OAAOD,GAAK,MAAM,QAAQ,CAAC,CAC7B,CAEA,IAAIE,GAAOD,GAAW,EAEtB,SAASE,IAAe,CACtB,OAAOD,EACT,CAEA,SAASE,GAAa3O,EAAK,CACzB,OAAQyO,GAAOzO,CACjB,CAIA,IAAI4O,GAAgB,OAAO,OAAO,IAAI,EAEtC,SAASC,IAAe,CAElB,sBAAuB,OAAO,UAChC,OAAO,QAAQ,kBAAoB,UAOrC,IAAIC,EAAkB,OAAO,SAAS,SAAW,KAAO,OAAO,SAAS,KACpEC,EAAe,OAAO,SAAS,KAAK,QAAQD,EAAiB,EAAE,EAE/DE,EAAYnP,EAAO,CAAA,EAAI,OAAO,QAAQ,KAAK,EAC/C,OAAAmP,EAAU,IAAMN,KAChB,OAAO,QAAQ,aAAaM,EAAW,GAAID,CAAY,EACvD,OAAO,iBAAiB,WAAYE,EAAc,EAC3C,UAAY,CACjB,OAAO,oBAAoB,WAAYA,EAAc,CACtD,CACH,CAEA,SAASC,EACPnN,EACAoN,EACAC,EACAC,EACA,CACA,GAAKtN,EAAO,IAIZ,CAAIuN,IAAAA,EAAWvN,EAAO,QAAQ,eACzBuN,GASLvN,EAAO,IAAI,UAAU,UAAY,CAC/B,IAAIwN,EAAWC,KACXC,EAAeH,EAAS,KAC1BvN,EACAoN,EACAC,EACAC,EAAQE,EAAW,IACzB,EAESE,IAID,OAAOA,EAAa,MAAS,WAC/BA,EACG,KAAK,SAAUA,EAAc,CAC5BC,GAAkBD,EAAeF,CAAQ,CACnD,CAAS,EACA,MAAM,SAAUI,EAAK,CAI9B,CAAS,EAEHD,GAAiBD,EAAcF,CAAQ,EAE7C,CAAG,CACH,CAAA,CAEA,SAASK,IAAsB,CAC7B,IAAI5P,EAAM0O,KACN1O,IACF4O,GAAc5O,CAAG,EAAI,CACnB,EAAG,OAAO,YACV,EAAG,OAAO,WAChB,EAEA,CAEA,SAASiP,GAAgBrE,EAAG,CAC1BgF,KACIhF,EAAE,OAASA,EAAE,MAAM,KACrB+D,GAAY/D,EAAE,MAAM,GAAG,CAE3B,CAEA,SAAS4E,IAAqB,CAC5B,IAAIxP,EAAM0O,KACV,GAAI1O,EACF,OAAO4O,GAAc5O,CAAG,CAE5B,CAEA,SAAS6P,GAAoBC,EAAI7I,EAAQ,CACvC,IAAI8I,EAAQ,SAAS,gBACjBC,EAAUD,EAAM,wBAChBE,EAASH,EAAG,wBAChB,MAAO,CACL,EAAGG,EAAO,KAAOD,EAAQ,KAAO/I,EAAO,EACvC,EAAGgJ,EAAO,IAAMD,EAAQ,IAAM/I,EAAO,CACtC,CACH,CAEA,SAASiJ,GAAiB5O,EAAK,CAC7B,OAAO6O,EAAS7O,EAAI,CAAC,GAAK6O,EAAS7O,EAAI,CAAC,CAC1C,CAEA,SAAS8O,GAAmB9O,EAAK,CAC/B,MAAO,CACL,EAAG6O,EAAS7O,EAAI,CAAC,EAAIA,EAAI,EAAI,OAAO,YACpC,EAAG6O,EAAS7O,EAAI,CAAC,EAAIA,EAAI,EAAI,OAAO,WACrC,CACH,CAEA,SAAS+O,GAAiB/O,EAAK,CAC7B,MAAO,CACL,EAAG6O,EAAS7O,EAAI,CAAC,EAAIA,EAAI,EAAI,EAC7B,EAAG6O,EAAS7O,EAAI,CAAC,EAAIA,EAAI,EAAI,CAC9B,CACH,CAEA,SAAS6O,EAAUxE,EAAG,CACpB,OAAO,OAAOA,GAAM,QACtB,CAEA,IAAI2E,GAAyB,OAE7B,SAASZ,GAAkBD,EAAcF,EAAU,CACjD,IAAIgB,EAAW,OAAOd,GAAiB,SACvC,GAAIc,GAAY,OAAOd,EAAa,UAAa,SAAU,CAGzD,IAAIK,EAAKQ,GAAuB,KAAKb,EAAa,QAAQ,EACtD,SAAS,eAAeA,EAAa,SAAS,MAAM,CAAC,CAAC,EACtD,SAAS,cAAcA,EAAa,QAAQ,EAEhD,GAAIK,EAAI,CACN,IAAI7I,EACFwI,EAAa,QAAU,OAAOA,EAAa,QAAW,SAClDA,EAAa,OACb,GACNxI,EAASoJ,GAAgBpJ,CAAM,EAC/BsI,EAAWM,GAAmBC,EAAI7I,CAAM,CAC9C,MAAeiJ,GAAgBT,CAAY,IACrCF,EAAWa,GAAkBX,CAAY,EAE5C,MAAUc,GAAYL,GAAgBT,CAAY,IACjDF,EAAWa,GAAkBX,CAAY,GAGvCF,IAEE,mBAAoB,SAAS,gBAAgB,MAC/C,OAAO,SAAS,CACd,KAAMA,EAAS,EACf,IAAKA,EAAS,EAEd,SAAUE,EAAa,QAC/B,CAAO,EAED,OAAO,SAASF,EAAS,EAAGA,EAAS,CAAC,EAG5C,CAIA,IAAIiB,EACFzE,GACC,UAAY,CACX,IAAI0E,EAAK,OAAO,UAAU,UAE1B,OACGA,EAAG,QAAQ,YAAY,IAAM,IAAMA,EAAG,QAAQ,aAAa,IAAM,KAClEA,EAAG,QAAQ,eAAe,IAAM,IAChCA,EAAG,QAAQ,QAAQ,IAAM,IACzBA,EAAG,QAAQ,eAAe,IAAM,GAEzB,GAGF,OAAO,SAAW,OAAO,OAAO,QAAQ,WAAc,UACjE,IAEA,SAASC,GAAWC,EAAKC,EAAS,CAChChB,KAGA,IAAIiB,EAAU,OAAO,QACrB,GAAI,CACF,GAAID,EAAS,CAEX,IAAI5B,EAAYnP,EAAO,CAAE,EAAEgR,EAAQ,KAAK,EACxC7B,EAAU,IAAMN,KAChBmC,EAAQ,aAAa7B,EAAW,GAAI2B,CAAG,CAC7C,MACME,EAAQ,UAAU,CAAE,IAAKlC,GAAYH,GAAW,CAAE,CAAG,EAAE,GAAImC,CAAG,CAEjE,MAAW,CACV,OAAO,SAASC,EAAU,UAAY,QAAQ,EAAED,CAAG,CACpD,CACH,CAEA,SAASG,GAAcH,EAAK,CAC1BD,GAAUC,EAAK,EAAI,CACrB,CAGA,IAAII,EAAwB,CAC1B,WAAY,EACZ,QAAS,EACT,UAAW,EACX,WAAY,EACd,EAEA,SAASC,GAAiC5B,EAAMD,EAAI,CAClD,OAAO8B,GACL7B,EACAD,EACA4B,EAAsB,WACrB,+BAAmC3B,EAAK,SAAY,SAAc8B,GACjE/B,CACD,EAAI,2BACN,CACH,CAEA,SAASgC,GAAiC/B,EAAMD,EAAI,CAClD,IAAIiC,EAAQH,GACV7B,EACAD,EACA4B,EAAsB,WACrB,sDAA0D3B,EAAK,SAAY,IAChF,EAEE,OAAAgC,EAAM,KAAO,uBACNA,CACT,CAEA,SAASC,GAAgCjC,EAAMD,EAAI,CACjD,OAAO8B,GACL7B,EACAD,EACA4B,EAAsB,UACrB,8BAAkC3B,EAAK,SAAY,SAAcD,EAAG,SAAY,0BAClF,CACH,CAEA,SAASmC,GAA8BlC,EAAMD,EAAI,CAC/C,OAAO8B,GACL7B,EACAD,EACA4B,EAAsB,QACrB,4BAAgC3B,EAAK,SAAY,SAAcD,EAAG,SAAY,2BAChF,CACH,CAEA,SAAS8B,GAAmB7B,EAAMD,EAAIoC,EAAMC,EAAS,CACnD,IAAIJ,EAAQ,IAAI,MAAMI,CAAO,EAC7B,OAAAJ,EAAM,UAAY,GAClBA,EAAM,KAAOhC,EACbgC,EAAM,GAAKjC,EACXiC,EAAM,KAAOG,EAENH,CACT,CAEA,IAAIK,GAAkB,CAAC,SAAU,QAAS,MAAM,EAEhD,SAASP,GAAgB/B,EAAI,CAC3B,GAAI,OAAOA,GAAO,SAAY,OAAOA,EACrC,GAAI,SAAUA,EAAM,OAAOA,EAAG,KAC9B,IAAItN,EAAW,CAAA,EACf,OAAA4P,GAAgB,QAAQ,SAAUzR,EAAK,CACjCA,KAAOmP,IAAMtN,EAAS7B,CAAG,EAAImP,EAAGnP,CAAG,EAC3C,CAAG,EACM,KAAK,UAAU6B,EAAU,KAAM,CAAC,CACzC,CAEA,SAAS6P,GAAS/B,EAAK,CACrB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,EAAE,QAAQ,OAAO,EAAI,EAChE,CAEA,SAASgC,GAAqBhC,EAAKiC,EAAW,CAC5C,OACEF,GAAQ/B,CAAG,GACXA,EAAI,YACHiC,GAAa,MAAQjC,EAAI,OAASiC,EAEvC,CAIA,SAASC,GAAUC,EAAOC,EAAIC,EAAI,CAChC,IAAIC,EAAO,SAAUpL,EAAO,CACtBA,GAASiL,EAAM,OACjBE,IAEIF,EAAMjL,CAAK,EACbkL,EAAGD,EAAMjL,CAAK,EAAG,UAAY,CAC3BoL,EAAKpL,EAAQ,CAAC,CACxB,CAAS,EAEDoL,EAAKpL,EAAQ,CAAC,CAGtB,EACEoL,EAAK,CAAC,CACR,CAIA,SAASC,GAAwBxN,EAAS,CACxC,OAAO,SAAUyK,EAAIC,EAAMlI,EAAM,CAC/B,IAAIiL,EAAW,GACXC,EAAU,EACVhB,EAAQ,KAEZiB,GAAkB3N,EAAS,SAAU4N,EAAKzO,EAAG4J,EAAOzN,EAAK,CAMvD,GAAI,OAAOsS,GAAQ,YAAcA,EAAI,MAAQ,OAAW,CACtDH,EAAW,GACXC,IAEA,IAAIG,EAAUC,GAAK,SAAUC,EAAa,CACpCC,GAAWD,CAAW,IACxBA,EAAcA,EAAY,SAG5BH,EAAI,SAAW,OAAOG,GAAgB,WAClCA,EACAlH,GAAK,OAAOkH,CAAW,EAC3BhF,EAAM,WAAWzN,CAAG,EAAIyS,EACxBL,IACIA,GAAW,GACblL,GAEZ,CAAS,EAEGyL,EAASH,GAAK,SAAUI,EAAQ,CAClC,IAAIC,EAAM,qCAAuC7S,EAAM,KAAO4S,EAEzDxB,IACHA,EAAQM,GAAQkB,CAAM,EAClBA,EACA,IAAI,MAAMC,CAAG,EACjB3L,EAAKkK,CAAK,EAEtB,CAAS,EAEGnQ,EACJ,GAAI,CACFA,EAAMqR,EAAIC,EAASI,CAAM,CAC1B,OAAQ/H,EAAG,CACV+H,EAAO/H,CAAC,CACT,CACD,GAAI3J,EACF,GAAI,OAAOA,EAAI,MAAS,WACtBA,EAAI,KAAKsR,EAASI,CAAM,MACnB,CAEL,IAAIG,EAAO7R,EAAI,UACX6R,GAAQ,OAAOA,EAAK,MAAS,YAC/BA,EAAK,KAAKP,EAASI,CAAM,CAE5B,CAEJ,CACP,CAAK,EAEIR,GAAYjL,EAAI,CACtB,CACH,CAEA,SAASmL,GACP3N,EACAqN,EACA,CACA,OAAOgB,GAAQrO,EAAQ,IAAI,SAAUqC,EAAG,CACtC,OAAO,OAAO,KAAKA,EAAE,UAAU,EAAE,IAAI,SAAU/G,EAAK,CAAE,OAAO+R,EAC3DhL,EAAE,WAAW/G,CAAG,EAChB+G,EAAE,UAAU/G,CAAG,EACf+G,EAAG/G,CACJ,EAAG,CACR,CAAG,CAAC,CACJ,CAEA,SAAS+S,GAAS/M,EAAK,CACrB,OAAO,MAAM,UAAU,OAAO,MAAM,CAAA,EAAIA,CAAG,CAC7C,CAEA,IAAIgN,GACF,OAAO,QAAW,YAClB,OAAO,OAAO,aAAgB,SAEhC,SAASN,GAAYpR,EAAK,CACxB,OAAOA,EAAI,YAAe0R,IAAa1R,EAAI,OAAO,WAAW,IAAM,QACrE,CAMA,SAASkR,GAAMT,EAAI,CACjB,IAAIkB,EAAS,GACb,OAAO,UAAY,CAEjB,QADIC,EAAO,CAAE,EAAE5E,EAAM,UAAU,OACvBA,KAAQ4E,EAAM5E,CAAG,EAAK,UAAWA,GAEzC,GAAI,CAAA2E,EACJ,OAAAA,EAAS,GACFlB,EAAG,MAAM,KAAMmB,CAAI,CAC3B,CACH,CAIA,IAAIC,EAAU,SAAkBpR,EAAQsD,EAAM,CAC5C,KAAK,OAAStD,EACd,KAAK,KAAOqR,GAAc/N,CAAI,EAE9B,KAAK,QAAUjD,EACf,KAAK,QAAU,KACf,KAAK,MAAQ,GACb,KAAK,SAAW,GAChB,KAAK,cAAgB,GACrB,KAAK,SAAW,GAChB,KAAK,UAAY,EACnB,EAEA+Q,EAAQ,UAAU,OAAS,SAAiBnB,EAAI,CAC9C,KAAK,GAAKA,CACZ,EAEAmB,EAAQ,UAAU,QAAU,SAAkBnB,EAAIqB,EAAS,CACrD,KAAK,MACPrB,KAEA,KAAK,SAAS,KAAKA,CAAE,EACjBqB,GACF,KAAK,cAAc,KAAKA,CAAO,EAGrC,EAEAF,EAAQ,UAAU,QAAU,SAAkBE,EAAS,CACrD,KAAK,SAAS,KAAKA,CAAO,CAC5B,EAEAF,EAAQ,UAAU,aAAe,SAC/BtR,EACAyR,EACAC,EACA,CACE,IAAIvJ,EAAW,KAEb/H,EAEJ,GAAI,CACFA,EAAQ,KAAK,OAAO,MAAMJ,EAAU,KAAK,OAAO,CACjD,OAAQ+I,EAAG,CACV,MAAA,KAAK,SAAS,QAAQ,SAAUoH,EAAI,CAClCA,EAAGpH,CAAC,CACV,CAAK,EAEKA,CACP,CACD,IAAI4I,EAAO,KAAK,QAChB,KAAK,kBACHvR,EACA,UAAY,CACV+H,EAAS,YAAY/H,CAAK,EAC1BqR,GAAcA,EAAWrR,CAAK,EAC9B+H,EAAS,UAAS,EAClBA,EAAS,OAAO,WAAW,QAAQ,SAAUyJ,EAAM,CACjDA,GAAQA,EAAKxR,EAAOuR,CAAI,CAChC,CAAO,EAGIxJ,EAAS,QACZA,EAAS,MAAQ,GACjBA,EAAS,SAAS,QAAQ,SAAUgI,EAAI,CACtCA,EAAG/P,CAAK,CAClB,CAAS,EAEJ,EACD,SAAU0N,EAAK,CACT4D,GACFA,EAAQ5D,CAAG,EAETA,GAAO,CAAC3F,EAAS,QAKf,CAAC2H,GAAoBhC,EAAKoB,EAAsB,UAAU,GAAKyC,IAASpR,KAC1E4H,EAAS,MAAQ,GACjBA,EAAS,cAAc,QAAQ,SAAUgI,EAAI,CAC3CA,EAAGrC,CAAG,CAClB,CAAW,EAGN,CACL,CACA,EAEAwD,EAAQ,UAAU,kBAAoB,SAA4BlR,EAAOqR,EAAYC,EAAS,CAC1F,IAAIvJ,EAAW,KAEb5G,EAAU,KAAK,QACnB,KAAK,QAAUnB,EACf,IAAIyR,EAAQ,SAAU/D,EAAK,CAIrB,CAACgC,GAAoBhC,CAAG,GAAK+B,GAAQ/B,CAAG,IACtC3F,EAAS,SAAS,OACpBA,EAAS,SAAS,QAAQ,SAAUgI,EAAI,CACtCA,EAAGrC,CAAG,CAChB,CAAS,EAKD,QAAQ,MAAMA,CAAG,GAGrB4D,GAAWA,EAAQ5D,CAAG,CAC1B,EACMgE,EAAiB1R,EAAM,QAAQ,OAAS,EACxC2R,EAAmBxQ,EAAQ,QAAQ,OAAS,EAChD,GACEV,GAAYT,EAAOmB,CAAO,GAE1BuQ,IAAmBC,GACnB3R,EAAM,QAAQ0R,CAAc,IAAMvQ,EAAQ,QAAQwQ,CAAgB,EAElE,OAAA,KAAK,UAAS,EACV3R,EAAM,MACRiN,EAAa,KAAK,OAAQ9L,EAASnB,EAAO,EAAK,EAE1CyR,EAAMvC,GAAgC/N,EAASnB,CAAK,CAAC,EAG9D,IAAII,EAAMwR,GACR,KAAK,QAAQ,QACb5R,EAAM,OACV,EACQ6R,EAAUzR,EAAI,QACd0R,EAAc1R,EAAI,YAClB2R,EAAY3R,EAAI,UAElByP,EAAQ,CAAA,EAAG,OAEbmC,GAAmBF,CAAW,EAE9B,KAAK,OAAO,YAEZG,GAAmBJ,CAAO,EAE1BE,EAAU,IAAI,SAAUjN,EAAG,CAAE,OAAOA,EAAE,YAAc,EAEpDmL,GAAuB8B,CAAS,CACpC,EAEMG,EAAW,SAAUV,EAAMvM,EAAM,CACnC,GAAI8C,EAAS,UAAY/H,EACvB,OAAOyR,EAAMrC,GAA+BjO,EAASnB,CAAK,CAAC,EAE7D,GAAI,CACFwR,EAAKxR,EAAOmB,EAAS,SAAU+L,EAAI,CAC7BA,IAAO,IAETnF,EAAS,UAAU,EAAI,EACvB0J,EAAMpC,GAA6BlO,EAASnB,CAAK,CAAC,GACzCyP,GAAQvC,CAAE,GACnBnF,EAAS,UAAU,EAAI,EACvB0J,EAAMvE,CAAE,GAER,OAAOA,GAAO,UACb,OAAOA,GAAO,WACZ,OAAOA,EAAG,MAAS,UAAY,OAAOA,EAAG,MAAS,WAGrDuE,EAAM1C,GAAgC5N,EAASnB,CAAK,CAAC,EACjD,OAAOkN,GAAO,UAAYA,EAAG,QAC/BnF,EAAS,QAAQmF,CAAE,EAEnBnF,EAAS,KAAKmF,CAAE,GAIlBjI,EAAKiI,CAAE,CAEjB,CAAO,CACF,OAAQvE,EAAG,CACV8I,EAAM9I,CAAC,CACR,CACL,EAEEiH,GAASC,EAAOqC,EAAU,UAAY,CAGpC,IAAIC,EAAcC,GAAmBL,CAAS,EAC1ClC,EAAQsC,EAAY,OAAOpK,EAAS,OAAO,YAAY,EAC3D6H,GAASC,EAAOqC,EAAU,UAAY,CACpC,GAAInK,EAAS,UAAY/H,EACvB,OAAOyR,EAAMrC,GAA+BjO,EAASnB,CAAK,CAAC,EAE7D+H,EAAS,QAAU,KACnBsJ,EAAWrR,CAAK,EACZ+H,EAAS,OAAO,KAClBA,EAAS,OAAO,IAAI,UAAU,UAAY,CACxCzG,GAAmBtB,CAAK,CAClC,CAAS,CAET,CAAK,CACL,CAAG,CACH,EAEAkR,EAAQ,UAAU,YAAc,SAAsBlR,EAAO,CAC3D,KAAK,QAAUA,EACf,KAAK,IAAM,KAAK,GAAGA,CAAK,CAC1B,EAEAkR,EAAQ,UAAU,eAAiB,UAA2B,CAE9D,EAEAA,EAAQ,UAAU,SAAW,UAAqB,CAGhD,KAAK,UAAU,QAAQ,SAAUmB,EAAiB,CAChDA,GACJ,CAAG,EACD,KAAK,UAAY,GAIjB,KAAK,QAAUlS,EACf,KAAK,QAAU,IACjB,EAEA,SAASgR,GAAe/N,EAAM,CAC5B,GAAI,CAACA,EACH,GAAI0G,EAAW,CAEb,IAAIwI,EAAS,SAAS,cAAc,MAAM,EAC1ClP,EAAQkP,GAAUA,EAAO,aAAa,MAAM,GAAM,IAElDlP,EAAOA,EAAK,QAAQ,qBAAsB,EAAE,CAClD,MACMA,EAAO,IAIX,OAAIA,EAAK,OAAO,CAAC,IAAM,MACrBA,EAAO,IAAMA,GAGRA,EAAK,QAAQ,MAAO,EAAE,CAC/B,CAEA,SAASwO,GACPzQ,EACA8D,EACA,CACA,IAAInE,EACAyR,EAAM,KAAK,IAAIpR,EAAQ,OAAQ8D,EAAK,MAAM,EAC9C,IAAKnE,EAAI,EAAGA,EAAIyR,GACVpR,EAAQL,CAAC,IAAMmE,EAAKnE,CAAC,EADNA,IACnB,CAIF,MAAO,CACL,QAASmE,EAAK,MAAM,EAAGnE,CAAC,EACxB,UAAWmE,EAAK,MAAMnE,CAAC,EACvB,YAAaK,EAAQ,MAAML,CAAC,CAC7B,CACH,CAEA,SAAS0R,GACPC,EACAlR,EACAmR,EACAC,EACA,CACA,IAAIC,EAASxC,GAAkBqC,EAAS,SAAUpC,EAAK7O,EAAUgK,EAAOzN,EAAK,CAC3E,IAAI8U,EAAQC,GAAazC,EAAK9O,CAAI,EAClC,GAAIsR,EACF,OAAO,MAAM,QAAQA,CAAK,EACtBA,EAAM,IAAI,SAAUA,EAAO,CAAE,OAAOH,EAAKG,EAAOrR,EAAUgK,EAAOzN,CAAG,CAAE,CAAE,EACxE2U,EAAKG,EAAOrR,EAAUgK,EAAOzN,CAAG,CAE1C,CAAG,EACD,OAAO+S,GAAQ6B,EAAUC,EAAO,QAAO,EAAKA,CAAM,CACpD,CAEA,SAASE,GACPzC,EACAtS,EACA,CACA,OAAI,OAAOsS,GAAQ,aAEjBA,EAAM/G,GAAK,OAAO+G,CAAG,GAEhBA,EAAI,QAAQtS,CAAG,CACxB,CAEA,SAASiU,GAAoBF,EAAa,CACxC,OAAOU,GAAcV,EAAa,mBAAoBiB,GAAW,EAAI,CACvE,CAEA,SAASd,GAAoBJ,EAAS,CACpC,OAAOW,GAAcX,EAAS,oBAAqBkB,EAAS,CAC9D,CAEA,SAASA,GAAWF,EAAOrR,EAAU,CACnC,GAAIA,EACF,OAAO,UAA4B,CACjC,OAAOqR,EAAM,MAAMrR,EAAU,SAAS,CACvC,CAEL,CAEA,SAAS4Q,GACPL,EACA,CACA,OAAOS,GACLT,EACA,mBACA,SAAUc,EAAOjR,EAAG4J,EAAOzN,EAAK,CAC9B,OAAOiV,GAAeH,EAAOrH,EAAOzN,CAAG,CACxC,CACF,CACH,CAEA,SAASiV,GACPH,EACArH,EACAzN,EACA,CACA,OAAO,SAA0BmP,EAAIC,EAAMlI,EAAM,CAC/C,OAAO4N,EAAM3F,EAAIC,EAAM,SAAU4C,EAAI,CAC/B,OAAOA,GAAO,aACXvE,EAAM,WAAWzN,CAAG,IACvByN,EAAM,WAAWzN,CAAG,EAAI,IAE1ByN,EAAM,WAAWzN,CAAG,EAAE,KAAKgS,CAAE,GAE/B9K,EAAK8K,CAAE,CACb,CAAK,CACF,CACH,CAIA,IAAIkD,GAA6B,SAAU/B,EAAS,CAClD,SAAS+B,EAAcnT,EAAQsD,EAAM,CACnC8N,EAAQ,KAAK,KAAMpR,EAAQsD,CAAI,EAE/B,KAAK,eAAiB8P,EAAY,KAAK,IAAI,CAC5C,CAED,OAAKhC,IAAU+B,EAAa,UAAY/B,GACxC+B,EAAa,UAAY,OAAO,OAAQ/B,GAAWA,EAAQ,WAC3D+B,EAAa,UAAU,YAAcA,EAErCA,EAAa,UAAU,eAAiB,UAA2B,CACjE,IAAIlL,EAAW,KAEf,GAAI,OAAK,UAAU,OAAS,GAI5B,CAAIjI,IAAAA,EAAS,KAAK,OACdqT,EAAerT,EAAO,QAAQ,eAC9BsT,EAAiB7E,GAAqB4E,EAEtCC,GACF,KAAK,UAAU,KAAKxG,GAAa,CAAA,EAGnC,IAAIyG,EAAqB,UAAY,CACnC,IAAIlS,EAAU4G,EAAS,QAInBnI,EAAWsT,EAAYnL,EAAS,IAAI,EACpCA,EAAS,UAAY5H,GAASP,IAAamI,EAAS,gBAIxDA,EAAS,aAAanI,EAAU,SAAUI,EAAO,CAC3CoT,GACFnG,EAAanN,EAAQE,EAAOmB,EAAS,EAAI,CAEnD,CAAO,CACP,EACI,OAAO,iBAAiB,WAAYkS,CAAkB,EACtD,KAAK,UAAU,KAAK,UAAY,CAC9B,OAAO,oBAAoB,WAAYA,CAAkB,CAC/D,CAAK,EACL,EAEEJ,EAAa,UAAU,GAAK,SAAaK,EAAG,CAC1C,OAAO,QAAQ,GAAGA,CAAC,CACvB,EAEEL,EAAa,UAAU,KAAO,SAAerT,EAAUyR,EAAYC,EAAS,CAC1E,IAAIvJ,EAAW,KAEX3H,EAAM,KACNmT,EAAYnT,EAAI,QACpB,KAAK,aAAaR,EAAU,SAAUI,EAAO,CAC3CyO,GAAU5K,EAAUkE,EAAS,KAAO/H,EAAM,QAAQ,CAAC,EACnDiN,EAAalF,EAAS,OAAQ/H,EAAOuT,EAAW,EAAK,EACrDlC,GAAcA,EAAWrR,CAAK,CAC/B,EAAEsR,CAAO,CACd,EAEE2B,EAAa,UAAU,QAAU,SAAkBrT,EAAUyR,EAAYC,EAAS,CAChF,IAAIvJ,EAAW,KAEX3H,EAAM,KACNmT,EAAYnT,EAAI,QACpB,KAAK,aAAaR,EAAU,SAAUI,EAAO,CAC3C6O,GAAahL,EAAUkE,EAAS,KAAO/H,EAAM,QAAQ,CAAC,EACtDiN,EAAalF,EAAS,OAAQ/H,EAAOuT,EAAW,EAAK,EACrDlC,GAAcA,EAAWrR,CAAK,CAC/B,EAAEsR,CAAO,CACd,EAEE2B,EAAa,UAAU,UAAY,SAAoBO,EAAM,CAC3D,GAAIN,EAAY,KAAK,IAAI,IAAM,KAAK,QAAQ,SAAU,CACpD,IAAI/R,EAAU0C,EAAU,KAAK,KAAO,KAAK,QAAQ,QAAQ,EACzD2P,EAAO/E,GAAUtN,CAAO,EAAI0N,GAAa1N,CAAO,CACjD,CACL,EAEE8R,EAAa,UAAU,mBAAqB,UAA+B,CACzE,OAAOC,EAAY,KAAK,IAAI,CAChC,EAESD,CACT,EAAE/B,CAAO,EAET,SAASgC,EAAa9P,EAAM,CAC1B,IAAI9C,EAAO,OAAO,SAAS,SACvBmT,EAAgBnT,EAAK,cACrBoT,EAAgBtQ,EAAK,cAIzB,OAAIA,IAAUqQ,IAAkBC,GAC7BD,EAAc,QAAQ5P,EAAU6P,EAAgB,GAAG,CAAC,IAAM,KAC3DpT,EAAOA,EAAK,MAAM8C,EAAK,MAAM,IAEvB9C,GAAQ,KAAO,OAAO,SAAS,OAAS,OAAO,SAAS,IAClE,CAIA,IAAIqT,GAA4B,SAAUzC,EAAS,CACjD,SAASyC,EAAa7T,EAAQsD,EAAMwQ,EAAU,CAC5C1C,EAAQ,KAAK,KAAMpR,EAAQsD,CAAI,EAE3B,EAAAwQ,GAAYC,GAAc,KAAK,IAAI,IAGvCC,IACD,CAED,OAAK5C,IAAUyC,EAAY,UAAYzC,GACvCyC,EAAY,UAAY,OAAO,OAAQzC,GAAWA,EAAQ,WAC1DyC,EAAY,UAAU,YAAcA,EAIpCA,EAAY,UAAU,eAAiB,UAA2B,CAChE,IAAI5L,EAAW,KAEf,GAAI,EAAK,KAAA,UAAU,OAAS,GAI5B,CAAA,IAAIjI,EAAS,KAAK,OACdqT,EAAerT,EAAO,QAAQ,eAC9BsT,EAAiB7E,GAAqB4E,EAEtCC,GACF,KAAK,UAAU,KAAKxG,GAAa,CAAA,EAGnC,IAAIyG,EAAqB,UAAY,CACnC,IAAIlS,EAAU4G,EAAS,QAClB+L,GAAW,GAGhB/L,EAAS,aAAagM,EAAS,EAAE,SAAU/T,EAAO,CAC5CoT,GACFnG,EAAalF,EAAS,OAAQ/H,EAAOmB,EAAS,EAAI,EAE/CoN,GACHyF,EAAYhU,EAAM,QAAQ,CAEpC,CAAO,CACP,EACQiU,EAAY1F,EAAoB,WAAa,aACjD,OAAO,iBACL0F,EACAZ,CACN,EACI,KAAK,UAAU,KAAK,UAAY,CAC9B,OAAO,oBAAoBY,EAAWZ,CAAkB,CAC9D,CAAK,EACL,EAEEM,EAAY,UAAU,KAAO,SAAe/T,EAAUyR,EAAYC,EAAS,CACzE,IAAIvJ,EAAW,KAEX3H,EAAM,KACNmT,EAAYnT,EAAI,QACpB,KAAK,aACHR,EACA,SAAUI,EAAO,CACfkU,GAASlU,EAAM,QAAQ,EACvBiN,EAAalF,EAAS,OAAQ/H,EAAOuT,EAAW,EAAK,EACrDlC,GAAcA,EAAWrR,CAAK,CAC/B,EACDsR,CACN,CACA,EAEEqC,EAAY,UAAU,QAAU,SAAkB/T,EAAUyR,EAAYC,EAAS,CAC/E,IAAIvJ,EAAW,KAEX3H,EAAM,KACNmT,EAAYnT,EAAI,QACpB,KAAK,aACHR,EACA,SAAUI,EAAO,CACfgU,EAAYhU,EAAM,QAAQ,EAC1BiN,EAAalF,EAAS,OAAQ/H,EAAOuT,EAAW,EAAK,EACrDlC,GAAcA,EAAWrR,CAAK,CAC/B,EACDsR,CACN,CACA,EAEEqC,EAAY,UAAU,GAAK,SAAaL,EAAG,CACzC,OAAO,QAAQ,GAAGA,CAAC,CACvB,EAEEK,EAAY,UAAU,UAAY,SAAoBH,EAAM,CAC1D,IAAIrS,EAAU,KAAK,QAAQ,SACvB4S,EAAS,IAAK5S,IAChBqS,EAAOU,GAAS/S,CAAO,EAAI6S,EAAY7S,CAAO,EAEpD,EAEEwS,EAAY,UAAU,mBAAqB,UAA+B,CACxE,OAAOI,EAAS,CACpB,EAESJ,CACT,EAAEzC,CAAO,EAET,SAAS2C,GAAezQ,EAAM,CAC5B,IAAIxD,EAAWsT,EAAY9P,CAAI,EAC/B,GAAI,CAAC,OAAO,KAAKxD,CAAQ,EACvB,OAAA,OAAO,SAAS,QAAQiE,EAAUT,EAAO,KAAOxD,CAAQ,CAAC,EAClD,EAEX,CAEA,SAASkU,IAAe,CACtB,IAAIxT,EAAOyT,IACX,OAAIzT,EAAK,OAAO,CAAC,IAAM,IACd,IAET0T,EAAY,IAAM1T,CAAI,EACf,GACT,CAEA,SAASyT,GAAW,CAGlB,IAAI/L,EAAO,OAAO,SAAS,KACvBpD,EAAQoD,EAAK,QAAQ,GAAG,EAE5B,OAAIpD,EAAQ,EAAY,IAExBoD,EAAOA,EAAK,MAAMpD,EAAQ,CAAC,EAEpBoD,EACT,CAEA,SAASmM,GAAQ7T,EAAM,CACrB,IAAI0H,EAAO,OAAO,SAAS,KACvBlH,EAAIkH,EAAK,QAAQ,GAAG,EACpB5E,EAAOtC,GAAK,EAAIkH,EAAK,MAAM,EAAGlH,CAAC,EAAIkH,EACvC,OAAQ5E,EAAO,IAAM9C,CACvB,CAEA,SAAS4T,GAAU5T,EAAM,CACnBiO,EACFE,GAAU0F,GAAO7T,CAAI,CAAC,EAEtB,OAAO,SAAS,KAAOA,CAE3B,CAEA,SAAS0T,EAAa1T,EAAM,CACtBiO,EACFM,GAAasF,GAAO7T,CAAI,CAAC,EAEzB,OAAO,SAAS,QAAQ6T,GAAO7T,CAAI,CAAC,CAExC,CAIA,IAAI8T,GAAgC,SAAUlD,EAAS,CACrD,SAASkD,EAAiBtU,EAAQsD,EAAM,CACtC8N,EAAQ,KAAK,KAAMpR,EAAQsD,CAAI,EAC/B,KAAK,MAAQ,GACb,KAAK,MAAQ,EACd,CAED,OAAK8N,IAAUkD,EAAgB,UAAYlD,GAC3CkD,EAAgB,UAAY,OAAO,OAAQlD,GAAWA,EAAQ,WAC9DkD,EAAgB,UAAU,YAAcA,EAExCA,EAAgB,UAAU,KAAO,SAAexU,EAAUyR,EAAYC,EAAS,CAC7E,IAAIvJ,EAAW,KAEf,KAAK,aACHnI,EACA,SAAUI,EAAO,CACf+H,EAAS,MAAQA,EAAS,MAAM,MAAM,EAAGA,EAAS,MAAQ,CAAC,EAAE,OAAO/H,CAAK,EACzE+H,EAAS,QACTsJ,GAAcA,EAAWrR,CAAK,CAC/B,EACDsR,CACN,CACA,EAEE8C,EAAgB,UAAU,QAAU,SAAkBxU,EAAUyR,EAAYC,EAAS,CACnF,IAAIvJ,EAAW,KAEf,KAAK,aACHnI,EACA,SAAUI,EAAO,CACf+H,EAAS,MAAQA,EAAS,MAAM,MAAM,EAAGA,EAAS,KAAK,EAAE,OAAO/H,CAAK,EACrEqR,GAAcA,EAAWrR,CAAK,CAC/B,EACDsR,CACN,CACA,EAEE8C,EAAgB,UAAU,GAAK,SAAad,EAAG,CAC7C,IAAIvL,EAAW,KAEXsM,EAAc,KAAK,MAAQf,EAC/B,GAAI,EAAAe,EAAc,GAAKA,GAAe,KAAK,MAAM,QAGjD,CAAA,IAAIrU,EAAQ,KAAK,MAAMqU,CAAW,EAClC,KAAK,kBACHrU,EACA,UAAY,CACV,IAAIuR,EAAOxJ,EAAS,QACpBA,EAAS,MAAQsM,EACjBtM,EAAS,YAAY/H,CAAK,EAC1B+H,EAAS,OAAO,WAAW,QAAQ,SAAUyJ,EAAM,CACjDA,GAAQA,EAAKxR,EAAOuR,CAAI,CAClC,CAAS,CACF,EACD,SAAU7D,EAAK,CACTgC,GAAoBhC,EAAKoB,EAAsB,UAAU,IAC3D/G,EAAS,MAAQsM,EAEpB,CACP,CACA,CAAA,EAEED,EAAgB,UAAU,mBAAqB,UAA+B,CAC5E,IAAIjT,EAAU,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAC9C,OAAOA,EAAUA,EAAQ,SAAW,GACxC,EAEEiT,EAAgB,UAAU,UAAY,UAAsB,CAE9D,EAESA,CACT,EAAElD,CAAO,EAMLoD,EAAY,SAAoB5P,EAAS,CACtCA,IAAY,SAASA,EAAU,CAAA,GAKpC,KAAK,IAAM,KACX,KAAK,KAAO,GACZ,KAAK,QAAUA,EACf,KAAK,YAAc,GACnB,KAAK,aAAe,GACpB,KAAK,WAAa,GAClB,KAAK,QAAUyG,GAAczG,EAAQ,QAAU,CAAA,EAAI,IAAI,EAEvD,IAAI6P,EAAO7P,EAAQ,MAAQ,OAW3B,OAVA,KAAK,SACH6P,IAAS,WAAa,CAAChG,GAAqB7J,EAAQ,WAAa,GAC/D,KAAK,WACP6P,EAAO,QAEJzK,IACHyK,EAAO,YAET,KAAK,KAAOA,EAEJA,EAAI,CACV,IAAK,UACH,KAAK,QAAU,IAAItB,GAAa,KAAMvO,EAAQ,IAAI,EAClD,MACF,IAAK,OACH,KAAK,QAAU,IAAIiP,GAAY,KAAMjP,EAAQ,KAAM,KAAK,QAAQ,EAChE,MACF,IAAK,WACH,KAAK,QAAU,IAAI0P,GAAgB,KAAM1P,EAAQ,IAAI,EACrD,KAKH,CACH,EAEI8P,GAAqB,CAAE,aAAc,CAAE,aAAc,EAAM,CAAA,EAE/DF,EAAU,UAAU,MAAQ,SAAgBhN,EAAKnG,EAAStB,EAAgB,CACxE,OAAO,KAAK,QAAQ,MAAMyH,EAAKnG,EAAStB,CAAc,CACxD,EAEA2U,GAAmB,aAAa,IAAM,UAAY,CAChD,OAAO,KAAK,SAAW,KAAK,QAAQ,OACtC,EAEAF,EAAU,UAAU,KAAO,SAAeG,EAAkC,CACxE,IAAI1M,EAAW,KA0BjB,GAjBA,KAAK,KAAK,KAAK0M,CAAG,EAIlBA,EAAI,MAAM,iBAAkB,UAAY,CAEtC,IAAI7P,EAAQmD,EAAS,KAAK,QAAQ0M,CAAG,EACjC7P,EAAQ,IAAMmD,EAAS,KAAK,OAAOnD,EAAO,CAAC,EAG3CmD,EAAS,MAAQ0M,IAAO1M,EAAS,IAAMA,EAAS,KAAK,CAAC,GAAK,MAE1DA,EAAS,KAAOA,EAAS,QAAQ,SAAQ,CAClD,CAAG,EAIG,MAAK,IAIT,CAAA,KAAK,IAAM0M,EAEX,IAAI7F,EAAU,KAAK,QAEnB,GAAIA,aAAmBqE,IAAgBrE,aAAmB+E,GAAa,CACrE,IAAIe,EAAsB,SAAUC,EAAc,CAChD,IAAIxH,EAAOyB,EAAQ,QACfuE,EAAepL,EAAS,QAAQ,eAChCqL,EAAiB7E,GAAqB4E,EAEtCC,GAAkB,aAAcuB,GAClC1H,EAAalF,EAAU4M,EAAcxH,EAAM,EAAK,CAExD,EACQyH,EAAiB,SAAUD,EAAc,CAC3C/F,EAAQ,eAAc,EACtB8F,EAAoBC,CAAY,CACtC,EACI/F,EAAQ,aACNA,EAAQ,mBAAoB,EAC5BgG,EACAA,CACN,CACG,CAEDhG,EAAQ,OAAO,SAAU5O,EAAO,CAC9B+H,EAAS,KAAK,QAAQ,SAAU0M,EAAK,CACnCA,EAAI,OAASzU,CACnB,CAAK,CACL,CAAG,EACH,EAEAsU,EAAU,UAAU,WAAa,SAAqBxE,EAAI,CACxD,OAAO+E,GAAa,KAAK,YAAa/E,CAAE,CAC1C,EAEAwE,EAAU,UAAU,cAAgB,SAAwBxE,EAAI,CAC9D,OAAO+E,GAAa,KAAK,aAAc/E,CAAE,CAC3C,EAEAwE,EAAU,UAAU,UAAY,SAAoBxE,EAAI,CACtD,OAAO+E,GAAa,KAAK,WAAY/E,CAAE,CACzC,EAEAwE,EAAU,UAAU,QAAU,SAAkBvE,EAAIqB,EAAS,CAC3D,KAAK,QAAQ,QAAQrB,EAAIqB,CAAO,CAClC,EAEAkD,EAAU,UAAU,QAAU,SAAkBlD,EAAS,CACvD,KAAK,QAAQ,QAAQA,CAAO,CAC9B,EAEAkD,EAAU,UAAU,KAAO,SAAe1U,EAAUyR,EAAYC,EAAS,CACrE,IAAIvJ,EAAW,KAGjB,GAAI,CAACsJ,GAAc,CAACC,GAAW,OAAO,QAAY,IAChD,OAAO,IAAI,QAAQ,SAAUhB,EAASI,EAAQ,CAC5C3I,EAAS,QAAQ,KAAKnI,EAAU0Q,EAASI,CAAM,CACrD,CAAK,EAED,KAAK,QAAQ,KAAK9Q,EAAUyR,EAAYC,CAAO,CAEnD,EAEAgD,EAAU,UAAU,QAAU,SAAkB1U,EAAUyR,EAAYC,EAAS,CAC3E,IAAIvJ,EAAW,KAGjB,GAAI,CAACsJ,GAAc,CAACC,GAAW,OAAO,QAAY,IAChD,OAAO,IAAI,QAAQ,SAAUhB,EAASI,EAAQ,CAC5C3I,EAAS,QAAQ,QAAQnI,EAAU0Q,EAASI,CAAM,CACxD,CAAK,EAED,KAAK,QAAQ,QAAQ9Q,EAAUyR,EAAYC,CAAO,CAEtD,EAEAgD,EAAU,UAAU,GAAK,SAAahB,EAAG,CACvC,KAAK,QAAQ,GAAGA,CAAC,CACnB,EAEAgB,EAAU,UAAU,KAAO,UAAiB,CAC1C,KAAK,GAAG,EAAE,CACZ,EAEAA,EAAU,UAAU,QAAU,UAAoB,CAChD,KAAK,GAAG,CAAC,CACX,EAEAA,EAAU,UAAU,qBAAuB,SAA+BpH,EAAI,CAC5E,IAAIlN,EAAQkN,EACRA,EAAG,QACDA,EACA,KAAK,QAAQA,CAAE,EAAE,MACnB,KAAK,aACT,OAAKlN,EAGE,CAAA,EAAG,OAAO,MACf,CAAE,EACFA,EAAM,QAAQ,IAAI,SAAU8E,EAAG,CAC7B,OAAO,OAAO,KAAKA,EAAE,UAAU,EAAE,IAAI,SAAU/G,EAAK,CAClD,OAAO+G,EAAE,WAAW/G,CAAG,CAC/B,CAAO,CACP,CAAK,CACF,EATQ,CAAE,CAUb,EAEAuW,EAAU,UAAU,QAAU,SAC5BpH,EACA/L,EACAkC,EACA,CACAlC,EAAUA,GAAW,KAAK,QAAQ,QAClC,IAAIvB,EAAWyH,GAAkB6F,EAAI/L,EAASkC,EAAQ,IAAI,EACtDrD,EAAQ,KAAK,MAAMJ,EAAUuB,CAAO,EACpC2T,EAAW9U,EAAM,gBAAkBA,EAAM,SACzCoD,EAAO,KAAK,QAAQ,KACpB4E,EAAO+M,GAAW3R,EAAM0R,EAAU,KAAK,IAAI,EAC/C,MAAO,CACL,SAAUlV,EACV,MAAOI,EACP,KAAMgI,EAEN,aAAcpI,EACd,SAAUI,CACX,CACH,EAEAsU,EAAU,UAAU,UAAY,UAAsB,CACpD,OAAO,KAAK,QAAQ,UAAW,CACjC,EAEAA,EAAU,UAAU,SAAW,SAAmBhJ,EAAetL,EAAO,CACtE,KAAK,QAAQ,SAASsL,EAAetL,CAAK,EACtC,KAAK,QAAQ,UAAYG,GAC3B,KAAK,QAAQ,aAAa,KAAK,QAAQ,mBAAkB,CAAE,CAE/D,EAEAmU,EAAU,UAAU,UAAY,SAAoBtK,EAAQ,CAI1D,KAAK,QAAQ,UAAUA,CAAM,EACzB,KAAK,QAAQ,UAAY7J,GAC3B,KAAK,QAAQ,aAAa,KAAK,QAAQ,mBAAkB,CAAE,CAE/D,EAEA,OAAO,iBAAkBmU,EAAU,UAAWE,EAAkB,EAEhE,IAAIQ,GAAcV,EAElB,SAASO,GAAcI,EAAMnF,EAAI,CAC/B,OAAAmF,EAAK,KAAKnF,CAAE,EACL,UAAY,CACjB,IAAIhP,EAAImU,EAAK,QAAQnF,CAAE,EACnBhP,EAAI,IAAMmU,EAAK,OAAOnU,EAAG,CAAC,CAC/B,CACH,CAEA,SAASiU,GAAY3R,EAAM0R,EAAUP,EAAM,CACzC,IAAIjU,EAAOiU,IAAS,OAAS,IAAMO,EAAWA,EAC9C,OAAO1R,EAAOS,EAAUT,EAAO,IAAM9C,CAAI,EAAIA,CAC/C,CAGAgU,EAAU,QAAU/K,GACpB+K,EAAU,QAAU,QACpBA,EAAU,oBAAsB5E,GAChC4E,EAAU,sBAAwBxF,EAClCwF,EAAU,eAAiBnU,EAEvB2J,GAAa,OAAO,KACtB,OAAO,IAAI,IAAIwK,CAAS,EC/kG1B,MAAMY,GAAI,CACR,MAAO,CACL,QAAS,CACP,KAAM,OACN,SAAU,EACX,CACF,CACH,EACA,IAAIC,GAAI,UAAW,CACjB,IAAIxM,EAAI,KAAMyM,EAAIzM,EAAE,MAAM,GAC1B,OAAOyM,EAAE,MAAO,CAAE,YAAa,UAAW,MAAO,OAAOzM,EAAE,QAAQ,YAAa,CAAA,GAAI,MAAO,CAAE,GAAI,aAAa,GAAM,CAACA,EAAE,GAAG,SAAS,CAAC,EAAG,CAAC,CACzI,EAAG/G,GAAI,GAAI/D,GAAoByV,EAC7B4B,GACAC,GACAvT,GACA,GACA,KACA,WACA,KACA,IACF,EACA,MAAMyT,GAAIxX,GAAE,uUCjBNsX,GAAI,CACR,KAAM,WACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACP,EACD,UAAW,CACT,KAAM,OACN,QAAS,cACV,EACD,KAAM,CACJ,KAAM,OACN,QAAS,EACV,CACF,CACH,EACA,IAAIjX,GAAI,UAAW,CACjB,IAAI,EAAI,KAAM,EAAI,EAAE,MAAM,GAC1B,OAAO,EAAE,OAAQ,EAAE,GAAG,CAAE,YAAa,iCAAkC,MAAO,CAAE,cAAe,CAAC,EAAE,MAAO,aAAc,EAAE,MAAO,KAAM,KAAO,EAAE,GAAI,CAAE,MAAO,SAAS,EAAG,CACtK,OAAO,EAAE,MAAM,QAAS,CAAC,CAC1B,CAAA,GAAM,OAAQ,EAAE,OAAQ,EAAE,EAAG,CAAC,EAAE,MAAO,CAAE,YAAa,4BAA6B,MAAO,CAAE,KAAM,EAAE,UAAW,MAAO,EAAE,KAAM,OAAQ,EAAE,KAAM,QAAS,WAAW,CAAI,EAAE,CAAC,EAAE,OAAQ,CAAE,MAAO,CAAE,EAAG,gDAAgD,GAAM,CAAC,EAAE,MAAQ,EAAE,QAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAI,EAAE,GAAI,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CACpT,EAAGoX,GAAI,GAAI1T,GAAoBd,EAC7BqU,GACAjX,GACAoX,GACA,GACA,KACA,KACA,KACA,IACF,EACA,MAAMC,GAAI3T,GAAE,QAASkD,GAAI,CACvB,KAAM,eACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACP,EACD,UAAW,CACT,KAAM,OACN,QAAS,cACV,EACD,KAAM,CACJ,KAAM,OACN,QAAS,EACV,CACF,CACH,EACA,IAAI0Q,GAAI,UAAW,CACjB,IAAI,EAAI,KAAM,EAAI,EAAE,MAAM,GAC1B,OAAO,EAAE,OAAQ,EAAE,GAAG,CAAE,YAAa,sCAAuC,MAAO,CAAE,cAAe,CAAC,EAAE,MAAO,aAAc,EAAE,MAAO,KAAM,KAAO,EAAE,GAAI,CAAE,MAAO,SAAS,EAAG,CAC3K,OAAO,EAAE,MAAM,QAAS,CAAC,CAC1B,CAAA,GAAM,OAAQ,EAAE,OAAQ,EAAE,EAAG,CAAC,EAAE,MAAO,CAAE,YAAa,4BAA6B,MAAO,CAAE,KAAM,EAAE,UAAW,MAAO,EAAE,KAAM,OAAQ,EAAE,KAAM,QAAS,WAAW,CAAI,EAAE,CAAC,EAAE,OAAQ,CAAE,MAAO,CAAE,EAAG,6GAA6G,GAAM,CAAC,EAAE,MAAQ,EAAE,QAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAI,EAAE,GAAI,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CACjX,EAAG9L,GAAI,GAAI+L,GAAoB3U,EAC7BgE,GACA0Q,GACA9L,GACA,GACA,KACA,KACA,KACA,IACF,EACA,MAAMgM,GAAID,GAAE,QACNxT,GAAI,CACR,KAAM,wBACN,WAAY,CACV,QAASiT,EACV,EACD,WAAY,CACV,SAAUG,GACV,SAAUE,GACV,aAAcG,EACf,EACD,MAAO,CACL,KAAM,CACJ,KAAM,QACN,SAAU,EACX,CACF,EACD,MAAO,CAAC,aAAa,EACrB,SAAU,CACR,OAAQ,CACN,OAAO,KAAK,KAAOC,EAAE,kBAAkB,EAAIA,EAAE,iBAAiB,CAC/D,CACF,EACD,QAAS,CACP,kBAAmB,CACjB,KAAK,MAAM,cAAe,CAAC,KAAK,IAAI,CACrC,CACF,CACH,EACA,IAAIC,GAAI,UAAW,CACjB,IAAI,EAAI,KAAM,EAAI,EAAE,MAAM,GAC1B,OAAO,EAAE,WAAY,CAAE,WAAY,CAAC,CAAE,KAAM,UAAW,QAAS,iBAAkB,MAAO,EAAE,MAAO,WAAY,QAAS,UAAW,CAAE,KAAM,EAAI,CAAA,CAAE,EAAG,YAAa,wBAAyB,MAAO,CAAE,KAAM,WAAY,gBAAiB,EAAE,KAAO,OAAS,QAAS,aAAc,EAAE,MAAO,gBAAiB,oBAAoB,EAAI,GAAI,CAAE,MAAO,EAAE,gBAAkB,EAAE,YAAa,EAAE,GAAG,CAAC,CAAE,IAAK,OAAQ,GAAI,UAAW,CAClZ,MAAO,CAAC,EAAE,KAAO,EAAE,eAAgB,CAAE,MAAO,CAAE,KAAM,EAAE,CAAI,CAAA,EAAI,EAAE,WAAY,CAAE,MAAO,CAAE,KAAM,EAAE,CAAI,CAAA,CAAC,CACrG,EAAE,MAAO,GAAI,CAAC,CAAG,CAAA,CACpB,EAAG9X,GAAI,GAAI+X,GAAoB/U,EAC7BmB,GACA2T,GACA9X,GACA,GACA,KACA,WACA,KACA,IACF,EACA,MAAMgY,GAAID,GAAE,QC3GNN,GAAI,CACR,KAAM,kBACN,WAAY,CACV,sBAAuBjC,EACxB,EACD,OAAQ,CACN,MAAO,CACL,SAAU6B,GAAG,CACnB,CACG,EACD,MAAO,CAIL,UAAW,CACT,KAAM,OACN,QAAS,EACV,EAID,eAAgB,CACd,KAAM,OACN,QAAS,EACV,CACF,EACD,MAAO,CACL,MAAO,CACL,KAAM,GACN,UAAW,IACjB,CACG,EACD,MAAO,CACL,UAAW,CACT,KAAK,KAAO,CAAC,KAAK,SAAU,KAAK,iBAClC,EACD,MAAO,CACL,KAAK,gBAAe,CACrB,CACF,EACD,SAAU,CACRE,GAAE,oBAAqB,KAAK,0BAA0B,EAAGM,GAAE,qBAAsB,CAC/E,KAAM,KAAK,IACjB,CAAK,EAAG,KAAK,UAAYD,GAAE,KAAK,MAAM,uBAAwB,CACxD,kBAAmB,GACnB,cAAe,KAAK,MAAM,uBAC1B,UAAWJ,GAAG,EACd,kBAAmB,EACzB,CAAK,EAAG,KAAK,iBACV,EACD,WAAY,CACVJ,GAAE,oBAAqB,KAAK,0BAA0B,EAAG,KAAK,UAAU,YACzE,EACD,QAAS,CAMP,iBAAiBvM,EAAG,CAClB,KAAK,KAAO,OAAOA,EAAI,IAAM,CAAC,KAAK,KAAOA,EAC1C,MAAMyM,EAAI,iBAAiB,SAAS,IAAI,EAAGvX,EAAI,SAASuX,EAAE,iBAAiB,mBAAmB,CAAC,GAAK,IACpG,WAAW,IAAM,CACfO,GAAE,qBAAsB,CACtB,KAAM,KAAK,IACrB,CAAS,CACT,EAAS,IAAM9X,CAAC,CACX,EACD,2BAA2B,CAAE,KAAM8K,GAAK,CACtC,KAAK,iBAAiBA,CAAC,CACxB,EAID,iBAAkB,CAChB,KAAK,UAAY,KAAK,KAAO,KAAK,UAAU,WAAa,KAAK,UAAU,WAAU,CACnF,EACD,WAAY,CACV,KAAK,UAAY,KAAK,iBAAiB,EAAE,CAC1C,CACF,CACH,EACA,IAAI8M,GAAI,UAAW,CACjB,IAAI,EAAI,KAAM5X,EAAI,EAAE,MAAM,GAC1B,OAAOA,EAAE,MAAO,CAAE,IAAK,yBAA0B,YAAa,iBAAkB,MAAO,CAAE,wBAAyB,CAAC,EAAE,IAAI,CAAI,EAAE,CAACA,EAAE,MAAO,CAAE,YAAa,gCAAkC,EAAE,CAACA,EAAE,wBAAyB,CAAE,MAAO,CAAE,KAAM,EAAE,IAAI,EAAI,GAAI,CAAE,cAAe,EAAE,gBAAgB,EAAI,CAAC,EAAG,CAAC,EAAGA,EAAE,MAAO,CAAE,YAAa,0BAA2B,MAAO,CAAE,GAAI,qBAAsB,cAAe,EAAE,KAAO,QAAU,OAAQ,aAAc,EAAE,WAAa,OAAQ,kBAAmB,EAAE,gBAAkB,OAAQ,MAAO,CAAC,EAAE,MAAQ,MAAQ,EAAE,GAAI,CAAE,QAAS,SAASiD,EAAG,CAC/iB,MAAO,CAACA,EAAE,KAAK,QAAQ,KAAK,GAAK,EAAE,GAAGA,EAAE,QAAS,MAAO,GAAIA,EAAE,IAAK,CAAC,MAAO,QAAQ,CAAC,EAAI,KAAO,EAAE,UAAU,MAAM,KAAM,SAAS,CACjI,CAAA,GAAM,CAAC,EAAE,GAAG,SAAS,EAAGjD,EAAE,KAAM,CAAE,YAAa,wBAA0B,CAAC,EAAE,GAAG,MAAM,CAAC,EAAG,CAAC,EAAG,EAAE,GAAG,QAAQ,CAAC,EAAG,CAAC,CAAC,CAAC,CACpH,EAAG6L,GAAI,GAAI8L,GAAoBtX,EAC7BqX,GACAE,GACA/L,GACA,GACA,KACA,WACA,KACA,IACF,EACA,MAAMqM,GAAIP,GAAE,QClGND,GAAI,CACR,KAAM,uBACN,WAAY,CACV,SAAUI,GACV,WAAYN,GACZ,MAAOvU,EACR,EACD,MAAO,CAIL,QAAS,CACP,QAAS,GACT,KAAM,OACP,EACD,YAAa,CACX,QAAS,GACT,KAAM,MACP,EACD,MAAO,CACL,QAAS,GACT,KAAM,MACP,CACF,EACD,MAAO,CACL,QACA,UACA,QACD,EACD,MAAO,CACL,MAAO,CACL,aAAcjD,EAAE,iBAAiB,EACjC,YAAaA,EAAE,gBAAgB,CACrC,CACG,EACD,SAAU,CACR,WAAY,CACV,KAAM,CACJ,OAAO,KAAK,KACb,EACD,IAAIqX,EAAG,CACL,KAAK,MAAM,QAASA,CAAC,CACtB,CACF,CACF,EACD,QAAS,CACP,SAAU,CACR,KAAK,MAAM,SAAS,CACrB,EACD,QAAS,CACP,KAAK,MAAM,QAAQ,CACpB,EACD,YAAa,CACX,KAAK,MAAM,MAAM,OAClB,CACF,CACH,EACA,IAAII,GAAI,UAAW,CACjB,IAAI3M,EAAI,KAAM2K,EAAI3K,EAAE,MAAM,GAC1B,OAAO2K,EAAE,MAAO,CAAE,YAAa,8BAA8B,EAAI,CAACA,EAAE,OAAQ,CAAE,GAAI,CAAE,OAAQ,SAAS8B,EAAG,CACtG,OAAOA,EAAE,eAAc,EAAIzM,EAAE,QAAQ,MAAM,KAAM,SAAS,CAC9D,EAAK,QAAS,SAASyM,EAAG,CACtB,MAAO,CAACA,EAAE,KAAK,QAAQ,KAAK,GAAKzM,EAAE,GAAGyM,EAAE,QAAS,MAAO,GAAIA,EAAE,IAAK,CAAC,MAAO,QAAQ,CAAC,GAAKA,EAAE,SAAWA,EAAE,UAAYA,EAAE,QAAUA,EAAE,QAAU,MAAQA,EAAE,gBAAiB,EAAEA,EAAE,eAAgB,EAAEzM,EAAE,OAAO,MAAM,KAAM,SAAS,EAC/N,EAAK,MAAO,SAASyM,EAAG,CACpBA,EAAE,gBAAe,EAAIA,EAAE,eAAc,CACzC,CAAK,CAAA,EAAI,CAAC9B,EAAE,QAAS,CAAE,WAAY,CAAC,CAAE,KAAM,QAAS,QAAS,UAAW,MAAO3K,EAAE,WAAY,WAAY,YAAY,CAAE,EAAG,IAAK,QAAS,YAAa,sCAAuC,MAAO,CAAE,KAAM,OAAQ,YAAaA,EAAE,WAAa,EAAE,SAAU,CAAE,MAAOA,EAAE,UAAU,EAAI,GAAI,CAAE,MAAO,SAASyM,EAAG,CAC1SA,EAAE,OAAO,YAAczM,EAAE,WAAayM,EAAE,OAAO,MACnD,CAAK,CAAA,CAAE,EAAG9B,EAAE,WAAY,CAAE,MAAO,CAAE,cAAe,SAAU,KAAM,UAAW,aAAc3K,EAAE,YAAY,EAAI,GAAI,CAAE,MAAO,SAASyM,EAAG,CAClI,OAAOA,EAAE,kBAAmBA,EAAE,eAAc,EAAIzM,EAAE,QAAQ,MAAM,KAAM,SAAS,CACnF,GAAO,YAAaA,EAAE,GAAG,CAAC,CAAE,IAAK,OAAQ,GAAI,UAAW,CACpD,MAAO,CAAC2K,EAAE,aAAc,CAAE,MAAO,CAAE,KAAM,GAAM,CAAA,CAAC,CACjD,EAAE,MAAO,EAAI,CAAA,CAAC,CAAG,CAAA,EAAGA,EAAE,WAAY,CAAE,MAAO,CAAE,cAAe,QAAS,KAAM3K,EAAE,QAAU,UAAY,WAAY,aAAcA,EAAE,WAAW,EAAI,GAAI,CAAE,MAAO,SAASyM,EAAG,CACtK,OAAOA,EAAE,kBAAmBA,EAAE,eAAc,EAAIzM,EAAE,OAAO,MAAM,KAAM,SAAS,CAClF,GAAO,YAAaA,EAAE,GAAG,CAAC,CAAE,IAAK,OAAQ,GAAI,UAAW,CACpD,MAAO,CAAC2K,EAAE,QAAS,CAAE,MAAO,CAAE,KAAM,GAAM,CAAA,CAAC,CAC/C,EAAK,MAAO,GAAI,CAAC,CAAG,CAAA,CAAC,EAAG,CAAC,CAAC,CAAC,CAC3B,EAAG6B,GAAI,GAAIK,GAAoBtX,EAC7BqX,GACAD,GACAH,GACA,GACA,KACA,WACA,KACA,IACF,EACA,MAAMzL,GAAI8L,GAAE,QChFN9L,GAAI,CACR,KAAM,gBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACP,EACD,UAAW,CACT,KAAM,OACN,QAAS,cACV,EACD,KAAM,CACJ,KAAM,OACN,QAAS,EACV,CACF,CACH,EACA,IAAImM,GAAI,UAAW,CACjB,IAAIlN,EAAI,KAAMyM,EAAIzM,EAAE,MAAM,GAC1B,OAAOyM,EAAE,OAAQzM,EAAE,GAAG,CAAE,YAAa,uCAAwC,MAAO,CAAE,cAAe,CAACA,EAAE,MAAO,aAAcA,EAAE,MAAO,KAAM,KAAO,EAAE,GAAI,CAAE,MAAO,SAAS9K,EAAG,CAC5K,OAAO8K,EAAE,MAAM,QAAS9K,CAAC,CAC1B,CAAA,GAAM,OAAQ8K,EAAE,OAAQ,EAAE,EAAG,CAACyM,EAAE,MAAO,CAAE,YAAa,4BAA6B,MAAO,CAAE,KAAMzM,EAAE,UAAW,MAAOA,EAAE,KAAM,OAAQA,EAAE,KAAM,QAAS,WAAW,CAAI,EAAE,CAACyM,EAAE,OAAQ,CAAE,MAAO,CAAE,EAAG,8DAA8D,GAAM,CAACzM,EAAE,MAAQyM,EAAE,QAAS,CAACzM,EAAE,GAAGA,EAAE,GAAGA,EAAE,KAAK,CAAC,CAAC,CAAC,EAAIA,EAAE,GAAI,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAClU,EAAGoN,GAAI,GAAIjY,GAAoBuX,EAC7B3L,GACAmM,GACAE,GACA,GACA,KACA,KACA,KACA,IACF,EACA,MAAMC,GAAIlY,GAAE,QACNmY,GAAI,CACR,KAAM,iCACN,WAAY,CACV,SAAUT,GACV,YAAa5T,GACb,UAAWoU,EACZ,EACD,MAAO,CACL,KAAM,CACJ,KAAM,QACN,QAAS,EACV,CACF,EACD,MAAO,CAAC,OAAO,EACf,SAAU,CACR,aAAc,CACZ,OAAO,KAAK,KAAOb,EAAE,eAAe,EAAIA,EAAE,WAAW,CACtD,CACF,EACD,QAAS,CACP,QAAQ7B,EAAG,CACT,KAAK,MAAM,QAASA,CAAC,CACtB,CACF,CACH,EACA,IAAIsC,GAAI,UAAW,CACjB,IAAIjN,EAAI,KAAMyM,EAAIzM,EAAE,MAAM,GAC1B,OAAOyM,EAAE,WAAY,CAAE,YAAa,gBAAiB,MAAO,CAAE,sBAAuBzM,EAAE,IAAI,EAAI,MAAO,CAAE,KAAM,WAAY,aAAcA,EAAE,WAAa,EAAE,GAAI,CAAE,MAAOA,EAAE,OAAS,EAAE,YAAaA,EAAE,GAAG,CAAC,CAAE,IAAK,OAAQ,GAAI,UAAW,CAClO,MAAO,CAACA,EAAE,KAAOyM,EAAE,YAAa,CAAE,MAAO,CAAE,KAAM,EAAE,CAAI,CAAA,EAAIA,EAAE,cAAe,CAAE,MAAO,CAAE,KAAM,EAAE,CAAI,CAAA,CAAC,CACrG,EAAE,MAAO,GAAI,CAAC,CAAG,CAAA,CACpB,EAAGc,GAAI,GAAIC,GAAoBd,EAC7BY,GACAL,GACAM,GACA,GACA,KACA,WACA,KACA,IACF,EACA,MAAME,GAAID,GAAE,QAASE,GAAI,CACvB,KAAM,aACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACP,EACD,UAAW,CACT,KAAM,OACN,QAAS,cACV,EACD,KAAM,CACJ,KAAM,OACN,QAAS,EACV,CACF,CACH,EACA,IAAI7W,GAAI,UAAW,CACjB,IAAImJ,EAAI,KAAMyM,EAAIzM,EAAE,MAAM,GAC1B,OAAOyM,EAAE,OAAQzM,EAAE,GAAG,CAAE,YAAa,mCAAoC,MAAO,CAAE,cAAe,CAACA,EAAE,MAAO,aAAcA,EAAE,MAAO,KAAM,KAAO,EAAE,GAAI,CAAE,MAAO,SAAS9K,EAAG,CACxK,OAAO8K,EAAE,MAAM,QAAS9K,CAAC,CAC1B,CAAA,GAAM,OAAQ8K,EAAE,OAAQ,EAAE,EAAG,CAACyM,EAAE,MAAO,CAAE,YAAa,4BAA6B,MAAO,CAAE,KAAMzM,EAAE,UAAW,MAAOA,EAAE,KAAM,OAAQA,EAAE,KAAM,QAAS,WAAW,CAAI,EAAE,CAACyM,EAAE,OAAQ,CAAE,MAAO,CAAE,EAAG,qJAAqJ,GAAM,CAACzM,EAAE,MAAQyM,EAAE,QAAS,CAACzM,EAAE,GAAGA,EAAE,GAAGA,EAAE,KAAK,CAAC,CAAC,CAAC,EAAIA,EAAE,GAAI,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CACzZ,EAAG2N,GAAI,GAAIR,GAAoBT,EAC7BgB,GACA7W,GACA8W,GACA,GACA,KACA,KACA,KACA,IACF,EACA,MAAMC,GAAIT,GAAE,QAASU,GAAI,CACvB,KAAM,WACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACP,EACD,UAAW,CACT,KAAM,OACN,QAAS,cACV,EACD,KAAM,CACJ,KAAM,OACN,QAAS,EACV,CACF,CACH,EACA,IAAIC,GAAI,UAAW,CACjB,IAAI9N,EAAI,KAAMyM,EAAIzM,EAAE,MAAM,GAC1B,OAAOyM,EAAE,OAAQzM,EAAE,GAAG,CAAE,YAAa,iCAAkC,MAAO,CAAE,cAAe,CAACA,EAAE,MAAO,aAAcA,EAAE,MAAO,KAAM,KAAO,EAAE,GAAI,CAAE,MAAO,SAAS9K,EAAG,CACtK,OAAO8K,EAAE,MAAM,QAAS9K,CAAC,CAC1B,CAAA,GAAM,OAAQ8K,EAAE,OAAQ,EAAE,EAAG,CAACyM,EAAE,MAAO,CAAE,YAAa,4BAA6B,MAAO,CAAE,KAAMzM,EAAE,UAAW,MAAOA,EAAE,KAAM,OAAQA,EAAE,KAAM,QAAS,WAAW,CAAI,EAAE,CAACyM,EAAE,OAAQ,CAAE,MAAO,CAAE,EAAG,4JAA4J,GAAM,CAACzM,EAAE,MAAQyM,EAAE,QAAS,CAACzM,EAAE,GAAGA,EAAE,GAAGA,EAAE,KAAK,CAAC,CAAC,CAAC,EAAIA,EAAE,GAAI,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CACha,EAAG+N,GAAI,GAAIC,GAAoBtB,EAC7BmB,GACAC,GACAC,GACA,GACA,KACA,KACA,KACA,IACF,EACA,MAAME,GAAID,GAAE,QACNE,GAAI,CACR,KAAM,sBACN,WAAY,CACV,UAAW3Y,GACX,eAAgBqX,GAChB,+BAAgCa,GAChC,qBAAsBnU,GACtB,cAAeqT,GACf,SAAUG,GACV,OAAQc,GACR,KAAMK,EACP,EACD,MAAO,CAKL,OAAQ,CACN,KAAM,QACN,QAAS,EACV,EAID,KAAM,CACJ,KAAM,OACN,SAAU,EACX,EAID,MAAO,CACL,KAAM,OACN,QAAS,IACV,EAID,GAAI,CACF,KAAM,OACN,QAAS,IAAM,uBAAyBlB,GAAG,EAC3C,UAAYpC,GAAMA,EAAE,KAAM,IAAK,EAChC,EAKD,KAAM,CACJ,KAAM,OACN,QAAS,EACV,EAKD,QAAS,CACP,KAAM,QACN,QAAS,EACV,EAMD,GAAI,CACF,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,IACV,EAKD,KAAM,CACJ,KAAM,OACN,QAAS,IACV,EAKD,MAAO,CACL,KAAM,QACN,QAAS,EACV,EAKD,cAAe,CACb,KAAM,QACN,QAAS,EACV,EAKD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAID,UAAW,CACT,KAAM,OACN,QAAS,EACV,EAID,gBAAiB,CACf,KAAM,OACN,QAAS,EACV,EAMD,OAAQ,CACN,KAAM,QACN,QAAS,EACV,EAID,KAAM,CACJ,KAAM,QACN,QAAS,EACV,EAID,KAAM,CACJ,KAAM,QACN,QAAS,EACV,EAID,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAID,UAAW,CACT,KAAM,QACN,QAAS,EACV,EAID,SAAU,CACR,KAAM,OACN,QAAS,MACV,EAID,cAAe,CACb,KAAM,OACN,QAAS,QACV,EAID,gBAAiB,CACf,KAAM,OACN,QAAS,IACV,EAID,oBAAqB,CACnB,KAAM,QACN,QAAS,EACV,EAID,cAAe,CACb,KAAM,OACN,QAAS,CACV,CACF,EACD,MAAO,CACL,kBACA,cACA,cACA,QACA,MACD,EACD,OAAQ,CACN,MAAO,CACL,SAAUxO,GAAG,CACnB,CACG,EACD,MAAO,CACL,MAAO,CACL,aAAc,GACd,OAAQ,KAAK,KAEb,cAAe,GACf,YAAa,GAIb,mBAAoB,GACpB,QAAS,EACf,CACG,EACD,SAAU,CACR,cAAe,CACb,OAAO,KAAK,IAAM,CAAC,KAAK,IACzB,EACD,aAAc,CACZ,OAAO,KAAK,eAAiB,CAAC,CAAC,KAAK,OAAO,OAC5C,EAGD,iBAAkB,CAChB,OAAO,KAAK,QAAQ,SAAS,gBAAkB,mBAChD,EACD,UAAW,CACT,MAAO,CAAC,EAAE,KAAK,OAAO,SAAW,KAAK,OAAO,SAAW,KAAK,UAAY,KAAK,KAC/E,EACD,qBAAsB,CACpB,OAAO,KAAK,UAAY,KAAK,UAAYqQ,EAAE,WAAW,CACvD,EACD,qBAAsB,CACpB,OAAOA,EAAE,cAAc,CACxB,EACD,0BAA2B,CACzB,OAAO,SAAS,cAAc,cAAc,GAAK,MAClD,CACF,EACD,MAAO,CACL,KAAK7B,EAAG,CACN,KAAK,OAASA,CACf,CACF,EACD,SAAU,CACR,KAAK,eAAc,CACpB,EACD,cAAe,CACb,KAAK,eAAc,CACpB,EACD,QAAS,CAEP,aAAaA,EAAG,CACd,KAAK,MAAM,kBAAmBA,CAAC,EAAG,KAAK,mBAAqBA,CAC7D,EAED,gBAAiB,CACf,KAAK,OAAS,CAAC,KAAK,OAAQ,KAAK,MAAM,cAAe,KAAK,MAAM,CAClE,EAQD,QAAQA,EAAG,EAAG8B,EAAG,CACf,KAAK,MAAM,QAAS9B,CAAC,EAAG,EAAEA,EAAE,SAAWA,EAAE,QAAUA,EAAE,SAAWA,EAAE,WAAa8B,IAAmB,IAAE9B,CAAC,EAAGA,EAAE,eAAc,EACzH,EAED,YAAa,CACX,KAAK,aAAe,KAAK,KAAM,KAAK,cAAgB,GAAI,KAAK,aAAa,EAAE,EAAG,KAAK,UAAU,IAAM,CAClG,KAAK,MAAM,aAAa,YAChC,CAAO,CACF,EACD,eAAgB,CACd,KAAK,cAAgB,EACtB,EACD,mBAAoB,CAClB,KAAK,MAAM,cAAe,KAAK,YAAY,EAAG,KAAK,aAAe,GAAI,KAAK,cAAgB,EAC5F,EAED,YAAa,CACX,KAAK,MAAM,MAAM,CAClB,EACD,gBAAiB,CACf,KAAK,YAAc,CAAC,CAAC,KAAK,OAAO,OAClC,EAID,aAAc,CACZ,KAAK,QAAU,EAChB,EACD,YAAa,CACX,KAAK,QAAU,EAChB,EAOD,UAAUA,EAAG,CACX,KAAK,MAAM,UAAY,KAAK,SAAWA,EAAE,eAAgB,EAAE,KAAK,MAAM,QAAQ,MAAM,WAAW,IAAI,MAAK,EAAI,KAAK,QAAU,IAAM,KAAK,MAAM,QAAQ,MAAM,WAAW,IAAI,KAAM,EAChL,EAOD,WAAWA,EAAG,CACZ,OAAOA,GAAKA,EAAE,MAAM,cAAc,CACnC,CACF,CACH,EACA,IAAIwD,GAAI,UAAW,CACjB,IAAInO,EAAI,KAAMyM,EAAIzM,EAAE,MAAM,GAC1B,OAAOyM,EAAE,KAAM,CAAE,YAAa,+BAAgC,MAAO,CACnE,+BAAgCzM,EAAE,OAClC,+BAAgCA,EAAE,OAClC,oCAAqCA,EAAE,WAC3C,EAAK,MAAO,CAAE,GAAIA,EAAE,EAAI,CAAA,EAAI,CAACyM,EAAEzM,EAAE,aAAe,cAAgB,WAAY,CAAE,IAAK,YAAa,MAAO,CAAE,OAAQ,CAAC,CAACA,EAAE,aAAc,GAAIA,EAAE,GAAI,MAAOA,EAAE,aAAeA,EAAE,MAAQ,MAAQ,YAAaA,EAAE,GAAG,CAAC,CAAE,IAAK,UAAW,GAAI,SAAS,CAAE,KAAM9K,EAAG,SAAUqX,EAAG,SAAUS,GAAK,CAC5Q,MAAO,CAACP,EAAE,MAAO,CAAE,YAAa,uBAAwB,MAAO,CAC7D,gCAAiCzM,EAAE,cACnC,gCAAiCA,EAAE,KACnC,OAAQgN,GAAKhN,EAAE,IAAMA,EAAE,MACxB,CAAA,EAAI,CAACA,EAAE,KAAOA,EAAE,GAAI,EAAGyM,EAAE,IAAK,CAAE,YAAa,4BAA6B,MAAO,CAAE,eAAgBzM,EAAE,QAAUgN,GAAKhN,EAAE,GAAK,OAAS,OAAQ,mBAAoBA,EAAE,gBAAiB,gBAAiBA,EAAE,YAAcA,EAAE,OAAO,SAAQ,EAAK,OAAQ,KAAMA,EAAE,MAAQ9K,GAAK,IAAK,OAAQ8K,EAAE,WAAWA,EAAE,IAAI,EAAI,SAAW,OAAQ,MAAOA,EAAE,OAASA,EAAE,IAAM,EAAE,GAAI,CAAE,KAAMA,EAAE,WAAY,MAAO,SAAS7H,EAAG,CACtY,OAAO6H,EAAE,QAAQ7H,EAAGoU,EAAGrX,CAAC,CACzB,EAAE,MAAO8K,EAAE,YAAa,QAAS,SAAS7H,EAAG,CAC5C,MAAO,CAACA,EAAE,KAAK,QAAQ,KAAK,GAAK6H,EAAE,GAAG7H,EAAE,QAAS,MAAO,EAAGA,EAAE,IAAK,KAAK,GAAKA,EAAE,SAAWA,EAAE,UAAYA,EAAE,QAAUA,EAAE,QAAU,KAAO6H,EAAE,UAAU,MAAM,KAAM,SAAS,CAC7K,EAAS,EAAE,CAACyM,EAAE,MAAO,CAAE,YAAa,4BAA6B,MAAO,CAAE,CAACzM,EAAE,IAAI,EAAGA,EAAE,KAAQ,EAAE,CAACA,EAAE,QAAUyM,EAAE,eAAe,EAAIzM,EAAE,GAAG,MAAM,CAAC,EAAG,CAAC,EAAGA,EAAE,cAAgBA,EAAE,GAAE,EAAKyM,EAAE,OAAQ,CAAE,YAAa,4BAA8B,EAAE,CAACzM,EAAE,GAAG,IAAMA,EAAE,GAAGA,EAAE,IAAI,EAAI,GAAG,CAAC,CAAC,EAAGA,EAAE,cAAgByM,EAAE,MAAO,CAAE,YAAa,kBAAoB,EAAE,CAACA,EAAE,uBAAwB,CAAE,IAAK,eAAgB,MAAO,CAAE,YAAazM,EAAE,kBAAoB,GAAKA,EAAE,gBAAkBA,EAAE,KAAM,QAASgN,GAAKhN,EAAE,EAAI,EAAE,GAAI,CAAE,OAAQA,EAAE,cAAe,QAASA,EAAE,mBAAqB,MAAO,CAAE,MAAOA,EAAE,aAAc,SAAU,SAAS7H,EAAG,CAChlB6H,EAAE,aAAe7H,CACvB,EAAO,WAAY,cAAgB,CAAA,CAAE,CAAC,EAAG,CAAC,EAAI6H,EAAE,GAAE,CAAE,CAAC,EAAGA,EAAE,KAAOyM,EAAE,MAAO,CAAE,YAAa,+BAA+B,EAAI,CAACA,EAAE,MAAO,CAAE,YAAa,2CAA6C,EAAE,CAACzM,EAAE,GAAG,IAAMA,EAAE,GAAGA,EAAE,IAAI,EAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAIA,EAAE,GAAI,EAAEA,EAAE,UAAY,CAACA,EAAE,cAAgByM,EAAE,MAAO,CAAE,YAAa,8BAA+B,MAAO,CAAE,+CAAgDzM,EAAE,qBAAuBA,EAAE,oBAAsBA,EAAE,QAAU,CAAA,EAAI,CAACA,EAAE,OAAO,QAAUyM,EAAE,MAAO,CAAE,YAAa,yCAA2C,CAACzM,EAAE,GAAG,SAAS,CAAC,EAAG,CAAC,EAAIA,EAAE,GAAI,EAAEA,EAAE,OAAO,SAAWA,EAAE,UAAY,CAACA,EAAE,eAAiBA,EAAE,KAAOyM,EAAE,YAAa,CAAE,IAAK,UAAW,YAAa,gCAAiC,MAAO,CAAE,OAAQzM,EAAE,cAAe,UAAW,sBAAuB,qBAAsBA,EAAE,yBAA0B,UAAWA,EAAE,cAAe,KAAMA,EAAE,SAAU,KAAMgN,GAAKhN,EAAE,GAAK,UAAY,KAAM,aAAcA,EAAE,UAAW,eAAgBA,EAAE,QAAQ,EAAI,GAAI,CAAE,cAAeA,EAAE,YAAY,EAAI,YAAaA,EAAE,GAAG,CAAC,CAAE,IAAK,OAAQ,GAAI,UAAW,CAC5hC,MAAO,CAACA,EAAE,GAAG,WAAW,CAAC,CAC/B,EAAO,MAAO,EAAE,CAAE,EAAG,KAAM,EAAE,CAAG,EAAE,CAACA,EAAE,UAAY,CAACA,EAAE,cAAgByM,EAAE,iBAAkB,CAAE,MAAO,CAAE,aAAczM,EAAE,mBAAqB,EAAE,GAAI,CAAE,MAAOA,EAAE,UAAU,EAAI,YAAaA,EAAE,GAAG,CAAC,CAAE,IAAK,OAAQ,GAAI,UAAW,CAClN,MAAO,CAACyM,EAAE,SAAU,CAAE,MAAO,CAAE,KAAM,GAAM,CAAA,CAAC,CAClD,EAAO,MAAO,EAAE,CAAE,EAAG,KAAM,EAAE,CAAC,EAAI,CAACzM,EAAE,GAAG,IAAMA,EAAE,GAAGA,EAAE,SAAS,EAAI,GAAG,CAAC,CAAC,EAAIA,EAAE,KAAMA,EAAE,KAAOyM,EAAE,iBAAkB,CAAE,MAAO,CAAE,aAAczM,EAAE,qBAAuB,GAAI,CAAE,MAAOA,EAAE,UAAU,EAAI,YAAaA,EAAE,GAAG,CAAC,CAAE,IAAK,OAAQ,GAAI,UAAW,CAC1O,MAAO,CAACyM,EAAE,OAAQ,CAAE,MAAO,CAAE,KAAM,GAAM,CAAA,CAAC,CAChD,EAAO,MAAO,EAAI,CAAA,EAAG,KAAM,EAAE,CAAC,CAAE,EAAIzM,EAAE,GAAI,EAAEA,EAAE,GAAG,SAAS,CAAC,EAAG,CAAC,EAAIA,EAAE,GAAE,CAAE,EAAG,CAAC,EAAIA,EAAE,GAAE,EAAIA,EAAE,YAAcyM,EAAE,iCAAkC,CAAE,MAAO,CAAE,KAAMzM,EAAE,MAAM,EAAI,GAAI,CAAE,MAAO,SAAS7H,EAAG,CAC7L,OAAOA,EAAE,iBAAkBA,EAAE,gBAAe,EAAI6H,EAAE,eAAe,MAAM,KAAM,SAAS,CACvF,CAAA,EAAI,EAAIA,EAAE,KAAMA,EAAE,GAAG,OAAO,CAAC,EAAG,CAAC,CAAC,CACpC,CAAA,CAAE,EAAG,KAAM,EAAE,CAAC,CAAE,EAAGA,EAAE,iBAAmBA,EAAE,YAAcyM,EAAE,KAAM,CAAE,YAAa,kCAAoC,CAACzM,EAAE,GAAG,SAAS,CAAC,EAAG,CAAC,EAAIA,EAAE,IAAI,EAAG,CAAC,CACxJ,EAAGoO,GAAI,GAAIC,GAAoB3B,EAC7BwB,GACAC,GACAC,GACA,GACA,KACA,WACA,KACA,IACF,EACA,MAAME,GAAKD,GAAE,QCvfb,IAAIE,GAAe,OAAM,EAErBC,EAAc,OAAM,EAEpBC,GAAsB,OAAM,EAE5BC,GAAqB,OAAM,EAE3BC,GAAS,SAAgBC,EAAM,CAC/B,MAAO,SAAUA,CACrB,EAEIC,GAAuB,CACvB,IAAK,UAAe,CAChB,OAAO,KAAKL,CAAW,GAAK,KAAK,aACpC,EACD,aAAc,EAClB,EAEIM,EAAkB,SAAyBF,EAAMG,EAAY,CACzDP,KAAeI,IAGnBA,EAAKJ,CAAW,EAAIO,EACpB,OAAO,eAAeH,EAAM,aAAcC,EAAoB,EAClE,EAEIG,GAAwB,CACxB,IAAK,UAAe,CAChB,IAAIC,EAAa,KAAK,WAAW,WAC7BhT,EAAQgT,EAAW,QAAQ,IAAI,EACnC,OAAIhT,EAAQ,IACDgT,EAAWhT,EAAQ,CAAC,GAAK,IAGvC,CACL,EAEIiT,GAAmB,SAA0BN,EAAM,CAC/CH,MAAuBG,IAG3BA,EAAKH,EAAmB,EAAI,GAC5B,OAAO,eAAeG,EAAM,cAAeI,EAAqB,EACpE,EAEIG,GAAiB,SAAwBP,EAAMQ,EAAY,CAC3D,KAAOR,EAAK,aAAeQ,GAAY,CACnC,IAAIC,EAAQT,EAAMU,EAAaD,EAAM,WACjCC,IACAV,EAAOU,EAEd,CACD,OAAOV,CACX,EAEIW,GAEAC,GAA6B,SAAoCZ,EAAM,CACvE,GAAI,CAACW,GAAe,CAChB,IAAIE,EAAwB,OAAO,yBAAyB,KAAK,UAAW,YAAY,EACxFF,GAAgBE,EAAsB,GACzC,CACD,IAAIC,EAAiBH,GAAc,MAAMX,CAAI,EACzCK,EAAa,MAAM,KAAKS,CAAc,EAAE,IAAK,SAASC,EAAW,CACjE,OAAOR,GAAeQ,EAAWf,CAAI,CAC7C,GACI,OAAOK,EAAW,OAAQ,SAASU,EAAW1T,EAAO,CACjD,OAAO0T,IAAcV,EAAWhT,EAAQ,CAAC,CACjD,EACA,EAEI2T,GAAuB,CACvB,IAAK,UAAe,CAChB,OAAO,KAAK,MAAQJ,GAA2B,IAAI,CACtD,CACL,EAEIK,GAAuB,CACvB,IAAK,UAAe,CAChB,OAAO,KAAK,WAAW,CAAC,GAAK,IAChC,CACL,EAEA,SAASC,IAAgB,CACrB,OAAO,KAAK,WAAW,OAAS,CACpC,CAEA,IAAIC,GAAkB,SAAyBnB,EAAM,CAC7CF,MAAsBE,IAG1BA,EAAKF,EAAkB,EAAI,GAC3B,OAAO,iBAAiBE,EAAM,CAC1B,WAAYgB,GACZ,WAAYC,EACpB,CAAK,EACDjB,EAAK,cAAgBkB,GACzB,EAEA,SAASE,IAAS,CACd,IAAIC,GACHA,EAAc,KAAK,KAAK,CAAC,GAAG,OAAO,MAAMA,EAAa,SAAS,CACpE,CAEA,SAASC,IAAS,CACd,IAAIC,EAAO,KAAK,KACZC,EAAUD,EAAK,OAAO,EAAGA,EAAK,MAAM,EACxCC,EAAQ,QAAS,SAASxB,EAAM,CAC5BA,EAAK,OAAM,CACnB,EACA,CAEA,IAAIyB,GAAuB,SAASA,EAAqBlX,EAAU,CAC/D,IAAImX,EACJ,OAAQA,EAAmB,MAAM,WAAW,OAAO,MAAMA,EAAkBnX,EAAS,IAAK,SAASwW,EAAW,CACzG,OAAOhB,GAAOgB,CAAS,EAAIU,EAAqBV,EAAU,IAAI,EAAIA,CACrE,CAAA,CAAE,CACP,EAEIY,GAAiB,SAAwB3B,EAAM4B,EAAkB,CACjE,IAAIC,EAAc7B,EAAKL,EAAY,EACnCiC,EAAiB,OAAOC,CAAW,EACnC3B,EAAgB2B,EAAa7B,CAAI,EACjCA,EAAK,KAAK,QAAQ6B,CAAW,CACjC,EAEA,SAASC,GAAY9B,EAAM,CACvB,GAAID,GAAO,IAAI,EAAG,CACd,IAAIgC,EAAqB,KAAK,KAAK,QAAQ/B,CAAI,EAC/C,GAAI+B,EAAqB,GAAI,CACzB,IAAIC,EAAoB,KAAK,KAAK,OAAOD,EAAoB,CAAC,EAAGE,EAAcD,EAAkB,CAAC,EAC9F,KAAK,KAAK,SAAW,GACrBL,GAAe,KAAMM,CAAW,EAEpCjC,EAAK,OAAM,CACd,CACT,KAAW,CACH,IAAIzV,EAAWqW,GAA2B,IAAI,EAC1CsB,EAAW3X,EAAS,QAAQyV,CAAI,EAChCkC,EAAW,IACXlC,EAAK,OAAM,CAElB,CACD,OAAOA,CACX,CAEA,SAASmC,GAAaC,EAAYR,EAAkB,CAChD,IAAIS,EAAQ,KACRC,EAAcF,EAAW,MAAQ,CAAEA,CAAU,EACjD,GAAIrC,GAAO,IAAI,EAAG,CACd,GAAIqC,EAAWxC,CAAW,IAAM,MAAQwC,EAAW,cAC/C,OAAOA,EAEX,IAAIG,EAAQ,KAAK,KACjB,GAAIX,EAAkB,CAClB,IAAIvU,EAAQkV,EAAM,QAAQX,CAAgB,EACtCvU,EAAQ,KACRkV,EAAM,OAAO,MAAMA,EAAO,CAAElV,EAAO,GAAI,OAAOiV,CAAW,CAAC,EAC1DV,EAAiB,OAAO,MAAMA,EAAkBU,CAAW,EAE3E,KAAe,CACH,IAAIE,EAAYD,EAAMA,EAAM,OAAS,CAAC,EACtCA,EAAM,KAAK,MAAMA,EAAOD,CAAW,EACnCE,EAAU,MAAM,MAAMA,EAAWF,CAAW,CAC/C,CACDG,GAAkB,IAAI,CACzB,MAAUb,EACH,KAAK,WAAW,SAASA,CAAgB,GACzCA,EAAiB,OAAO,MAAMA,EAAkBU,CAAW,EAG/D,KAAK,OAAO,MAAM,KAAMA,CAAW,EAEvCA,EAAY,QAAS,SAAStC,EAAM,CAChCE,EAAgBF,EAAMqC,CAAK,CACnC,GACI,IAAIK,EAAWJ,EAAYA,EAAY,OAAS,CAAC,EACjD,OAAAhC,GAAiBoC,CAAQ,EAClBN,CACX,CAEA,SAASO,GAAY3C,EAAM,CACvB,GAAIA,EAAKJ,CAAW,IAAM,MAAQI,EAAK,cACnC,OAAOA,EAEX,IAAIuB,EAAO,KAAK,KACZqB,EAAYrB,EAAKA,EAAK,OAAS,CAAC,EACpC,OAAAqB,EAAU,MAAM5C,CAAI,EACpBE,EAAgBF,EAAM,IAAI,EAC1ByC,GAAkB,IAAI,EACtBlB,EAAK,KAAKvB,CAAI,EACPA,CACX,CAEA,IAAIyC,GAAoB,SAA2BzC,EAAM,CACrD,IAAI6B,EAAc7B,EAAKL,EAAY,EAC/BK,EAAK,KAAK,CAAC,IAAM6B,IACjB7B,EAAK,KAAK,QACV6B,EAAY,OAAM,EAE1B,EAEIgB,GAAsB,CACtB,IAAK,SAAaC,EAAY,CAC1B,IAAIC,EAAS,KAMb,GALI,KAAK,KAAK,CAAC,IAAM,KAAKpD,EAAY,GAClC,KAAK,KAAK,MAAO,EAAC,QAAS,SAAS7N,EAAO,CACvC,OAAOiR,EAAO,YAAYjR,CAAK,CAC/C,GAEYgR,EAAY,CACZ,IAAIE,EAAS,SAAS,cAAc,KAAK,EACzCA,EAAO,UAAYF,EACnB,MAAM,KAAKE,EAAO,UAAU,EAAE,QAAS,SAAShD,EAAM,CAClD+C,EAAO,YAAY/C,CAAI,CACvC,EACS,CACJ,EACD,IAAK,UAAe,CAChB,MAAO,EACV,CACL,EAEIuB,GAAO,CACP,SAAU,SAAkB0B,EAAS,CACjC,IAAIvC,EAAauC,EAAQ,WAAYC,EAAcD,EAAQ,YAAaE,EAAkBF,EAAQ,gBAC9F5C,EAAa,MAAM,KAAK4C,EAAQ,UAAU,EAC1CpB,EAAc,SAAS,cAAc,EAAE,EACvCxB,EAAW,SAAW,GACtBA,EAAW,KAAKwB,CAAW,EAE/BoB,EAAQ,KAAO5C,EACf4C,EAAQtD,EAAY,EAAIkC,EACxB,IAAIuB,EAAW,SAAS,yBACxBA,EAAS,OAAO,MAAMA,EAAU3B,GAAqBpB,CAAU,CAAC,EAChE4C,EAAQ,YAAYG,CAAQ,EAC5B/C,EAAW,QAAS,SAASL,EAAM,CAC/BE,EAAgBF,EAAMiD,CAAO,EAC7B3C,GAAiBN,CAAI,CACjC,GACQmB,GAAgB8B,CAAO,EACvB,OAAO,OAAOA,EAAS,CACnB,OAAQ3B,GACR,YAAaqB,GACb,aAAcR,GACd,YAAaL,GACb,OAAQV,EACpB,CAAS,EACD,OAAO,eAAe6B,EAAS,YAAaJ,EAAmB,EAC3DnC,IACA,OAAO,OAAOA,EAAY,CACtB,YAAaoB,GACb,aAAcK,EAC9B,CAAa,EACDjC,EAAgB+C,EAASvC,CAAU,EACnCS,GAAgBT,CAAU,GAE1BwC,GACA5C,GAAiB2C,CAAO,EAExBE,GACA7C,GAAiB6C,CAAe,CAEvC,EACD,OAAQ,SAAgBF,EAAS,CAC7BA,EAAQ,OAAM,CACjB,CACL,EAEIG,GAAW,CACX,KAAM,WACN,WAAY,CACR,KAAM7B,EACT,EACD,OAAQ,SAAgB7W,EAAG,CACvB,OAAOA,EAAE,MAAO,CACZ,WAAY,CAAE,CACV,KAAM,MACtB,CAAe,CACN,EAAE,KAAK,OAAO,OAAU,CAC5B,CACL,iFC3PM2Y,EAAWC,GAAS,IAAM,CAC/B,MAAMC,EAAQC,IACRC,EAAYD,EAAS,EAAA,SAAS,EAAG,KAAK,EACtCE,EAAQF,EAAOlZ,EAAM,WAAW,CAAC,EAAE,QAAQ,EAEjD,OAAIoZ,EAAM,OAAOH,EAAO,KAAK,EACrB1F,EAAE,WAAY,OAAO,EAClB6F,EAAM,OAAOD,EAAW,KAAK,EAChC5F,EAAE,WAAY,WAAW,EAE1B6F,EAAM,OAAO,IAAI,CAAA,CACxB,EAKKC,EAAWL,GAAS,IAAM,CACzB,MAAAM,EAAYJ,EAAOlZ,EAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,IAAI,EAC3D,OAAAsZ,IAAcP,EAAS,MAAQO,EAAY,MAAA,CAClD,ocClDcC,GAAA;AAAA;AAAA;AAAA;AAAA,oFC0FTC,EAAUjb,EAAI,EAAK,EAKnBkb,EAAmBlb,EAAI,EAAI,EAK3Bmb,EAAgBnb,EAAqB,CAAA,CAAE,EAMvCob,EAAqBpb,IAKrBqb,EAAYrb,IAKlBsb,GAAkBD,EAAW,SAAY,CACpCH,EAAiB,OACpB,MAAMK,EAAe,CACtB,EACE,CACF,SAAU,GAAA,CACV,EAKK,MAAAC,EAAoBf,GAAS,IAAM,CACxC,MAAMpU,EAAS,CAAA,EACJ,UAAAoV,KAAYN,EAAc,MAAO,CAC3C,MAAMO,EAAOf,EAAOc,EAAS,QAAQ,EAAE,OAAO,IAAI,EAC9CpV,EAAOqV,CAAI,IAAM,OACbrV,EAAAqV,CAAI,EAAI,CAACD,CAAQ,EAEjBpV,EAAAqV,CAAI,EAAE,KAAKD,CAAQ,CAE5B,CACO,OAAApV,CAAA,CACP,EAKD,eAAekV,GAAiB,CAE/B,GAAI,CAAAN,EAAQ,MAIR,GAAA,CACG,MAAAU,EAAQP,EAAmB,OAAS,IAC1CH,EAAQ,MAAQ,GACV,MAAAW,EAAW,MAAMC,GAAQ,IAC9BC,GAAe,iFAAkF,CAAE,OAAQra,EAAM,OAAQ,MAAAka,EAAO,CAAA,EAEjIR,EAAc,MAAM,KAAK,GAAGS,EAAS,KAAK,IAAI,KAAK,IAAK1U,GAAQ,IAAI6U,GAAc7U,CAAG,CAAC,CAAC,EACpEkU,EAAA,MAAQQ,EAAS,QAAQ,uBAAuB,EACnEV,EAAiB,MAAQ,SACjBnM,EAAO,CAEf,GAAIiN,GAAM,aAAajN,CAAK,GAAKA,EAAM,UAAU,SAAW,IAAK,CAChEmM,EAAiB,MAAQ,GACzB,MACD,CAEAe,GAAO,MAAMlN,CAAc,EACjBmN,GAAAlH,EAAE,WAAY,2BAA2B,CAAC,CAAA,QAAA,CAEpDiG,EAAQ,MAAQ,EACjB,CACD,CAKA,OAAAkB,GAAU,IAAM,CACAZ,GAAA,CACf,EAKDa,GAAM3a,EAAO,IAAM,CAClB0Z,EAAc,MAAQ,GACtBC,EAAmB,MAAQ,OACZG,GAAA,CACf,uvDCtKDc,GAAA,CACA,KAAA,kBACA,MAAA,CAAA,OAAA,EACA,MAAA,CACA,MAAA,CACA,KAAA,MACA,EACA,UAAA,CACA,KAAA,OACA,QAAA,cACA,EACA,KAAA,CACA,KAAA,OACA,QAAA,EACA,CACA,CACA,krBC0CM,KAAA,CACL,QAASC,EACT,qBAAAC,CAAA,EACGC,GAA6BC,GAAS,UAAU,EAE9CC,EAAiBF,GAA8BC,GAAS,gBAAgB,EAKxEE,EAAU3c,EAAIsc,CAAc,EAK5BM,EAAanC,GAAS,IAAM,CAAC,CAACkC,EAAQ,KAAK,EAKjD,eAAeE,GAAgB,CAC1B,GAAA,CACG,KAAA,CAAE,KAAAjb,GAAS,MAAMoa,GAAM,KAAoCc,GAAY,8BAA8B,EAAG,CAC7G,OAAQ,CAACF,EAAW,KAAA,CACpB,EACOD,EAAA,MAAQ/a,EAAK,KAAK,cAClB2G,EAAG,CACD2T,GAAAlH,EAAE,WAAY,2BAA2B,CAAC,EACpDiH,GAAO,MAAM1T,CAAU,CACxB,CACD,CAKA,eAAewU,GAAc,CACxB,GAAA,CACH,OAAO,UAAU,UAAU,UAAUJ,EAAQ,KAAK,EACtCK,GAAAhI,EAAE,WAAY,8BAA8B,CAAC,QACjDzM,EAAG,CACX0T,GAAO,MAAM1T,CAAU,EAEvB,OAAO,OAAOyM,EAAE,WAAY,oDAAoD,EAAG2H,EAAQ,KAAK,CACjG,CACD,yuDChGa/S,GAAS,CACrB,CACC,KAAM,IACN,KAAM,OACN,SAAU,CAAE,KAAM,MAAO,CAC1B,EACA,CACC,KAAM,YACN,WAAY,CACX,QAASqT,GACT,WAAYC,EACb,EACA,MAAO,CACN,QAAS,EACV,CACD,CACD,ECVA9T,EAAI,UAAU,EAAI+T,EAClB/T,EAAI,UAAU,EAAIgU,GAElBhU,EAAI,IAAI8K,EAAS,EAEjB,MAAMxU,GAAS,IAAIwU,GAAU,CAC5B,KAAM,UACN,KAAM4I,GAAY,gBAAgB,EAClC,gBAAiB,SACjB,OAAAlT,EACD,CAAC,EAEc,IAAIR,EAAI,CACtB,GAAI,WAEJ,KAAM,eACN,OAAA1J,GACA,OAAamC,GAAAA,EAAEwb,EAAW,CAC3B,CAAC","x_google_ignoreList":[0,1,2,3,4,5,6,10]} \ No newline at end of file +{"version":3,"file":"activity-app.mjs","sources":["../node_modules/vue-router/dist/vue-router.esm.js","../node_modules/@nextcloud/vue/dist/Components/NcContent.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationToggle-2574bba5.mjs","../node_modules/@nextcloud/vue/dist/Components/NcAppNavigation.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-a612e6a3.mjs","../node_modules/@nextcloud/vue/dist/Components/NcAppNavigationItem.mjs","../node_modules/vue-frag/dist/frag.esm.js","../src/components/ActivityGroup.vue","../img/activity-dark.svg?raw","../src/views/ActivityAppFeed.vue","../node_modules/vue-material-design-icons/ContentCopy.vue","../src/views/ActivityAppNavigation.vue","../src/routes.ts","../src/app.ts"],"sourcesContent":["/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","import \"../assets/index-a9e4fe04.css\";\nimport { n } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst r = {\n props: {\n appName: {\n type: String,\n required: !0\n }\n }\n};\nvar s = function() {\n var e = this, t = e._self._c;\n return t(\"div\", { staticClass: \"content\", class: `app-${e.appName.toLowerCase()}`, attrs: { id: \"content-vue\" } }, [e._t(\"default\")], 2);\n}, _ = [], a = /* @__PURE__ */ n(\n r,\n s,\n _,\n !1,\n null,\n \"eb1078f7\",\n null,\n null\n);\nconst l = a.exports;\nexport {\n l as default\n};\n","import \"../assets/NcAppNavigationToggle-9e170630.css\";\nimport l from \"../Components/NcButton.mjs\";\nimport \"../Directives/Tooltip.mjs\";\nimport { t as o } from \"./l10n-ef44019c.mjs\";\nimport { n as i } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { VTooltip as r } from \"floating-vue\";\nconst s = {\n name: \"MenuIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar c = function() {\n var t = this, e = t._self._c;\n return e(\"span\", t._b({ staticClass: \"material-design-icon menu-icon\", attrs: { \"aria-hidden\": !t.title, \"aria-label\": t.title, role: \"img\" }, on: { click: function(n) {\n return t.$emit(\"click\", n);\n } } }, \"span\", t.$attrs, !1), [e(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: t.fillColor, width: t.size, height: t.size, viewBox: \"0 0 24 24\" } }, [e(\"path\", { attrs: { d: \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\" } }, [t.title ? e(\"title\", [t._v(t._s(t.title))]) : t._e()])])]);\n}, p = [], _ = /* @__PURE__ */ i(\n s,\n c,\n p,\n !1,\n null,\n null,\n null,\n null\n);\nconst u = _.exports, m = {\n name: \"MenuOpenIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar f = function() {\n var t = this, e = t._self._c;\n return e(\"span\", t._b({ staticClass: \"material-design-icon menu-open-icon\", attrs: { \"aria-hidden\": !t.title, \"aria-label\": t.title, role: \"img\" }, on: { click: function(n) {\n return t.$emit(\"click\", n);\n } } }, \"span\", t.$attrs, !1), [e(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: t.fillColor, width: t.size, height: t.size, viewBox: \"0 0 24 24\" } }, [e(\"path\", { attrs: { d: \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\" } }, [t.title ? e(\"title\", [t._v(t._s(t.title))]) : t._e()])])]);\n}, v = [], d = /* @__PURE__ */ i(\n m,\n f,\n v,\n !1,\n null,\n null,\n null,\n null\n);\nconst g = d.exports;\nconst h = {\n name: \"NcAppNavigationToggle\",\n directives: {\n tooltip: r\n },\n components: {\n NcButton: l,\n MenuIcon: u,\n MenuOpenIcon: g\n },\n props: {\n open: {\n type: Boolean,\n required: !0\n }\n },\n emits: [\"update:open\"],\n computed: {\n label() {\n return this.open ? o(\"Close navigation\") : o(\"Open navigation\");\n }\n },\n methods: {\n toggleNavigation() {\n this.$emit(\"update:open\", !this.open);\n }\n }\n};\nvar N = function() {\n var t = this, e = t._self._c;\n return e(\"NcButton\", { directives: [{ name: \"tooltip\", rawName: \"v-tooltip.auto\", value: t.label, expression: \"label\", modifiers: { auto: !0 } }], staticClass: \"app-navigation-toggle\", attrs: { type: \"tertiary\", \"aria-expanded\": t.open ? \"true\" : \"false\", \"aria-label\": t.label, \"aria-controls\": \"app-navigation-vue\" }, on: { click: t.toggleNavigation }, scopedSlots: t._u([{ key: \"icon\", fn: function() {\n return [t.open ? e(\"MenuOpenIcon\", { attrs: { size: 20 } }) : e(\"MenuIcon\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) });\n}, b = [], y = /* @__PURE__ */ i(\n h,\n N,\n b,\n !1,\n null,\n \"13b4f13a\",\n null,\n null\n);\nconst z = y.exports;\nexport {\n z as N\n};\n","import \"../assets/index-4437e6bf.css\";\nimport { N as n } from \"../chunks/NcAppNavigationToggle-2574bba5.mjs\";\nimport { useIsMobile as s } from \"../Composables/useIsMobile.mjs\";\nimport { g as p } from \"../chunks/focusTrap-5d0f71d4.mjs\";\nimport { subscribe as l, emit as o, unsubscribe as r } from \"@nextcloud/event-bus\";\nimport { createFocusTrap as g } from \"focus-trap\";\nimport { n as c } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst u = {\n name: \"NcAppNavigation\",\n components: {\n NcAppNavigationToggle: n\n },\n setup() {\n return {\n isMobile: s()\n };\n },\n props: {\n /**\n * The aria label to describe the navigation\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * aria-labelledby attribute to describe the navigation\n */\n ariaLabelledby: {\n type: String,\n default: \"\"\n }\n },\n data() {\n return {\n open: !0,\n focusTrap: null\n };\n },\n watch: {\n isMobile() {\n this.open = !this.isMobile, this.toggleFocusTrap();\n },\n open() {\n this.toggleFocusTrap();\n }\n },\n mounted() {\n l(\"toggle-navigation\", this.toggleNavigationByEventBus), o(\"navigation-toggled\", {\n open: this.open\n }), this.focusTrap = g(this.$refs.appNavigationContainer, {\n allowOutsideClick: !0,\n fallbackFocus: this.$refs.appNavigationContainer,\n trapStack: p(),\n escapeDeactivates: !1\n }), this.toggleFocusTrap();\n },\n unmounted() {\n r(\"toggle-navigation\", this.toggleNavigationByEventBus), this.focusTrap.deactivate();\n },\n methods: {\n /**\n * Toggle the navigation\n *\n * @param {boolean} [state] set the state instead of inverting the current one\n */\n toggleNavigation(e) {\n this.open = typeof e > \"u\" ? !this.open : e;\n const t = getComputedStyle(document.body), a = parseInt(t.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n o(\"navigation-toggled\", {\n open: this.open\n });\n }, 1.5 * a);\n },\n toggleNavigationByEventBus({ open: e }) {\n this.toggleNavigation(e);\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n this.isMobile && this.open ? this.focusTrap.activate() : this.focusTrap.deactivate();\n },\n handleEsc() {\n this.isMobile && this.toggleNavigation(!1);\n }\n }\n};\nvar d = function() {\n var t = this, a = t._self._c;\n return a(\"div\", { ref: \"appNavigationContainer\", staticClass: \"app-navigation\", class: { \"app-navigation--close\": !t.open } }, [a(\"div\", { staticClass: \"app-navigation__toggle-wrapper\" }, [a(\"NcAppNavigationToggle\", { attrs: { open: t.open }, on: { \"update:open\": t.toggleNavigation } })], 1), a(\"nav\", { staticClass: \"app-navigation__content\", attrs: { id: \"app-navigation-vue\", \"aria-hidden\": t.open ? \"false\" : \"true\", \"aria-label\": t.ariaLabel || void 0, \"aria-labelledby\": t.ariaLabelledby || void 0, inert: !t.open || void 0 }, on: { keydown: function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"esc\", 27, i.key, [\"Esc\", \"Escape\"]) ? null : t.handleEsc.apply(null, arguments);\n } } }, [t._t(\"default\"), a(\"ul\", { staticClass: \"app-navigation__list\" }, [t._t(\"list\")], 2), t._t(\"footer\")], 2)]);\n}, v = [], f = /* @__PURE__ */ c(\n u,\n d,\n v,\n !1,\n null,\n \"926cf86d\",\n null,\n null\n);\nconst C = f.exports;\nexport {\n C as default\n};\n","import \"../assets/NcInputConfirmCancel-45d1d76b.css\";\nimport o from \"../Components/NcButton.mjs\";\nimport { t as a } from \"./l10n-ef44019c.mjs\";\nimport { A as l } from \"./ArrowRight-74a9fcb2.mjs\";\nimport { C as i } from \"./Close-271f72e2.mjs\";\nimport { n as c } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst u = {\n name: \"NcInputConfirmCancel\",\n components: {\n NcButton: o,\n ArrowRight: l,\n Close: i\n },\n props: {\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n default: !1,\n type: Boolean\n },\n placeholder: {\n default: \"\",\n type: String\n },\n value: {\n default: \"\",\n type: String\n }\n },\n emits: [\n \"input\",\n \"confirm\",\n \"cancel\"\n ],\n data() {\n return {\n labelConfirm: a(\"Confirm changes\"),\n labelCancel: a(\"Cancel changes\")\n };\n },\n computed: {\n valueModel: {\n get() {\n return this.value;\n },\n set(r) {\n this.$emit(\"input\", r);\n }\n }\n },\n methods: {\n confirm() {\n this.$emit(\"confirm\");\n },\n cancel() {\n this.$emit(\"cancel\");\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\nvar p = function() {\n var e = this, n = e._self._c;\n return n(\"div\", { staticClass: \"app-navigation-input-confirm\" }, [n(\"form\", { on: { submit: function(t) {\n return t.preventDefault(), e.confirm.apply(null, arguments);\n }, keydown: function(t) {\n return !t.type.indexOf(\"key\") && e._k(t.keyCode, \"esc\", 27, t.key, [\"Esc\", \"Escape\"]) || t.ctrlKey || t.shiftKey || t.altKey || t.metaKey ? null : (t.stopPropagation(), t.preventDefault(), e.cancel.apply(null, arguments));\n }, click: function(t) {\n t.stopPropagation(), t.preventDefault();\n } } }, [n(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: e.valueModel, expression: \"valueModel\" }], ref: \"input\", staticClass: \"app-navigation-input-confirm__input\", attrs: { type: \"text\", placeholder: e.placeholder }, domProps: { value: e.valueModel }, on: { input: function(t) {\n t.target.composing || (e.valueModel = t.target.value);\n } } }), n(\"NcButton\", { attrs: { \"native-type\": \"submit\", type: \"primary\", \"aria-label\": e.labelConfirm }, on: { click: function(t) {\n return t.stopPropagation(), t.preventDefault(), e.confirm.apply(null, arguments);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [n(\"ArrowRight\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }), n(\"NcButton\", { attrs: { \"native-type\": \"reset\", type: e.primary ? \"primary\" : \"tertiary\", \"aria-label\": e.labelCancel }, on: { click: function(t) {\n return t.stopPropagation(), t.preventDefault(), e.cancel.apply(null, arguments);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [n(\"Close\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) })], 1)]);\n}, s = [], f = /* @__PURE__ */ c(\n u,\n p,\n s,\n !1,\n null,\n \"dcf0becf\",\n null,\n null\n);\nconst v = f.exports;\nexport {\n v as N\n};\n","import \"../assets/index-f8d6daf3.css\";\nimport c from \"./NcActions.mjs\";\nimport u from \"./NcActionButton.mjs\";\nimport p from \"./NcLoadingIcon.mjs\";\nimport d from \"./NcVNodes.mjs\";\nimport f from \"./NcButton.mjs\";\nimport { t as s } from \"../chunks/l10n-ef44019c.mjs\";\nimport { C as _ } from \"../chunks/ChevronDown-a72d365d.mjs\";\nimport { n as l } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { useIsMobile as m } from \"../Composables/useIsMobile.mjs\";\nimport { N as h } from \"../chunks/NcInputConfirmCancel-a612e6a3.mjs\";\nimport { G as g } from \"../chunks/GenRandomId-cb9ccebe.mjs\";\nconst v = {\n name: \"ChevronUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar y = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon chevron-up-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(a) {\n return e.$emit(\"click\", a);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, C = [], b = /* @__PURE__ */ l(\n v,\n y,\n C,\n !1,\n null,\n null,\n null,\n null\n);\nconst k = b.exports;\nconst $ = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton: f,\n ChevronDown: _,\n ChevronUp: k\n },\n props: {\n open: {\n type: Boolean,\n default: !0\n }\n },\n emits: [\"click\"],\n computed: {\n labelButton() {\n return this.open ? s(\"Collapse menu\") : s(\"Open menu\");\n }\n },\n methods: {\n onClick(n) {\n this.$emit(\"click\", n);\n }\n }\n};\nvar N = function() {\n var e = this, t = e._self._c;\n return t(\"NcButton\", { staticClass: \"icon-collapse\", class: { \"icon-collapse--open\": e.open }, attrs: { type: \"tertiary\", \"aria-label\": e.labelButton }, on: { click: e.onClick }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e.open ? t(\"ChevronUp\", { attrs: { size: 20 } }) : t(\"ChevronDown\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) });\n}, B = [], L = /* @__PURE__ */ l(\n $,\n N,\n B,\n !1,\n null,\n \"07582bf6\",\n null,\n null\n);\nconst A = L.exports, S = {\n name: \"PencilIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar x = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon pencil-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(a) {\n return e.$emit(\"click\", a);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, I = [], z = /* @__PURE__ */ l(\n S,\n x,\n I,\n !1,\n null,\n null,\n null,\n null\n);\nconst w = z.exports, V = {\n name: \"UndoIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar U = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon undo-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(a) {\n return e.$emit(\"click\", a);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, D = [], E = /* @__PURE__ */ l(\n V,\n U,\n D,\n !1,\n null,\n null,\n null,\n null\n);\nconst M = E.exports;\nconst O = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions: c,\n NcActionButton: u,\n NcAppNavigationIconCollapsible: A,\n NcInputConfirmCancel: h,\n NcLoadingIcon: p,\n NcVNodes: d,\n Pencil: w,\n Undo: M\n },\n props: {\n /**\n * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n * When using vue-router and the `to` property this is set automatically.\n */\n active: {\n type: Boolean,\n default: !1\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: !0\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * id attribute of the list item element\n */\n id: {\n type: String,\n default: () => \"app-navigation-item-\" + g(),\n validator: (n) => n.trim() !== \"\"\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: !1\n },\n /**\n * Passing in a route will make the root element of this\n * component a `` that points to that route.\n * By leaving this blank, the root element will be a `
  • `.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * A direct link. This will be used as the `href` attribute.\n * This will ignore any `to` prop being defined.\n */\n href: {\n type: String,\n default: null\n },\n /**\n * Pass in `true` if you want the matching behaviour to\n * be non-inclusive: https://router.vuejs.org/api/#exact\n */\n exact: {\n type: Boolean,\n default: !1\n },\n /**\n * Gives the possibility to collapse the children elements into the\n * parent element (true) or expands the children elements (false).\n */\n allowCollapse: {\n type: Boolean,\n default: !1\n },\n /**\n * Makes the name of the item editable by providing an `ActionButton`\n * component that toggles a form\n */\n editable: {\n type: Boolean,\n default: !1\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Pins the item to the bottom left area, above the settings. Do not\n * place 'non-pinned' `AppnavigationItem` components below `pinned`\n * ones.\n */\n pinned: {\n type: Boolean,\n default: !1\n },\n /**\n * Puts the item in the 'undo' state.\n */\n undo: {\n type: Boolean,\n default: !1\n },\n /**\n * The navigation collapsible state (synced)\n */\n open: {\n type: Boolean,\n default: !1\n },\n /**\n * The actions menu open state (synced)\n */\n menuOpen: {\n type: Boolean,\n default: !1\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: !1\n },\n /**\n * The action's menu default icon\n */\n menuIcon: {\n type: String,\n default: void 0\n },\n /**\n * The action's menu direction\n */\n menuPlacement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Entry aria details\n */\n ariaDescription: {\n type: String,\n default: null\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: !1\n },\n /**\n * Number of action items outside the menu\n */\n inlineActions: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"update:menuOpen\",\n \"update:open\",\n \"update:name\",\n \"click\",\n \"undo\"\n ],\n setup() {\n return {\n isMobile: m()\n };\n },\n data() {\n return {\n editingValue: \"\",\n opened: this.open,\n // Collapsible state\n editingActive: !1,\n hasChildren: !1,\n /**\n * Tracks the open state of the actions menu\n */\n menuOpenLocalValue: !1,\n focused: !1\n };\n },\n computed: {\n isRouterLink() {\n return this.to && !this.href;\n },\n collapsible() {\n return this.allowCollapse && !!this.$slots.default;\n },\n // Checks if the component is already a children of another\n // instance of AppNavigationItem\n canHaveChildren() {\n return this.$parent.$options._componentTag !== \"AppNavigationItem\";\n },\n hasUtils() {\n return !!(this.$slots.actions || this.$slots.counter || this.editable || this.undo);\n },\n editButtonAriaLabel() {\n return this.editLabel ? this.editLabel : s(\"Edit item\");\n },\n undoButtonAriaLabel() {\n return s(\"Undo changes\");\n },\n actionsBoundariesElement() {\n return document.querySelector(\"#content-vue\") || void 0;\n }\n },\n watch: {\n open(n) {\n this.opened = n;\n }\n },\n created() {\n this.updateSlotInfo();\n },\n beforeUpdate() {\n this.updateSlotInfo();\n },\n methods: {\n // sync opened menu state with prop\n onMenuToggle(n) {\n this.$emit(\"update:menuOpen\", n), this.menuOpenLocalValue = n;\n },\n // toggle the collapsible state\n toggleCollapse() {\n this.opened = !this.opened, this.$emit(\"update:open\", this.opened);\n },\n /**\n * Handle link click\n *\n * @param {PointerEvent} event - Native click event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(n, e, t) {\n this.$emit(\"click\", n), !(n.metaKey || n.altKey || n.ctrlKey || n.shiftKey) && t && (e == null || e(n), n.preventDefault());\n },\n // Edition methods\n handleEdit() {\n this.editingValue = this.name, this.editingActive = !0, this.onMenuToggle(!1), this.$nextTick(() => {\n this.$refs.editingInput.focusInput();\n });\n },\n cancelEditing() {\n this.editingActive = !1;\n },\n handleEditingDone() {\n this.$emit(\"update:name\", this.editingValue), this.editingValue = \"\", this.editingActive = !1;\n },\n // Undo methods\n handleUndo() {\n this.$emit(\"undo\");\n },\n updateSlotInfo() {\n this.hasChildren = !!this.$slots.default;\n },\n /**\n * Show actions upon focus\n */\n handleFocus() {\n this.focused = !0;\n },\n handleBlur() {\n this.focused = !1;\n },\n /**\n * This method checks if the root element of the component is focused and\n * if that's the case it focuses the actions button if available\n *\n * @param {Event} e the keydown event\n */\n handleTab(n) {\n this.$refs.actions && (this.focused ? (n.preventDefault(), this.$refs.actions.$refs.menuButton.$el.focus(), this.focused = !1) : this.$refs.actions.$refs.menuButton.$el.blur());\n },\n /**\n * Is this an external link\n *\n * @param {string} href The link to check\n * @return {boolean} Whether it is external or not\n */\n isExternal(n) {\n return n && n.match(/[a-z]+:\\/\\//i);\n }\n }\n};\nvar R = function() {\n var e = this, t = e._self._c;\n return t(\"li\", { staticClass: \"app-navigation-entry-wrapper\", class: {\n \"app-navigation-entry--opened\": e.opened,\n \"app-navigation-entry--pinned\": e.pinned,\n \"app-navigation-entry--collapsible\": e.collapsible\n }, attrs: { id: e.id } }, [t(e.isRouterLink ? \"router-link\" : \"NcVNodes\", { tag: \"component\", attrs: { custom: !!e.isRouterLink, to: e.to, exact: e.isRouterLink ? e.exact : null }, scopedSlots: e._u([{ key: \"default\", fn: function({ href: a, navigate: r, isActive: o }) {\n return [t(\"div\", { staticClass: \"app-navigation-entry\", class: {\n \"app-navigation-entry--editing\": e.editingActive,\n \"app-navigation-entry--deleted\": e.undo,\n active: o && e.to || e.active\n } }, [e.undo ? e._e() : t(\"a\", { staticClass: \"app-navigation-entry-link\", attrs: { \"aria-current\": e.active || o && e.to ? \"page\" : void 0, \"aria-description\": e.ariaDescription, \"aria-expanded\": e.hasChildren ? e.opened.toString() : void 0, href: e.href || a || \"#\", target: e.isExternal(e.href) ? \"_blank\" : void 0, title: e.title || e.name }, on: { blur: e.handleBlur, click: function(i) {\n return e.onClick(i, r, a);\n }, focus: e.handleFocus, keydown: function(i) {\n return !i.type.indexOf(\"key\") && e._k(i.keyCode, \"tab\", 9, i.key, \"Tab\") || i.ctrlKey || i.shiftKey || i.altKey || i.metaKey ? null : e.handleTab.apply(null, arguments);\n } } }, [t(\"div\", { staticClass: \"app-navigation-entry-icon\", class: { [e.icon]: e.icon } }, [e.loading ? t(\"NcLoadingIcon\") : e._t(\"icon\")], 2), e.editingActive ? e._e() : t(\"span\", { staticClass: \"app-navigation-entry__name\" }, [e._v(\" \" + e._s(e.name) + \" \")]), e.editingActive ? t(\"div\", { staticClass: \"editingContainer\" }, [t(\"NcInputConfirmCancel\", { ref: \"editingInput\", attrs: { placeholder: e.editPlaceholder !== \"\" ? e.editPlaceholder : e.name, primary: o && e.to }, on: { cancel: e.cancelEditing, confirm: e.handleEditingDone }, model: { value: e.editingValue, callback: function(i) {\n e.editingValue = i;\n }, expression: \"editingValue\" } })], 1) : e._e()]), e.undo ? t(\"div\", { staticClass: \"app-navigation-entry__deleted\" }, [t(\"div\", { staticClass: \"app-navigation-entry__deleted-description\" }, [e._v(\" \" + e._s(e.name) + \" \")])]) : e._e(), e.hasUtils && !e.editingActive ? t(\"div\", { staticClass: \"app-navigation-entry__utils\", class: { \"app-navigation-entry__utils--display-actions\": e.forceDisplayActions || e.menuOpenLocalValue || e.menuOpen } }, [e.$slots.counter ? t(\"div\", { staticClass: \"app-navigation-entry__counter-wrapper\" }, [e._t(\"counter\")], 2) : e._e(), e.$slots.actions || e.editable && !e.editingActive || e.undo ? t(\"NcActions\", { ref: \"actions\", staticClass: \"app-navigation-entry__actions\", attrs: { inline: e.inlineActions, container: \"#app-navigation-vue\", \"boundaries-element\": e.actionsBoundariesElement, placement: e.menuPlacement, open: e.menuOpen, type: o && e.to ? \"primary\" : null, \"force-menu\": e.forceMenu, \"default-icon\": e.menuIcon }, on: { \"update:open\": e.onMenuToggle }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e._t(\"menu-icon\")];\n }, proxy: !0 }], null, !0) }, [e.editable && !e.editingActive ? t(\"NcActionButton\", { attrs: { \"aria-label\": e.editButtonAriaLabel }, on: { click: e.handleEdit }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Pencil\", { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !0) }, [e._v(\" \" + e._s(e.editLabel) + \" \")]) : e._e(), e.undo ? t(\"NcActionButton\", { attrs: { \"aria-label\": e.undoButtonAriaLabel }, on: { click: e.handleUndo }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Undo\", { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !0) }) : e._e(), e._t(\"actions\")], 2) : e._e()], 1) : e._e(), e.collapsible ? t(\"NcAppNavigationIconCollapsible\", { attrs: { open: e.opened }, on: { click: function(i) {\n return i.preventDefault(), i.stopPropagation(), e.toggleCollapse.apply(null, arguments);\n } } }) : e._e(), e._t(\"extra\")], 2)];\n } }], null, !0) }), e.canHaveChildren && e.hasChildren ? t(\"ul\", { staticClass: \"app-navigation-entry__children\" }, [e._t(\"default\")], 2) : e._e()], 1);\n}, P = [], K = /* @__PURE__ */ l(\n O,\n R,\n P,\n !1,\n null,\n \"24094dee\",\n null,\n null\n);\nconst ee = K.exports;\nexport {\n ee as default\n};\n","var $placeholder = Symbol();\n\nvar $fakeParent = Symbol();\n\nvar $nextSiblingPatched = Symbol();\n\nvar $childNodesPatched = Symbol();\n\nvar isFrag = function isFrag(node) {\n return \"frag\" in node;\n};\n\nvar parentNodeDescriptor = {\n get: function get() {\n return this[$fakeParent] || this.parentElement;\n },\n configurable: true\n};\n\nvar patchParentNode = function patchParentNode(node, fakeParent) {\n if ($fakeParent in node) {\n return;\n }\n node[$fakeParent] = fakeParent;\n Object.defineProperty(node, \"parentNode\", parentNodeDescriptor);\n};\n\nvar nextSiblingDescriptor = {\n get: function get() {\n var childNodes = this.parentNode.childNodes;\n var index = childNodes.indexOf(this);\n if (index > -1) {\n return childNodes[index + 1] || null;\n }\n return null;\n }\n};\n\nvar patchNextSibling = function patchNextSibling(node) {\n if ($nextSiblingPatched in node) {\n return;\n }\n node[$nextSiblingPatched] = true;\n Object.defineProperty(node, \"nextSibling\", nextSiblingDescriptor);\n};\n\nvar getTopFragment = function getTopFragment(node, fromParent) {\n while (node.parentNode !== fromParent) {\n var _node = node, parentNode = _node.parentNode;\n if (parentNode) {\n node = parentNode;\n }\n }\n return node;\n};\n\nvar getChildNodes;\n\nvar getChildNodesWithFragments = function getChildNodesWithFragments(node) {\n if (!getChildNodes) {\n var _childNodesDescriptor = Object.getOwnPropertyDescriptor(Node.prototype, \"childNodes\");\n getChildNodes = _childNodesDescriptor.get;\n }\n var realChildNodes = getChildNodes.apply(node);\n var childNodes = Array.from(realChildNodes).map((function(childNode) {\n return getTopFragment(childNode, node);\n }));\n return childNodes.filter((function(childNode, index) {\n return childNode !== childNodes[index - 1];\n }));\n};\n\nvar childNodesDescriptor = {\n get: function get() {\n return this.frag || getChildNodesWithFragments(this);\n }\n};\n\nvar firstChildDescriptor = {\n get: function get() {\n return this.childNodes[0] || null;\n }\n};\n\nfunction hasChildNodes() {\n return this.childNodes.length > 0;\n}\n\nvar patchChildNodes = function patchChildNodes(node) {\n if ($childNodesPatched in node) {\n return;\n }\n node[$childNodesPatched] = true;\n Object.defineProperties(node, {\n childNodes: childNodesDescriptor,\n firstChild: firstChildDescriptor\n });\n node.hasChildNodes = hasChildNodes;\n};\n\nfunction before() {\n var _this$frag$;\n (_this$frag$ = this.frag[0]).before.apply(_this$frag$, arguments);\n}\n\nfunction remove() {\n var frag = this.frag;\n var removed = frag.splice(0, frag.length);\n removed.forEach((function(node) {\n node.remove();\n }));\n}\n\nvar getFragmentLeafNodes = function getFragmentLeafNodes(children) {\n var _Array$prototype;\n return (_Array$prototype = Array.prototype).concat.apply(_Array$prototype, children.map((function(childNode) {\n return isFrag(childNode) ? getFragmentLeafNodes(childNode.frag) : childNode;\n })));\n};\n\nvar addPlaceholder = function addPlaceholder(node, insertBeforeNode) {\n var placeholder = node[$placeholder];\n insertBeforeNode.before(placeholder);\n patchParentNode(placeholder, node);\n node.frag.unshift(placeholder);\n};\n\nfunction removeChild(node) {\n if (isFrag(this)) {\n var hasChildInFragment = this.frag.indexOf(node);\n if (hasChildInFragment > -1) {\n var _this$frag$splice = this.frag.splice(hasChildInFragment, 1), removedNode = _this$frag$splice[0];\n if (this.frag.length === 0) {\n addPlaceholder(this, removedNode);\n }\n node.remove();\n }\n } else {\n var children = getChildNodesWithFragments(this);\n var hasChild = children.indexOf(node);\n if (hasChild > -1) {\n node.remove();\n }\n }\n return node;\n}\n\nfunction insertBefore(insertNode, insertBeforeNode) {\n var _this = this;\n var insertNodes = insertNode.frag || [ insertNode ];\n if (isFrag(this)) {\n if (insertNode[$fakeParent] === this && insertNode.parentElement) {\n return insertNode;\n }\n var _frag = this.frag;\n if (insertBeforeNode) {\n var index = _frag.indexOf(insertBeforeNode);\n if (index > -1) {\n _frag.splice.apply(_frag, [ index, 0 ].concat(insertNodes));\n insertBeforeNode.before.apply(insertBeforeNode, insertNodes);\n }\n } else {\n var _lastNode = _frag[_frag.length - 1];\n _frag.push.apply(_frag, insertNodes);\n _lastNode.after.apply(_lastNode, insertNodes);\n }\n removePlaceholder(this);\n } else if (insertBeforeNode) {\n if (this.childNodes.includes(insertBeforeNode)) {\n insertBeforeNode.before.apply(insertBeforeNode, insertNodes);\n }\n } else {\n this.append.apply(this, insertNodes);\n }\n insertNodes.forEach((function(node) {\n patchParentNode(node, _this);\n }));\n var lastNode = insertNodes[insertNodes.length - 1];\n patchNextSibling(lastNode);\n return insertNode;\n}\n\nfunction appendChild(node) {\n if (node[$fakeParent] === this && node.parentElement) {\n return node;\n }\n var frag = this.frag;\n var lastChild = frag[frag.length - 1];\n lastChild.after(node);\n patchParentNode(node, this);\n removePlaceholder(this);\n frag.push(node);\n return node;\n}\n\nvar removePlaceholder = function removePlaceholder(node) {\n var placeholder = node[$placeholder];\n if (node.frag[0] === placeholder) {\n node.frag.shift();\n placeholder.remove();\n }\n};\n\nvar innerHTMLDescriptor = {\n set: function set(htmlString) {\n var _this2 = this;\n if (this.frag[0] !== this[$placeholder]) {\n this.frag.slice().forEach((function(child) {\n return _this2.removeChild(child);\n }));\n }\n if (htmlString) {\n var domify = document.createElement(\"div\");\n domify.innerHTML = htmlString;\n Array.from(domify.childNodes).forEach((function(node) {\n _this2.appendChild(node);\n }));\n }\n },\n get: function get() {\n return \"\";\n }\n};\n\nvar frag = {\n inserted: function inserted(element) {\n var parentNode = element.parentNode, nextSibling = element.nextSibling, previousSibling = element.previousSibling;\n var childNodes = Array.from(element.childNodes);\n var placeholder = document.createComment(\"\");\n if (childNodes.length === 0) {\n childNodes.push(placeholder);\n }\n element.frag = childNodes;\n element[$placeholder] = placeholder;\n var fragment = document.createDocumentFragment();\n fragment.append.apply(fragment, getFragmentLeafNodes(childNodes));\n element.replaceWith(fragment);\n childNodes.forEach((function(node) {\n patchParentNode(node, element);\n patchNextSibling(node);\n }));\n patchChildNodes(element);\n Object.assign(element, {\n remove: remove,\n appendChild: appendChild,\n insertBefore: insertBefore,\n removeChild: removeChild,\n before: before\n });\n Object.defineProperty(element, \"innerHTML\", innerHTMLDescriptor);\n if (parentNode) {\n Object.assign(parentNode, {\n removeChild: removeChild,\n insertBefore: insertBefore\n });\n patchParentNode(element, parentNode);\n patchChildNodes(parentNode);\n }\n if (nextSibling) {\n patchNextSibling(element);\n }\n if (previousSibling) {\n patchNextSibling(previousSibling);\n }\n },\n unbind: function unbind(element) {\n element.remove();\n }\n};\n\nvar fragment = {\n name: \"Fragment\",\n directives: {\n frag: frag\n },\n render: function render(h) {\n return h(\"div\", {\n directives: [ {\n name: \"frag\"\n } ]\n }, this.$slots[\"default\"]);\n }\n};\n\nexport { fragment as Fragment, frag as default };\n","\n\n\n\n\n","export default \"\\n\\n \\n\\n\"","\n\n\n\n\n\n","\n\n","\n\n\n\n\n","/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport type { RouteConfig } from 'vue-router'\nimport ActivityAppFeed from './views/ActivityAppFeed.vue'\nimport ActivityAppNavigation from './views/ActivityAppNavigation.vue'\n\nexport const routes = [\n\t{\n\t\tpath: '/',\n\t\tname: 'root',\n\t\tredirect: { path: '/all' },\n\t},\n\t{\n\t\tpath: '/:filter?',\n\t\tcomponents: {\n\t\t\tdefault: ActivityAppFeed,\n\t\t\tnavigation: ActivityAppNavigation,\n\t\t},\n\t\tprops: {\n\t\t\tdefault: true,\n\t\t},\n\t},\n] as RouteConfig[]\n","/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport ActivityApp from './views/ActivityApp.vue'\n\nimport { translate, translatePlural } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\n\nimport { routes } from './routes'\n\n// Set up Vue\nVue.prototype.t = translate\nVue.prototype.n = translatePlural\n\nVue.use(VueRouter)\n\nconst router = new VueRouter({\n\tmode: 'history',\n\tbase: generateUrl('/apps/activity'),\n\tlinkActiveClass: 'active',\n\troutes,\n})\n\nexport default new Vue({\n\tel: '#content',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'ActivityRoot',\n\trouter,\n\trender: h => h(ActivityApp),\n})\n"],"names":["extend","a","b","key","encodeReserveRE","encodeReserveReplacer","c","commaRE","encode","str","decode","resolveQuery","query","extraQuery","_parseQuery","parse","parseQuery","parsedQuery","value","castQueryParamValue","res","param","parts","val","stringifyQuery","obj","result","val2","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","clone","route","getFullPath","formatMatch","START","ref","_stringifyQuery","path","hash","stringify","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","i","aVal","bKey","bVal","isIncludedRoute","current","target","queryIncludes","handleRouteEntered","name","instance","cbs","i$1","View","_","props","children","parent","data","h","cache","depth","inactive","vnodeData","cachedData","cachedComponent","fillPropsinData","matched","component","vm","vnode","configProps","propsToPass","resolveProps","attrs","config","resolvePath","relative","base","append","firstChar","stack","segments","segment","parsePath","hashIndex","queryIndex","cleanPath","isarray","arr","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","options","tokens","index","defaultDelimiter","m","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","delimiter","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeAsterisk","matches","flags","opts","token","j","attachKeys","re","keys","regexpToRegexp","groups","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","fillParams","params","routeMsg","filler","normalizeLocation","raw","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","noop","Link","this$1$1","href","classes","globalActiveClass","globalExactActiveClass","activeClassFallback","exactActiveClassFallback","activeClass","exactActiveClass","compareTarget","ariaCurrentValue","handler","e","guardEvent","on","scopedSlot","findAnchor","aData","event","handler$1","event$1","aAttrs","child","_Vue","install","Vue","isDef","v","registerInstance","callVal","strats","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","compileRouteRegex","childMatchAs","aliases","alias","aliasRoute","regex","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","match","currentRoute","_createRoute","paramNames","record$1","matchRoute","redirect","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","len","Time","genStateKey","_key","getStateKey","setStateKey","positionStore","setupScroll","protocolAndPath","absolutePath","stateCopy","handlePopState","handleScroll","to","from","isPop","behavior","position","getScrollPosition","shouldScroll","scrollToPosition","err","saveScrollPosition","getElementPosition","el","docEl","docRect","elRect","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","supportsPushState","ua","pushState","url","replace","history","replaceState","NavigationFailureType","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","type","message","propertiesToLog","isError","isNavigationFailure","errorType","runQueue","queue","fn","cb","step","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","resolve","once","resolvedDef","isESModule","reject","reason","msg","comp","flatten","hasSymbol","called","args","History","normalizeBase","errorCb","onComplete","onAbort","prev","hook","abort","lastRouteIndex","lastCurrentIndex","resolveQueue","updated","deactivated","activated","extractLeaveGuards","extractUpdateHooks","iterator","enterGuards","extractEnterGuards","cleanupListener","baseEl","max","extractGuards","records","bind","reverse","guards","guard","extractGuard","bindGuard","bindEnterGuard","HTML5History","getLocation","expectScroll","supportsScroll","handleRoutingEvent","n","fromRoute","push","pathLowerCase","baseLowerCase","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","mode","prototypeAccessors","app","handleInitialScroll","routeOrError","setupListeners","registerHook","fullPath","createHref","VueRouter$1","list","r","s","t","l","p","u","f","d","g","o","N","y","z","C","k","$","B","L","A","S","I","w","V","U","D","E","M","O","R","P","K","ee","$placeholder","$fakeParent","$nextSiblingPatched","$childNodesPatched","isFrag","node","parentNodeDescriptor","patchParentNode","fakeParent","nextSiblingDescriptor","childNodes","patchNextSibling","getTopFragment","fromParent","_node","parentNode","getChildNodes","getChildNodesWithFragments","_childNodesDescriptor","realChildNodes","childNode","childNodesDescriptor","firstChildDescriptor","hasChildNodes","patchChildNodes","before","_this$frag$","remove","frag","removed","getFragmentLeafNodes","_Array$prototype","addPlaceholder","insertBeforeNode","placeholder","removeChild","hasChildInFragment","_this$frag$splice","removedNode","hasChild","insertBefore","insertNode","_this","insertNodes","_frag","_lastNode","removePlaceholder","lastNode","appendChild","lastChild","innerHTMLDescriptor","htmlString","_this2","domify","element","nextSibling","previousSibling","fragment","dateText","computed","today","moment","yesterday","first","fullDate","formatted","appIconSVG","loading","hasMoreActivites","allActivities","lastActivityLoaded","container","useInfiniteScroll","loadActivities","groupedActivities","activity","date","since","response","ncAxios","generateOcsUrl","ActivityModel","axios","logger","showError","onMounted","watch","_sfc_main","initialRSSLink","personalSettingsLink","loadState","appName","navigationList","rssLink","hasRSSLink","toggleRSSLink","generateUrl","copyRSSLink","showSuccess","ActivityAppFeed","ActivityAppNavigation","translate","translatePlural","ActivityApp"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,10]} \ No newline at end of file diff --git a/src/views/ActivityAppNavigation.vue b/src/views/ActivityAppNavigation.vue index a8b3135d9..6a88379d9 100644 --- a/src/views/ActivityAppNavigation.vue +++ b/src/views/ActivityAppNavigation.vue @@ -1,5 +1,5 @@