]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix(files): Update favorites navigation list on folder renames 46138/head
authorLouis Chemineau <louis@chmn.me>
Thu, 27 Jun 2024 13:24:35 +0000 (15:24 +0200)
committerLouis Chemineau <louis@chmn.me>
Thu, 27 Jun 2024 13:25:17 +0000 (15:25 +0200)
Signed-off-by: Louis Chemineau <louis@chmn.me>
apps/files/src/eventbus.d.ts
apps/files/src/views/favorites.spec.ts
apps/files/src/views/favorites.ts
dist/files-init.js
dist/files-init.js.map

index 1d68a3229a8903a6b7c043822a8fe15661d24f59..c6c66a766d01f24681b6dab721887d0977d306e5 100644 (file)
@@ -5,6 +5,7 @@ declare module '@nextcloud/event-bus' {
                // mapping of 'event name' => 'event type'
                'files:favorites:removed': Node
                'files:favorites:added': Node
+               'files:node:renamed': Node
        }
 }
 
index b33a68955f15129aa6eba60ebdf0b821e50fbcc5..cd328b520f49d3c2b99cc83cf880cf49d16e6a52 100644 (file)
@@ -23,7 +23,7 @@
 import { basename } from 'path'
 import { expect } from '@jest/globals'
 import { Folder, Navigation, getNavigation } from '@nextcloud/files'
-import eventBus from '@nextcloud/event-bus'
+import eventBus, { emit } from '@nextcloud/event-bus'
 import * as initialState from '@nextcloud/initial-state'
 
 import { action } from '../actions/favoriteAction'
@@ -63,9 +63,10 @@ describe('Favorites view definition', () => {
                const favoritesView = Navigation.views.find(view => view.id === 'favorites')
                const favoriteFoldersViews = Navigation.views.filter(view => view.parent === 'favorites')
 
-               expect(eventBus.subscribe).toHaveBeenCalledTimes(2)
+               expect(eventBus.subscribe).toHaveBeenCalledTimes(3)
                expect(eventBus.subscribe).toHaveBeenNthCalledWith(1, 'files:favorites:added', expect.anything())
                expect(eventBus.subscribe).toHaveBeenNthCalledWith(2, 'files:favorites:removed', expect.anything())
+               expect(eventBus.subscribe).toHaveBeenNthCalledWith(3, 'files:node:renamed', expect.anything())
 
                // one main view and no children
                expect(Navigation.views.length).toBe(1)
@@ -196,4 +197,43 @@ describe('Dynamic update of favourite folders', () => {
                expect(favoritesView).toBeDefined()
                expect(favoriteFoldersViews.length).toBe(0)
        })
+
+       test('Renaming a favorite folder updates the navigation', async () => {
+               jest.spyOn(eventBus, 'emit')
+               jest.spyOn(initialState, 'loadState').mockReturnValue([])
+               jest.spyOn(favoritesService, 'getContents').mockReturnValue(Promise.resolve({ folder: {} as Folder, contents: [] }))
+
+               registerFavoritesView()
+               const favoritesView = Navigation.views.find(view => view.id === 'favorites')
+               const favoriteFoldersViews = Navigation.views.filter(view => view.parent === 'favorites')
+
+               // one main view and no children
+               expect(Navigation.views.length).toBe(1)
+               expect(favoritesView).toBeDefined()
+               expect(favoriteFoldersViews.length).toBe(0)
+
+               // expect(eventBus.emit).toHaveBeenCalledTimes(2)
+
+               // Create new folder to favorite
+               const folder = new Folder({
+                       id: 1,
+                       source: 'http://localhost/remote.php/dav/files/admin/Foo/Bar',
+                       owner: 'admin',
+               })
+
+               // Exec the action
+               await action.exec(folder, favoritesView, '/')
+               expect(eventBus.emit).toHaveBeenNthCalledWith(1, 'files:favorites:added', folder)
+
+               // Create a folder with the same id but renamed
+               const renamedFolder = new Folder({
+                       id: 1,
+                       source: 'http://localhost/remote.php/dav/files/admin/Foo/Bar.renamed',
+                       owner: 'admin',
+               })
+
+               // Exec the rename action
+               emit('files:node:renamed', renamedFolder)
+               expect(eventBus.emit).toHaveBeenNthCalledWith(2, 'files:node:renamed', renamedFolder)
+       })
 })
index 67c4fd58a86382b80bf8103aea4986ae347749c1..366fe56da1293eadb44b74232fe91dfd5dede735 100644 (file)
@@ -123,6 +123,21 @@ export default () => {
                removePathFromFavorites(node.path)
        })
 
+       /**
+        * Update favourites navigation when a folder is renamed
+        */
+       subscribe('files:node:renamed', (node: Node) => {
+               if (node.type !== FileType.Folder) {
+                       return
+               }
+
+               if (node.attributes.favorite !== 1) {
+                       return
+               }
+
+               updateNodeFromFavorites(node as Folder)
+       })
+
        /**
         * Sort the favorites paths array and
         * update the order property of the existing views
@@ -174,4 +189,17 @@ export default () => {
                Navigation.remove(id)
                updateAndSortViews()
        }
+
+       // Update a folder from the favorites paths array and update the views
+       const updateNodeFromFavorites = function(node: Folder) {
+               const favoriteFolder = favoriteFolders.find((folder) => folder.fileid === node.fileid)
+
+               // Skip if it does not exists
+               if (favoriteFolder === undefined) {
+                       return
+               }
+
+               removePathFromFavorites(favoriteFolder.path)
+               addToFavorites(node)
+       }
 }
index c861e2b3f55d1a744347e8e635c1d9d8ba8c1344..c85be7f7e2de19375b8089b24446a1a308e5dd48 100644 (file)
@@ -1,3 +1,3 @@
 /*! For license information please see files-init.js.LICENSE.txt */
-(()=>{var e,t,s,n={9052:e=>{"use strict";var t=Object.prototype.hasOwnProperty,s="~";function n(){}function a(e,t,s){this.fn=e,this.context=t,this.once=s||!1}function i(e,t,n,i,r){if("function"!=typeof n)throw new TypeError("The listener must be a function");var o=new a(n,i||e,r),l=s?s+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function r(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function o(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(s=!1)),o.prototype.eventNames=function(){var e,n,a=[];if(0===this._eventsCount)return a;for(n in e=this._events)t.call(e,n)&&a.push(s?n.slice(1):n);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(e)):a},o.prototype.listeners=function(e){var t=s?s+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,i=n.length,r=new Array(i);a<i;a++)r[a]=n[a].fn;return r},o.prototype.listenerCount=function(e){var t=s?s+e:e,n=this._events[t];return n?n.fn?1:n.length:0},o.prototype.emit=function(e,t,n,a,i,r){var o=s?s+e:e;if(!this._events[o])return!1;var l,d,m=this._events[o],c=arguments.length;if(m.fn){switch(m.once&&this.removeListener(e,m.fn,void 0,!0),c){case 1:return m.fn.call(m.context),!0;case 2:return m.fn.call(m.context,t),!0;case 3:return m.fn.call(m.context,t,n),!0;case 4:return m.fn.call(m.context,t,n,a),!0;case 5:return m.fn.call(m.context,t,n,a,i),!0;case 6:return m.fn.call(m.context,t,n,a,i,r),!0}for(d=1,l=new Array(c-1);d<c;d++)l[d-1]=arguments[d];m.fn.apply(m.context,l)}else{var u,g=m.length;for(d=0;d<g;d++)switch(m[d].once&&this.removeListener(e,m[d].fn,void 0,!0),c){case 1:m[d].fn.call(m[d].context);break;case 2:m[d].fn.call(m[d].context,t);break;case 3:m[d].fn.call(m[d].context,t,n);break;case 4:m[d].fn.call(m[d].context,t,n,a);break;default:if(!l)for(u=1,l=new Array(c-1);u<c;u++)l[u-1]=arguments[u];m[d].fn.apply(m[d].context,l)}}return!0},o.prototype.on=function(e,t,s){return i(this,e,t,s,!1)},o.prototype.once=function(e,t,s){return i(this,e,t,s,!0)},o.prototype.removeListener=function(e,t,n,a){var i=s?s+e:e;if(!this._events[i])return this;if(!t)return r(this,i),this;var o=this._events[i];if(o.fn)o.fn!==t||a&&!o.once||n&&o.context!==n||r(this,i);else{for(var l=0,d=[],m=o.length;l<m;l++)(o[l].fn!==t||a&&!o[l].once||n&&o[l].context!==n)&&d.push(o[l]);d.length?this._events[i]=1===d.length?d[0]:d:r(this,i)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=s?s+e:e,this._events[t]&&r(this,t)):(this._events=new n,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=s,o.EventEmitter=o,e.exports=o},76150:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});const n=(0,s(53529).YK)().setApp("files").detectUser().build()},40586:(e,t,s)=>{"use strict";var n=s(35810),a=s(61338),i=s(53334),r=s(26287),o=s(76150),l=s(49264);const d=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"shared"===e.attributes["mount-type"])),m=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"external"===e.attributes["mount-type"])),c=new l.A({concurrency:5}),u=new n.hY({id:"delete",displayName:(e,t)=>"trashbin"===t.id?(0,i.Tl)("files","Delete permanently"):(e=>{if(1===e.length)return!1;const t=e.some((e=>d([e]))),s=e.some((e=>!d([e])));return t&&s})(e)?(0,i.Tl)("files","Delete and unshare"):d(e)?1===e.length?(0,i.Tl)("files","Leave this share"):(0,i.Tl)("files","Leave these shares"):m(e)?1===e.length?(0,i.Tl)("files","Disconnect storage"):(0,i.Tl)("files","Disconnect storages"):(e=>!e.some((e=>e.type!==n.pt.File)))(e)?1===e.length?(0,i.Tl)("files","Delete file"):(0,i.Tl)("files","Delete files"):(e=>!e.some((e=>e.type!==n.pt.Folder)))(e)?1===e.length?(0,i.Tl)("files","Delete folder"):(0,i.Tl)("files","Delete folders"):(0,i.Tl)("files","Delete"),iconSvgInline:e=>d(e)?'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-close" viewBox="0 0 24 24"><path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" /></svg>':m(e)?'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-network-off" viewBox="0 0 24 24"><path d="M1,5.27L5,9.27V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H17.73L19.73,24L21,22.72L2.28,4L1,5.27M15,20A1,1 0 0,0 14,19H13V17.27L15.73,20H15M17.69,16.87L5.13,4.31C5.41,3.55 6.14,3 7,3H17A2,2 0 0,1 19,5V15C19,15.86 18.45,16.59 17.69,16.87M22,20V21.18L20.82,20H22Z" /></svg>':'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-trash-can" viewBox="0 0 24 24"><path d="M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M9,8H11V17H9V8M13,8H15V17H13V8Z" /></svg>',enabled:e=>e.length>0&&e.map((e=>e.permissions)).every((e=>!!(e&n.aX.DELETE))),async exec(e,t,s){try{return await r.A.delete(e.encodedSource),(0,a.Ic)("files:node:deleted",e),!0}catch(t){return o.A.error("Error while deleting a file",{error:t,source:e.source,node:e}),!1}},async execBatch(e,t,s){const n=e.map((e=>new Promise((n=>{c.add((async()=>{const a=await this.exec(e,t,s);n(null!==a&&a)}))}))));return Promise.all(n)},order:100});var g=s(99498);const f=function(e){const t=document.createElement("a");t.download="",t.href=e,t.click()},p=function(e,t){const s=Math.random().toString(36).substring(2),n=(0,g.Jv)("/apps/files/ajax/download.php?dir={dir}&files={files}&downloadStartSecret={secret}",{dir:e,secret:s,files:JSON.stringify(t.map((e=>e.basename)))});f(n)},h=function(e){if(!(e.permissions&n.aX.READ))return!1;if("shared"===e.attributes["mount-type"]){var t,s;const n=JSON.parse(null!==(t=e.attributes["share-attributes"])&&void 0!==t?t:"null"),a=null==n||null===(s=n.find)||void 0===s?void 0:s.call(n,(e=>"permissions"===e.scope&&"download"===e.key));if(void 0!==a&&!1===a.enabled)return!1}return!0},w=new n.hY({id:"download",displayName:()=>(0,i.Tl)("files","Download"),iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-arrow-down" viewBox="0 0 24 24"><path d="M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z" /></svg>',enabled:e=>0!==e.length&&(!e.some((e=>e.type===n.pt.Folder))||!e.some((e=>{var t;return!(null!==(t=e.root)&&void 0!==t&&t.startsWith("/files"))})))&&e.every(h),exec:async(e,t,s)=>e.type===n.pt.Folder?(p(s,[e]),null):(f(e.encodedSource),null),async execBatch(e,t,s){return 1===e.length?(this.exec(e[0],t,s),[null]):(p(s,e),new Array(e.length).fill(null))},order:30});var x=s(71089),v=s(21777),T=s(85168);const A=new n.hY({id:"edit-locally",displayName:()=>(0,i.Tl)("files","Edit locally"),iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-laptop" viewBox="0 0 24 24"><path d="M4,6H20V16H4M20,18A2,2 0 0,0 22,16V6C22,4.89 21.1,4 20,4H4C2.89,4 2,4.89 2,6V16A2,2 0 0,0 4,18H0V20H24V18H20Z" /></svg>',enabled:e=>1===e.length&&!!(e[0].permissions&n.aX.UPDATE),exec:async e=>(async function(e){const t=(0,g.KT)("apps/files/api/v1")+"/openlocaleditor?format=json";try{var s;const n=await r.A.post(t,{path:e}),a=null===(s=(0,v.HW)())||void 0===s?void 0:s.uid;let i="nc://open/".concat(a,"@")+window.location.host+(0,x.O0)(e);i+="?token="+n.data.ocs.data.token,window.location.href=i}catch(e){(0,T.Qg)((0,i.Tl)("files","Failed to redirect to client"))}}(e.path),null),order:25});var y=s(85471);const C='<svg xmlns="http://www.w3.org/2000/svg" id="mdi-star" viewBox="0 0 24 24"><path d="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z" /></svg>',b=e=>e.some((e=>1!==e.attributes.favorite)),k=async(e,t,s)=>{try{const n=(0,g.Jv)("/apps/files/api/v1/files")+(0,x.O0)(e.path);return await r.A.post(n,{tags:s?[window.OC.TAG_FAVORITE]:[]}),"favorites"!==t.id||s||"/"!==e.dirname||(0,a.Ic)("files:node:deleted",e),y.Ay.set(e.attributes,"favorite",s?1:0),s?(0,a.Ic)("files:favorites:added",e):(0,a.Ic)("files:favorites:removed",e),!0}catch(t){const n=s?"adding a file to favourites":"removing a file from favourites";return o.A.error("Error while "+n,{error:t,source:e.source,node:e}),!1}},L=new n.hY({id:"favorite",displayName:e=>b(e)?(0,i.Tl)("files","Add to favorites"):(0,i.Tl)("files","Remove from favorites"),iconSvgInline:e=>b(e)?'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-star-outline" viewBox="0 0 24 24"><path d="M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z" /></svg>':C,enabled:e=>!e.some((e=>{var t,s;return!(null!==(t=e.root)&&void 0!==t&&null!==(s=t.startsWith)&&void 0!==s&&s.call(t,"/files"))}))&&e.every((e=>e.permissions!==n.aX.NONE)),async exec(e,t){const s=b([e]);return await k(e,t,s)},async execBatch(e,t){const s=b(e);return Promise.all(e.map((async e=>await k(e,t,s))))},order:-50});var _=s(85072),E=s.n(_),S=s(97825),B=s.n(S),F=s(77659),P=s.n(F),U=s(55056),N=s.n(U),I=s(10540),j=s.n(I),O=s(41113),z=s.n(O),R=s(14456),D={};D.styleTagTransform=z(),D.setAttributes=N(),D.insert=P().bind(null,"head"),D.domAPI=B(),D.insertStyleElement=j(),E()(R.A,D),R.A&&R.A.locals&&R.A.locals;var M=s(53110),V=s(43627),$=s(41261),H=s(36882),Y=s(39285);let W;var q;!function(e){e.MOVE="Move",e.COPY="Copy",e.MOVE_OR_COPY="move-or-copy"}(q||(q={}));const G=e=>!!(e.reduce(((e,t)=>Math.min(e,t.permissions)),n.aX.ALL)&n.aX.UPDATE),K=e=>(e=>e.every((e=>{var t,s;return!JSON.parse(null!==(t=null===(s=e.attributes)||void 0===s?void 0:s["share-attributes"])&&void 0!==t?t:"[]").some((e=>"permissions"===e.scope&&!1===e.enabled&&"download"===e.key))})))(e)&&!e.some((e=>e.permissions===n.aX.NONE));var J,Z=s(36117),X=s(44719);const Q="/files/".concat(null===(J=(0,v.HW)())||void 0===J?void 0:J.uid),ee=(0,g.dC)("dav"+Q),te=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ee;const t=(0,X.UU)(e),s=e=>{null==t||t.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:null!=e?e:""})};return(0,v.zo)(s),s((0,v.do)()),(0,X.Gu)().patch("fetch",((e,t)=>{const s=t.headers;return null!=s&&s.method&&(t.method=s.method,delete s.method),fetch(e,t)})),t},se=function(e){let t=0;for(let s=0;s<e.length;s++)t=(t<<5)-t+e.charCodeAt(s)|0;return t>>>0},ne=te(),ae=function(e){var t;const s=null===(t=(0,v.HW)())||void 0===t?void 0:t.uid;if(!s)throw new Error("No user id found");const a=e.props,i=(0,n.vb)(null==a?void 0:a.permissions),r=String(a["owner-id"]||s),o=(0,g.dC)("dav"+Q+e.filename),l={id:(null==a?void 0:a.fileid)<0?se(o):(null==a?void 0:a.fileid)||0,source:o,mtime:new Date(e.lastmod),mime:e.mime||"application/octet-stream",size:(null==a?void 0:a.size)||0,permissions:i,owner:r,root:Q,attributes:{...e,...a,"owner-id":r,"owner-display-name":String(a["owner-display-name"]),hasPreview:!(null==a||!a["has-preview"]),failed:(null==a?void 0:a.fileid)<0}};return delete l.attributes.props,"file"===e.type?new n.ZH(l):new n.vd(l)},ie=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";const t=new AbortController,s=(0,n.VL)();return new Z.CancelablePromise((async(n,a,i)=>{i((()=>t.abort()));try{const a=await ne.getDirectoryContents(e,{details:!0,data:s,includeSelf:!0,signal:t.signal}),i=a.data[0],r=a.data.slice(1);if(i.filename!==e)throw new Error("Root node does not match requested path");n({folder:ae(i),contents:r.map((e=>{try{return ae(e)}catch(t){return o.A.error("Invalid node detected '".concat(e.basename,"'"),{error:t}),null}})).filter(Boolean)})}catch(e){a(e)}}))};var re=s(80573);const oe=e=>G(e)?K(e)?q.MOVE_OR_COPY:q.MOVE:q.COPY,le=async function(e,t,s){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!t)return;if(t.type!==n.pt.Folder)throw new Error((0,i.Tl)("files","Destination is not a folder"));if(s===q.MOVE&&e.dirname===t.path)throw new Error((0,i.Tl)("files","This file/folder is already in that directory"));if("".concat(t.path,"/").startsWith("".concat(e.path,"/")))throw new Error((0,i.Tl)("files","You cannot move a file/folder onto itself or into a subfolder of itself"));y.Ay.set(e,"status",n.zI.LOADING);const d=(W||(W=new l.A({concurrency:3})),W);return await d.add((async()=>{const l=e=>1===e?(0,i.Tl)("files","(copy)"):(0,i.Tl)("files","(copy %n)",void 0,e);try{const o=(0,n.H4)(),d=(0,V.join)(n.lJ,e.path),m=(0,V.join)(n.lJ,t.path);if(s===q.COPY){let s=e.basename;if(!r){const t=await o.getDirectoryContents(m);s=(0,re.lJ)(e.basename,t.map((e=>e.basename)),{suffix:l,ignoreFileExtension:e.type===n.pt.Folder})}if(await o.copyFile(d,(0,V.join)(m,s)),e.dirname===t.path){const{data:e}=await o.stat((0,V.join)(m,s),{details:!0,data:(0,n.VL)()});(0,a.Ic)("files:node:created",(0,n.Al)(e))}}else{const s=await ie(t.path);if((0,$.h)([e],s.contents))try{const{selected:n,renamed:i}=await(0,$.o)(t.path,[e],s.contents);if(!n.length&&!i.length)return await o.deleteFile(d),void(0,a.Ic)("files:node:deleted",e)}catch(e){return void(0,T.Qg)((0,i.Tl)("files","Move cancelled"))}await o.moveFile(d,(0,V.join)(m,e.basename)),(0,a.Ic)("files:node:deleted",e)}}catch(e){if(e instanceof M.pe){var d,m,c;if(412===(null==e||null===(d=e.response)||void 0===d?void 0:d.status))throw new Error((0,i.Tl)("files","A file or folder with that name already exists in this folder"));if(423===(null==e||null===(m=e.response)||void 0===m?void 0:m.status))throw new Error((0,i.Tl)("files","The files is locked"));if(404===(null==e||null===(c=e.response)||void 0===c?void 0:c.status))throw new Error((0,i.Tl)("files","The file does not exist anymore"));if(e.message)throw new Error(e.message)}throw o.A.debug(e),new Error}finally{y.Ay.set(e,"status",void 0)}}))},de=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",s=arguments.length>2?arguments[2]:void 0;const n=s.map((e=>e.fileid)).filter(Boolean),a=(0,T.a1)((0,i.Tl)("files","Choose destination")).allowDirectories(!0).setFilter((e=>!n.includes(e.fileid))).setMimeTypeFilter([]).setMultiSelect(!1).startAt(t);return new Promise(((t,n)=>{a.setButtonFactory(((n,a)=>{const r=[],o=(0,V.basename)(a),l=s.map((e=>e.dirname)),d=s.map((e=>e.path));return e!==q.COPY&&e!==q.MOVE_OR_COPY||r.push({label:o?(0,i.Tl)("files","Copy to {target}",{target:o},void 0,{escape:!1,sanitize:!1}):(0,i.Tl)("files","Copy"),type:"primary",icon:H,async callback(e){t({destination:e[0],action:q.COPY})}}),l.includes(a)||d.includes(a)||e!==q.MOVE&&e!==q.MOVE_OR_COPY||r.push({label:o?(0,i.Tl)("files","Move to {target}",{target:o},void 0,{escape:!1,sanitize:!1}):(0,i.Tl)("files","Move"),type:e===q.MOVE?"primary":"secondary",icon:Y,async callback(e){t({destination:e[0],action:q.MOVE})}}),r})),a.build().pick().catch((e=>{o.A.debug(e),e instanceof T.vT?n(new Error((0,i.Tl)("files","Cancelled move or copy operation"))):n(new Error((0,i.Tl)("files","Move or copy operation failed")))}))}))},me=new n.hY({id:"move-copy",displayName(e){switch(oe(e)){case q.MOVE:return(0,i.Tl)("files","Move");case q.COPY:return(0,i.Tl)("files","Copy");case q.MOVE_OR_COPY:return(0,i.Tl)("files","Move or copy")}},iconSvgInline:()=>Y,enabled:e=>!!e.every((e=>{var t;return null===(t=e.root)||void 0===t?void 0:t.startsWith("/files/")}))&&e.length>0&&(G(e)||K(e)),async exec(e,t,s){const n=oe([e]);let a;try{a=await de(n,s,[e])}catch(e){return o.A.error(e),!1}try{return await le(e,a.destination,a.action),!0}catch(e){return!!(e instanceof Error&&e.message)&&((0,T.Qg)(e.message),null)}},async execBatch(e,t,s){const n=oe(e),a=await de(n,s,e),i=e.map((async e=>{try{return await le(e,a.destination,a.action),!0}catch(t){return o.A.error("Failed to ".concat(a.action," node"),{node:e,error:t}),!1}}));return await Promise.all(i)},order:15}),ce='<svg xmlns="http://www.w3.org/2000/svg" id="mdi-folder" viewBox="0 0 24 24"><path d="M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z" /></svg>',ue=new n.hY({id:"open-folder",displayName(e){const t=e[0].attributes.displayName||e[0].basename;return(0,i.Tl)("files","Open folder {displayName}",{displayName:t})},iconSvgInline:()=>ce,enabled(e){if(1!==e.length)return!1;const t=e[0];return!!t.isDavRessource&&t.type===n.pt.Folder&&!!(t.permissions&n.aX.READ)},exec:async(e,t)=>!(!e||e.type!==n.pt.Folder)&&(window.OCP.Files.Router.goToRoute(null,{view:t.id,fileid:e.fileid},{dir:e.path}),null),default:n.m9.HIDDEN,order:-100}),ge=new n.hY({id:"open-in-files-recent",displayName:()=>(0,i.Tl)("files","Open in Files"),iconSvgInline:()=>"",enabled:(e,t)=>"recent"===t.id,async exec(e){let t=e.dirname;return e.type===n.pt.Folder&&(t=t+"/"+e.basename),window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:e.fileid},{dir:t,openfile:"true"}),null},order:-1e3,default:n.m9.HIDDEN}),fe=new n.hY({id:"rename",displayName:()=>(0,i.Tl)("files","Rename"),iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-pencil" viewBox="0 0 24 24"><path 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" /></svg>',enabled:e=>e.length>0&&e.map((e=>e.permissions)).every((e=>!!(e&n.aX.UPDATE))),exec:async e=>((0,a.Ic)("files:node:rename",e),null),order:10});var pe=s(49981);const he=new n.hY({id:"details",displayName:()=>(0,i.Tl)("files","Open details"),iconSvgInline:()=>pe,enabled:e=>{var t,s,a;return 1===e.length&&!!e[0]&&!(null===(t=window)||void 0===t||null===(t=t.OCA)||void 0===t||null===(t=t.Files)||void 0===t||!t.Sidebar)&&null!==(s=(null===(a=e[0].root)||void 0===a?void 0:a.startsWith("/files/"))&&e[0].permissions!==n.aX.NONE)&&void 0!==s&&s},async exec(e,t,s){try{return await window.OCA.Files.Sidebar.open(e.path),window.OCP.Files.Router.goToRoute(null,{view:t.id,fileid:e.fileid},{...window.OCP.Files.Router.query,dir:s},!0),null}catch(e){return o.A.error("Error while opening sidebar",{error:e}),!1}},order:-50}),we=new n.hY({id:"view-in-folder",displayName:()=>(0,i.Tl)("files","View in folder"),iconSvgInline:()=>Y,enabled(e,t){if("files"===t.id)return!1;if(1!==e.length)return!1;const s=e[0];return!!s.isDavRessource&&s.permissions!==n.aX.NONE&&s.type===n.pt.File},exec:async e=>!(!e||e.type!==n.pt.File)&&(window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:e.fileid},{dir:e.dirname}),null),order:80});var xe=s(9518),ve=s(94219),Te=s(82182);const Ae=(0,y.pM)({name:"NewNodeDialog",components:{NcButton:xe.A,NcDialog:ve.A,NcTextField:Te.A},props:{defaultName:{type:String,default:(0,i.Tl)("files","New folder")},otherNames:{type:Array,default:()=>[]},open:{type:Boolean,default:!0},name:{type:String,default:(0,i.Tl)("files","Create new folder")},label:{type:String,default:(0,i.Tl)("files","Folder name")}},emits:{close:e=>null===e||e},data(){return{localDefaultName:this.defaultName||(0,i.Tl)("files","New folder")}},computed:{errorMessage(){return this.isUniqueName?"":(0,i.Tl)("files","A file or folder with that name already exists.")},uniqueName(){return(0,re.lJ)(this.localDefaultName,this.otherNames)},isUniqueName(){return this.localDefaultName===this.uniqueName}},watch:{defaultName(){this.localDefaultName=this.defaultName||(0,i.Tl)("files","New folder")},open(){this.$nextTick((()=>this.focusInput()))}},mounted(){this.localDefaultName=this.uniqueName,this.$nextTick((()=>this.focusInput()))},methods:{t:i.Tl,focusInput(){this.open&&this.$nextTick((()=>{var e,t;return null===(e=this.$refs.input)||void 0===e||null===(t=e.focus)||void 0===t?void 0:t.call(e)}))},onCreate(){this.$emit("close",this.localDefaultName)},onClose(e){e||this.$emit("close",null)}}}),ye=(0,s(14486).A)(Ae,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcDialog",{attrs:{name:e.name,open:e.open,"close-on-click-outside":"","out-transition":""},on:{"update:open":e.onClose},scopedSlots:e._u([{key:"actions",fn:function(){return[t("NcButton",{attrs:{type:"primary",disabled:!e.isUniqueName},on:{click:e.onCreate}},[e._v("\n\t\t\t"+e._s(e.t("files","Create"))+"\n\t\t")])]},proxy:!0}])},[e._v(" "),t("form",{on:{submit:function(t){return t.preventDefault(),e.onCreate.apply(null,arguments)}}},[t("NcTextField",{ref:"input",attrs:{error:!e.isUniqueName,"helper-text":e.errorMessage,label:e.label,value:e.localDefaultName},on:{"update:value":function(t){e.localDefaultName=t}}})],1)])}),[],!1,null,null,null).exports;function Ce(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=t.map((e=>e.basename));return new Promise((t=>{(0,T.Ss)(ye,{...s,defaultName:e,otherNames:n},(e=>{t(e)}))}))}const be={id:"newFolder",displayName:(0,i.Tl)("files","New folder"),enabled:e=>!!(e.permissions&n.aX.CREATE),iconSvgInline:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-folder-plus" viewBox="0 0 24 24"><path d="M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z" /></svg>',order:0,async handler(e,t){const s=await Ce((0,i.Tl)("files","New folder"),t);if(null!==s){var l,d,m,c,u;const{fileid:t,source:g}=await(async(e,t)=>{const s=e.source+"/"+t,n=e.encodedSource+"/"+encodeURIComponent(t),a=await(0,r.A)({method:"MKCOL",url:n,headers:{Overwrite:"F"}});return{fileid:parseInt(a.headers["oc-fileid"]),source:s}})(e,s),f=new n.vd({source:g,id:t,mtime:new Date,owner:(null===(l=(0,v.HW)())||void 0===l?void 0:l.uid)||null,permissions:n.aX.ALL,root:(null==e?void 0:e.root)||"/files/"+(null===(d=(0,v.HW)())||void 0===d?void 0:d.uid),attributes:{"mount-type":null===(m=e.attributes)||void 0===m?void 0:m["mount-type"],"owner-id":null===(c=e.attributes)||void 0===c?void 0:c["owner-id"],"owner-display-name":null===(u=e.attributes)||void 0===u?void 0:u["owner-display-name"]}});(0,T.Te)((0,i.Tl)("files",'Created new folder "{name}"',{name:(0,V.basename)(g)})),o.A.debug("Created new folder",{folder:f,source:g}),(0,a.Ic)("files:node:created",f),window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:f.fileid},{dir:e.path})}}};var ke=s(38613);let Le=(0,ke.C)("files","templates_path",!1);o.A.debug("Initial templates folder",{templatesPath:Le});const _e={id:"template-picker",displayName:(0,i.Tl)("files","Create new templates folder"),iconSvgInline:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-plus" viewBox="0 0 24 24"><path d="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" /></svg>',order:10,enabled(e){var t;return!Le&&e.owner===(null===(t=(0,v.HW)())||void 0===t?void 0:t.uid)&&!!(e.permissions&n.aX.CREATE)},async handler(e,t){const s=await Ce((0,i.Tl)("files","Templates"),t,{name:(0,i.Tl)("files","New template folder")});null!==s&&(async function(e,t){const s=(0,V.join)(e.path,t);try{o.A.debug("Initializing the templates directory",{templatePath:s});const{data:e}=await r.A.post((0,g.KT)("apps/files/api/v1/templates/path"),{templatePath:s,copySystemTemplates:!0});window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:void 0},{dir:s}),o.A.info("Created new templates folder",{...e.ocs.data}),Le=e.ocs.data.templates_path}catch(e){o.A.error("Unable to initialize the templates directory"),(0,T.Qg)((0,i.Tl)("files","Unable to initialize the templates directory"))}}(e,s),(0,n.gj)("template-picker"))}},Ee=(0,y.$V)((()=>Promise.all([s.e(4208),s.e(5929)]).then(s.bind(s,75929))));let Se=null;const Be=async e=>{if(null===Se){const t=document.createElement("div");t.id="template-picker",document.body.appendChild(t),Se=new y.Ay({render:t=>t(Ee,{ref:"picker",props:{parent:e}}),methods:{open(){this.$refs.picker.open(...arguments)}},el:t})}return Se},Fe=te(),Pe=async function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";const s=(0,n.VL)(),a=(0,n.b2)();let i;"/"===t&&(i=await Fe.stat(t,{details:!0,data:s}));const r=await Fe.getDirectoryContents(t,{details:!0,data:"/"===t?a:s,headers:{method:"/"===t?"REPORT":"PROPFIND"},includeSelf:!0}),o=(null===(e=i)||void 0===e?void 0:e.data)||r.data[0],l=r.data.filter((e=>e.filename!==t));return{folder:ae(o),contents:l.map(ae)}},Ue=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return new n.Ss({id:Ne(e.path),name:(0,V.basename)(e.path),icon:ce,order:t,params:{dir:e.path,fileid:e.fileid.toString(),view:"favorites"},parent:"favorites",columns:[],getContents:Pe})},Ne=function(e){return"favorite-".concat(se(e))};var Ie=s(19166),je=s(63757),Oe=s(96763);let ze;const Re=e=>ze=e,De=Symbol();function Me(e){return e&&"object"==typeof e&&"[object Object]"===Object.prototype.toString.call(e)&&"function"!=typeof e.toJSON}var Ve;!function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"}(Ve||(Ve={}));const $e="undefined"!=typeof window,He="undefined"!=typeof __VUE_PROD_DEVTOOLS__&&__VUE_PROD_DEVTOOLS__&&$e,Ye=(()=>"object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:"object"==typeof globalThis?globalThis:{HTMLElement:null})();function We(e,t,s){const n=new XMLHttpRequest;n.open("GET",e),n.responseType="blob",n.onload=function(){Ze(n.response,t,s)},n.onerror=function(){Oe.error("could not download file")},n.send()}function qe(e){const t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return t.status>=200&&t.status<=299}function Ge(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(t){const s=document.createEvent("MouseEvents");s.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(s)}}const Ke="object"==typeof navigator?navigator:{userAgent:""},Je=(()=>/Macintosh/.test(Ke.userAgent)&&/AppleWebKit/.test(Ke.userAgent)&&!/Safari/.test(Ke.userAgent))(),Ze=$e?"undefined"!=typeof HTMLAnchorElement&&"download"in HTMLAnchorElement.prototype&&!Je?function(e,t="download",s){const n=document.createElement("a");n.download=t,n.rel="noopener","string"==typeof e?(n.href=e,n.origin!==location.origin?qe(n.href)?We(e,t,s):(n.target="_blank",Ge(n)):Ge(n)):(n.href=URL.createObjectURL(e),setTimeout((function(){URL.revokeObjectURL(n.href)}),4e4),setTimeout((function(){Ge(n)}),0))}:"msSaveOrOpenBlob"in Ke?function(e,t="download",s){if("string"==typeof e)if(qe(e))We(e,t,s);else{const t=document.createElement("a");t.href=e,t.target="_blank",setTimeout((function(){Ge(t)}))}else navigator.msSaveOrOpenBlob(function(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e}(e,s),t)}:function(e,t,s,n){if((n=n||open("","_blank"))&&(n.document.title=n.document.body.innerText="downloading..."),"string"==typeof e)return We(e,t,s);const a="application/octet-stream"===e.type,i=/constructor/i.test(String(Ye.HTMLElement))||"safari"in Ye,r=/CriOS\/[\d]+/.test(navigator.userAgent);if((r||a&&i||Je)&&"undefined"!=typeof FileReader){const t=new FileReader;t.onloadend=function(){let e=t.result;if("string"!=typeof e)throw n=null,new Error("Wrong reader.result type");e=r?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),n?n.location.href=e:location.assign(e),n=null},t.readAsDataURL(e)}else{const t=URL.createObjectURL(e);n?n.location.assign(t):location.href=t,n=null,setTimeout((function(){URL.revokeObjectURL(t)}),4e4)}}:()=>{};function Xe(e,t){const s="🍍 "+e;"function"==typeof __VUE_DEVTOOLS_TOAST__?__VUE_DEVTOOLS_TOAST__(s,t):"error"===t?Oe.error(s):"warn"===t?Oe.warn(s):Oe.log(s)}function Qe(e){return"_a"in e&&"install"in e}function et(){if(!("clipboard"in navigator))return Xe("Your browser doesn't support the Clipboard API","error"),!0}function tt(e){return!!(e instanceof Error&&e.message.toLowerCase().includes("document is not focused"))&&(Xe('You need to activate the "Emulate a focused page" setting in the "Rendering" panel of devtools.',"warn"),!0)}let st;function nt(e,t){for(const s in t){const n=e.state.value[s];n?Object.assign(n,t[s]):e.state.value[s]=t[s]}}function at(e){return{_custom:{display:e}}}const it="🍍 Pinia (root)",rt="_root";function ot(e){return Qe(e)?{id:rt,label:it}:{id:e.$id,label:e.$id}}function lt(e){return e?Array.isArray(e)?e.reduce(((e,t)=>(e.keys.push(t.key),e.operations.push(t.type),e.oldValue[t.key]=t.oldValue,e.newValue[t.key]=t.newValue,e)),{oldValue:{},keys:[],operations:[],newValue:{}}):{operation:at(e.type),key:at(e.key),oldValue:e.oldValue,newValue:e.newValue}:{}}function dt(e){switch(e){case Ve.direct:return"mutation";case Ve.patchFunction:case Ve.patchObject:return"$patch";default:return"unknown"}}let mt=!0;const ct=[],ut="pinia:mutations",gt="pinia",{assign:ft}=Object,pt=e=>"🍍 "+e;function ht(e,t){(0,je.$q)({id:"dev.esm.pinia",label:"Pinia 🍍",logo:"https://pinia.vuejs.org/logo.svg",packageName:"pinia",homepage:"https://pinia.vuejs.org",componentStateTypes:ct,app:e},(s=>{"function"!=typeof s.now&&Xe("You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),s.addTimelineLayer({id:ut,label:"Pinia 🍍",color:15064968}),s.addInspector({id:gt,label:"Pinia 🍍",icon:"storage",treeFilterPlaceholder:"Search stores",actions:[{icon:"content_copy",action:()=>{!async function(e){if(!et())try{await navigator.clipboard.writeText(JSON.stringify(e.state.value)),Xe("Global state copied to clipboard.")}catch(e){if(tt(e))return;Xe("Failed to serialize the state. Check the console for more details.","error"),Oe.error(e)}}(t)},tooltip:"Serialize and copy the state"},{icon:"content_paste",action:async()=>{await async function(e){if(!et())try{nt(e,JSON.parse(await navigator.clipboard.readText())),Xe("Global state pasted from clipboard.")}catch(e){if(tt(e))return;Xe("Failed to deserialize the state from clipboard. Check the console for more details.","error"),Oe.error(e)}}(t),s.sendInspectorTree(gt),s.sendInspectorState(gt)},tooltip:"Replace the state with the content of your clipboard"},{icon:"save",action:()=>{!async function(e){try{Ze(new Blob([JSON.stringify(e.state.value)],{type:"text/plain;charset=utf-8"}),"pinia-state.json")}catch(e){Xe("Failed to export the state as JSON. Check the console for more details.","error"),Oe.error(e)}}(t)},tooltip:"Save the state as a JSON file"},{icon:"folder_open",action:async()=>{await async function(e){try{const t=(st||(st=document.createElement("input"),st.type="file",st.accept=".json"),function(){return new Promise(((e,t)=>{st.onchange=async()=>{const t=st.files;if(!t)return e(null);const s=t.item(0);return e(s?{text:await s.text(),file:s}:null)},st.oncancel=()=>e(null),st.onerror=t,st.click()}))}),s=await t();if(!s)return;const{text:n,file:a}=s;nt(e,JSON.parse(n)),Xe(`Global state imported from "${a.name}".`)}catch(e){Xe("Failed to import the state from JSON. Check the console for more details.","error"),Oe.error(e)}}(t),s.sendInspectorTree(gt),s.sendInspectorState(gt)},tooltip:"Import the state from a JSON file"}],nodeActions:[{icon:"restore",tooltip:'Reset the state (with "$reset")',action:e=>{const s=t._s.get(e);s?"function"!=typeof s.$reset?Xe(`Cannot reset "${e}" store because it doesn't have a "$reset" method implemented.`,"warn"):(s.$reset(),Xe(`Store "${e}" reset.`)):Xe(`Cannot reset "${e}" store because it wasn't found.`,"warn")}}]}),s.on.inspectComponent(((e,t)=>{const s=e.componentInstance&&e.componentInstance.proxy;if(s&&s._pStores){const t=e.componentInstance.proxy._pStores;Object.values(t).forEach((t=>{e.instanceData.state.push({type:pt(t.$id),key:"state",editable:!0,value:t._isOptionsAPI?{_custom:{value:(0,Ie.ux)(t.$state),actions:[{icon:"restore",tooltip:"Reset the state of this store",action:()=>t.$reset()}]}}:Object.keys(t.$state).reduce(((e,s)=>(e[s]=t.$state[s],e)),{})}),t._getters&&t._getters.length&&e.instanceData.state.push({type:pt(t.$id),key:"getters",editable:!1,value:t._getters.reduce(((e,s)=>{try{e[s]=t[s]}catch(t){e[s]=t}return e}),{})})}))}})),s.on.getInspectorTree((s=>{if(s.app===e&&s.inspectorId===gt){let e=[t];e=e.concat(Array.from(t._s.values())),s.rootNodes=(s.filter?e.filter((e=>"$id"in e?e.$id.toLowerCase().includes(s.filter.toLowerCase()):it.toLowerCase().includes(s.filter.toLowerCase()))):e).map(ot)}})),s.on.getInspectorState((s=>{if(s.app===e&&s.inspectorId===gt){const e=s.nodeId===rt?t:t._s.get(s.nodeId);if(!e)return;e&&(s.state=function(e){if(Qe(e)){const t=Array.from(e._s.keys()),s=e._s,n={state:t.map((t=>({editable:!0,key:t,value:e.state.value[t]}))),getters:t.filter((e=>s.get(e)._getters)).map((e=>{const t=s.get(e);return{editable:!1,key:e,value:t._getters.reduce(((e,s)=>(e[s]=t[s],e)),{})}}))};return n}const t={state:Object.keys(e.$state).map((t=>({editable:!0,key:t,value:e.$state[t]})))};return e._getters&&e._getters.length&&(t.getters=e._getters.map((t=>({editable:!1,key:t,value:e[t]})))),e._customProperties.size&&(t.customProperties=Array.from(e._customProperties).map((t=>({editable:!0,key:t,value:e[t]})))),t}(e))}})),s.on.editInspectorState(((s,n)=>{if(s.app===e&&s.inspectorId===gt){const e=s.nodeId===rt?t:t._s.get(s.nodeId);if(!e)return Xe(`store "${s.nodeId}" not found`,"error");const{path:n}=s;Qe(e)?n.unshift("state"):1===n.length&&e._customProperties.has(n[0])&&!(n[0]in e.$state)||n.unshift("$state"),mt=!1,s.set(e,n,s.state.value),mt=!0}})),s.on.editComponentState((e=>{if(e.type.startsWith("🍍")){const s=e.type.replace(/^🍍\s*/,""),n=t._s.get(s);if(!n)return Xe(`store "${s}" not found`,"error");const{path:a}=e;if("state"!==a[0])return Xe(`Invalid path for store "${s}":\n${a}\nOnly state can be modified.`);a[0]="$state",mt=!1,e.set(n,a,e.state.value),mt=!0}}))}))}let wt,xt=0;function vt(e,t,s){const n=t.reduce(((t,s)=>(t[s]=(0,Ie.ux)(e)[s],t)),{});for(const t in n)e[t]=function(){const a=xt,i=s?new Proxy(e,{get:(...e)=>(wt=a,Reflect.get(...e)),set:(...e)=>(wt=a,Reflect.set(...e))}):e;wt=a;const r=n[t].apply(i,arguments);return wt=void 0,r}}function Tt({app:e,store:t,options:s}){if(t.$id.startsWith("__hot:"))return;t._isOptionsAPI=!!s.state,vt(t,Object.keys(s.actions),t._isOptionsAPI);const n=t._hotUpdate;(0,Ie.ux)(t)._hotUpdate=function(e){n.apply(this,arguments),vt(t,Object.keys(e._hmrPayload.actions),!!t._isOptionsAPI)},function(e,t){ct.includes(pt(t.$id))||ct.push(pt(t.$id)),(0,je.$q)({id:"dev.esm.pinia",label:"Pinia 🍍",logo:"https://pinia.vuejs.org/logo.svg",packageName:"pinia",homepage:"https://pinia.vuejs.org",componentStateTypes:ct,app:e,settings:{logStoreChanges:{label:"Notify about new/deleted stores",type:"boolean",defaultValue:!0}}},(e=>{const s="function"==typeof e.now?e.now.bind(e):Date.now;t.$onAction((({after:n,onError:a,name:i,args:r})=>{const o=xt++;e.addTimelineEvent({layerId:ut,event:{time:s(),title:"🛫 "+i,subtitle:"start",data:{store:at(t.$id),action:at(i),args:r},groupId:o}}),n((n=>{wt=void 0,e.addTimelineEvent({layerId:ut,event:{time:s(),title:"🛬 "+i,subtitle:"end",data:{store:at(t.$id),action:at(i),args:r,result:n},groupId:o}})})),a((n=>{wt=void 0,e.addTimelineEvent({layerId:ut,event:{time:s(),logType:"error",title:"💥 "+i,subtitle:"end",data:{store:at(t.$id),action:at(i),args:r,error:n},groupId:o}})}))}),!0),t._customProperties.forEach((n=>{(0,Ie.wB)((()=>(0,Ie.R1)(t[n])),((t,a)=>{e.notifyComponentUpdate(),e.sendInspectorState(gt),mt&&e.addTimelineEvent({layerId:ut,event:{time:s(),title:"Change",subtitle:n,data:{newValue:t,oldValue:a},groupId:wt}})}),{deep:!0})})),t.$subscribe((({events:n,type:a},i)=>{if(e.notifyComponentUpdate(),e.sendInspectorState(gt),!mt)return;const r={time:s(),title:dt(a),data:ft({store:at(t.$id)},lt(n)),groupId:wt};a===Ve.patchFunction?r.subtitle="⤵️":a===Ve.patchObject?r.subtitle="🧩":n&&!Array.isArray(n)&&(r.subtitle=n.type),n&&(r.data["rawEvent(s)"]={_custom:{display:"DebuggerEvent",type:"object",tooltip:"raw DebuggerEvent[]",value:n}}),e.addTimelineEvent({layerId:ut,event:r})}),{detached:!0,flush:"sync"});const n=t._hotUpdate;t._hotUpdate=(0,Ie.IG)((a=>{n(a),e.addTimelineEvent({layerId:ut,event:{time:s(),title:"🔥 "+t.$id,subtitle:"HMR update",data:{store:at(t.$id),info:at("HMR update")}}}),e.notifyComponentUpdate(),e.sendInspectorTree(gt),e.sendInspectorState(gt)}));const{$dispose:a}=t;t.$dispose=()=>{a(),e.notifyComponentUpdate(),e.sendInspectorTree(gt),e.sendInspectorState(gt),e.getSettings().logStoreChanges&&Xe(`Disposed "${t.$id}" store 🗑`)},e.notifyComponentUpdate(),e.sendInspectorTree(gt),e.sendInspectorState(gt),e.getSettings().logStoreChanges&&Xe(`"${t.$id}" store installed 🆕`)}))}(e,t)}const At=()=>{};function yt(e,t,s,n=At){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!s&&(0,Ie.o5)()&&(0,Ie.jr)(a),a}function Ct(e,...t){e.slice().forEach((e=>{e(...t)}))}const bt=e=>e();function kt(e,t){e instanceof Map&&t instanceof Map&&t.forEach(((t,s)=>e.set(s,t))),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const s in t){if(!t.hasOwnProperty(s))continue;const n=t[s],a=e[s];Me(a)&&Me(n)&&e.hasOwnProperty(s)&&!(0,Ie.i9)(n)&&!(0,Ie.g8)(n)?e[s]=kt(a,n):e[s]=n}return e}const Lt=Symbol(),_t=new WeakMap,{assign:Et}=Object;function St(e,t,s={},n,a,i){let r;const o=Et({actions:{}},s),l={deep:!0};let d,m,c,u=[],g=[];const f=n.state.value[e];i||f||(Ie.LE?(0,Ie.hZ)(n.state.value,e,{}):n.state.value[e]={});const p=(0,Ie.KR)({});let h;function w(t){let s;d=m=!1,"function"==typeof t?(t(n.state.value[e]),s={type:Ve.patchFunction,storeId:e,events:c}):(kt(n.state.value[e],t),s={type:Ve.patchObject,payload:t,storeId:e,events:c});const a=h=Symbol();(0,Ie.dY)().then((()=>{h===a&&(d=!0)})),m=!0,Ct(u,s,n.state.value[e])}const x=i?function(){const{state:e}=s,t=e?e():{};this.$patch((e=>{Et(e,t)}))}:At;function v(t,s){return function(){Re(n);const a=Array.from(arguments),i=[],r=[];let o;Ct(g,{args:a,name:t,store:y,after:function(e){i.push(e)},onError:function(e){r.push(e)}});try{o=s.apply(this&&this.$id===e?this:y,a)}catch(e){throw Ct(r,e),e}return o instanceof Promise?o.then((e=>(Ct(i,e),e))).catch((e=>(Ct(r,e),Promise.reject(e)))):(Ct(i,o),o)}}const T=(0,Ie.IG)({actions:{},getters:{},state:[],hotState:p}),A={_p:n,$id:e,$onAction:yt.bind(null,g),$patch:w,$reset:x,$subscribe(t,s={}){const a=yt(u,t,s.detached,(()=>i())),i=r.run((()=>(0,Ie.wB)((()=>n.state.value[e]),(n=>{("sync"===s.flush?m:d)&&t({storeId:e,type:Ve.direct,events:c},n)}),Et({},l,s))));return a},$dispose:function(){r.stop(),u=[],g=[],n._s.delete(e)}};Ie.LE&&(A._r=!1);const y=(0,Ie.Kh)(He?Et({_hmrPayload:T,_customProperties:(0,Ie.IG)(new Set)},A):A);n._s.set(e,y);const C=(n._a&&n._a.runWithContext||bt)((()=>n._e.run((()=>(r=(0,Ie.uY)()).run(t)))));for(const t in C){const s=C[t];if((0,Ie.i9)(s)&&(k=s,!(0,Ie.i9)(k)||!k.effect)||(0,Ie.g8)(s))i||(!f||(b=s,Ie.LE?_t.has(b):Me(b)&&b.hasOwnProperty(Lt))||((0,Ie.i9)(s)?s.value=f[t]:kt(s,f[t])),Ie.LE?(0,Ie.hZ)(n.state.value[e],t,s):n.state.value[e][t]=s);else if("function"==typeof s){const e=v(t,s);Ie.LE?(0,Ie.hZ)(C,t,e):C[t]=e,o.actions[t]=s}}var b,k;if(Ie.LE?Object.keys(C).forEach((e=>{(0,Ie.hZ)(y,e,C[e])})):(Et(y,C),Et((0,Ie.ux)(y),C)),Object.defineProperty(y,"$state",{get:()=>n.state.value[e],set:e=>{w((t=>{Et(t,e)}))}}),He){const e={writable:!0,configurable:!0,enumerable:!1};["_p","_hmrPayload","_getters","_customProperties"].forEach((t=>{Object.defineProperty(y,t,Et({value:y[t]},e))}))}return Ie.LE&&(y._r=!0),n._p.forEach((e=>{if(He){const t=r.run((()=>e({store:y,app:n._a,pinia:n,options:o})));Object.keys(t||{}).forEach((e=>y._customProperties.add(e))),Et(y,t)}else Et(y,r.run((()=>e({store:y,app:n._a,pinia:n,options:o}))))})),f&&i&&s.hydrate&&s.hydrate(y.$state,f),d=!0,m=!0,y}const Bt=(0,ke.C)("files","config",{show_hidden:!1,crop_image_previews:!0,sort_favorites_first:!0,sort_folders_first:!0,grid_view:!1}),Ft=function(){const e=(0,Ie.uY)(!0),t=e.run((()=>(0,Ie.KR)({})));let s=[],n=[];const a=(0,Ie.IG)({install(e){Re(a),Ie.LE||(a._a=e,e.provide(De,a),e.config.globalProperties.$pinia=a,He&&ht(e,a),n.forEach((e=>s.push(e))),n=[])},use(e){return this._a||Ie.LE?s.push(e):n.push(e),this},_p:s,_a:null,_e:e,_s:new Map,state:t});return He&&"undefined"!=typeof Proxy&&a.use(Tt),a}(),Pt=(0,n.H4)(),Ut=Math.round(Date.now()/1e3-1209600);(0,n.Gg)(u),(0,n.Gg)(w),(0,n.Gg)(A),(0,n.Gg)(L),(0,n.Gg)(me),(0,n.Gg)(ue),(0,n.Gg)(ge),(0,n.Gg)(fe),(0,n.Gg)(he),(0,n.Gg)(we),(0,n.zj)(be),(0,n.zj)(_e),(0,ke.C)("files","templates",[]).forEach(((e,t)=>{(0,n.zj)({id:"template-new-".concat(e.app,"-").concat(t),displayName:e.label,iconClass:e.iconClass||"icon-file",enabled:e=>!!(e.permissions&n.aX.CREATE),order:11,async handler(t,s){const n=Be(t),a=await Ce("".concat(e.label).concat(e.extension),s,{label:(0,i.Tl)("files","Filename"),name:e.label});null!==a&&(await n).open(a,e)}})})),(()=>{const e=(0,ke.C)("files","favoriteFolders",[]),t=e.map(((e,t)=>Ue(e,t)));o.A.debug("Generating favorites view",{favoriteFolders:e});const s=(0,n.bh)();s.register(new n.Ss({id:"favorites",name:(0,i.Tl)("files","Favorites"),caption:(0,i.Tl)("files","List of favorites files and folders."),emptyTitle:(0,i.Tl)("files","No favorites yet"),emptyCaption:(0,i.Tl)("files","Files and folders you mark as favorite will show up here"),icon:C,order:5,columns:[],getContents:Pe})),t.forEach((e=>s.register(e))),(0,a.B1)("files:favorites:added",(e=>{var t;e.type===n.pt.Folder&&(null!==e.path&&null!==(t=e.root)&&void 0!==t&&t.startsWith("/files")?l(e):o.A.error("Favorite folder is not within user files root",{node:e}))})),(0,a.B1)("files:favorites:removed",(e=>{var t;e.type===n.pt.Folder&&(null!==e.path&&null!==(t=e.root)&&void 0!==t&&t.startsWith("/files")?d(e.path):o.A.error("Favorite folder is not within user files root",{node:e}))}));const r=function(){e.sort(((e,t)=>e.path.localeCompare(t.path,(0,i.Z0)(),{ignorePunctuation:!0}))),e.forEach(((e,s)=>{const n=t.find((t=>t.id===Ne(e.path)));n&&(n.order=s)}))},l=function(n){const a={path:n.path,fileid:n.fileid},i=Ue(a);e.find((e=>e.path===n.path))||(e.push(a),t.push(i),r(),s.register(i))},d=function(n){const a=Ne(n),i=e.findIndex((e=>e.path===n));-1!==i&&(e.splice(i,1),t.splice(i,1),s.remove(a),r())}})(),(0,n.bh)().register(new n.Ss({id:"files",name:(0,i.Tl)("files","All files"),caption:(0,i.Tl)("files","List of your files and folders."),icon:ce,order:0,getContents:ie})),(0,n.bh)().register(new n.Ss({id:"recent",name:(0,i.Tl)("files","Recent"),caption:(0,i.Tl)("files","List of recently modified files and folders."),emptyTitle:(0,i.Tl)("files","No recently modified files"),emptyCaption:(0,i.Tl)("files","Files and folders you recently modified will show up here."),icon:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-history" viewBox="0 0 24 24"><path d="M13.5,8H12V13L16.28,15.54L17,14.33L13.5,12.25V8M13,3A9,9 0 0,0 4,12H1L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3" /></svg>',order:2,defaultSortKey:"mtime",getContents:async function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";const s=function(){const e=function(e,t,s){let n,a;const i="function"==typeof t;function r(e,s){const r=(0,Ie.PS)();return(e=e||(r?(0,Ie.WQ)(De,null):null))&&Re(e),(e=ze)._s.has(n)||(i?St(n,t,a,e):function(e,t,s,n){const{state:a,actions:i,getters:r}=t,o=s.state.value[e];let l;l=St(e,(function(){o||(Ie.LE?(0,Ie.hZ)(s.state.value,e,a?a():{}):s.state.value[e]=a?a():{});const t=(0,Ie.QW)(s.state.value[e]);return Et(t,i,Object.keys(r||{}).reduce(((t,n)=>(t[n]=(0,Ie.IG)((0,Ie.EW)((()=>{Re(s);const t=s._s.get(e);if(!Ie.LE||t._r)return r[n].call(t,t)}))),t)),{}))}),t,s,0,!0)}(n,a,e)),e._s.get(n)}return"string"==typeof e?(n=e,a=i?s:t):(a=e,n=e.id),r.$id=n,r}("userconfig",{state:()=>({userConfig:Bt}),actions:{onUpdate(e,t){y.Ay.set(this.userConfig,e,t)},async update(e,t){await r.A.put((0,g.Jv)("/apps/files/api/v1/config/"+e),{value:t}),(0,a.Ic)("files:config:updated",{key:e,value:t})}}})(...arguments);return e._initialized||((0,a.B1)("files:config:updated",(function(t){let{key:s,value:n}=t;e.onUpdate(s,n)})),e._initialized=!0),e}(Ft),i=(await Pt.getDirectoryContents(t,{details:!0,data:(0,n.R3)(Ut),headers:{method:"SEARCH","Content-Type":"application/xml; charset=utf-8"},deep:!0})).data;return{folder:new n.vd({id:0,source:"".concat(n.PY).concat(n.lJ),root:n.lJ,owner:(null===(e=(0,v.HW)())||void 0===e?void 0:e.uid)||null,permissions:n.aX.READ}),contents:i.map((e=>(0,n.Al)(e))).filter((e=>"/"!==t||s.userConfig.show_hidden||!e.dirname.split("/").some((e=>e.startsWith(".")))))}}})),"serviceWorker"in navigator?window.addEventListener("load",(async()=>{try{const e=(0,g.Jv)("/apps/files/preview-service-worker.js",{},{noRewrite:!0}),t=await navigator.serviceWorker.register(e,{scope:"/"});o.A.debug("SW registered: ",{registration:t})}catch(e){o.A.error("SW registration failed: ",{error:e})}})):o.A.debug("Service Worker is not enabled on this browser."),(0,n.Yc)("nc:hidden",{nc:"http://nextcloud.org/ns"}),(0,n.Yc)("nc:is-mount-root",{nc:"http://nextcloud.org/ns"}),(0,n.Yc)("nc:metadata-files-live-photo",{nc:"http://nextcloud.org/ns"})},80573:(e,t,s)=>{"use strict";s.d(t,{lJ:()=>a,mF:()=>i}),s(35810),s(53334);var n=s(43627);const a=function(e,t){const s={suffix:e=>"(".concat(e,")"),ignoreFileExtension:!1,...arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}};let a=e,i=1;for(;t.includes(a);){const t=s.ignoreFileExtension?"":(0,n.extname)(e),r=(0,n.basename)(e,t);a="".concat(r," ").concat(s.suffix(i++)).concat(t)}return a},i=function(e){const t=(e.startsWith("/")?e:"/".concat(e)).split("/");let s="";return t.forEach((e=>{""!==e&&(s+="/"+encodeURIComponent(e))})),s}},14456:(e,t,s)=>{"use strict";s.d(t,{A:()=>f});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i),o=s(4417),l=s.n(o),d=new URL(s(57273),s.b),m=new URL(s(63710),s.b),c=r()(a()),u=l()(d),g=l()(m);c.push([e.id,`@charset "UTF-8";\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\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 <http://www.gnu.org/licenses/>.\n */\n.toastify.dialogs {\n  min-width: 200px;\n  background: none;\n  background-color: var(--color-main-background);\n  color: var(--color-main-text);\n  box-shadow: 0 0 6px 0 var(--color-box-shadow);\n  padding: 0 12px;\n  margin-top: 45px;\n  position: fixed;\n  z-index: 10100;\n  border-radius: var(--border-radius);\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-container {\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-button,\n.toastify.dialogs .toast-close {\n  position: static;\n  overflow: hidden;\n  box-sizing: border-box;\n  min-width: 44px;\n  height: 100%;\n  padding: 12px;\n  white-space: nowrap;\n  background-repeat: no-repeat;\n  background-position: center;\n  background-color: transparent;\n  min-height: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close,\n.toastify.dialogs .toast-close.toast-close {\n  text-indent: 0;\n  opacity: .4;\n  border: none;\n  min-height: 44px;\n  margin-left: 10px;\n  font-size: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close:before,\n.toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(${u});\n  content: " ";\n  filter: var(--background-invert-if-dark);\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n}\n.toastify.dialogs .toast-undo-button.toast-undo-button,\n.toastify.dialogs .toast-close.toast-undo-button {\n  height: calc(100% - 6px);\n  margin: 3px 3px 3px 12px;\n}\n.toastify.dialogs .toast-undo-button:hover,\n.toastify.dialogs .toast-undo-button:focus,\n.toastify.dialogs .toast-undo-button:active,\n.toastify.dialogs .toast-close:hover,\n.toastify.dialogs .toast-close:focus,\n.toastify.dialogs .toast-close:active {\n  cursor: pointer;\n  opacity: 1;\n}\n.toastify.dialogs.toastify-top {\n  right: 10px;\n}\n.toastify.dialogs.toast-with-click {\n  cursor: pointer;\n}\n.toastify.dialogs.toast-error {\n  border-left: 3px solid var(--color-error);\n}\n.toastify.dialogs.toast-info {\n  border-left: 3px solid var(--color-primary);\n}\n.toastify.dialogs.toast-warning {\n  border-left: 3px solid var(--color-warning);\n}\n.toastify.dialogs.toast-success,\n.toastify.dialogs.toast-undo {\n  border-left: 3px solid var(--color-success);\n}\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(${g});\n}\n.nc-generic-dialog .dialog__actions {\n  justify-content: space-between;\n  min-width: calc(100% - 12px);\n}\n._file-picker__file-icon_1vgv4_5 {\n  width: 32px;\n  height: 32px;\n  min-width: 32px;\n  min-height: 32px;\n  background-repeat: no-repeat;\n  background-size: contain;\n  display: flex;\n  justify-content: center;\n}\ntr.file-picker__row[data-v-6aded0d9] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-6aded0d9] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-6aded0d9] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\n  padding-inline: 2px 0;\n}\n@keyframes gradient-6aded0d9 {\n  0% {\n    background-position: 0% 50%;\n  }\n  50% {\n    background-position: 100% 50%;\n  }\n  to {\n    background-position: 0% 50%;\n  }\n}\n.loading-row .row-checkbox[data-v-6aded0d9] {\n  text-align: center !important;\n}\n.loading-row span[data-v-6aded0d9] {\n  display: inline-block;\n  height: 24px;\n  background:\n    linear-gradient(\n      to right,\n      var(--color-background-darker),\n      var(--color-text-maxcontrast),\n      var(--color-background-darker));\n  background-size: 600px 100%;\n  border-radius: var(--border-radius);\n  animation: gradient-6aded0d9 12s ease infinite;\n}\n.loading-row .row-wrapper[data-v-6aded0d9] {\n  display: inline-flex;\n  align-items: center;\n}\n.loading-row .row-checkbox span[data-v-6aded0d9] {\n  width: 24px;\n}\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\n  margin-inline-start: 6px;\n  width: 130px;\n}\n.loading-row .row-size span[data-v-6aded0d9] {\n  width: 80px;\n}\n.loading-row .row-modified span[data-v-6aded0d9] {\n  width: 90px;\n}\ntr.file-picker__row[data-v-48df4f27] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-48df4f27] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-48df4f27] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-48df4f27]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-48df4f27] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-48df4f27] {\n  padding-inline: 2px 0;\n}\n.file-picker__row--selected[data-v-48df4f27] {\n  background-color: var(--color-background-dark);\n}\n.file-picker__row[data-v-48df4f27]:hover {\n  background-color: var(--color-background-hover);\n}\n.file-picker__name-container[data-v-48df4f27] {\n  display: flex;\n  justify-content: start;\n  align-items: center;\n  height: 100%;\n}\n.file-picker__file-name[data-v-48df4f27] {\n  padding-inline-start: 6px;\n  min-width: 0;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.file-picker__file-extension[data-v-48df4f27] {\n  color: var(--color-text-maxcontrast);\n  min-width: fit-content;\n}\n.file-picker__header-preview[data-v-d3c94818] {\n  width: 22px;\n  height: 32px;\n  flex: 0 0 auto;\n}\n.file-picker__files[data-v-d3c94818] {\n  margin: 2px;\n  margin-inline-start: 12px;\n  overflow: scroll auto;\n}\n.file-picker__files table[data-v-d3c94818] {\n  width: 100%;\n  max-height: 100%;\n  table-layout: fixed;\n}\n.file-picker__files th[data-v-d3c94818] {\n  position: sticky;\n  z-index: 1;\n  top: 0;\n  background-color: var(--color-main-background);\n  padding: 2px;\n}\n.file-picker__files th .header-wrapper[data-v-d3c94818] {\n  display: flex;\n}\n.file-picker__files th.row-checkbox[data-v-d3c94818] {\n  width: 44px;\n}\n.file-picker__files th.row-name[data-v-d3c94818] {\n  width: 230px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] {\n  width: 100px;\n}\n.file-picker__files th.row-modified[data-v-d3c94818] {\n  width: 120px;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue__wrapper {\n  justify-content: start;\n  flex-direction: row-reverse;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue {\n  padding-inline: 16px 4px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] .button-vue__wrapper {\n  justify-content: end;\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper {\n  color: var(--color-text-maxcontrast);\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper .button-vue__text {\n  font-weight: 400;\n}\n.file-picker__breadcrumbs[data-v-22cbb5df] {\n  flex-grow: 0 !important;\n}\n.file-picker__side[data-v-a06474d4] {\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  gap: .5rem;\n  min-width: 200px;\n  padding: 2px;\n  margin-block-start: 7px;\n  overflow: auto;\n}\n.file-picker__side[data-v-a06474d4] .button-vue__wrapper {\n  justify-content: start;\n}\n.file-picker__filter-input[data-v-a06474d4] {\n  margin-block: 7px;\n  max-width: 260px;\n}\n@media (max-width: 736px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n  .file-picker__filter-input[data-v-a06474d4] {\n    max-width: unset;\n  }\n}\n.file-picker__navigation {\n  padding-inline: 8px 2px;\n}\n.file-picker__navigation,\n.file-picker__navigation * {\n  box-sizing: border-box;\n}\n.file-picker__navigation .v-select.select {\n  min-width: 220px;\n}\n@media (min-width: 513px) and (max-width: 736px) {\n  .file-picker__navigation {\n    gap: 11px;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__navigation {\n    flex-direction: column-reverse !important;\n  }\n}\n.file-picker__view[data-v-6ff1b36b] {\n  height: 50px;\n  display: flex;\n  justify-content: start;\n  align-items: center;\n}\n.file-picker__view h3[data-v-6ff1b36b] {\n  font-weight: 700;\n  height: fit-content;\n  margin: 0;\n}\n.file-picker__main[data-v-6ff1b36b] {\n  box-sizing: border-box;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  min-height: 0;\n  flex: 1;\n  padding-inline: 2px;\n}\n.file-picker__main *[data-v-6ff1b36b] {\n  box-sizing: border-box;\n}\n[data-v-6ff1b36b] .file-picker {\n  height: min(80vh, 800px) !important;\n}\n@media (max-width: 512px) {\n  [data-v-6ff1b36b] .file-picker {\n    height: calc(100% - 16px - var(--default-clickable-area)) !important;\n  }\n}\n[data-v-6ff1b36b] .file-picker__content {\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n}\n`,"",{version:3,sources:["webpack://./node_modules/@nextcloud/dialogs/dist/style.css"],names:[],mappings:"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,gBAAgB;EAChB,gBAAgB;EAChB,8CAA8C;EAC9C,6BAA6B;EAC7B,6CAA6C;EAC7C,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,cAAc;EACd,mCAAmC;EACnC,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,mBAAmB;AACrB;AACA;;EAEE,gBAAgB;EAChB,gBAAgB;EAChB,sBAAsB;EACtB,eAAe;EACf,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,4BAA4B;EAC5B,2BAA2B;EAC3B,6BAA6B;EAC7B,aAAa;AACf;AACA;;EAEE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;AACd;AACA;;EAEE,yDAA8Q;EAC9Q,YAAY;EACZ,wCAAwC;EACxC,qBAAqB;EACrB,WAAW;EACX,YAAY;AACd;AACA;;EAEE,wBAAwB;EACxB,wBAAwB;AAC1B;AACA;;;;;;EAME,eAAe;EACf,UAAU;AACZ;AACA;EACE,WAAW;AACb;AACA;EACE,eAAe;AACjB;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,2CAA2C;AAC7C;AACA;;EAEE,2CAA2C;AAC7C;AACA;EACE,yDAAsT;AACxT;AACA;EACE,8BAA8B;EAC9B,4BAA4B;AAC9B;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,4BAA4B;EAC5B,wBAAwB;EACxB,aAAa;EACb,uBAAuB;AACzB;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE;IACE,2BAA2B;EAC7B;EACA;IACE,6BAA6B;EAC/B;EACA;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,qBAAqB;EACrB,YAAY;EACZ;;;;;qCAKmC;EACnC,2BAA2B;EAC3B,mCAAmC;EACnC,8CAA8C;AAChD;AACA;EACE,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,WAAW;AACb;AACA;EACE,wBAAwB;EACxB,YAAY;AACd;AACA;EACE,WAAW;AACb;AACA;EACE,WAAW;AACb;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,yBAAyB;EACzB,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,oCAAoC;EACpC,sBAAsB;AACxB;AACA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;AACA;EACE,WAAW;EACX,yBAAyB;EACzB,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,UAAU;EACV,MAAM;EACN,8CAA8C;EAC9C,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,WAAW;AACb;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,2BAA2B;AAC7B;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,oBAAoB;AACtB;AACA;EACE,oCAAoC;AACtC;AACA;EACE,gBAAgB;AAClB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,oBAAoB;EACpB,UAAU;EACV,gBAAgB;EAChB,YAAY;EACZ,uBAAuB;EACvB,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;AACF;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;EACA;IACE,gBAAgB;EAClB;AACF;AACA;EACE,uBAAuB;AACzB;AACA;;EAEE,sBAAsB;AACxB;AACA;EACE,gBAAgB;AAClB;AACA;EACE;IACE,SAAS;EACX;AACF;AACA;EACE;IACE,yCAAyC;EAC3C;AACF;AACA;EACE,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,SAAS;AACX;AACA;EACE,sBAAsB;EACtB,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,aAAa;EACb,OAAO;EACP,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,mCAAmC;AACrC;AACA;EACE;IACE,oEAAoE;EACtE;AACF;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB",sourcesContent:["@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\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 <http://www.gnu.org/licenses/>.\n */\n.toastify.dialogs {\n  min-width: 200px;\n  background: none;\n  background-color: var(--color-main-background);\n  color: var(--color-main-text);\n  box-shadow: 0 0 6px 0 var(--color-box-shadow);\n  padding: 0 12px;\n  margin-top: 45px;\n  position: fixed;\n  z-index: 10100;\n  border-radius: var(--border-radius);\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-container {\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-button,\n.toastify.dialogs .toast-close {\n  position: static;\n  overflow: hidden;\n  box-sizing: border-box;\n  min-width: 44px;\n  height: 100%;\n  padding: 12px;\n  white-space: nowrap;\n  background-repeat: no-repeat;\n  background-position: center;\n  background-color: transparent;\n  min-height: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close,\n.toastify.dialogs .toast-close.toast-close {\n  text-indent: 0;\n  opacity: .4;\n  border: none;\n  min-height: 44px;\n  margin-left: 10px;\n  font-size: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close:before,\n.toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(\"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='16'%20width='16'%3e%3cpath%20d='M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z'/%3e%3c/svg%3e\");\n  content: \" \";\n  filter: var(--background-invert-if-dark);\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n}\n.toastify.dialogs .toast-undo-button.toast-undo-button,\n.toastify.dialogs .toast-close.toast-undo-button {\n  height: calc(100% - 6px);\n  margin: 3px 3px 3px 12px;\n}\n.toastify.dialogs .toast-undo-button:hover,\n.toastify.dialogs .toast-undo-button:focus,\n.toastify.dialogs .toast-undo-button:active,\n.toastify.dialogs .toast-close:hover,\n.toastify.dialogs .toast-close:focus,\n.toastify.dialogs .toast-close:active {\n  cursor: pointer;\n  opacity: 1;\n}\n.toastify.dialogs.toastify-top {\n  right: 10px;\n}\n.toastify.dialogs.toast-with-click {\n  cursor: pointer;\n}\n.toastify.dialogs.toast-error {\n  border-left: 3px solid var(--color-error);\n}\n.toastify.dialogs.toast-info {\n  border-left: 3px solid var(--color-primary);\n}\n.toastify.dialogs.toast-warning {\n  border-left: 3px solid var(--color-warning);\n}\n.toastify.dialogs.toast-success,\n.toastify.dialogs.toast-undo {\n  border-left: 3px solid var(--color-success);\n}\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(\"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='16'%20width='16'%3e%3cpath%20d='M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z'%20style='fill-opacity:1;fill:%23ffffff'/%3e%3c/svg%3e\");\n}\n.nc-generic-dialog .dialog__actions {\n  justify-content: space-between;\n  min-width: calc(100% - 12px);\n}\n._file-picker__file-icon_1vgv4_5 {\n  width: 32px;\n  height: 32px;\n  min-width: 32px;\n  min-height: 32px;\n  background-repeat: no-repeat;\n  background-size: contain;\n  display: flex;\n  justify-content: center;\n}\ntr.file-picker__row[data-v-6aded0d9] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-6aded0d9] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-6aded0d9] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\n  padding-inline: 2px 0;\n}\n@keyframes gradient-6aded0d9 {\n  0% {\n    background-position: 0% 50%;\n  }\n  50% {\n    background-position: 100% 50%;\n  }\n  to {\n    background-position: 0% 50%;\n  }\n}\n.loading-row .row-checkbox[data-v-6aded0d9] {\n  text-align: center !important;\n}\n.loading-row span[data-v-6aded0d9] {\n  display: inline-block;\n  height: 24px;\n  background:\n    linear-gradient(\n      to right,\n      var(--color-background-darker),\n      var(--color-text-maxcontrast),\n      var(--color-background-darker));\n  background-size: 600px 100%;\n  border-radius: var(--border-radius);\n  animation: gradient-6aded0d9 12s ease infinite;\n}\n.loading-row .row-wrapper[data-v-6aded0d9] {\n  display: inline-flex;\n  align-items: center;\n}\n.loading-row .row-checkbox span[data-v-6aded0d9] {\n  width: 24px;\n}\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\n  margin-inline-start: 6px;\n  width: 130px;\n}\n.loading-row .row-size span[data-v-6aded0d9] {\n  width: 80px;\n}\n.loading-row .row-modified span[data-v-6aded0d9] {\n  width: 90px;\n}\ntr.file-picker__row[data-v-48df4f27] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-48df4f27] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-48df4f27] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-48df4f27]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-48df4f27] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-48df4f27] {\n  padding-inline: 2px 0;\n}\n.file-picker__row--selected[data-v-48df4f27] {\n  background-color: var(--color-background-dark);\n}\n.file-picker__row[data-v-48df4f27]:hover {\n  background-color: var(--color-background-hover);\n}\n.file-picker__name-container[data-v-48df4f27] {\n  display: flex;\n  justify-content: start;\n  align-items: center;\n  height: 100%;\n}\n.file-picker__file-name[data-v-48df4f27] {\n  padding-inline-start: 6px;\n  min-width: 0;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.file-picker__file-extension[data-v-48df4f27] {\n  color: var(--color-text-maxcontrast);\n  min-width: fit-content;\n}\n.file-picker__header-preview[data-v-d3c94818] {\n  width: 22px;\n  height: 32px;\n  flex: 0 0 auto;\n}\n.file-picker__files[data-v-d3c94818] {\n  margin: 2px;\n  margin-inline-start: 12px;\n  overflow: scroll auto;\n}\n.file-picker__files table[data-v-d3c94818] {\n  width: 100%;\n  max-height: 100%;\n  table-layout: fixed;\n}\n.file-picker__files th[data-v-d3c94818] {\n  position: sticky;\n  z-index: 1;\n  top: 0;\n  background-color: var(--color-main-background);\n  padding: 2px;\n}\n.file-picker__files th .header-wrapper[data-v-d3c94818] {\n  display: flex;\n}\n.file-picker__files th.row-checkbox[data-v-d3c94818] {\n  width: 44px;\n}\n.file-picker__files th.row-name[data-v-d3c94818] {\n  width: 230px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] {\n  width: 100px;\n}\n.file-picker__files th.row-modified[data-v-d3c94818] {\n  width: 120px;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue__wrapper {\n  justify-content: start;\n  flex-direction: row-reverse;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue {\n  padding-inline: 16px 4px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] .button-vue__wrapper {\n  justify-content: end;\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper {\n  color: var(--color-text-maxcontrast);\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper .button-vue__text {\n  font-weight: 400;\n}\n.file-picker__breadcrumbs[data-v-22cbb5df] {\n  flex-grow: 0 !important;\n}\n.file-picker__side[data-v-a06474d4] {\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  gap: .5rem;\n  min-width: 200px;\n  padding: 2px;\n  margin-block-start: 7px;\n  overflow: auto;\n}\n.file-picker__side[data-v-a06474d4] .button-vue__wrapper {\n  justify-content: start;\n}\n.file-picker__filter-input[data-v-a06474d4] {\n  margin-block: 7px;\n  max-width: 260px;\n}\n@media (max-width: 736px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n  .file-picker__filter-input[data-v-a06474d4] {\n    max-width: unset;\n  }\n}\n.file-picker__navigation {\n  padding-inline: 8px 2px;\n}\n.file-picker__navigation,\n.file-picker__navigation * {\n  box-sizing: border-box;\n}\n.file-picker__navigation .v-select.select {\n  min-width: 220px;\n}\n@media (min-width: 513px) and (max-width: 736px) {\n  .file-picker__navigation {\n    gap: 11px;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__navigation {\n    flex-direction: column-reverse !important;\n  }\n}\n.file-picker__view[data-v-6ff1b36b] {\n  height: 50px;\n  display: flex;\n  justify-content: start;\n  align-items: center;\n}\n.file-picker__view h3[data-v-6ff1b36b] {\n  font-weight: 700;\n  height: fit-content;\n  margin: 0;\n}\n.file-picker__main[data-v-6ff1b36b] {\n  box-sizing: border-box;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  min-height: 0;\n  flex: 1;\n  padding-inline: 2px;\n}\n.file-picker__main *[data-v-6ff1b36b] {\n  box-sizing: border-box;\n}\n[data-v-6ff1b36b] .file-picker {\n  height: min(80vh, 800px) !important;\n}\n@media (max-width: 512px) {\n  [data-v-6ff1b36b] .file-picker {\n    height: calc(100% - 16px - var(--default-clickable-area)) !important;\n  }\n}\n[data-v-6ff1b36b] .file-picker__content {\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n}\n"],sourceRoot:""}]);const f=c},30521:(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([e.id,".upload-picker[data-v-eca9500a] {\n  display: inline-flex;\n  align-items: center;\n  height: 44px;\n}\n.upload-picker__progress[data-v-eca9500a] {\n  width: 200px;\n  max-width: 0;\n  transition: max-width var(--animation-quick) ease-in-out;\n  margin-top: 8px;\n}\n.upload-picker__progress p[data-v-eca9500a] {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.upload-picker--uploading .upload-picker__progress[data-v-eca9500a] {\n  max-width: 200px;\n  margin-right: 20px;\n  margin-left: 8px;\n}\n.upload-picker--paused .upload-picker__progress[data-v-eca9500a] {\n  animation: breathing-eca9500a 3s ease-out infinite normal;\n}\n@keyframes breathing-eca9500a {\n  0% {\n    opacity: .5;\n  }\n  25% {\n    opacity: 1;\n  }\n  60% {\n    opacity: .5;\n  }\n  to {\n    opacity: .5;\n  }\n}\n","",{version:3,sources:["webpack://./node_modules/@nextcloud/upload/dist/assets/index-Ussc_ol3.css"],names:[],mappings:"AAAA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,YAAY;EACZ,YAAY;EACZ,wDAAwD;EACxD,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,yDAAyD;AAC3D;AACA;EACE;IACE,WAAW;EACb;EACA;IACE,UAAU;EACZ;EACA;IACE,WAAW;EACb;EACA;IACE,WAAW;EACb;AACF",sourcesContent:[".upload-picker[data-v-eca9500a] {\n  display: inline-flex;\n  align-items: center;\n  height: 44px;\n}\n.upload-picker__progress[data-v-eca9500a] {\n  width: 200px;\n  max-width: 0;\n  transition: max-width var(--animation-quick) ease-in-out;\n  margin-top: 8px;\n}\n.upload-picker__progress p[data-v-eca9500a] {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.upload-picker--uploading .upload-picker__progress[data-v-eca9500a] {\n  max-width: 200px;\n  margin-right: 20px;\n  margin-left: 8px;\n}\n.upload-picker--paused .upload-picker__progress[data-v-eca9500a] {\n  animation: breathing-eca9500a 3s ease-out infinite normal;\n}\n@keyframes breathing-eca9500a {\n  0% {\n    opacity: .5;\n  }\n  25% {\n    opacity: 1;\n  }\n  60% {\n    opacity: .5;\n  }\n  to {\n    opacity: .5;\n  }\n}\n"],sourceRoot:""}]);const o=r},75270:e=>{function t(e,t){return null==e?t:e}e.exports=function(e){var s,n=t((e=e||{}).max,1),a=t(e.min,0),i=t(e.autostart,!0),r=t(e.ignoreSameProgress,!1),o=null,l=null,d=null,m=(s=t(e.historyTimeConstant,2.5),function(e,t,n){return e+n/(n+s)*(t-e)});function c(){u(a)}function u(e,t){if("number"!=typeof t&&(t=Date.now()),l!==t&&(!r||d!==e)){if(null===l||null===d)return d=e,void(l=t);var s=.001*(t-l),n=(e-d)/s;o=null===o?n:m(o,n,s),d=e,l=t}}return{start:c,reset:function(){o=null,l=null,d=null,i&&c()},report:u,estimate:function(e){if(null===d)return 1/0;if(d>=n)return 0;if(null===o)return 1/0;var t=(n-d)/o;return"number"==typeof e&&"number"==typeof l&&(t-=.001*(e-l)),Math.max(0,t)},rate:function(){return null===o?0:o}}}},63710:e=>{"use strict";e.exports="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20height=%2716%27%20width=%2716%27%3e%3cpath%20d=%27M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z%27%20style=%27fill-opacity:1;fill:%23ffffff%27/%3e%3c/svg%3e"},57273:e=>{"use strict";e.exports="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20height=%2716%27%20width=%2716%27%3e%3cpath%20d=%27M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z%27/%3e%3c/svg%3e"},35810:(e,t,s)=>{"use strict";s.d(t,{Al:()=>R,Gg:()=>w,H4:()=>O,PY:()=>j,Q$:()=>z,R3:()=>L,Ss:()=>lt,VL:()=>b,Yc:()=>A,ZH:()=>U,aX:()=>x,b2:()=>k,bh:()=>H,gj:()=>ct,hY:()=>h,lJ:()=>I,m1:()=>ut,m9:()=>p,pt:()=>E,v7:()=>V,vb:()=>_,vd:()=>N,zI:()=>F,zj:()=>mt});var n=s(21777),a=s(84697),i=s(43627),r=s(71089),o=s(66656),l=s(44719),d=s(36117),m=s(2568);const c=null===(u=(0,n.HW)())?(0,a.YK)().setApp("files").build():(0,a.YK)().setApp("files").setUid(u.uid).build();var u;class g{_entries=[];registerEntry(e){this.validateEntry(e),e.category=e.category??1,this._entries.push(e)}unregisterEntry(e){const t="string"==typeof e?this.getEntryIndex(e):this.getEntryIndex(e.id);-1!==t?this._entries.splice(t,1):c.warn("Entry not found, nothing removed",{entry:e,entries:this.getEntries()})}getEntries(e){return e?this._entries.filter((t=>"function"!=typeof t.enabled||t.enabled(e))):this._entries}getEntryIndex(e){return this._entries.findIndex((t=>t.id===e))}validateEntry(e){if(!e.id||!e.displayName||!e.iconSvgInline&&!e.iconClass||!e.handler)throw new Error("Invalid entry");if("string"!=typeof e.id||"string"!=typeof e.displayName)throw new Error("Invalid id or displayName property");if(e.iconClass&&"string"!=typeof e.iconClass||e.iconSvgInline&&"string"!=typeof e.iconSvgInline)throw new Error("Invalid icon provided");if(void 0!==e.enabled&&"function"!=typeof e.enabled)throw new Error("Invalid enabled property");if("function"!=typeof e.handler)throw new Error("Invalid handler property");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order property");if(-1!==this.getEntryIndex(e.id))throw new Error("Duplicate entry")}}const f=function(){return void 0===window._nc_newfilemenu&&(window._nc_newfilemenu=new g,c.debug("NewFileMenu initialized")),window._nc_newfilemenu};var p=(e=>(e.DEFAULT="default",e.HIDDEN="hidden",e))(p||{});class h{_action;constructor(e){this.validateAction(e),this._action=e}get id(){return this._action.id}get displayName(){return this._action.displayName}get title(){return this._action.title}get iconSvgInline(){return this._action.iconSvgInline}get enabled(){return this._action.enabled}get exec(){return this._action.exec}get execBatch(){return this._action.execBatch}get order(){return this._action.order}get parent(){return this._action.parent}get default(){return this._action.default}get inline(){return this._action.inline}get renderInline(){return this._action.renderInline}validateAction(e){if(!e.id||"string"!=typeof e.id)throw new Error("Invalid id");if(!e.displayName||"function"!=typeof e.displayName)throw new Error("Invalid displayName function");if("title"in e&&"function"!=typeof e.title)throw new Error("Invalid title function");if(!e.iconSvgInline||"function"!=typeof e.iconSvgInline)throw new Error("Invalid iconSvgInline function");if(!e.exec||"function"!=typeof e.exec)throw new Error("Invalid exec function");if("enabled"in e&&"function"!=typeof e.enabled)throw new Error("Invalid enabled function");if("execBatch"in e&&"function"!=typeof e.execBatch)throw new Error("Invalid execBatch function");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order");if("parent"in e&&"string"!=typeof e.parent)throw new Error("Invalid parent");if(e.default&&!Object.values(p).includes(e.default))throw new Error("Invalid default");if("inline"in e&&"function"!=typeof e.inline)throw new Error("Invalid inline function");if("renderInline"in e&&"function"!=typeof e.renderInline)throw new Error("Invalid renderInline function")}}const w=function(e){void 0===window._nc_fileactions&&(window._nc_fileactions=[],c.debug("FileActions initialized")),window._nc_fileactions.find((t=>t.id===e.id))?c.error(`FileAction ${e.id} already registered`,{action:e}):window._nc_fileactions.push(e)};var x=(e=>(e[e.NONE=0]="NONE",e[e.CREATE=4]="CREATE",e[e.READ=1]="READ",e[e.UPDATE=2]="UPDATE",e[e.DELETE=8]="DELETE",e[e.SHARE=16]="SHARE",e[e.ALL=31]="ALL",e))(x||{});const v=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:size"],T={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"},A=function(e,t={nc:"http://nextcloud.org/ns"}){void 0===window._nc_dav_properties&&(window._nc_dav_properties=[...v],window._nc_dav_namespaces={...T});const s={...window._nc_dav_namespaces,...t};return window._nc_dav_properties.find((t=>t===e))?(c.warn(`${e} already registered`,{prop:e}),!1):e.startsWith("<")||2!==e.split(":").length?(c.error(`${e} is not valid. See example: 'oc:fileid'`,{prop:e}),!1):s[e.split(":")[0]]?(window._nc_dav_properties.push(e),window._nc_dav_namespaces=s,!0):(c.error(`${e} namespace unknown`,{prop:e,namespaces:s}),!1)},y=function(){return void 0===window._nc_dav_properties&&(window._nc_dav_properties=[...v]),window._nc_dav_properties.map((e=>`<${e} />`)).join(" ")},C=function(){return void 0===window._nc_dav_namespaces&&(window._nc_dav_namespaces={...T}),Object.keys(window._nc_dav_namespaces).map((e=>`xmlns:${e}="${window._nc_dav_namespaces?.[e]}"`)).join(" ")},b=function(){return`<?xml version="1.0"?>\n\t\t<d:propfind ${C()}>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`},k=function(){return`<?xml version="1.0"?>\n\t\t<oc:filter-files ${C()}>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`},L=function(e){return`<?xml version="1.0" encoding="UTF-8"?>\n<d:searchrequest ${C()}\n\txmlns:ns="https://github.com/icewind1991/SearchDAV/ns">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${(0,n.HW)()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${e}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`},_=function(e=""){let t=x.NONE;return e?((e.includes("C")||e.includes("K"))&&(t|=x.CREATE),e.includes("G")&&(t|=x.READ),(e.includes("W")||e.includes("N")||e.includes("V"))&&(t|=x.UPDATE),e.includes("D")&&(t|=x.DELETE),e.includes("R")&&(t|=x.SHARE),t):t};var E=(e=>(e.Folder="folder",e.File="file",e))(E||{});const S=function(e,t){return null!==e.match(t)},B=(e,t)=>{if(e.id&&"number"!=typeof e.id)throw new Error("Invalid id type of value");if(!e.source)throw new Error("Missing mandatory source");try{new URL(e.source)}catch(e){throw new Error("Invalid source format, source must be a valid URL")}if(!e.source.startsWith("http"))throw new Error("Invalid source format, only http(s) is supported");if(e.mtime&&!(e.mtime instanceof Date))throw new Error("Invalid mtime type");if(e.crtime&&!(e.crtime instanceof Date))throw new Error("Invalid crtime type");if(!e.mime||"string"!=typeof e.mime||!e.mime.match(/^[-\w.]+\/[-+\w.]+$/gi))throw new Error("Missing or invalid mandatory mime");if("size"in e&&"number"!=typeof e.size&&void 0!==e.size)throw new Error("Invalid size type");if("permissions"in e&&void 0!==e.permissions&&!("number"==typeof e.permissions&&e.permissions>=x.NONE&&e.permissions<=x.ALL))throw new Error("Invalid permissions");if(e.owner&&null!==e.owner&&"string"!=typeof e.owner)throw new Error("Invalid owner type");if(e.attributes&&"object"!=typeof e.attributes)throw new Error("Invalid attributes type");if(e.root&&"string"!=typeof e.root)throw new Error("Invalid root type");if(e.root&&!e.root.startsWith("/"))throw new Error("Root must start with a leading slash");if(e.root&&!e.source.includes(e.root))throw new Error("Root must be part of the source");if(e.root&&S(e.source,t)){const s=e.source.match(t)[0];if(!e.source.includes((0,i.join)(s,e.root)))throw new Error("The root must be relative to the service. e.g /files/emma")}if(e.status&&!Object.values(F).includes(e.status))throw new Error("Status must be a valid NodeStatus")};var F=(e=>(e.NEW="new",e.FAILED="failed",e.LOADING="loading",e.LOCKED="locked",e))(F||{});class P{_data;_attributes;_knownDavService=/(remote|public)\.php\/(web)?dav/i;readonlyAttributes=Object.entries(Object.getOwnPropertyDescriptors(P.prototype)).filter((e=>"function"==typeof e[1].get&&"__proto__"!==e[0])).map((e=>e[0]));handler={set:(e,t,s)=>!this.readonlyAttributes.includes(t)&&(this.updateMtime(),Reflect.set(e,t,s)),deleteProperty:(e,t)=>!this.readonlyAttributes.includes(t)&&(this.updateMtime(),Reflect.deleteProperty(e,t)),get:(e,t,s)=>this.readonlyAttributes.includes(t)?(c.warn(`Accessing "Node.attributes.${t}" is deprecated, access it directly on the Node instance.`),Reflect.get(this,t)):Reflect.get(e,t,s)};constructor(e,t){B(e,t||this._knownDavService),this._data={...e,attributes:{}},this._attributes=new Proxy(this._data.attributes,this.handler),this.update(e.attributes??{}),this._data.mtime=e.mtime,t&&(this._knownDavService=t)}get source(){return this._data.source.replace(/\/$/i,"")}get encodedSource(){const{origin:e}=new URL(this.source);return e+(0,r.O0)(this.source.slice(e.length))}get basename(){return(0,i.basename)(this.source)}get extension(){return(0,i.extname)(this.source)}get dirname(){if(this.root){let e=this.source;this.isDavRessource&&(e=e.split(this._knownDavService).pop());const t=e.indexOf(this.root),s=this.root.replace(/\/$/,"");return(0,i.dirname)(e.slice(t+s.length)||"/")}const e=new URL(this.source);return(0,i.dirname)(e.pathname)}get mime(){return this._data.mime}get mtime(){return this._data.mtime}get crtime(){return this._data.crtime}get size(){return this._data.size}set size(e){this.updateMtime(),this._data.size=e}get attributes(){return this._attributes}get permissions(){return null!==this.owner||this.isDavRessource?void 0!==this._data.permissions?this._data.permissions:x.NONE:x.READ}set permissions(e){this.updateMtime(),this._data.permissions=e}get owner(){return this.isDavRessource?this._data.owner:null}get isDavRessource(){return S(this.source,this._knownDavService)}get root(){return this._data.root?this._data.root.replace(/^(.+)\/$/,"$1"):this.isDavRessource&&(0,i.dirname)(this.source).split(this._knownDavService).pop()||null}get path(){if(this.root){let e=this.source;this.isDavRessource&&(e=e.split(this._knownDavService).pop());const t=e.indexOf(this.root),s=this.root.replace(/\/$/,"");return e.slice(t+s.length)||"/"}return(this.dirname+"/"+this.basename).replace(/\/\//g,"/")}get fileid(){return this._data?.id}get status(){return this._data?.status}set status(e){this._data.status=e}move(e){B({...this._data,source:e},this._knownDavService),this._data.source=e,this.updateMtime()}rename(e){if(e.includes("/"))throw new Error("Invalid basename");this.move((0,i.dirname)(this.source)+"/"+e)}updateMtime(){this._data.mtime&&(this._data.mtime=new Date)}update(e){for(const[t,s]of Object.entries(e))try{void 0===s?delete this.attributes[t]:this.attributes[t]=s}catch(e){if(e instanceof TypeError)continue;throw e}}}class U extends P{get type(){return E.File}}class N extends P{constructor(e){super({...e,mime:"httpd/unix-directory"})}get type(){return E.Folder}get extension(){return null}get mime(){return"httpd/unix-directory"}}const I=`/files/${(0,n.HW)()?.uid}`,j=(0,o.dC)("dav"),O=function(e=j,t={}){const s=(0,l.UU)(e,{headers:t});function a(e){s.setHeaders({...t,"X-Requested-With":"XMLHttpRequest",requesttoken:e??""})}return(0,n.zo)(a),a((0,n.do)()),(0,l.Gu)().patch("fetch",((e,t)=>{const s=t.headers;return s?.method&&(t.method=s.method,delete s.method),fetch(e,t)})),s},z=(e,t="/",s=I)=>{const n=new AbortController;return new d.CancelablePromise((async(a,i,r)=>{r((()=>n.abort()));try{a((await e.getDirectoryContents(`${s}${t}`,{signal:n.signal,details:!0,data:k(),headers:{method:"REPORT"},includeSelf:!0})).data.filter((e=>e.filename!==t)).map((e=>R(e,s))))}catch(e){i(e)}}))},R=function(e,t=I,s=j){let a=(0,n.HW)()?.uid;const i=document.querySelector("input#isPublic")?.value;if(i)a=a??document.querySelector("input#sharingUserId")?.value,a=a??"anonymous";else if(!a)throw new Error("No user id found");const r=e.props,o=_(r?.permissions),l=String(r?.["owner-id"]||a),d={id:r?.fileid||0,source:`${s}${e.filename}`,mtime:new Date(Date.parse(e.lastmod)),mime:e.mime||"application/octet-stream",size:r?.size||Number.parseInt(r.getcontentlength||"0"),permissions:o,owner:l,root:t,attributes:{...e,...r,hasPreview:r?.["has-preview"]}};return delete d.attributes?.props,"file"===e.type?new U(d):new N(d)};window._oc_config,window._oc_config?.blacklist_files_regex&&new RegExp(window._oc_config.blacklist_files_regex);const D=["B","KB","MB","GB","TB","PB"],M=["B","KiB","MiB","GiB","TiB","PiB"];function V(e,t=!1,s=!1,n=!1){s=s&&!n,"string"==typeof e&&(e=Number(e));let a=e>0?Math.floor(Math.log(e)/Math.log(n?1e3:1024)):0;a=Math.min((s?M.length:D.length)-1,a);const i=s?M[a]:D[a];let r=(e/Math.pow(n?1e3:1024,a)).toFixed(1);return!0===t&&0===a?("0.0"!==r?"< 1 ":"0 ")+(s?M[1]:D[1]):(r=a<2?parseFloat(r).toFixed(0):parseFloat(r).toLocaleString((0,m.lO)()),r+" "+i)}class ${_views=[];_currentView=null;register(e){if(this._views.find((t=>t.id===e.id)))throw new Error(`View id ${e.id} is already registered`);this._views.push(e)}remove(e){const t=this._views.findIndex((t=>t.id===e));-1!==t&&this._views.splice(t,1)}get views(){return this._views}setActive(e){this._currentView=e}get active(){return this._currentView}}const H=function(){return void 0===window._nc_navigation&&(window._nc_navigation=new $,c.debug("Navigation service initialized")),window._nc_navigation};class Y{_column;constructor(e){W(e),this._column=e}get id(){return this._column.id}get title(){return this._column.title}get render(){return this._column.render}get sort(){return this._column.sort}get summary(){return this._column.summary}}const W=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("A column id is required");if(!e.title||"string"!=typeof e.title)throw new Error("A column title is required");if(!e.render||"function"!=typeof e.render)throw new Error("A render function is required");if(e.sort&&"function"!=typeof e.sort)throw new Error("Column sortFunction must be a function");if(e.summary&&"function"!=typeof e.summary)throw new Error("Column summary must be a function");return!0};var q={},G={};!function(e){const t=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",s="["+t+"]["+t+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",n=new RegExp("^"+s+"$");e.isExist=function(e){return void 0!==e},e.isEmptyObject=function(e){return 0===Object.keys(e).length},e.merge=function(e,t,s){if(t){const n=Object.keys(t),a=n.length;for(let i=0;i<a;i++)e[n[i]]="strict"===s?[t[n[i]]]:t[n[i]]}},e.getValue=function(t){return e.isExist(t)?t:""},e.isName=function(e){return!(null==n.exec(e))},e.getAllMatches=function(e,t){const s=[];let n=t.exec(e);for(;n;){const a=[];a.startIndex=t.lastIndex-n[0].length;const i=n.length;for(let e=0;e<i;e++)a.push(n[e]);s.push(a),n=t.exec(e)}return s},e.nameRegexp=s}(G);const K=G,J={allowBooleanAttributes:!1,unpairedTags:[]};function Z(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function X(e,t){const s=t;for(;t<e.length;t++)if("?"!=e[t]&&" "!=e[t]);else{const n=e.substr(s,t-s);if(t>5&&"xml"===n)return re("InvalidXml","XML declaration allowed only at the start of the document.",le(e,t));if("?"==e[t]&&">"==e[t+1]){t++;break}}return t}function Q(e,t){if(e.length>t+5&&"-"===e[t+1]&&"-"===e[t+2]){for(t+=3;t<e.length;t++)if("-"===e[t]&&"-"===e[t+1]&&">"===e[t+2]){t+=2;break}}else if(e.length>t+8&&"D"===e[t+1]&&"O"===e[t+2]&&"C"===e[t+3]&&"T"===e[t+4]&&"Y"===e[t+5]&&"P"===e[t+6]&&"E"===e[t+7]){let s=1;for(t+=8;t<e.length;t++)if("<"===e[t])s++;else if(">"===e[t]&&(s--,0===s))break}else if(e.length>t+9&&"["===e[t+1]&&"C"===e[t+2]&&"D"===e[t+3]&&"A"===e[t+4]&&"T"===e[t+5]&&"A"===e[t+6]&&"["===e[t+7])for(t+=8;t<e.length;t++)if("]"===e[t]&&"]"===e[t+1]&&">"===e[t+2]){t+=2;break}return t}q.validate=function(e,t){t=Object.assign({},J,t);const s=[];let n=!1,a=!1;"\ufeff"===e[0]&&(e=e.substr(1));for(let r=0;r<e.length;r++)if("<"===e[r]&&"?"===e[r+1]){if(r+=2,r=X(e,r),r.err)return r}else{if("<"!==e[r]){if(Z(e[r]))continue;return re("InvalidChar","char '"+e[r]+"' is not expected.",le(e,r))}{let o=r;if(r++,"!"===e[r]){r=Q(e,r);continue}{let l=!1;"/"===e[r]&&(l=!0,r++);let d="";for(;r<e.length&&">"!==e[r]&&" "!==e[r]&&"\t"!==e[r]&&"\n"!==e[r]&&"\r"!==e[r];r++)d+=e[r];if(d=d.trim(),"/"===d[d.length-1]&&(d=d.substring(0,d.length-1),r--),i=d,!K.isName(i)){let t;return t=0===d.trim().length?"Invalid space after '<'.":"Tag '"+d+"' is an invalid name.",re("InvalidTag",t,le(e,r))}const m=se(e,r);if(!1===m)return re("InvalidAttr","Attributes for '"+d+"' have open quote.",le(e,r));let c=m.value;if(r=m.index,"/"===c[c.length-1]){const s=r-c.length;c=c.substring(0,c.length-1);const a=ae(c,t);if(!0!==a)return re(a.err.code,a.err.msg,le(e,s+a.err.line));n=!0}else if(l){if(!m.tagClosed)return re("InvalidTag","Closing tag '"+d+"' doesn't have proper closing.",le(e,r));if(c.trim().length>0)return re("InvalidTag","Closing tag '"+d+"' can't have attributes or invalid starting.",le(e,o));if(0===s.length)return re("InvalidTag","Closing tag '"+d+"' has not been opened.",le(e,o));{const t=s.pop();if(d!==t.tagName){let s=le(e,t.tagStartPos);return re("InvalidTag","Expected closing tag '"+t.tagName+"' (opened in line "+s.line+", col "+s.col+") instead of closing tag '"+d+"'.",le(e,o))}0==s.length&&(a=!0)}}else{const i=ae(c,t);if(!0!==i)return re(i.err.code,i.err.msg,le(e,r-c.length+i.err.line));if(!0===a)return re("InvalidXml","Multiple possible root nodes found.",le(e,r));-1!==t.unpairedTags.indexOf(d)||s.push({tagName:d,tagStartPos:o}),n=!0}for(r++;r<e.length;r++)if("<"===e[r]){if("!"===e[r+1]){r++,r=Q(e,r);continue}if("?"!==e[r+1])break;if(r=X(e,++r),r.err)return r}else if("&"===e[r]){const t=ie(e,r);if(-1==t)return re("InvalidChar","char '&' is not expected.",le(e,r));r=t}else if(!0===a&&!Z(e[r]))return re("InvalidXml","Extra text at the end",le(e,r));"<"===e[r]&&r--}}}var i;return n?1==s.length?re("InvalidTag","Unclosed tag '"+s[0].tagName+"'.",le(e,s[0].tagStartPos)):!(s.length>0)||re("InvalidXml","Invalid '"+JSON.stringify(s.map((e=>e.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):re("InvalidXml","Start tag expected.",1)};const ee='"',te="'";function se(e,t){let s="",n="",a=!1;for(;t<e.length;t++){if(e[t]===ee||e[t]===te)""===n?n=e[t]:n!==e[t]||(n="");else if(">"===e[t]&&""===n){a=!0;break}s+=e[t]}return""===n&&{value:s,index:t,tagClosed:a}}const ne=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function ae(e,t){const s=K.getAllMatches(e,ne),n={};for(let e=0;e<s.length;e++){if(0===s[e][1].length)return re("InvalidAttr","Attribute '"+s[e][2]+"' has no space in starting.",de(s[e]));if(void 0!==s[e][3]&&void 0===s[e][4])return re("InvalidAttr","Attribute '"+s[e][2]+"' is without value.",de(s[e]));if(void 0===s[e][3]&&!t.allowBooleanAttributes)return re("InvalidAttr","boolean attribute '"+s[e][2]+"' is not allowed.",de(s[e]));const a=s[e][2];if(!oe(a))return re("InvalidAttr","Attribute '"+a+"' is an invalid name.",de(s[e]));if(n.hasOwnProperty(a))return re("InvalidAttr","Attribute '"+a+"' is repeated.",de(s[e]));n[a]=1}return!0}function ie(e,t){if(";"===e[++t])return-1;if("#"===e[t])return function(e,t){let s=/\d/;for("x"===e[t]&&(t++,s=/[\da-fA-F]/);t<e.length;t++){if(";"===e[t])return t;if(!e[t].match(s))break}return-1}(e,++t);let s=0;for(;t<e.length;t++,s++)if(!(e[t].match(/\w/)&&s<20)){if(";"===e[t])break;return-1}return t}function re(e,t,s){return{err:{code:e,msg:t,line:s.line||s,col:s.col}}}function oe(e){return K.isName(e)}function le(e,t){const s=e.substring(0,t).split(/\r?\n/);return{line:s.length,col:s[s.length-1].length+1}}function de(e){return e.startIndex+e[1].length}var me={};const ce={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(e,t,s){return e}};me.buildOptions=function(e){return Object.assign({},ce,e)},me.defaultOptions=ce;const ue=G;function ge(e,t){let s="";for(;t<e.length&&"'"!==e[t]&&'"'!==e[t];t++)s+=e[t];if(s=s.trim(),-1!==s.indexOf(" "))throw new Error("External entites are not supported");const n=e[t++];let a="";for(;t<e.length&&e[t]!==n;t++)a+=e[t];return[s,a,t]}function fe(e,t){return"!"===e[t+1]&&"-"===e[t+2]&&"-"===e[t+3]}function pe(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"N"===e[t+3]&&"T"===e[t+4]&&"I"===e[t+5]&&"T"===e[t+6]&&"Y"===e[t+7]}function he(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"L"===e[t+3]&&"E"===e[t+4]&&"M"===e[t+5]&&"E"===e[t+6]&&"N"===e[t+7]&&"T"===e[t+8]}function we(e,t){return"!"===e[t+1]&&"A"===e[t+2]&&"T"===e[t+3]&&"T"===e[t+4]&&"L"===e[t+5]&&"I"===e[t+6]&&"S"===e[t+7]&&"T"===e[t+8]}function xe(e,t){return"!"===e[t+1]&&"N"===e[t+2]&&"O"===e[t+3]&&"T"===e[t+4]&&"A"===e[t+5]&&"T"===e[t+6]&&"I"===e[t+7]&&"O"===e[t+8]&&"N"===e[t+9]}function ve(e){if(ue.isName(e))return e;throw new Error(`Invalid entity name ${e}`)}const Te=/^[-+]?0x[a-fA-F0-9]+$/,Ae=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const ye={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0},Ce=G,be=class{constructor(e){this.tagname=e,this.child=[],this[":@"]={}}add(e,t){"__proto__"===e&&(e="#__proto__"),this.child.push({[e]:t})}addChild(e){"__proto__"===e.tagname&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,":@":e[":@"]}):this.child.push({[e.tagname]:e.child})}},ke=function(e,t){const s={};if("O"!==e[t+3]||"C"!==e[t+4]||"T"!==e[t+5]||"Y"!==e[t+6]||"P"!==e[t+7]||"E"!==e[t+8])throw new Error("Invalid Tag instead of DOCTYPE");{t+=9;let n=1,a=!1,i=!1,r="";for(;t<e.length;t++)if("<"!==e[t]||i)if(">"===e[t]){if(i?"-"===e[t-1]&&"-"===e[t-2]&&(i=!1,n--):n--,0===n)break}else"["===e[t]?a=!0:r+=e[t];else{if(a&&pe(e,t))t+=7,[entityName,val,t]=ge(e,t+1),-1===val.indexOf("&")&&(s[ve(entityName)]={regx:RegExp(`&${entityName};`,"g"),val});else if(a&&he(e,t))t+=8;else if(a&&we(e,t))t+=8;else if(a&&xe(e,t))t+=9;else{if(!fe)throw new Error("Invalid DOCTYPE");i=!0}n++,r=""}if(0!==n)throw new Error("Unclosed DOCTYPE")}return{entities:s,i:t}},Le=function(e,t={}){if(t=Object.assign({},ye,t),!e||"string"!=typeof e)return e;let s=e.trim();if(void 0!==t.skipLike&&t.skipLike.test(s))return e;if(t.hex&&Te.test(s))return Number.parseInt(s,16);{const a=Ae.exec(s);if(a){const i=a[1],r=a[2];let o=(n=a[3])&&-1!==n.indexOf(".")?("."===(n=n.replace(/0+$/,""))?n="0":"."===n[0]?n="0"+n:"."===n[n.length-1]&&(n=n.substr(0,n.length-1)),n):n;const l=a[4]||a[6];if(!t.leadingZeros&&r.length>0&&i&&"."!==s[2])return e;if(!t.leadingZeros&&r.length>0&&!i&&"."!==s[1])return e;{const n=Number(s),a=""+n;return-1!==a.search(/[eE]/)||l?t.eNotation?n:e:-1!==s.indexOf(".")?"0"===a&&""===o||a===o||i&&a==="-"+o?n:e:r?o===a||i+o===a?n:e:s===a||s===i+a?n:e}}return e}var n};function _e(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];this.lastEntities[n]={regex:new RegExp("&"+n+";","g"),val:e[n]}}}function Ee(e,t,s,n,a,i,r){if(void 0!==e&&(this.options.trimValues&&!n&&(e=e.trim()),e.length>0)){r||(e=this.replaceEntitiesValue(e));const n=this.options.tagValueProcessor(t,e,s,a,i);return null==n?e:typeof n!=typeof e||n!==e?n:this.options.trimValues||e.trim()===e?De(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function Se(e){if(this.options.removeNSPrefix){const t=e.split(":"),s="/"===e.charAt(0)?"/":"";if("xmlns"===t[0])return"";2===t.length&&(e=s+t[1])}return e}const Be=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function Fe(e,t,s){if(!this.options.ignoreAttributes&&"string"==typeof e){const s=Ce.getAllMatches(e,Be),n=s.length,a={};for(let e=0;e<n;e++){const n=this.resolveNameSpace(s[e][1]);let i=s[e][4],r=this.options.attributeNamePrefix+n;if(n.length)if(this.options.transformAttributeName&&(r=this.options.transformAttributeName(r)),"__proto__"===r&&(r="#__proto__"),void 0!==i){this.options.trimValues&&(i=i.trim()),i=this.replaceEntitiesValue(i);const e=this.options.attributeValueProcessor(n,i,t);a[r]=null==e?i:typeof e!=typeof i||e!==i?e:De(i,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(a[r]=!0)}if(!Object.keys(a).length)return;if(this.options.attributesGroupName){const e={};return e[this.options.attributesGroupName]=a,e}return a}}const Pe=function(e){e=e.replace(/\r\n?/g,"\n");const t=new be("!xml");let s=t,n="",a="";for(let i=0;i<e.length;i++)if("<"===e[i])if("/"===e[i+1]){const t=Oe(e,">",i,"Closing Tag is not closed.");let r=e.substring(i+2,t).trim();if(this.options.removeNSPrefix){const e=r.indexOf(":");-1!==e&&(r=r.substr(e+1))}this.options.transformTagName&&(r=this.options.transformTagName(r)),s&&(n=this.saveTextToParentTag(n,s,a));const o=a.substring(a.lastIndexOf(".")+1);if(r&&-1!==this.options.unpairedTags.indexOf(r))throw new Error(`Unpaired tag can not be used as closing tag: </${r}>`);let l=0;o&&-1!==this.options.unpairedTags.indexOf(o)?(l=a.lastIndexOf(".",a.lastIndexOf(".")-1),this.tagsNodeStack.pop()):l=a.lastIndexOf("."),a=a.substring(0,l),s=this.tagsNodeStack.pop(),n="",i=t}else if("?"===e[i+1]){let t=ze(e,i,!1,"?>");if(!t)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,s,a),this.options.ignoreDeclaration&&"?xml"===t.tagName||this.options.ignorePiTags);else{const e=new be(t.tagName);e.add(this.options.textNodeName,""),t.tagName!==t.tagExp&&t.attrExpPresent&&(e[":@"]=this.buildAttributesMap(t.tagExp,a,t.tagName)),this.addChild(s,e,a)}i=t.closeIndex+1}else if("!--"===e.substr(i+1,3)){const t=Oe(e,"--\x3e",i+4,"Comment is not closed.");if(this.options.commentPropName){const r=e.substring(i+4,t-2);n=this.saveTextToParentTag(n,s,a),s.add(this.options.commentPropName,[{[this.options.textNodeName]:r}])}i=t}else if("!D"===e.substr(i+1,2)){const t=ke(e,i);this.docTypeEntities=t.entities,i=t.i}else if("!["===e.substr(i+1,2)){const t=Oe(e,"]]>",i,"CDATA is not closed.")-2,r=e.substring(i+9,t);n=this.saveTextToParentTag(n,s,a);let o=this.parseTextData(r,s.tagname,a,!0,!1,!0,!0);null==o&&(o=""),this.options.cdataPropName?s.add(this.options.cdataPropName,[{[this.options.textNodeName]:r}]):s.add(this.options.textNodeName,o),i=t+2}else{let r=ze(e,i,this.options.removeNSPrefix),o=r.tagName;const l=r.rawTagName;let d=r.tagExp,m=r.attrExpPresent,c=r.closeIndex;this.options.transformTagName&&(o=this.options.transformTagName(o)),s&&n&&"!xml"!==s.tagname&&(n=this.saveTextToParentTag(n,s,a,!1));const u=s;if(u&&-1!==this.options.unpairedTags.indexOf(u.tagname)&&(s=this.tagsNodeStack.pop(),a=a.substring(0,a.lastIndexOf("."))),o!==t.tagname&&(a+=a?"."+o:o),this.isItStopNode(this.options.stopNodes,a,o)){let t="";if(d.length>0&&d.lastIndexOf("/")===d.length-1)"/"===o[o.length-1]?(o=o.substr(0,o.length-1),a=a.substr(0,a.length-1),d=o):d=d.substr(0,d.length-1),i=r.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(o))i=r.closeIndex;else{const s=this.readStopNodeData(e,l,c+1);if(!s)throw new Error(`Unexpected end of ${l}`);i=s.i,t=s.tagContent}const n=new be(o);o!==d&&m&&(n[":@"]=this.buildAttributesMap(d,a,o)),t&&(t=this.parseTextData(t,o,a,!0,m,!0,!0)),a=a.substr(0,a.lastIndexOf(".")),n.add(this.options.textNodeName,t),this.addChild(s,n,a)}else{if(d.length>0&&d.lastIndexOf("/")===d.length-1){"/"===o[o.length-1]?(o=o.substr(0,o.length-1),a=a.substr(0,a.length-1),d=o):d=d.substr(0,d.length-1),this.options.transformTagName&&(o=this.options.transformTagName(o));const e=new be(o);o!==d&&m&&(e[":@"]=this.buildAttributesMap(d,a,o)),this.addChild(s,e,a),a=a.substr(0,a.lastIndexOf("."))}else{const e=new be(o);this.tagsNodeStack.push(s),o!==d&&m&&(e[":@"]=this.buildAttributesMap(d,a,o)),this.addChild(s,e,a),s=e}n="",i=c}}else n+=e[i];return t.child};function Ue(e,t,s){const n=this.options.updateTag(t.tagname,s,t[":@"]);!1===n||("string"==typeof n?(t.tagname=n,e.addChild(t)):e.addChild(t))}const Ne=function(e){if(this.options.processEntities){for(let t in this.docTypeEntities){const s=this.docTypeEntities[t];e=e.replace(s.regx,s.val)}for(let t in this.lastEntities){const s=this.lastEntities[t];e=e.replace(s.regex,s.val)}if(this.options.htmlEntities)for(let t in this.htmlEntities){const s=this.htmlEntities[t];e=e.replace(s.regex,s.val)}e=e.replace(this.ampEntity.regex,this.ampEntity.val)}return e};function Ie(e,t,s,n){return e&&(void 0===n&&(n=0===Object.keys(t.child).length),void 0!==(e=this.parseTextData(e,t.tagname,s,!1,!!t[":@"]&&0!==Object.keys(t[":@"]).length,n))&&""!==e&&t.add(this.options.textNodeName,e),e=""),e}function je(e,t,s){const n="*."+s;for(const s in e){const a=e[s];if(n===a||t===a)return!0}return!1}function Oe(e,t,s,n){const a=e.indexOf(t,s);if(-1===a)throw new Error(n);return a+t.length-1}function ze(e,t,s,n=">"){const a=function(e,t,s=">"){let n,a="";for(let i=t;i<e.length;i++){let t=e[i];if(n)t===n&&(n="");else if('"'===t||"'"===t)n=t;else if(t===s[0]){if(!s[1])return{data:a,index:i};if(e[i+1]===s[1])return{data:a,index:i}}else"\t"===t&&(t=" ");a+=t}}(e,t+1,n);if(!a)return;let i=a.data;const r=a.index,o=i.search(/\s/);let l=i,d=!0;-1!==o&&(l=i.substring(0,o),i=i.substring(o+1).trimStart());const m=l;if(s){const e=l.indexOf(":");-1!==e&&(l=l.substr(e+1),d=l!==a.data.substr(e+1))}return{tagName:l,tagExp:i,closeIndex:r,attrExpPresent:d,rawTagName:m}}function Re(e,t,s){const n=s;let a=1;for(;s<e.length;s++)if("<"===e[s])if("/"===e[s+1]){const i=Oe(e,">",s,`${t} is not closed`);if(e.substring(s+2,i).trim()===t&&(a--,0===a))return{tagContent:e.substring(n,s),i};s=i}else if("?"===e[s+1])s=Oe(e,"?>",s+1,"StopNode is not closed.");else if("!--"===e.substr(s+1,3))s=Oe(e,"--\x3e",s+3,"StopNode is not closed.");else if("!["===e.substr(s+1,2))s=Oe(e,"]]>",s,"StopNode is not closed.")-2;else{const n=ze(e,s,">");n&&((n&&n.tagName)===t&&"/"!==n.tagExp[n.tagExp.length-1]&&a++,s=n.closeIndex)}}function De(e,t,s){if(t&&"string"==typeof e){const t=e.trim();return"true"===t||"false"!==t&&Le(e,s)}return Ce.isExist(e)?e:""}var Me={};function Ve(e,t,s){let n;const a={};for(let i=0;i<e.length;i++){const r=e[i],o=$e(r);let l="";if(l=void 0===s?o:s+"."+o,o===t.textNodeName)void 0===n?n=r[o]:n+=""+r[o];else{if(void 0===o)continue;if(r[o]){let e=Ve(r[o],t,l);const s=Ye(e,t);r[":@"]?He(e,r[":@"],l,t):1!==Object.keys(e).length||void 0===e[t.textNodeName]||t.alwaysCreateTextNode?0===Object.keys(e).length&&(t.alwaysCreateTextNode?e[t.textNodeName]="":e=""):e=e[t.textNodeName],void 0!==a[o]&&a.hasOwnProperty(o)?(Array.isArray(a[o])||(a[o]=[a[o]]),a[o].push(e)):t.isArray(o,l,s)?a[o]=[e]:a[o]=e}}}return"string"==typeof n?n.length>0&&(a[t.textNodeName]=n):void 0!==n&&(a[t.textNodeName]=n),a}function $e(e){const t=Object.keys(e);for(let e=0;e<t.length;e++){const s=t[e];if(":@"!==s)return s}}function He(e,t,s,n){if(t){const a=Object.keys(t),i=a.length;for(let r=0;r<i;r++){const i=a[r];n.isArray(i,s+"."+i,!0,!0)?e[i]=[t[i]]:e[i]=t[i]}}}function Ye(e,t){const{textNodeName:s}=t,n=Object.keys(e).length;return 0===n||!(1!==n||!e[s]&&"boolean"!=typeof e[s]&&0!==e[s])}Me.prettify=function(e,t){return Ve(e,t)};const{buildOptions:We}=me,qe=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(e,t)=>String.fromCharCode(Number.parseInt(t,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(e,t)=>String.fromCharCode(Number.parseInt(t,16))}},this.addExternalEntities=_e,this.parseXml=Pe,this.parseTextData=Ee,this.resolveNameSpace=Se,this.buildAttributesMap=Fe,this.isItStopNode=je,this.replaceEntitiesValue=Ne,this.readStopNodeData=Re,this.saveTextToParentTag=Ie,this.addChild=Ue}},{prettify:Ge}=Me,Ke=q;function Je(e,t,s,n){let a="",i=!1;for(let r=0;r<e.length;r++){const o=e[r],l=Ze(o);if(void 0===l)continue;let d="";if(d=0===s.length?l:`${s}.${l}`,l===t.textNodeName){let e=o[l];Qe(d,t)||(e=t.tagValueProcessor(l,e),e=et(e,t)),i&&(a+=n),a+=e,i=!1;continue}if(l===t.cdataPropName){i&&(a+=n),a+=`<![CDATA[${o[l][0][t.textNodeName]}]]>`,i=!1;continue}if(l===t.commentPropName){a+=n+`\x3c!--${o[l][0][t.textNodeName]}--\x3e`,i=!0;continue}if("?"===l[0]){const e=Xe(o[":@"],t),s="?xml"===l?"":n;let r=o[l][0][t.textNodeName];r=0!==r.length?" "+r:"",a+=s+`<${l}${r}${e}?>`,i=!0;continue}let m=n;""!==m&&(m+=t.indentBy);const c=n+`<${l}${Xe(o[":@"],t)}`,u=Je(o[l],t,d,m);-1!==t.unpairedTags.indexOf(l)?t.suppressUnpairedNode?a+=c+">":a+=c+"/>":u&&0!==u.length||!t.suppressEmptyNode?u&&u.endsWith(">")?a+=c+`>${u}${n}</${l}>`:(a+=c+">",u&&""!==n&&(u.includes("/>")||u.includes("</"))?a+=n+t.indentBy+u+n:a+=u,a+=`</${l}>`):a+=c+"/>",i=!0}return a}function Ze(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];if(e.hasOwnProperty(n)&&":@"!==n)return n}}function Xe(e,t){let s="";if(e&&!t.ignoreAttributes)for(let n in e){if(!e.hasOwnProperty(n))continue;let a=t.attributeValueProcessor(n,e[n]);a=et(a,t),!0===a&&t.suppressBooleanAttributes?s+=` ${n.substr(t.attributeNamePrefix.length)}`:s+=` ${n.substr(t.attributeNamePrefix.length)}="${a}"`}return s}function Qe(e,t){let s=(e=e.substr(0,e.length-t.textNodeName.length-1)).substr(e.lastIndexOf(".")+1);for(let n in t.stopNodes)if(t.stopNodes[n]===e||t.stopNodes[n]==="*."+s)return!0;return!1}function et(e,t){if(e&&e.length>0&&t.processEntities)for(let s=0;s<t.entities.length;s++){const n=t.entities[s];e=e.replace(n.regex,n.val)}return e}const tt=function(e,t){let s="";return t.format&&t.indentBy.length>0&&(s="\n"),Je(e,t,"",s)},st={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:"  ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function nt(e){this.options=Object.assign({},st,e),this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=rt),this.processTextOrObjNode=at,this.options.format?(this.indentate=it,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function at(e,t,s){const n=this.j2x(e,s+1);return void 0!==e[this.options.textNodeName]&&1===Object.keys(e).length?this.buildTextValNode(e[this.options.textNodeName],t,n.attrStr,s):this.buildObjectNode(n.val,t,n.attrStr,s)}function it(e){return this.options.indentBy.repeat(e)}function rt(e){return!(!e.startsWith(this.options.attributeNamePrefix)||e===this.options.textNodeName)&&e.substr(this.attrPrefixLen)}nt.prototype.build=function(e){return this.options.preserveOrder?tt(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0).val)},nt.prototype.j2x=function(e,t){let s="",n="";for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a))if(void 0===e[a])this.isAttribute(a)&&(n+="");else if(null===e[a])this.isAttribute(a)?n+="":"?"===a[0]?n+=this.indentate(t)+"<"+a+"?"+this.tagEndChar:n+=this.indentate(t)+"<"+a+"/"+this.tagEndChar;else if(e[a]instanceof Date)n+=this.buildTextValNode(e[a],a,"",t);else if("object"!=typeof e[a]){const i=this.isAttribute(a);if(i)s+=this.buildAttrPairStr(i,""+e[a]);else if(a===this.options.textNodeName){let t=this.options.tagValueProcessor(a,""+e[a]);n+=this.replaceEntitiesValue(t)}else n+=this.buildTextValNode(e[a],a,"",t)}else if(Array.isArray(e[a])){const s=e[a].length;let i="";for(let r=0;r<s;r++){const s=e[a][r];void 0===s||(null===s?"?"===a[0]?n+=this.indentate(t)+"<"+a+"?"+this.tagEndChar:n+=this.indentate(t)+"<"+a+"/"+this.tagEndChar:"object"==typeof s?this.options.oneListGroup?i+=this.j2x(s,t+1).val:i+=this.processTextOrObjNode(s,a,t):i+=this.buildTextValNode(s,a,"",t))}this.options.oneListGroup&&(i=this.buildObjectNode(i,a,"",t)),n+=i}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const t=Object.keys(e[a]),n=t.length;for(let i=0;i<n;i++)s+=this.buildAttrPairStr(t[i],""+e[a][t[i]])}else n+=this.processTextOrObjNode(e[a],a,t);return{attrStr:s,val:n}},nt.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,""+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&"true"===t?" "+e:" "+e+'="'+t+'"'},nt.prototype.buildObjectNode=function(e,t,s,n){if(""===e)return"?"===t[0]?this.indentate(n)+"<"+t+s+"?"+this.tagEndChar:this.indentate(n)+"<"+t+s+this.closeTag(t)+this.tagEndChar;{let a="</"+t+this.tagEndChar,i="";return"?"===t[0]&&(i="?",a=""),!s&&""!==s||-1!==e.indexOf("<")?!1!==this.options.commentPropName&&t===this.options.commentPropName&&0===i.length?this.indentate(n)+`\x3c!--${e}--\x3e`+this.newLine:this.indentate(n)+"<"+t+s+i+this.tagEndChar+e+this.indentate(n)+a:this.indentate(n)+"<"+t+s+i+">"+e+a}},nt.prototype.closeTag=function(e){let t="";return-1!==this.options.unpairedTags.indexOf(e)?this.options.suppressUnpairedNode||(t="/"):t=this.options.suppressEmptyNode?"/":`></${e}`,t},nt.prototype.buildTextValNode=function(e,t,s,n){if(!1!==this.options.cdataPropName&&t===this.options.cdataPropName)return this.indentate(n)+`<![CDATA[${e}]]>`+this.newLine;if(!1!==this.options.commentPropName&&t===this.options.commentPropName)return this.indentate(n)+`\x3c!--${e}--\x3e`+this.newLine;if("?"===t[0])return this.indentate(n)+"<"+t+s+"?"+this.tagEndChar;{let a=this.options.tagValueProcessor(t,e);return a=this.replaceEntitiesValue(a),""===a?this.indentate(n)+"<"+t+s+this.closeTag(t)+this.tagEndChar:this.indentate(n)+"<"+t+s+">"+a+"</"+t+this.tagEndChar}},nt.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){const s=this.options.entities[t];e=e.replace(s.regex,s.val)}return e};var ot={XMLParser:class{constructor(e){this.externalEntities={},this.options=We(e)}parse(e,t){if("string"==typeof e);else{if(!e.toString)throw new Error("XML data is accepted in String or Bytes[] form.");e=e.toString()}if(t){!0===t&&(t={});const s=Ke.validate(e,t);if(!0!==s)throw Error(`${s.err.msg}:${s.err.line}:${s.err.col}`)}const s=new qe(this.options);s.addExternalEntities(this.externalEntities);const n=s.parseXml(e);return this.options.preserveOrder||void 0===n?n:Ge(n,this.options)}addEntity(e,t){if(-1!==t.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==e.indexOf("&")||-1!==e.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'");if("&"===t)throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=t}},XMLValidator:q,XMLBuilder:nt};class lt{_view;constructor(e){dt(e),this._view=e}get id(){return this._view.id}get name(){return this._view.name}get caption(){return this._view.caption}get emptyTitle(){return this._view.emptyTitle}get emptyCaption(){return this._view.emptyCaption}get getContents(){return this._view.getContents}get icon(){return this._view.icon}set icon(e){this._view.icon=e}get order(){return this._view.order}set order(e){this._view.order=e}get params(){return this._view.params}set params(e){this._view.params=e}get columns(){return this._view.columns}get emptyView(){return this._view.emptyView}get parent(){return this._view.parent}get sticky(){return this._view.sticky}get expanded(){return this._view.expanded}set expanded(e){this._view.expanded=e}get defaultSortKey(){return this._view.defaultSortKey}}const dt=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("View id is required and must be a string");if(!e.name||"string"!=typeof e.name)throw new Error("View name is required and must be a string");if(e.columns&&e.columns.length>0&&(!e.caption||"string"!=typeof e.caption))throw new Error("View caption is required for top-level views and must be a string");if(!e.getContents||"function"!=typeof e.getContents)throw new Error("View getContents is required and must be a function");if(!e.icon||"string"!=typeof e.icon||!function(e){if("string"!=typeof e)throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);if(0===(e=e.trim()).length)return!1;if(!0!==ot.XMLValidator.validate(e))return!1;let t;const s=new ot.XMLParser;try{t=s.parse(e)}catch{return!1}return!!t&&!!Object.keys(t).some((e=>"svg"===e.toLowerCase()))}(e.icon))throw new Error("View icon is required and must be a valid svg string");if(!("order"in e)||"number"!=typeof e.order)throw new Error("View order is required and must be a number");if(e.columns&&e.columns.forEach((e=>{if(!(e instanceof Y))throw new Error("View columns must be an array of Column. Invalid column found")})),e.emptyView&&"function"!=typeof e.emptyView)throw new Error("View emptyView must be a function");if(e.parent&&"string"!=typeof e.parent)throw new Error("View parent must be a string");if("sticky"in e&&"boolean"!=typeof e.sticky)throw new Error("View sticky must be a boolean");if("expanded"in e&&"boolean"!=typeof e.expanded)throw new Error("View expanded must be a boolean");if(e.defaultSortKey&&"string"!=typeof e.defaultSortKey)throw new Error("View defaultSortKey must be a string");return!0},mt=function(e){return f().registerEntry(e)},ct=function(e){return f().unregisterEntry(e)},ut=function(e){return f().getEntries(e).sort(((e,t)=>void 0!==e.order&&void 0!==t.order&&e.order!==t.order?e.order-t.order:e.displayName.localeCompare(t.displayName,void 0,{numeric:!0,sensitivity:"base"})))}},41261:(e,t,s)=>{"use strict";s.d(t,{a:()=>ae,h:()=>me,l:()=>G,n:()=>X,o:()=>de,t:()=>ie});var n=s(85072),a=s.n(n),i=s(97825),r=s.n(i),o=s(77659),l=s.n(o),d=s(55056),m=s.n(d),c=s(10540),u=s.n(c),g=s(41113),f=s.n(g),p=s(30521),h={};h.styleTagTransform=f(),h.setAttributes=m(),h.insert=l().bind(null,"head"),h.domAPI=r(),h.insertStyleElement=u(),a()(p.A,h),p.A&&p.A.locals&&p.A.locals;var w=s(53110),x=s(71089),v=s(35810),T=s(88164),A=s(21777),y=s(26287);class C extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}}const b=Object.freeze({pending:Symbol("pending"),canceled:Symbol("canceled"),resolved:Symbol("resolved"),rejected:Symbol("rejected")});class k{static fn(e){return(...t)=>new k(((s,n,a)=>{t.push(a),e(...t).then(s,n)}))}#e=[];#t=!0;#s=b.pending;#n;#a;constructor(e){this.#n=new Promise(((t,s)=>{this.#a=s;const n=e=>{if(this.#s!==b.pending)throw new Error(`The \`onCancel\` handler was attached after the promise ${this.#s.description}.`);this.#e.push(e)};Object.defineProperties(n,{shouldReject:{get:()=>this.#t,set:e=>{this.#t=e}}}),e((e=>{this.#s===b.canceled&&n.shouldReject||(t(e),this.#i(b.resolved))}),(e=>{this.#s===b.canceled&&n.shouldReject||(s(e),this.#i(b.rejected))}),n)}))}then(e,t){return this.#n.then(e,t)}catch(e){return this.#n.catch(e)}finally(e){return this.#n.finally(e)}cancel(e){if(this.#s===b.pending){if(this.#i(b.canceled),this.#e.length>0)try{for(const e of this.#e)e()}catch(e){return void this.#a(e)}this.#t&&this.#a(new C(e))}}get isCanceled(){return this.#s===b.canceled}#i(e){this.#s===b.pending&&(this.#s=e)}}Object.setPrototypeOf(k.prototype,Promise.prototype);var L=s(9052);class _ extends Error{constructor(e){super(e),this.name="TimeoutError"}}class E extends Error{constructor(e){super(),this.name="AbortError",this.message=e}}const S=e=>void 0===globalThis.DOMException?new E(e):new DOMException(e),B=e=>{const t=void 0===e.reason?S("This operation was aborted."):e.reason;return t instanceof Error?t:S(t)};class F{#r=[];enqueue(e,t){const s={priority:(t={priority:0,...t}).priority,run:e};if(this.size&&this.#r[this.size-1].priority>=t.priority)return void this.#r.push(s);const n=function(e,t,s){let n=0,a=e.length;for(;a>0;){const s=Math.trunc(a/2);let r=n+s;i=e[r],t.priority-i.priority<=0?(n=++r,a-=s+1):a=s}var i;return n}(this.#r,s);this.#r.splice(n,0,s)}dequeue(){const e=this.#r.shift();return e?.run}filter(e){return this.#r.filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return this.#r.length}}class P extends L{#o;#l;#d=0;#m;#c;#u=0;#g;#f;#r;#p;#h=0;#w;#x;#v;timeout;constructor(e){if(super(),!("number"==typeof(e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:F,...e}).intervalCap&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#o=e.carryoverConcurrencyCount,this.#l=e.intervalCap===Number.POSITIVE_INFINITY||0===e.interval,this.#m=e.intervalCap,this.#c=e.interval,this.#r=new e.queueClass,this.#p=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#v=!0===e.throwOnTimeout,this.#x=!1===e.autoStart}get#T(){return this.#l||this.#d<this.#m}get#A(){return this.#h<this.#w}#y(){this.#h--,this.#C(),this.emit("next")}#b(){this.#k(),this.#L(),this.#f=void 0}get#_(){const e=Date.now();if(void 0===this.#g){const t=this.#u-e;if(!(t<0))return void 0===this.#f&&(this.#f=setTimeout((()=>{this.#b()}),t)),!0;this.#d=this.#o?this.#h:0}return!1}#C(){if(0===this.#r.size)return this.#g&&clearInterval(this.#g),this.#g=void 0,this.emit("empty"),0===this.#h&&this.emit("idle"),!1;if(!this.#x){const e=!this.#_;if(this.#T&&this.#A){const t=this.#r.dequeue();return!!t&&(this.emit("active"),t(),e&&this.#L(),!0)}}return!1}#L(){this.#l||void 0!==this.#g||(this.#g=setInterval((()=>{this.#k()}),this.#c),this.#u=Date.now()+this.#c)}#k(){0===this.#d&&0===this.#h&&this.#g&&(clearInterval(this.#g),this.#g=void 0),this.#d=this.#o?this.#h:0,this.#E()}#E(){for(;this.#C(););}get concurrency(){return this.#w}set concurrency(e){if(!("number"==typeof e&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#w=e,this.#E()}async#S(e){return new Promise(((t,s)=>{e.addEventListener("abort",(()=>{s(e.reason)}),{once:!0})}))}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#v,...t},new Promise(((s,n)=>{this.#r.enqueue((async()=>{this.#h++,this.#d++;try{t.signal?.throwIfAborted();let n=e({signal:t.signal});t.timeout&&(n=function(e,t){const{milliseconds:s,fallback:n,message:a,customTimers:i={setTimeout,clearTimeout}}=t;let r;const o=new Promise(((o,l)=>{if("number"!=typeof s||1!==Math.sign(s))throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${s}\``);if(t.signal){const{signal:e}=t;e.aborted&&l(B(e)),e.addEventListener("abort",(()=>{l(B(e))}))}if(s===Number.POSITIVE_INFINITY)return void e.then(o,l);const d=new _;r=i.setTimeout.call(void 0,(()=>{if(n)try{o(n())}catch(e){l(e)}else"function"==typeof e.cancel&&e.cancel(),!1===a?o():a instanceof Error?l(a):(d.message=a??`Promise timed out after ${s} milliseconds`,l(d))}),s),(async()=>{try{o(await e)}catch(e){l(e)}})()})).finally((()=>{o.clear()}));return o.clear=()=>{i.clearTimeout.call(void 0,r),r=void 0},o}(Promise.resolve(n),{milliseconds:t.timeout})),t.signal&&(n=Promise.race([n,this.#S(t.signal)]));const a=await n;s(a),this.emit("completed",a)}catch(e){if(e instanceof _&&!t.throwOnTimeout)return void s();n(e),this.emit("error",e)}finally{this.#y()}}),t),this.emit("add"),this.#C()}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){return this.#x?(this.#x=!1,this.#E(),this):this}pause(){this.#x=!0}clear(){this.#r=new this.#p}async onEmpty(){0!==this.#r.size&&await this.#B("empty")}async onSizeLessThan(e){this.#r.size<e||await this.#B("next",(()=>this.#r.size<e))}async onIdle(){0===this.#h&&0===this.#r.size||await this.#B("idle")}async#B(e,t){return new Promise((s=>{const n=()=>{t&&!t()||(this.off(e,n),s())};this.on(e,n)}))}get size(){return this.#r.size}sizeBy(e){return this.#r.filter(e).length}get pending(){return this.#h}get isPaused(){return this.#x}}var U=s(53529),N=s(85168),I=s(75270),j=s(85471),O=s(63420),z=s(24764),R=s(9518),D=s(6695),M=s(95101),V=s(11195);const $=async function(e,t,s,n=(()=>{}),a=void 0,i={}){let r;return r=t instanceof Blob?t:await t(),a&&(i.Destination=a),i["Content-Type"]||(i["Content-Type"]="application/octet-stream"),await y.A.request({method:"PUT",url:e,data:r,signal:s,onUploadProgress:n,headers:i})},H=function(e,t,s){return 0===t&&e.size<=s?Promise.resolve(new Blob([e],{type:e.type||"application/octet-stream"})):Promise.resolve(new Blob([e.slice(t,t+s)],{type:"application/octet-stream"}))},Y=function(e=void 0){const t=window.OC?.appConfig?.files?.max_chunk_size;if(t<=0)return 0;if(!Number(t))return 10485760;const s=Math.max(Number(t),5242880);return void 0===e?s:Math.max(s,Math.ceil(e/1e4))};var W=(e=>(e[e.INITIALIZED=0]="INITIALIZED",e[e.UPLOADING=1]="UPLOADING",e[e.ASSEMBLING=2]="ASSEMBLING",e[e.FINISHED=3]="FINISHED",e[e.CANCELLED=4]="CANCELLED",e[e.FAILED=5]="FAILED",e))(W||{});let q=class{_source;_file;_isChunked;_chunks;_size;_uploaded=0;_startTime=0;_status=0;_controller;_response=null;constructor(e,t=!1,s,n){const a=Math.min(Y()>0?Math.ceil(s/Y()):1,1e4);this._source=e,this._isChunked=t&&Y()>0&&a>1,this._chunks=this._isChunked?a:1,this._size=s,this._file=n,this._controller=new AbortController}get source(){return this._source}get file(){return this._file}get isChunked(){return this._isChunked}get chunks(){return this._chunks}get size(){return this._size}get startTime(){return this._startTime}set response(e){this._response=e}get response(){return this._response}get uploaded(){return this._uploaded}set uploaded(e){if(e>=this._size)return this._status=this._isChunked?2:3,void(this._uploaded=this._size);this._status=1,this._uploaded=e,0===this._startTime&&(this._startTime=(new Date).getTime())}get status(){return this._status}set status(e){this._status=e}get signal(){return this._controller.signal}cancel(){this._controller.abort(),this._status=4}};const G=null===(K=(0,A.HW)())?(0,U.YK)().setApp("uploader").build():(0,U.YK)().setApp("uploader").setUid(K.uid).build();var K,J=(e=>(e[e.IDLE=0]="IDLE",e[e.UPLOADING=1]="UPLOADING",e[e.PAUSED=2]="PAUSED",e))(J||{});class Z{_destinationFolder;_isPublic;_uploadQueue=[];_jobQueue=new P({concurrency:3});_queueSize=0;_queueProgress=0;_queueStatus=0;_notifiers=[];constructor(e=!1,t){if(this._isPublic=e,!t){const e=(0,A.HW)()?.uid,s=(0,T.dC)(`dav/files/${e}`);if(!e)throw new Error("User is not logged in");t=new v.vd({id:0,owner:e,permissions:v.aX.ALL,root:`/files/${e}`,source:s})}this.destination=t,G.debug("Upload workspace initialized",{destination:this.destination,root:this.root,isPublic:e,maxChunksSize:Y()})}get destination(){return this._destinationFolder}set destination(e){if(!e)throw new Error("Invalid destination folder");G.debug("Destination set",{folder:e}),this._destinationFolder=e}get root(){return this._destinationFolder.source}get queue(){return this._uploadQueue}reset(){this._uploadQueue.splice(0,this._uploadQueue.length),this._jobQueue.clear(),this._queueSize=0,this._queueProgress=0,this._queueStatus=0}pause(){this._jobQueue.pause(),this._queueStatus=2}start(){this._jobQueue.start(),this._queueStatus=1,this.updateStats()}get info(){return{size:this._queueSize,progress:this._queueProgress,status:this._queueStatus}}updateStats(){const e=this._uploadQueue.map((e=>e.size)).reduce(((e,t)=>e+t),0),t=this._uploadQueue.map((e=>e.uploaded)).reduce(((e,t)=>e+t),0);this._queueSize=e,this._queueProgress=t,2!==this._queueStatus&&(this._queueStatus=this._jobQueue.size>0?1:0)}addNotifier(e){this._notifiers.push(e)}upload(e,t,s){const n=`${s||this.root}/${e.replace(/^\//,"")}`,{origin:a}=new URL(n),i=a+(0,x.O0)(n.slice(a.length));G.debug(`Uploading ${t.name} to ${i}`);const r=Y(t.size),o=0===r||t.size<r||this._isPublic,l=new q(n,!o,t.size,t);return this._uploadQueue.push(l),this.updateStats(),new k((async(e,s,n)=>{if(n(l.cancel),o){G.debug("Initializing regular upload",{file:t,upload:l});const n=await H(t,0,l.size),a=async()=>{try{l.response=await $(i,n,l.signal,(e=>{l.uploaded=l.uploaded+e.bytes,this.updateStats()}),void 0,{"X-OC-Mtime":t.lastModified/1e3,"Content-Type":t.type}),l.uploaded=l.size,this.updateStats(),G.debug(`Successfully uploaded ${t.name}`,{file:t,upload:l}),e(l)}catch(e){if(e instanceof w.k3)return l.status=W.FAILED,void s("Upload has been cancelled");e?.response&&(l.response=e.response),l.status=W.FAILED,G.error(`Failed uploading ${t.name}`,{error:e,file:t,upload:l}),s("Failed uploading the file")}this._notifiers.forEach((e=>{try{e(l)}catch{}}))};this._jobQueue.add(a),this.updateStats()}else{G.debug("Initializing chunked upload",{file:t,upload:l});const n=await async function(e){const t=`${(0,T.dC)(`dav/uploads/${(0,A.HW)()?.uid}`)}/web-file-upload-${[...Array(16)].map((()=>Math.floor(16*Math.random()).toString(16))).join("")}`,s=e?{Destination:e}:void 0;return await y.A.request({method:"MKCOL",url:t,headers:s}),t}(i),a=[];for(let e=0;e<l.chunks;e++){const s=e*r,o=Math.min(s+r,l.size),d=()=>H(t,s,r),m=()=>$(`${n}/${e+1}`,d,l.signal,(()=>this.updateStats()),i,{"X-OC-Mtime":t.lastModified/1e3,"OC-Total-Length":t.size,"Content-Type":"application/octet-stream"}).then((()=>{l.uploaded=l.uploaded+r})).catch((t=>{throw 507===t?.response?.status?(G.error("Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks",{error:t,upload:l}),l.cancel(),l.status=W.FAILED,t):(t instanceof w.k3||(G.error(`Chunk ${e+1} ${s} - ${o} uploading failed`,{error:t,upload:l}),l.cancel(),l.status=W.FAILED),t)}));a.push(this._jobQueue.add(m))}try{await Promise.all(a),this.updateStats(),l.response=await y.A.request({method:"MOVE",url:`${n}/.file`,headers:{"X-OC-Mtime":t.lastModified/1e3,"OC-Total-Length":t.size,Destination:i}}),this.updateStats(),l.status=W.FINISHED,G.debug(`Successfully uploaded ${t.name}`,{file:t,upload:l}),e(l)}catch(e){e instanceof w.k3?(l.status=W.FAILED,s("Upload has been cancelled")):(l.status=W.FAILED,s("Failed assembling the chunks together")),y.A.request({method:"DELETE",url:`${n}`})}this._notifiers.forEach((e=>{try{e(l)}catch{}}))}return this._jobQueue.onIdle().then((()=>this.reset())),l}))}}function X(e,t,s,n,a,i,r,o){var l,d="function"==typeof e?e.options:e;if(t&&(d.render=t,d.staticRenderFns=s,d._compiled=!0),n&&(d.functional=!0),i&&(d._scopeId="data-v-"+i),r?(l=function(e){!(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)&&typeof __VUE_SSR_CONTEXT__<"u"&&(e=__VUE_SSR_CONTEXT__),a&&a.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},d._ssrRegister=l):a&&(l=o?function(){a.call(this,(d.functional?this.parent:this).$root.$options.shadowRoot)}:a),l)if(d.functional){d._injectStyles=l;var m=d.render;d.render=function(e,t){return l.call(t),m(e,t)}}else{var c=d.beforeCreate;d.beforeCreate=c?[].concat(c,l):[l]}return{exports:e,options:d}}const Q=X({name:"CancelIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon cancel-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"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 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null,null).exports,ee=X({name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon plus-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"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:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null,null).exports,te=X({name:"UploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon upload-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"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:"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null,null).exports,se=(0,V.$)().detectLocale();[{locale:"af",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)","Content-Type":"text/plain; charset=UTF-8",Language:"af","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: af\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ar",json:{charset:"utf-8",headers:{"Last-Translator":"Ali <alimahwer@yahoo.com>, 2024","Language-Team":"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)","Content-Type":"text/plain; charset=UTF-8",Language:"ar","Plural-Forms":"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nAli <alimahwer@yahoo.com>, 2024\n"},msgstr:["Last-Translator: Ali <alimahwer@yahoo.com>, 2024\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ملف متعارض","{count} ملف متعارض","{count} ملفان متعارضان","{count} ملف متعارض","{count} ملفات متعارضة","{count} ملفات متعارضة"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ملف متعارض في n {dirname}","{count} ملف متعارض في n {dirname}","{count} ملفان متعارضان في n {dirname}","{count} ملف متعارض في n {dirname}","{count} ملفات متعارضة في n {dirname}","{count} ملفات متعارضة في n {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} ثانية متبقية"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} متبقية"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["باقٍ بضعُ ثوانٍ"]},Cancel:{msgid:"Cancel",msgstr:["إلغاء"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["إلغِ العملية بالكامل"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["إلغاء عمليات رفع الملفات"]},Continue:{msgid:"Continue",msgstr:["إستمر"]},"estimating time left":{msgid:"estimating time left",msgstr:["تقدير الوقت المتبقي"]},"Existing version":{msgid:"Existing version",msgstr:["الإصدار الحالي"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["إذا اخترت الإبقاء على النسختين معاً، فإن الملف المنسوخ سيتم إلحاق رقم تسلسلي في نهاية اسمه."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["تاريخ آخر تعديل غير معلوم"]},New:{msgid:"New",msgstr:["جديد"]},"New version":{msgid:"New version",msgstr:["نسخة جديدة"]},paused:{msgid:"paused",msgstr:["مُجمَّد"]},"Preview image":{msgid:"Preview image",msgstr:["معاينة الصورة"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["حدِّد كل صناديق الخيارات"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["حدِّد كل الملفات الموجودة"]},"Select all new files":{msgid:"Select all new files",msgstr:["حدِّد كل الملفات الجديدة"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف"]},"Unknown size":{msgid:"Unknown size",msgstr:["حجم غير معلوم"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["تمَّ إلغاء الرفع"]},"Upload files":{msgid:"Upload files",msgstr:["رفع ملفات"]},"Upload progress":{msgid:"Upload progress",msgstr:["تقدُّم الرفع "]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["أيُّ الملفات ترغب في الإبقاء عليها؟"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار."]}}}}},{locale:"ar_SA",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)","Content-Type":"text/plain; charset=UTF-8",Language:"ar_SA","Plural-Forms":"nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar_SA\nPlural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ast",json:{charset:"utf-8",headers:{"Last-Translator":"enolp <enolp@softastur.org>, 2023","Language-Team":"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)","Content-Type":"text/plain; charset=UTF-8",Language:"ast","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nenolp <enolp@softastur.org>, 2023\n"},msgstr:["Last-Translator: enolp <enolp@softastur.org>, 2023\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ast\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ficheru en coflictu","{count} ficheros en coflictu"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ficheru en coflictu en {dirname}","{count} ficheros en coflictu en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Tiempu que queda: {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["queden unos segundos"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Encaboxar les xubes"]},Continue:{msgid:"Continue",msgstr:["Siguir"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando'l tiempu que falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión esistente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["La data de la última modificación ye desconocida"]},New:{msgid:"New",msgstr:["Nuevu"]},"New version":{msgid:"New version",msgstr:["Versión nueva"]},paused:{msgid:"paused",msgstr:["en posa"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar la imaxe"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar toles caxelles"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleicionar tolos ficheros esistentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleicionar tolos ficheros nuevos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar esti ficheru","Saltar {count} ficheros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamañu desconocíu"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Encaboxóse la xuba"]},"Upload files":{msgid:"Upload files",msgstr:["Xubir ficheros"]},"Upload progress":{msgid:"Upload progress",msgstr:["Xuba en cursu"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué ficheros quies caltener?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Tienes de seleicionar polo menos una versión de cada ficheru pa siguir."]}}}}},{locale:"az",json:{charset:"utf-8",headers:{"Last-Translator":"Rashad Aliyev <microphprashad@gmail.com>, 2023","Language-Team":"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)","Content-Type":"text/plain; charset=UTF-8",Language:"az","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRashad Aliyev <microphprashad@gmail.com>, 2023\n"},msgstr:["Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: az\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saniyə qalıb"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} qalıb"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir neçə saniyə qalıb"]},Add:{msgid:"Add",msgstr:["Əlavə et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yükləməni imtina et"]},"estimating time left":{msgid:"estimating time left",msgstr:["Təxmini qalan vaxt"]},paused:{msgid:"paused",msgstr:["pauzadadır"]},"Upload files":{msgid:"Upload files",msgstr:["Faylları yüklə"]}}}}},{locale:"be",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)","Content-Type":"text/plain; charset=UTF-8",Language:"be","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: be\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bg_BG",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)","Content-Type":"text/plain; charset=UTF-8",Language:"bg_BG","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bg_BG\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bn_BD",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)","Content-Type":"text/plain; charset=UTF-8",Language:"bn_BD","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bn_BD\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"br",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)","Content-Type":"text/plain; charset=UTF-8",Language:"br","Plural-Forms":"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: br\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bs",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)","Content-Type":"text/plain; charset=UTF-8",Language:"bs","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bs\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ca",json:{charset:"utf-8",headers:{"Last-Translator":"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022","Language-Team":"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)","Content-Type":"text/plain; charset=UTF-8",Language:"ca","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMarc Riera <marcriera@softcatala.org>, 2022\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\n"},msgstr:["Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ca\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segons"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["Queden {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Queden uns segons"]},Add:{msgid:"Add",msgstr:["Afegeix"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel·la les pujades"]},"estimating time left":{msgid:"estimating time left",msgstr:["S'està estimant el temps restant"]},paused:{msgid:"paused",msgstr:["En pausa"]},"Upload files":{msgid:"Upload files",msgstr:["Puja els fitxers"]}}}}},{locale:"cs",json:{charset:"utf-8",headers:{"Last-Translator":"Pavel Borecki <pavel.borecki@gmail.com>, 2022","Language-Team":"Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)","Content-Type":"text/plain; charset=UTF-8",Language:"cs","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPavel Borecki <pavel.borecki@gmail.com>, 2022\n"},msgstr:["Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2022\nLanguage-Team: Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["zbývá {seconds}"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["zbývá {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zbývá několik sekund"]},Add:{msgid:"Add",msgstr:["Přidat"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušit nahrávání"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhadovaný zbývající čas"]},paused:{msgid:"paused",msgstr:["pozastaveno"]}}}}},{locale:"cs_CZ",json:{charset:"utf-8",headers:{"Last-Translator":"Michal Šmahel <ceskyDJ@seznam.cz>, 2024","Language-Team":"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)","Content-Type":"text/plain; charset=UTF-8",Language:"cs_CZ","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\n"},msgstr:["Last-Translator: Michal Šmahel <ceskyDJ@seznam.cz>, 2024\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs_CZ\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} kolize souborů","{count} kolize souborů","{count} kolizí souborů","{count} kolize souborů"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} kolize souboru v {dirname}","{count} kolize souboru v {dirname}","{count} kolizí souborů v {dirname}","{count} kolize souboru v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["zbývá {seconds}"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["zbývá {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zbývá několik sekund"]},Cancel:{msgid:"Cancel",msgstr:["Zrušit"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Zrušit celou operaci"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušit nahrávání"]},Continue:{msgid:"Continue",msgstr:["Pokračovat"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhaduje se zbývající čas"]},"Existing version":{msgid:"Existing version",msgstr:["Existující verze"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Pokud vyberete obě verze, zkopírovaný soubor bude mít k názvu přidáno číslo."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Neznámé datum poslední úpravy"]},New:{msgid:"New",msgstr:["Nové"]},"New version":{msgid:"New version",msgstr:["Nová verze"]},paused:{msgid:"paused",msgstr:["pozastaveno"]},"Preview image":{msgid:"Preview image",msgstr:["Náhled obrázku"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Označit všechny zaškrtávací kolonky"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vybrat veškeré stávající soubory"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vybrat veškeré nové soubory"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Přeskočit tento soubor","Přeskočit {count} soubory","Přeskočit {count} souborů","Přeskočit {count} soubory"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznámá velikost"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Nahrávání zrušeno"]},"Upload files":{msgid:"Upload files",msgstr:["Nahrát soubory"]},"Upload progress":{msgid:"Upload progress",msgstr:["Postup v nahrávání"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Které soubory si přejete ponechat?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru."]}}}}},{locale:"cy_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"cy_GB","Plural-Forms":"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cy_GB\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"da",json:{charset:"utf-8",headers:{"Last-Translator":"Martin Bonde <Martin@maboni.dk>, 2024","Language-Team":"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)","Content-Type":"text/plain; charset=UTF-8",Language:"da","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMartin Bonde <Martin@maboni.dk>, 2024\n"},msgstr:["Last-Translator: Martin Bonde <Martin@maboni.dk>, 2024\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: da\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fil konflikt","{count} filer i konflikt"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fil konflikt i {dirname}","{count} filer i konflikt i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{sekunder} sekunder tilbage"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{tid} tilbage"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["et par sekunder tilbage"]},Cancel:{msgid:"Cancel",msgstr:["Annuller"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuller hele handlingen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuller uploads"]},Continue:{msgid:"Continue",msgstr:["Fortsæt"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimering af resterende tid"]},"Existing version":{msgid:"Existing version",msgstr:["Eksisterende version"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Hvis du vælger begge versioner vil den kopierede fil få et nummer tilføjet til sit navn."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Sidste modifikationsdato ukendt"]},New:{msgid:"New",msgstr:["Ny"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvisning af billede"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Vælg alle felter"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vælg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vælg alle nye filer"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Spring denne fil over","Spring {count} filer over"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukendt størrelse"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Upload annulleret"]},"Upload files":{msgid:"Upload files",msgstr:["Upload filer"]},"Upload progress":{msgid:"Upload progress",msgstr:["Upload fremskridt"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer ønsker du at beholde?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du skal vælge mindst én version af hver fil for at fortsætte."]}}}}},{locale:"de",json:{charset:"utf-8",headers:{"Last-Translator":"Mario Siegmann <mario_siegmann@web.de>, 2024","Language-Team":"German (https://app.transifex.com/nextcloud/teams/64236/de/)","Content-Type":"text/plain; charset=UTF-8",Language:"de","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\n"},msgstr:["Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2024\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} Sekunden verbleibend"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["noch ein paar Sekunden"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Geschätzte verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Wenn du beide Versionen auswählst, wird der kopierten Datei eine Nummer zum Namen hinzugefügt."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Diese Datei überspringen","{count} Dateien überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Hochladen abgebrochen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchtest du behalten?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"de_DE",json:{charset:"utf-8",headers:{"Last-Translator":"Mario Siegmann <mario_siegmann@web.de>, 2024","Language-Team":"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)","Content-Type":"text/plain; charset=UTF-8",Language:"de_DE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\n"},msgstr:["Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2024\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de_DE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} Sekunden verbleiben"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["ein paar Sekunden verbleiben"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Geschätzte verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Wenn Sie beide Versionen auswählen, wird der kopierten Datei eine Nummer zum Namen hinzugefügt."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count} Datei überspringen","{count} Dateien überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Hochladen abgebrochen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchten Sie behalten?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"el",json:{charset:"utf-8",headers:{"Last-Translator":"Nik Pap, 2022","Language-Team":"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)","Content-Type":"text/plain; charset=UTF-8",Language:"el","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nNik Pap, 2022\n"},msgstr:["Last-Translator: Nik Pap, 2022\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["απομένουν {seconds} δευτερόλεπτα"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["απομένουν {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["απομένουν λίγα δευτερόλεπτα"]},Add:{msgid:"Add",msgstr:["Προσθήκη"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ακύρωση μεταφορτώσεων"]},"estimating time left":{msgid:"estimating time left",msgstr:["εκτίμηση του χρόνου που απομένει"]},paused:{msgid:"paused",msgstr:["σε παύση"]},"Upload files":{msgid:"Upload files",msgstr:["Μεταφόρτωση αρχείων"]}}}}},{locale:"el_GR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)","Content-Type":"text/plain; charset=UTF-8",Language:"el_GR","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el_GR\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"en_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Andi Chandler <andi@gowling.com>, 2023","Language-Team":"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"en_GB","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nAndi Chandler <andi@gowling.com>, 2023\n"},msgstr:["Last-Translator: Andi Chandler <andi@gowling.com>, 2023\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: en_GB\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} files conflict"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} file conflicts in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} seconds left"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} left"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["a few seconds left"]},Add:{msgid:"Add",msgstr:["Add"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel uploads"]},Continue:{msgid:"Continue",msgstr:["Continue"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimating time left"]},"Existing version":{msgid:"Existing version",msgstr:["Existing version"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["If you select both versions, the copied file will have a number added to its name."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Last modified date unknown"]},"New version":{msgid:"New version",msgstr:["New version"]},paused:{msgid:"paused",msgstr:["paused"]},"Preview image":{msgid:"Preview image",msgstr:["Preview image"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Select all checkboxes"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Select all existing files"]},"Select all new files":{msgid:"Select all new files",msgstr:["Select all new files"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Skip {count} files"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unknown size"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Upload cancelled"]},"Upload files":{msgid:"Upload files",msgstr:["Upload files"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Which files do you want to keep?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["You need to select at least one version of each file to continue."]}}}}},{locale:"eo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)","Content-Type":"text/plain; charset=UTF-8",Language:"eo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es",json:{charset:"utf-8",headers:{"Last-Translator":"Julio C. Ortega, 2024","Language-Team":"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)","Content-Type":"text/plain; charset=UTF-8",Language:"es","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nFranciscoFJ <dev-ooo@satel-sa.com>, 2023\nNext Cloud <nextcloud.translator.es@cgj.es>, 2023\nJulio C. Ortega, 2024\n"},msgstr:["Last-Translator: Julio C. Ortega, 2024\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} archivo en conflicto","{count} archivos en conflicto","{count} archivos en conflicto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} archivo en conflicto en {dirname}","{count} archivos en conflicto en {dirname}","{count} archivos en conflicto en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Si selecciona ambas versiones, al archivo copiado se le añadirá un número en el nombre."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Última fecha de modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar imagen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar este archivo","Saltar {count} archivos","Saltar {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Subida cancelada"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la subida"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_419",json:{charset:"utf-8",headers:{"Last-Translator":"ALEJANDRO CASTRO, 2022","Language-Team":"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_419","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nALEJANDRO CASTRO, 2022\n"},msgstr:["Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_419\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Add:{msgid:"Add",msgstr:["agregar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]}}}}},{locale:"es_AR",json:{charset:"utf-8",headers:{"Last-Translator":"Matias Iglesias, 2022","Language-Team":"Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_AR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMatias Iglesias, 2022\n"},msgstr:["Last-Translator: Matias Iglesias, 2022\nLanguage-Team: Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_AR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},Add:{msgid:"Add",msgstr:["Añadir"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]}}}}},{locale:"es_CL",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CL","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CL\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_DO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_DO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_DO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_EC",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_EC","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_EC\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_GT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_GT","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_GT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_HN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_HN","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_HN\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_MX",json:{charset:"utf-8",headers:{"Last-Translator":"ALEJANDRO CASTRO, 2022","Language-Team":"Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_MX","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nLuis Francisco Castro, 2022\nALEJANDRO CASTRO, 2022\n"},msgstr:["Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_MX\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Add:{msgid:"Add",msgstr:["agregar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["cancelar las cargas"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},paused:{msgid:"paused",msgstr:["en pausa"]},"Upload files":{msgid:"Upload files",msgstr:["cargar archivos"]}}}}},{locale:"es_NI",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_NI","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_NI\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PA",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PA","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PA\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PE","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PE\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_SV",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_SV","Plural-Forms":"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_SV\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_UY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_UY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_UY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"et_EE",json:{charset:"utf-8",headers:{"Last-Translator":"Taavo Roos, 2023","Language-Team":"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)","Content-Type":"text/plain; charset=UTF-8",Language:"et_EE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMait R, 2022\nTaavo Roos, 2023\n"},msgstr:["Last-Translator: Taavo Roos, 2023\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: et_EE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} jäänud sekundid"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} aega jäänud"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["jäänud mõni sekund"]},Add:{msgid:"Add",msgstr:["Lisa"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Tühista üleslaadimine"]},"estimating time left":{msgid:"estimating time left",msgstr:["hinnanguline järelejäänud aeg"]},paused:{msgid:"paused",msgstr:["pausil"]},"Upload files":{msgid:"Upload files",msgstr:["Lae failid üles"]}}}}},{locale:"eu",json:{charset:"utf-8",headers:{"Last-Translator":"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022","Language-Team":"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)","Content-Type":"text/plain; charset=UTF-8",Language:"eu","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\n"},msgstr:["Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eu\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundo geratzen dira"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} geratzen da"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["segundo batzuk geratzen dira"]},Add:{msgid:"Add",msgstr:["Gehitu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ezeztatu igoerak"]},"estimating time left":{msgid:"estimating time left",msgstr:["kalkulatutako geratzen den denbora"]},paused:{msgid:"paused",msgstr:["geldituta"]},"Upload files":{msgid:"Upload files",msgstr:["Igo fitxategiak"]}}}}},{locale:"fa",json:{charset:"utf-8",headers:{"Last-Translator":"Fatemeh Komeily, 2023","Language-Team":"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)","Content-Type":"text/plain; charset=UTF-8",Language:"fa","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nFatemeh Komeily, 2023\n"},msgstr:["Last-Translator: Fatemeh Komeily, 2023\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fa\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["ثانیه های باقی مانده"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["باقی مانده"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["چند ثانیه مانده"]},Add:{msgid:"Add",msgstr:["اضافه کردن"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["کنسل کردن فایل های اپلود شده"]},"estimating time left":{msgid:"estimating time left",msgstr:["تخمین زمان باقی مانده"]},paused:{msgid:"paused",msgstr:["مکث کردن"]},"Upload files":{msgid:"Upload files",msgstr:["بارگذاری فایل ها"]}}}}},{locale:"fi_FI",json:{charset:"utf-8",headers:{"Last-Translator":"Jiri Grönroos <jiri.gronroos@iki.fi>, 2022","Language-Team":"Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)","Content-Type":"text/plain; charset=UTF-8",Language:"fi_FI","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJiri Grönroos <jiri.gronroos@iki.fi>, 2022\n"},msgstr:["Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>, 2022\nLanguage-Team: Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fi_FI\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekuntia jäljellä"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} jäljellä"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["muutama sekunti jäljellä"]},Add:{msgid:"Add",msgstr:["Lisää"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Peruuta lähetykset"]},"estimating time left":{msgid:"estimating time left",msgstr:["arvioidaan jäljellä olevaa aikaa"]},paused:{msgid:"paused",msgstr:["keskeytetty"]},"Upload files":{msgid:"Upload files",msgstr:["Lähetä tiedostoja"]}}}}},{locale:"fo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)","Content-Type":"text/plain; charset=UTF-8",Language:"fo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"fr",json:{charset:"utf-8",headers:{"Last-Translator":"jed boulahya, 2024","Language-Team":"French (https://app.transifex.com/nextcloud/teams/64236/fr/)","Content-Type":"text/plain; charset=UTF-8",Language:"fr","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nBenoit Pruneau, 2024\njed boulahya, 2024\n"},msgstr:["Last-Translator: jed boulahya, 2024\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fr\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fichier en conflit","{count} fichiers en conflit","{count} fichiers en conflit"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fichier en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secondes restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restant"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quelques secondes restantes"]},Cancel:{msgid:"Cancel",msgstr:["Annuler"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuler l'opération entière"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuler les envois"]},Continue:{msgid:"Continue",msgstr:["Continuer"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimation du temps restant"]},"Existing version":{msgid:"Existing version",msgstr:["Version existante"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Si vous sélectionnez les deux versions, le fichier copié aura un numéro ajouté àname."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Date de la dernière modification est inconnue"]},New:{msgid:"New",msgstr:["Nouveau"]},"New version":{msgid:"New version",msgstr:["Nouvelle version"]},paused:{msgid:"paused",msgstr:["en pause"]},"Preview image":{msgid:"Preview image",msgstr:["Aperçu de l'image"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Sélectionner toutes les cases à cocher"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Sélectionner tous les fichiers existants"]},"Select all new files":{msgid:"Select all new files",msgstr:["Sélectionner tous les nouveaux fichiers"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ignorer ce fichier","Ignorer {count} fichiers","Ignorer {count} fichiers"]},"Unknown size":{msgid:"Unknown size",msgstr:["Taille inconnue"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:[" annulé"]},"Upload files":{msgid:"Upload files",msgstr:["Téléchargement des fichiers"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progression du téléchargement"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quels fichiers souhaitez-vous conserver ?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Vous devez sélectionner au moins une version de chaque fichier pour continuer."]}}}}},{locale:"gd",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)","Content-Type":"text/plain; charset=UTF-8",Language:"gd","Plural-Forms":"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gd\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"gl",json:{charset:"utf-8",headers:{"Last-Translator":"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2023","Language-Team":"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)","Content-Type":"text/plain; charset=UTF-8",Language:"gl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nNacho <nacho.vfranco@gmail.com>, 2023\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2023\n"},msgstr:["Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2023\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflito de ficheiros","{count} conflitos de ficheiros"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflito de ficheiros en {dirname}","{count} conflitos de ficheiros en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["faltan {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["falta {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltan uns segundos"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envíos"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"estimating time left":{msgid:"estimating time left",msgstr:["calculando canto tempo falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Se selecciona ambas as versións, o ficheiro copiado terá un número engadido ao seu nome."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificación descoñecida"]},New:{msgid:"New",msgstr:["Nova"]},"New version":{msgid:"New version",msgstr:["Nova versión"]},paused:{msgid:"paused",msgstr:["detido"]},"Preview image":{msgid:"Preview image",msgstr:["Vista previa da imaxe"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar todas as caixas de selección"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos os ficheiros existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos os ficheiros novos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omita este ficheiro","Omitir {count} ficheiros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño descoñecido"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Envío cancelado"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso do envío"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Que ficheiros quere conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar polo menos unha versión de cada ficheiro para continuar."]}}}}},{locale:"he",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)","Content-Type":"text/plain; charset=UTF-8",Language:"he","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: he\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hi_IN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)","Content-Type":"text/plain; charset=UTF-8",Language:"hi_IN","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hi_IN\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)","Content-Type":"text/plain; charset=UTF-8",Language:"hr","Plural-Forms":"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hr\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hsb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)","Content-Type":"text/plain; charset=UTF-8",Language:"hsb","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hsb\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hu",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)","Content-Type":"text/plain; charset=UTF-8",Language:"hu","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hu_HU",json:{charset:"utf-8",headers:{"Last-Translator":"Balázs Úr, 2022","Language-Team":"Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)","Content-Type":"text/plain; charset=UTF-8",Language:"hu_HU","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nBalázs Meskó <meskobalazs@mailbox.org>, 2022\nBalázs Úr, 2022\n"},msgstr:["Last-Translator: Balázs Úr, 2022\nLanguage-Team: Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu_HU\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{} másodperc van hátra"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} van hátra"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["pár másodperc van hátra"]},Add:{msgid:"Add",msgstr:["Hozzáadás"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Feltöltések megszakítása"]},"estimating time left":{msgid:"estimating time left",msgstr:["hátralévő idő becslése"]},paused:{msgid:"paused",msgstr:["szüneteltetve"]},"Upload files":{msgid:"Upload files",msgstr:["Fájlok feltöltése"]}}}}},{locale:"hy",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)","Content-Type":"text/plain; charset=UTF-8",Language:"hy","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hy\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ia",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)","Content-Type":"text/plain; charset=UTF-8",Language:"ia","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ia\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"id",json:{charset:"utf-8",headers:{"Last-Translator":"Linerly <linerly@proton.me>, 2023","Language-Team":"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)","Content-Type":"text/plain; charset=UTF-8",Language:"id","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nEmpty Slot Filler, 2023\nLinerly <linerly@proton.me>, 2023\n"},msgstr:["Last-Translator: Linerly <linerly@proton.me>, 2023\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: id\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} berkas berkonflik"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} berkas berkonflik dalam {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} detik tersisa"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tersisa"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["tinggal sebentar lagi"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Batalkan unggahan"]},Continue:{msgid:"Continue",msgstr:["Lanjutkan"]},"estimating time left":{msgid:"estimating time left",msgstr:["memperkirakan waktu yang tersisa"]},"Existing version":{msgid:"Existing version",msgstr:["Versi yang ada"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Tanggal perubahan terakhir tidak diketahui"]},New:{msgid:"New",msgstr:["Baru"]},"New version":{msgid:"New version",msgstr:["Versi baru"]},paused:{msgid:"paused",msgstr:["dijeda"]},"Preview image":{msgid:"Preview image",msgstr:["Gambar pratinjau"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak centang"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Pilih semua berkas yang ada"]},"Select all new files":{msgid:"Select all new files",msgstr:["Pilih semua berkas baru"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Lewati {count} berkas"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukuran tidak diketahui"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Unggahan dibatalkan"]},"Upload files":{msgid:"Upload files",msgstr:["Unggah berkas"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Berkas mana yang Anda ingin tetap simpan?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan."]}}}}},{locale:"ig",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)","Content-Type":"text/plain; charset=UTF-8",Language:"ig","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ig\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"is",json:{charset:"utf-8",headers:{"Last-Translator":"Sveinn í Felli <sv1@fellsnet.is>, 2023","Language-Team":"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)","Content-Type":"text/plain; charset=UTF-8",Language:"is","Plural-Forms":"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nSveinn í Felli <sv1@fellsnet.is>, 2023\n"},msgstr:["Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2023\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: is\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} árekstur skráa","{count} árekstrar skráa"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} árekstur skráa í {dirname}","{count} árekstrar skráa í {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekúndur eftir"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} eftir"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["nokkrar sekúndur eftir"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hætta við innsendingar"]},Continue:{msgid:"Continue",msgstr:["Halda áfram"]},"estimating time left":{msgid:"estimating time left",msgstr:["áætla tíma sem eftir er"]},"Existing version":{msgid:"Existing version",msgstr:["Fyrirliggjandi útgáfa"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti afrituðu skrárinnar."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Síðasta breytingadagsetning er óþekkt"]},New:{msgid:"New",msgstr:["Nýtt"]},"New version":{msgid:"New version",msgstr:["Ný útgáfa"]},paused:{msgid:"paused",msgstr:["í bið"]},"Preview image":{msgid:"Preview image",msgstr:["Forskoðun myndar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velja gátreiti"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velja allar fyrirliggjandi skrár"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velja allar nýjar skrár"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Sleppa þessari skrá","Sleppa {count} skrám"]},"Unknown size":{msgid:"Unknown size",msgstr:["Óþekkt stærð"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Hætt við innsendingu"]},"Upload files":{msgid:"Upload files",msgstr:["Senda inn skrár"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvaða skrám vilt þú vilt halda eftir?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram."]}}}}},{locale:"it",json:{charset:"utf-8",headers:{"Last-Translator":"Random_R, 2023","Language-Team":"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)","Content-Type":"text/plain; charset=UTF-8",Language:"it","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nLep Lep, 2023\nRandom_R, 2023\n"},msgstr:["Last-Translator: Random_R, 2023\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file in conflitto","{count} file in conflitto","{count} file in conflitto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secondi rimanenti "]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} rimanente"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alcuni secondi rimanenti"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annulla i caricamenti"]},Continue:{msgid:"Continue",msgstr:["Continua"]},"estimating time left":{msgid:"estimating time left",msgstr:["calcolo il tempo rimanente"]},"Existing version":{msgid:"Existing version",msgstr:["Versione esistente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero "]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ultima modifica sconosciuta"]},New:{msgid:"New",msgstr:["Nuovo"]},"New version":{msgid:"New version",msgstr:["Nuova versione"]},paused:{msgid:"paused",msgstr:["pausa"]},"Preview image":{msgid:"Preview image",msgstr:["Anteprima immagine"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleziona tutte le caselle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleziona tutti i file esistenti"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleziona tutti i nuovi file"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Salta questo file","Salta {count} file","Salta {count} file"]},"Unknown size":{msgid:"Unknown size",msgstr:["Dimensione sconosciuta"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Caricamento cancellato"]},"Upload files":{msgid:"Upload files",msgstr:["Carica i file"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quali file vuoi mantenere?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Devi selezionare almeno una versione di ogni file per continuare"]}}}}},{locale:"it_IT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)","Content-Type":"text/plain; charset=UTF-8",Language:"it_IT","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it_IT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ja_JP",json:{charset:"utf-8",headers:{"Last-Translator":"かたかめ, 2022","Language-Team":"Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)","Content-Type":"text/plain; charset=UTF-8",Language:"ja_JP","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nT.S, 2022\nかたかめ, 2022\n"},msgstr:["Last-Translator: かたかめ, 2022\nLanguage-Team: Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ja_JP\nPlural-Forms: nplurals=1; plural=0;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["残り {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["残り {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["残り数秒"]},Add:{msgid:"Add",msgstr:["追加"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["アップロードをキャンセル"]},"estimating time left":{msgid:"estimating time left",msgstr:["概算残り時間"]},paused:{msgid:"paused",msgstr:["一時停止中"]},"Upload files":{msgid:"Upload files",msgstr:["ファイルをアップデート"]}}}}},{locale:"ka",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ka_GE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka_GE","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka_GE\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kab",json:{charset:"utf-8",headers:{"Last-Translator":"ZiriSut, 2023","Language-Team":"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)","Content-Type":"text/plain; charset=UTF-8",Language:"kab","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nZiriSut, 2023\n"},msgstr:["Last-Translator: ZiriSut, 2023\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kab\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} tesdatin i d-yeqqimen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} i d-yeqqimen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["qqiment-d kra n tesdatin kan"]},Add:{msgid:"Add",msgstr:["Rnu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Sefsex asali"]},"estimating time left":{msgid:"estimating time left",msgstr:["asizel n wakud i d-yeqqimen"]},paused:{msgid:"paused",msgstr:["yeḥbes"]},"Upload files":{msgid:"Upload files",msgstr:["Sali-d ifuyla"]}}}}},{locale:"kk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)","Content-Type":"text/plain; charset=UTF-8",Language:"kk","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kk\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"km",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)","Content-Type":"text/plain; charset=UTF-8",Language:"km","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: km\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kn",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)","Content-Type":"text/plain; charset=UTF-8",Language:"kn","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kn\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ko",json:{charset:"utf-8",headers:{"Last-Translator":"Brandon Han, 2024","Language-Team":"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)","Content-Type":"text/plain; charset=UTF-8",Language:"ko","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nhosun Lee, 2023\nBrandon Han, 2024\n"},msgstr:["Last-Translator: Brandon Han, 2024\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ko\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}개의 파일이 충돌함"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname}에서 {count}개의 파일이 충돌함"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} 남음"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} 남음"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["곧 완료"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["업로드 취소"]},Continue:{msgid:"Continue",msgstr:["확인"]},"estimating time left":{msgid:"estimating time left",msgstr:["남은 시간 계산"]},"Existing version":{msgid:"Existing version",msgstr:["현재 버전"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["두 버전을 모두 선택할 경우, 복제된 파일 이름에 숫자가 추가됩니다."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["최근 수정일 알 수 없음"]},New:{msgid:"New",msgstr:["새로 만들기"]},"New version":{msgid:"New version",msgstr:["새 버전"]},paused:{msgid:"paused",msgstr:["일시정지됨"]},"Preview image":{msgid:"Preview image",msgstr:["미리보기 이미지"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["모든 체크박스 선택"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["모든 파일 선택"]},"Select all new files":{msgid:"Select all new files",msgstr:["모든 새 파일 선택"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count}개의 파일 넘기기"]},"Unknown size":{msgid:"Unknown size",msgstr:["크기를 알 수 없음"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["업로드 취소됨"]},"Upload files":{msgid:"Upload files",msgstr:["파일 업로드"]},"Upload progress":{msgid:"Upload progress",msgstr:["업로드 진행도"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["어떤 파일을 보존하시겠습니까?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다."]}}}}},{locale:"la",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)","Content-Type":"text/plain; charset=UTF-8",Language:"la","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: la\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)","Content-Type":"text/plain; charset=UTF-8",Language:"lb","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lb\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)","Content-Type":"text/plain; charset=UTF-8",Language:"lo","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lo\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lt_LT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)","Content-Type":"text/plain; charset=UTF-8",Language:"lt_LT","Plural-Forms":"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lt_LT\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lv",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)","Content-Type":"text/plain; charset=UTF-8",Language:"lv","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lv\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"mk",json:{charset:"utf-8",headers:{"Last-Translator":"Сашко Тодоров <sasetodorov@gmail.com>, 2022","Language-Team":"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)","Content-Type":"text/plain; charset=UTF-8",Language:"mk","Plural-Forms":"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nСашко Тодоров <sasetodorov@gmail.com>, 2022\n"},msgstr:["Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mk\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостануваат {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["преостанува {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["уште неколку секунди"]},Add:{msgid:"Add",msgstr:["Додади"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Прекини прикачување"]},"estimating time left":{msgid:"estimating time left",msgstr:["приближно преостанато време"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Upload files":{msgid:"Upload files",msgstr:["Прикачување датотеки"]}}}}},{locale:"mn",json:{charset:"utf-8",headers:{"Last-Translator":"BATKHUYAG Ganbold, 2023","Language-Team":"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)","Content-Type":"text/plain; charset=UTF-8",Language:"mn","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nBATKHUYAG Ganbold, 2023\n"},msgstr:["Last-Translator: BATKHUYAG Ganbold, 2023\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mn\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} секунд үлдсэн"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} үлдсэн"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["хэдхэн секунд үлдсэн"]},Add:{msgid:"Add",msgstr:["Нэмэх"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Илгээлтийг цуцлах"]},"estimating time left":{msgid:"estimating time left",msgstr:["Үлдсэн хугацааг тооцоолж байна"]},paused:{msgid:"paused",msgstr:["түр зогсоосон"]},"Upload files":{msgid:"Upload files",msgstr:["Файл илгээх"]}}}}},{locale:"mr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)","Content-Type":"text/plain; charset=UTF-8",Language:"mr","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mr\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ms_MY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)","Content-Type":"text/plain; charset=UTF-8",Language:"ms_MY","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ms_MY\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"my",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)","Content-Type":"text/plain; charset=UTF-8",Language:"my","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: my\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nb_NO",json:{charset:"utf-8",headers:{"Last-Translator":"Syvert Fossdal, 2024","Language-Team":"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nb_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nSyvert Fossdal, 2024\n"},msgstr:["Last-Translator: Syvert Fossdal, 2024\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nb_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekunder igjen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} igjen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["noen få sekunder igjen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt opplastninger"]},Continue:{msgid:"Continue",msgstr:["Fortsett"]},"estimating time left":{msgid:"estimating time left",msgstr:["Estimerer tid igjen"]},"Existing version":{msgid:"Existing version",msgstr:["Gjeldende versjon"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Hvis du velger begge versjoner, vil den kopierte filen få et tall lagt til navnet."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Siste gang redigert ukjent"]},New:{msgid:"New",msgstr:["Ny"]},"New version":{msgid:"New version",msgstr:["Ny versjon"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvis bilde"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velg alle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velg alle nye filer"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Hopp over {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukjent størrelse"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Opplasting avbrutt"]},"Upload files":{msgid:"Upload files",msgstr:["Last opp filer"]},"Upload progress":{msgid:"Upload progress",msgstr:["Fremdrift, opplasting"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du beholde?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du må velge minst en versjon av hver fil for å fortsette."]}}}}},{locale:"ne",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)","Content-Type":"text/plain; charset=UTF-8",Language:"ne","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ne\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nl",json:{charset:"utf-8",headers:{"Last-Translator":"Rico <rico-schwab@hotmail.com>, 2023","Language-Team":"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)","Content-Type":"text/plain; charset=UTF-8",Language:"nl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRico <rico-schwab@hotmail.com>, 2023\n"},msgstr:["Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Nog {seconds} seconden"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{seconds} over"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Nog een paar seconden"]},Add:{msgid:"Add",msgstr:["Voeg toe"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Uploads annuleren"]},"estimating time left":{msgid:"estimating time left",msgstr:["Schatting van de resterende tijd"]},paused:{msgid:"paused",msgstr:["Gepauzeerd"]},"Upload files":{msgid:"Upload files",msgstr:["Upload bestanden"]}}}}},{locale:"nn",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)","Content-Type":"text/plain; charset=UTF-8",Language:"nn","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nn_NO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nn_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"oc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)","Content-Type":"text/plain; charset=UTF-8",Language:"oc","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: oc\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pl",json:{charset:"utf-8",headers:{"Last-Translator":"Valdnet, 2024","Language-Team":"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)","Content-Type":"text/plain; charset=UTF-8",Language:"pl","Plural-Forms":"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nM H <haincu@o2.pl>, 2023\nValdnet, 2024\n"},msgstr:["Last-Translator: Valdnet, 2024\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pl\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["konflikt 1 pliku","{count} konfliktów plików","{count} konfliktów plików","{count} konfliktów plików"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} konfliktowy plik w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Pozostało {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Pozostało {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Pozostało kilka sekund"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anuluj wysyłanie"]},Continue:{msgid:"Continue",msgstr:["Kontynuuj"]},"estimating time left":{msgid:"estimating time left",msgstr:["Szacowanie pozostałego czasu"]},"Existing version":{msgid:"Existing version",msgstr:["Istniejąca wersja"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Jeżeli wybierzesz obie wersje to do nazw skopiowanych plików zostanie dodany numer"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Nieznana data ostatniej modyfikacji"]},New:{msgid:"New",msgstr:["Nowy"]},"New version":{msgid:"New version",msgstr:["Nowa wersja"]},paused:{msgid:"paused",msgstr:["Wstrzymane"]},"Preview image":{msgid:"Preview image",msgstr:["Podgląd obrazu"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Zaznacz wszystkie boxy"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Zaznacz wszystkie istniejące pliki"]},"Select all new files":{msgid:"Select all new files",msgstr:["Zaznacz wszystkie nowe pliki"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Pomiń 1 plik","Pomiń {count} plików","Pomiń {count} plików","Pomiń {count} plików"]},"Unknown size":{msgid:"Unknown size",msgstr:["Nieznany rozmiar"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Anulowano wysyłanie"]},"Upload files":{msgid:"Upload files",msgstr:["Wyślij pliki"]},"Upload progress":{msgid:"Upload progress",msgstr:["Postęp wysyłania"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Które pliki chcesz zachować"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku."]}}}}},{locale:"ps",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)","Content-Type":"text/plain; charset=UTF-8",Language:"ps","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ps\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pt_BR",json:{charset:"utf-8",headers:{"Last-Translator":"Leonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024","Language-Team":"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_BR","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\n"},msgstr:["Last-Translator: Leonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_BR\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} arquivos em conflito","{count} arquivos em conflito","{count} arquivos em conflito"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alguns segundos restantes"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar a operação inteira"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar uploads"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versão existente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, o arquivo copiado terá um número adicionado ao seu nome."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},New:{msgid:"New",msgstr:["Novo"]},"New version":{msgid:"New version",msgstr:["Nova versão"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Visualizar imagem"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marque todas as caixas de seleção"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Selecione todos os arquivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Selecione todos os novos arquivos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ignorar {count} arquivos","Ignorar {count} arquivos","Ignorar {count} arquivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamanho desconhecido"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Envio cancelado"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar arquivos"]},"Upload progress":{msgid:"Upload progress",msgstr:["Envio em progresso"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando uma pasta é selecionada, quaisquer arquivos dentro dela também serão sobrescritos."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quais arquivos você deseja manter?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Você precisa selecionar pelo menos uma versão de cada arquivo para continuar."]}}}}},{locale:"pt_PT",json:{charset:"utf-8",headers:{"Last-Translator":"Manuela Silva <mmsrs@sky.com>, 2022","Language-Team":"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_PT","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nManuela Silva <mmsrs@sky.com>, 2022\n"},msgstr:["Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_PT\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["faltam {seconds} segundo(s)"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["faltam {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltam uns segundos"]},Add:{msgid:"Add",msgstr:["Adicionar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envios"]},"estimating time left":{msgid:"estimating time left",msgstr:["tempo em falta estimado"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]}}}}},{locale:"ro",json:{charset:"utf-8",headers:{"Last-Translator":"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022","Language-Team":"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)","Content-Type":"text/plain; charset=UTF-8",Language:"ro","Plural-Forms":"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\n"},msgstr:["Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ro\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secunde rămase"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} rămas"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["câteva secunde rămase"]},Add:{msgid:"Add",msgstr:["Adaugă"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anulați încărcările"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimarea timpului rămas"]},paused:{msgid:"paused",msgstr:["pus pe pauză"]},"Upload files":{msgid:"Upload files",msgstr:["Încarcă fișiere"]}}}}},{locale:"ru",json:{charset:"utf-8",headers:{"Last-Translator":"Александр, 2023","Language-Team":"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)","Content-Type":"text/plain; charset=UTF-8",Language:"ru","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nMax Smith <sevinfolds@gmail.com>, 2023\nАлександр, 2023\n"},msgstr:["Last-Translator: Александр, 2023\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["конфликт {count} файла","конфликт {count} файлов","конфликт {count} файлов","конфликт {count} файлов"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["конфликт {count} файла в {dirname}","конфликт {count} файлов в {dirname}","конфликт {count} файлов в {dirname}","конфликт {count} файлов в {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["осталось {seconds} секунд"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["осталось {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["осталось несколько секунд"]},Add:{msgid:"Add",msgstr:["Добавить"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Отменить загрузки"]},Continue:{msgid:"Continue",msgstr:["Продолжить"]},"estimating time left":{msgid:"estimating time left",msgstr:["оценка оставшегося времени"]},"Existing version":{msgid:"Existing version",msgstr:["Текущая версия"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Если вы выберете обе версии, к имени скопированного файла будет добавлен номер."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата последнего изменения неизвестна"]},"New version":{msgid:"New version",msgstr:["Новая версия"]},paused:{msgid:"paused",msgstr:["приостановлено"]},"Preview image":{msgid:"Preview image",msgstr:["Предварительный просмотр"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Установить все флажки"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Выбрать все существующие файлы"]},"Select all new files":{msgid:"Select all new files",msgstr:["Выбрать все новые файлы"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Пропустить файл","Пропустить {count} файла","Пропустить {count} файлов","Пропустить {count} файлов"]},"Unknown size":{msgid:"Unknown size",msgstr:["Неизвестный размер"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Загрузка отменена"]},"Upload files":{msgid:"Upload files",msgstr:["Загрузка файлов"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Какие файлы вы хотите сохранить?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла."]}}}}},{locale:"ru_RU",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)","Content-Type":"text/plain; charset=UTF-8",Language:"ru_RU","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru_RU\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)","Content-Type":"text/plain; charset=UTF-8",Language:"sc","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sc\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"si",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)","Content-Type":"text/plain; charset=UTF-8",Language:"si","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"si_LK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)","Content-Type":"text/plain; charset=UTF-8",Language:"si_LK","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si_LK\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sk_SK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)","Content-Type":"text/plain; charset=UTF-8",Language:"sk_SK","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sk_SK\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sl",json:{charset:"utf-8",headers:{"Last-Translator":"Matej Urbančič <>, 2022","Language-Team":"Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)","Content-Type":"text/plain; charset=UTF-8",Language:"sl","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMatej Urbančič <>, 2022\n"},msgstr:["Last-Translator: Matej Urbančič <>, 2022\nLanguage-Team: Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["še {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["še {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["še nekaj sekund"]},Add:{msgid:"Add",msgstr:["Dodaj"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Prekliči pošiljanje"]},"estimating time left":{msgid:"estimating time left",msgstr:["ocenjen čas do konca"]},paused:{msgid:"paused",msgstr:["v premoru"]},"Upload files":{msgid:"Upload files",msgstr:["Pošlji datoteke"]}}}}},{locale:"sl_SI",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)","Content-Type":"text/plain; charset=UTF-8",Language:"sl_SI","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl_SI\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sq",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)","Content-Type":"text/plain; charset=UTF-8",Language:"sq","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sq\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sr",json:{charset:"utf-8",headers:{"Last-Translator":"Иван Пешић, 2023","Language-Team":"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nИван Пешић, 2023\n"},msgstr:["Last-Translator: Иван Пешић, 2023\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} фајл конфликт","{count} фајл конфликта","{count} фајл конфликта"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} фајл конфликт у {dirname}","{count} фајл конфликта у {dirname}","{count} фајл конфликта у {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостало је {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} преостало"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["преостало је неколико секунди"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Обустави отпремања"]},Continue:{msgid:"Continue",msgstr:["Настави"]},"estimating time left":{msgid:"estimating time left",msgstr:["процена преосталог времена"]},"Existing version":{msgid:"Existing version",msgstr:["Постојећа верзија"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Ако изаберете обе верзије, на име копираног фајла ће се додати број."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Није познат датум последње измене"]},New:{msgid:"New",msgstr:["Ново"]},"New version":{msgid:"New version",msgstr:["Нова верзија"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Preview image":{msgid:"Preview image",msgstr:["Слика прегледа"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Штиклирај сва поља за штиклирање"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Изабери све постојеће фајлове"]},"Select all new files":{msgid:"Select all new files",msgstr:["Изабери све нове фајлове"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Прескочи овај фајл","Прескочи {count} фајла","Прескочи {count} фајлова"]},"Unknown size":{msgid:"Unknown size",msgstr:["Непозната величина"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Отпремање је отказано"]},"Upload files":{msgid:"Upload files",msgstr:["Отпреми фајлове"]},"Upload progress":{msgid:"Upload progress",msgstr:["Напредак отпремања"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Које фајлове желите да задржите?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Морате да изаберете барем једну верзију сваког фајла да наставите."]}}}}},{locale:"sr@latin",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr@latin","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr@latin\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sv",json:{charset:"utf-8",headers:{"Last-Translator":"Magnus Höglund, 2024","Language-Team":"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)","Content-Type":"text/plain; charset=UTF-8",Language:"sv","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMagnus Höglund, 2024\n"},msgstr:["Last-Translator: Magnus Höglund, 2024\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sv\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} filkonflikt","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} filkonflikt i {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekunder kvarstår"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kvarstår"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["några sekunder kvar"]},Cancel:{msgid:"Cancel",msgstr:["Avbryt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Avbryt hela operationen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt uppladdningar"]},Continue:{msgid:"Continue",msgstr:["Fortsätt"]},"estimating time left":{msgid:"estimating time left",msgstr:["uppskattar kvarstående tid"]},"Existing version":{msgid:"Existing version",msgstr:["Nuvarande version"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Om du väljer båda versionerna kommer den kopierade filen att få ett nummer tillagt  i namnet."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Senaste ändringsdatum okänt"]},New:{msgid:"New",msgstr:["Ny"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pausad"]},"Preview image":{msgid:"Preview image",msgstr:["Förhandsgranska bild"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Markera alla kryssrutor"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Välj alla befintliga filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Välj alla nya filer"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Hoppa över denna fil","Hoppa över {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Okänd storlek"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Uppladdningen avbröts"]},"Upload files":{msgid:"Upload files",msgstr:["Ladda upp filer"]},"Upload progress":{msgid:"Upload progress",msgstr:["Uppladdningsförlopp"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs skrivs även alla konfliktande filer i den över."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Vilka filer vill du behålla?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du måste välja minst en version av varje fil för att fortsätta."]}}}}},{locale:"sw",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)","Content-Type":"text/plain; charset=UTF-8",Language:"sw","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sw\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ta",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)","Content-Type":"text/plain; charset=UTF-8",Language:"ta","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ta_LK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)","Content-Type":"text/plain; charset=UTF-8",Language:"ta_LK","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta_LK\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"th",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Thai (https://www.transifex.com/nextcloud/teams/64236/th/)","Content-Type":"text/plain; charset=UTF-8",Language:"th","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Thai (https://www.transifex.com/nextcloud/teams/64236/th/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"th_TH",json:{charset:"utf-8",headers:{"Last-Translator":"Phongpanot Phairat <ppnplus@protonmail.com>, 2022","Language-Team":"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)","Content-Type":"text/plain; charset=UTF-8",Language:"th_TH","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\n"},msgstr:["Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th_TH\nPlural-Forms: nplurals=1; plural=0;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["เหลืออีก {seconds} วินาที"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["เหลืออีก {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["เหลืออีกไม่กี่วินาที"]},Add:{msgid:"Add",msgstr:["เพิ่ม"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["ยกเลิกการอัปโหลด"]},"estimating time left":{msgid:"estimating time left",msgstr:["กำลังคำนวณเวลาที่เหลือ"]},paused:{msgid:"paused",msgstr:["หยุดชั่วคราว"]},"Upload files":{msgid:"Upload files",msgstr:["อัปโหลดไฟล์"]}}}}},{locale:"tk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)","Content-Type":"text/plain; charset=UTF-8",Language:"tk","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tk\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"tr",json:{charset:"utf-8",headers:{"Last-Translator":"Kaya Zeren <kayazeren@gmail.com>, 2024","Language-Team":"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)","Content-Type":"text/plain; charset=UTF-8",Language:"tr","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nKaya Zeren <kayazeren@gmail.com>, 2024\n"},msgstr:["Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2024\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tr\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} dosya çakışması var","{count} dosya çakışması var"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} klasöründe {count} dosya çakışması var","{dirname} klasöründe {count} dosya çakışması var"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saniye kaldı"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kaldı"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir kaç saniye kaldı"]},Cancel:{msgid:"Cancel",msgstr:["İptal"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Tüm işlemi iptal et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yüklemeleri iptal et"]},Continue:{msgid:"Continue",msgstr:["İlerle"]},"estimating time left":{msgid:"estimating time left",msgstr:["öngörülen kalan süre"]},"Existing version":{msgid:"Existing version",msgstr:["Var olan sürüm"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["İki sürümü de seçerseniz, kopyalanan dosyanın adına bir sayı eklenir."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Son değiştirilme tarihi bilinmiyor"]},New:{msgid:"New",msgstr:["Yeni"]},"New version":{msgid:"New version",msgstr:["Yeni sürüm"]},paused:{msgid:"paused",msgstr:["duraklatıldı"]},"Preview image":{msgid:"Preview image",msgstr:["Görsel ön izlemesi"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Tüm kutuları işaretle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Tüm var olan dosyaları seç"]},"Select all new files":{msgid:"Select all new files",msgstr:["Tüm yeni dosyaları seç"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Bu dosyayı atla","{count} dosyayı atla"]},"Unknown size":{msgid:"Unknown size",msgstr:["Boyut bilinmiyor"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Yükleme iptal edildi"]},"Upload files":{msgid:"Upload files",msgstr:["Dosyaları yükle"]},"Upload progress":{msgid:"Upload progress",msgstr:["Yükleme ilerlemesi"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hangi dosyaları tutmak istiyorsunuz?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz."]}}}}},{locale:"ug",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)","Content-Type":"text/plain; charset=UTF-8",Language:"ug","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ug\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uk",json:{charset:"utf-8",headers:{"Last-Translator":"O St <oleksiy.stasevych@gmail.com>, 2024","Language-Team":"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)","Content-Type":"text/plain; charset=UTF-8",Language:"uk","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nO St <oleksiy.stasevych@gmail.com>, 2024\n"},msgstr:["Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2024\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uk\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} конфліктний файл","{count} конфліктних файли","{count} конфліктних файлів","{count} конфліктних файлів"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} конфліктний файл у каталозі {dirname}","{count} конфліктних файли у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Залишилося {seconds} секунд"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Залишилося {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["залишилося кілька секунд"]},Cancel:{msgid:"Cancel",msgstr:["Скасувати"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Скасувати операцію повністю"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Скасувати завантаження"]},Continue:{msgid:"Continue",msgstr:["Продовжити"]},"estimating time left":{msgid:"estimating time left",msgstr:["оцінка часу, що залишився"]},"Existing version":{msgid:"Existing version",msgstr:["Присутня версія"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Якщо ви виберете обидві версії, то буде створено копію файлу, до назви якої буде додано цифру."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата останньої зміни невідома"]},New:{msgid:"New",msgstr:["Нове"]},"New version":{msgid:"New version",msgstr:["Нова версія"]},paused:{msgid:"paused",msgstr:["призупинено"]},"Preview image":{msgid:"Preview image",msgstr:["Попередній перегляд"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Вибрати все"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Вибрати усі присутні файли"]},"Select all new files":{msgid:"Select all new files",msgstr:["Вибрати усі нові файли"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Пропустити файл","Пропустити {count} файли","Пропустити {count} файлів","Пропустити {count} файлів"]},"Unknown size":{msgid:"Unknown size",msgstr:["Невідомий розмір"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Завантаження скасовано"]},"Upload files":{msgid:"Upload files",msgstr:["Завантажити файли"]},"Upload progress":{msgid:"Upload progress",msgstr:["Поступ завантаження"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Які файли залишити?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продовження потрібно вибрати принаймні одну версію для кожного файлу."]}}}}},{locale:"ur_PK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)","Content-Type":"text/plain; charset=UTF-8",Language:"ur_PK","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ur_PK\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uz",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)","Content-Type":"text/plain; charset=UTF-8",Language:"uz","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uz\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"vi",json:{charset:"utf-8",headers:{"Last-Translator":"Tung DangQuang, 2023","Language-Team":"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)","Content-Type":"text/plain; charset=UTF-8",Language:"vi","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nTung DangQuang, 2023\n"},msgstr:["Last-Translator: Tung DangQuang, 2023\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: vi\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Tập tin xung đột"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} tập tin lỗi trong {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Còn {second} giây"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Còn lại {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Còn lại một vài giây"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Huỷ tải lên"]},Continue:{msgid:"Continue",msgstr:["Tiếp Tục"]},"estimating time left":{msgid:"estimating time left",msgstr:["Thời gian còn lại dự kiến"]},"Existing version":{msgid:"Existing version",msgstr:["Phiên Bản Hiện Tại"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ngày sửa dổi lần cuối không xác định"]},New:{msgid:"New",msgstr:["Tạo Mới"]},"New version":{msgid:"New version",msgstr:["Phiên Bản Mới"]},paused:{msgid:"paused",msgstr:["đã tạm dừng"]},"Preview image":{msgid:"Preview image",msgstr:["Xem Trước Ảnh"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Chọn tất cả hộp checkbox"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Chọn tất cả các tập tin có sẵn"]},"Select all new files":{msgid:"Select all new files",msgstr:["Chọn tất cả các tập tin mới"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Bỏ Qua {count} tập tin"]},"Unknown size":{msgid:"Unknown size",msgstr:["Không rõ dung lượng"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Dừng Tải Lên"]},"Upload files":{msgid:"Upload files",msgstr:["Tập tin tải lên"]},"Upload progress":{msgid:"Upload progress",msgstr:["Đang Tải Lên"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Bạn muốn giữ tập tin nào?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục"]}}}}},{locale:"zh_CN",json:{charset:"utf-8",headers:{"Last-Translator":"Hongbo Chen, 2023","Language-Team":"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_CN","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nHongbo Chen, 2023\n"},msgstr:["Last-Translator: Hongbo Chen, 2023\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_CN\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}文件冲突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["在{dirname}目录下有{count}个文件冲突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩余 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩余 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["还剩几秒"]},Add:{msgid:"Add",msgstr:["添加"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上传"]},Continue:{msgid:"Continue",msgstr:["继续"]},"estimating time left":{msgid:"estimating time left",msgstr:["估计剩余时间"]},"Existing version":{msgid:"Existing version",msgstr:["版本已存在"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["如果选择所有的版本,新增版本的文件名为原文件名加数字"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["文件最后修改日期未知"]},"New version":{msgid:"New version",msgstr:["新版本"]},paused:{msgid:"paused",msgstr:["已暂停"]},"Preview image":{msgid:"Preview image",msgstr:["图片预览"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["选择所有的选择框"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["选择所有存在的文件"]},"Select all new files":{msgid:"Select all new files",msgstr:["选择所有的新文件"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["跳过{count}个文件"]},"Unknown size":{msgid:"Unknown size",msgstr:["文件大小未知"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["取消上传"]},"Upload files":{msgid:"Upload files",msgstr:["上传文件"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["你要保留哪些文件?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["每个文件至少选择一个版本"]}}}}},{locale:"zh_HK",json:{charset:"utf-8",headers:{"Last-Translator":"Café Tango, 2023","Language-Team":"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_HK","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nCafé Tango, 2023\n"},msgstr:["Last-Translator: Café Tango, 2023\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_HK\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},Add:{msgid:"Add",msgstr:["添加"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["若您選取兩個版本,複製的檔案的名稱將會新增編號。"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期不詳"]},"New version":{msgid:"New version",msgstr:["新版本 "]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 個檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["大小不詳"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["已取消上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}},{locale:"zh_TW",json:{charset:"utf-8",headers:{"Last-Translator":"黃柏諺 <s8321414@gmail.com>, 2024","Language-Team":"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_TW","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\n黃柏諺 <s8321414@gmail.com>, 2024\n"},msgstr:["Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_TW\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["若您選取兩個版本,複製的檔案的名稱將會新增編號。"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期未知"]},New:{msgid:"New",msgstr:["新增"]},"New version":{msgid:"New version",msgstr:["新版本"]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["未知大小"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["已取消上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Upload progress":{msgid:"Upload progress",msgstr:["上傳進度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}}].map((e=>se.addTranslation(e.locale,e.json)));const ne=se.build(),ae=ne.ngettext.bind(ne),ie=ne.gettext.bind(ne),re=j.Ay.extend({name:"UploadPicker",components:{Cancel:Q,NcActionButton:O.A,NcActions:z.A,NcButton:R.A,NcIconSvgWrapper:D.A,NcProgressBar:M.A,Plus:ee,Upload:te},props:{accept:{type:Array,default:null},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},destination:{type:v.vd,default:void 0},content:{type:Array,default:()=>[]},forbiddenCharacters:{type:Array,default:()=>[]}},data:()=>({addLabel:ie("New"),cancelLabel:ie("Cancel uploads"),uploadLabel:ie("Upload files"),progressLabel:ie("Upload progress"),progressTimeId:`nc-uploader-progress-${Math.random().toString(36).slice(7)}`,eta:null,timeLeft:"",newFileMenuEntries:[],uploadManager:le()}),computed:{totalQueueSize(){return this.uploadManager.info?.size||0},uploadedQueueSize(){return this.uploadManager.info?.progress||0},progress(){return Math.round(this.uploadedQueueSize/this.totalQueueSize*100)||0},queue(){return this.uploadManager.queue},hasFailure(){return 0!==this.queue?.filter((e=>e.status===W.FAILED)).length},isUploading(){return this.queue?.length>0},isAssembling(){return 0!==this.queue?.filter((e=>e.status===W.ASSEMBLING)).length},isPaused(){return this.uploadManager.info?.status===J.PAUSED},buttonName(){if(!this.isUploading)return this.addLabel}},watch:{destination(e){this.setDestination(e)},totalQueueSize(e){this.eta=I({min:0,max:e}),this.updateStatus()},uploadedQueueSize(e){this.eta?.report?.(e),this.updateStatus()},isPaused(e){e?this.$emit("paused",this.queue):this.$emit("resumed",this.queue)}},beforeMount(){this.destination&&this.setDestination(this.destination),this.uploadManager.addNotifier(this.onUploadCompletion),G.debug("UploadPicker initialised")},methods:{onClick(){this.$refs.input.click()},async onPick(){let e=[...this.$refs.input.files];if(me(e,this.content)){const t=e.filter((e=>this.content.find((t=>t.basename===e.name)))).filter(Boolean),s=e.filter((e=>!t.includes(e)));try{const{selected:n,renamed:a}=await de(this.destination.basename,t,this.content);e=[...s,...n,...a]}catch{return void(0,N.Qg)(ie("Upload cancelled"))}}e.forEach((e=>{const t=(this.forbiddenCharacters||[]).find((t=>e.name.includes(t)));t?(0,N.Qg)(ie(`"${t}" is not allowed inside a file name.`)):this.uploadManager.upload(e.name,e).catch((()=>{}))})),this.$refs.form.reset()},onCancel(){this.uploadManager.queue.forEach((e=>{e.cancel()})),this.$refs.form.reset()},updateStatus(){if(this.isPaused)return void(this.timeLeft=ie("paused"));const e=Math.round(this.eta.estimate());if(e!==1/0)if(e<10)this.timeLeft=ie("a few seconds left");else if(e>60){const t=new Date(0);t.setSeconds(e);const s=t.toISOString().slice(11,19);this.timeLeft=ie("{time} left",{time:s})}else this.timeLeft=ie("{seconds} seconds left",{seconds:e});else this.timeLeft=ie("estimating time left")},setDestination(e){this.destination?(this.uploadManager.destination=e,this.newFileMenuEntries=(0,v.m1)(e)):G.debug("Invalid destination")},onUploadCompletion(e){e.status===W.FAILED?this.$emit("failed",e):this.$emit("uploaded",e)}}});X(re,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.destination?t("form",{ref:"form",staticClass:"upload-picker",class:{"upload-picker--uploading":e.isUploading,"upload-picker--paused":e.isPaused},attrs:{"data-cy-upload-picker":""}},[e.newFileMenuEntries&&0===e.newFileMenuEntries.length?t("NcButton",{attrs:{disabled:e.disabled,"data-cy-upload-picker-add":"",type:"secondary"},on:{click:e.onClick},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Plus",{attrs:{title:"",size:20,decorative:""}})]},proxy:!0}],null,!1,2954875042)},[e._v(" "+e._s(e.buttonName)+" ")]):t("NcActions",{attrs:{"menu-name":e.buttonName,"menu-title":e.addLabel,type:"secondary"},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Plus",{attrs:{title:"",size:20,decorative:""}})]},proxy:!0}],null,!1,2954875042)},[t("NcActionButton",{attrs:{"data-cy-upload-picker-add":"","close-after-click":!0},on:{click:e.onClick},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Upload",{attrs:{title:"",size:20,decorative:""}})]},proxy:!0}],null,!1,3606034491)},[e._v(" "+e._s(e.uploadLabel)+" ")]),e._l(e.newFileMenuEntries,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0},on:{click:function(t){return s.handler(e.destination,e.content)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])}))],2),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isUploading,expression:"isUploading"}],staticClass:"upload-picker__progress"},[t("NcProgressBar",{attrs:{"aria-label":e.progressLabel,"aria-describedby":e.progressTimeId,error:e.hasFailure,value:e.progress,size:"medium"}}),t("p",{attrs:{id:e.progressTimeId}},[e._v(" "+e._s(e.timeLeft)+" ")])],1),e.isUploading?t("NcButton",{staticClass:"upload-picker__cancel",attrs:{type:"tertiary","aria-label":e.cancelLabel,"data-cy-upload-picker-cancel":""},on:{click:e.onCancel},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Cancel",{attrs:{title:"",size:20}})]},proxy:!0}],null,!1,4076886712)}):e._e(),t("input",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],ref:"input",attrs:{type:"file",accept:e.accept?.join?.(", "),multiple:e.multiple,"data-cy-upload-picker-input":""},on:{change:e.onPick}})],1):e._e()}),[],!1,null,"eca9500a",null,null).exports;let oe=null;function le(){const e=null!==document.querySelector('input[name="isPublic"][value="1"]');return oe instanceof Z||(oe=new Z(e)),oe}async function de(e,t,n){const a=(0,j.$V)((()=>Promise.all([s.e(4208),s.e(6075)]).then(s.bind(s,56075))));return new Promise(((s,i)=>{const r=new j.Ay({name:"ConflictPickerRoot",render:o=>o(a,{props:{dirname:e,conflicts:t,content:n},on:{submit(e){s(e),r.$destroy(),r.$el?.parentNode?.removeChild(r.$el)},cancel(e){i(e??new Error("Canceled")),r.$destroy(),r.$el?.parentNode?.removeChild(r.$el)}}})});r.$mount(),document.body.appendChild(r.$el)}))}function me(e,t){const s=t.map((e=>e.basename));return e.filter((e=>{const t=e instanceof File?e.name:e.basename;return-1!==s.indexOf(t)})).length>0}},88164:(e,t,s)=>{"use strict";s.d(t,{Jv:()=>i,dC:()=>n});const n=(e,t)=>{var s;return(null!=(s=null==t?void 0:t.baseURL)?s:r())+(e=>"/remote.php/"+e)(e)},a=(e,t,s)=>{const n=Object.assign({escape:!0},s||{});return"/"!==e.charAt(0)&&(e="/"+e),a=(a=t||{})||{},e.replace(/{([^{}]*)}/g,(function(e,t){const s=a[t];return n.escape?encodeURIComponent("string"==typeof s||"number"==typeof s?s.toString():e):"string"==typeof s||"number"==typeof s?s.toString():e}));var a},i=(e,t,s)=>{var n,i,r;const l=Object.assign({noRewrite:!1},s||{}),d=null!=(n=null==s?void 0:s.baseURL)?n:o();return!0!==(null==(r=null==(i=null==window?void 0:window.OC)?void 0:i.config)?void 0:r.modRewriteWorking)||l.noRewrite?d+"/index.php"+a(e,t,s):d+a(e,t,s)},r=()=>window.location.protocol+"//"+window.location.host+o();function o(){let e=window._oc_webroot;if(typeof e>"u"){e=location.pathname;const t=e.indexOf("/index.php/");if(-1!==t)e=e.slice(0,t);else{const t=e.indexOf("/",1);e=e.slice(0,t>0?t:void 0)}}return e}},53110:(e,t,s)=>{"use strict";s.d(t,{k3:()=>r,pe:()=>i});var n=s(28893);const{Axios:a,AxiosError:i,CanceledError:r,isCancel:o,CancelToken:l,VERSION:d,all:m,Cancel:c,isAxiosError:u,spread:g,toFormData:f,AxiosHeaders:p,HttpStatusCode:h,formToJSON:w,getAdapter:x,mergeConfig:v}=n.A}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={id:e,loaded:!1,exports:{}};return n[e].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}i.m=n,e=[],i.O=(t,s,n,a)=>{if(!s){var r=1/0;for(m=0;m<e.length;m++){s=e[m][0],n=e[m][1],a=e[m][2];for(var o=!0,l=0;l<s.length;l++)(!1&a||r>=a)&&Object.keys(i.O).every((e=>i.O[e](s[l])))?s.splice(l--,1):(o=!1,a<r&&(r=a));if(o){e.splice(m--,1);var d=n();void 0!==d&&(t=d)}}return t}a=a||0;for(var m=e.length;m>0&&e[m-1][2]>a;m--)e[m]=e[m-1];e[m]=[s,n,a]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,s)=>(i.f[s](e,t),t)),[])),i.u=e=>e+"-"+e+".js?v="+{1110:"2909496e7e35d6258214",5929:"2e5e3b59f8a28f14168b",6075:"f8e1d39004c19c13e598",8902:"bb2f9be8a039f8db7e58"}[e],i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},s="nextcloud:",i.l=(e,n,a,r)=>{if(t[e])t[e].push(n);else{var o,l;if(void 0!==a)for(var d=document.getElementsByTagName("script"),m=0;m<d.length;m++){var c=d[m];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==s+a){o=c;break}}o||(l=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,i.nc&&o.setAttribute("nonce",i.nc),o.setAttribute("data-webpack",s+a),o.src=e),t[e]=[n];var u=(s,n)=>{o.onerror=o.onload=null,clearTimeout(g);var a=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),a&&a.forEach((e=>e(n))),s)return s(n)},g=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),l&&document.head.appendChild(o)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.j=1171,(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var s=t.getElementsByTagName("script");if(s.length)for(var n=s.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=s[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{i.b=document.baseURI||self.location.href;var e={1171:0};i.f.j=(t,s)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)s.push(n[2]);else{var a=new Promise(((s,a)=>n=e[t]=[s,a]));s.push(n[2]=a);var r=i.p+i.u(t),o=new Error;i.l(r,(s=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=s&&("load"===s.type?"missing":s.type),r=s&&s.target&&s.target.src;o.message="Loading chunk "+t+" failed.\n("+a+": "+r+")",o.name="ChunkLoadError",o.type=a,o.request=r,n[1](o)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,s)=>{var n,a,r=s[0],o=s[1],l=s[2],d=0;if(r.some((t=>0!==e[t]))){for(n in o)i.o(o,n)&&(i.m[n]=o[n]);if(l)var m=l(i)}for(t&&t(s);d<r.length;d++)a=r[d],i.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return i.O(m)},s=self.webpackChunknextcloud=self.webpackChunknextcloud||[];s.forEach(t.bind(null,0)),s.push=t.bind(null,s.push.bind(s))})(),i.nc=void 0;var r=i.O(void 0,[4208],(()=>i(40586)));r=i.O(r)})();
-//# sourceMappingURL=files-init.js.map?v=1a063dcc671231d06e57
\ No newline at end of file
+(()=>{var e,t,s,n={9052:e=>{"use strict";var t=Object.prototype.hasOwnProperty,s="~";function n(){}function a(e,t,s){this.fn=e,this.context=t,this.once=s||!1}function i(e,t,n,i,r){if("function"!=typeof n)throw new TypeError("The listener must be a function");var o=new a(n,i||e,r),l=s?s+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function r(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function o(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(s=!1)),o.prototype.eventNames=function(){var e,n,a=[];if(0===this._eventsCount)return a;for(n in e=this._events)t.call(e,n)&&a.push(s?n.slice(1):n);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(e)):a},o.prototype.listeners=function(e){var t=s?s+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,i=n.length,r=new Array(i);a<i;a++)r[a]=n[a].fn;return r},o.prototype.listenerCount=function(e){var t=s?s+e:e,n=this._events[t];return n?n.fn?1:n.length:0},o.prototype.emit=function(e,t,n,a,i,r){var o=s?s+e:e;if(!this._events[o])return!1;var l,d,m=this._events[o],c=arguments.length;if(m.fn){switch(m.once&&this.removeListener(e,m.fn,void 0,!0),c){case 1:return m.fn.call(m.context),!0;case 2:return m.fn.call(m.context,t),!0;case 3:return m.fn.call(m.context,t,n),!0;case 4:return m.fn.call(m.context,t,n,a),!0;case 5:return m.fn.call(m.context,t,n,a,i),!0;case 6:return m.fn.call(m.context,t,n,a,i,r),!0}for(d=1,l=new Array(c-1);d<c;d++)l[d-1]=arguments[d];m.fn.apply(m.context,l)}else{var u,g=m.length;for(d=0;d<g;d++)switch(m[d].once&&this.removeListener(e,m[d].fn,void 0,!0),c){case 1:m[d].fn.call(m[d].context);break;case 2:m[d].fn.call(m[d].context,t);break;case 3:m[d].fn.call(m[d].context,t,n);break;case 4:m[d].fn.call(m[d].context,t,n,a);break;default:if(!l)for(u=1,l=new Array(c-1);u<c;u++)l[u-1]=arguments[u];m[d].fn.apply(m[d].context,l)}}return!0},o.prototype.on=function(e,t,s){return i(this,e,t,s,!1)},o.prototype.once=function(e,t,s){return i(this,e,t,s,!0)},o.prototype.removeListener=function(e,t,n,a){var i=s?s+e:e;if(!this._events[i])return this;if(!t)return r(this,i),this;var o=this._events[i];if(o.fn)o.fn!==t||a&&!o.once||n&&o.context!==n||r(this,i);else{for(var l=0,d=[],m=o.length;l<m;l++)(o[l].fn!==t||a&&!o[l].once||n&&o[l].context!==n)&&d.push(o[l]);d.length?this._events[i]=1===d.length?d[0]:d:r(this,i)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=s?s+e:e,this._events[t]&&r(this,t)):(this._events=new n,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=s,o.EventEmitter=o,e.exports=o},76150:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});const n=(0,s(53529).YK)().setApp("files").detectUser().build()},40586:(e,t,s)=>{"use strict";var n=s(35810),a=s(61338),i=s(53334),r=s(26287),o=s(76150),l=s(49264);const d=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"shared"===e.attributes["mount-type"])),m=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"external"===e.attributes["mount-type"])),c=new l.A({concurrency:5}),u=new n.hY({id:"delete",displayName:(e,t)=>"trashbin"===t.id?(0,i.Tl)("files","Delete permanently"):(e=>{if(1===e.length)return!1;const t=e.some((e=>d([e]))),s=e.some((e=>!d([e])));return t&&s})(e)?(0,i.Tl)("files","Delete and unshare"):d(e)?1===e.length?(0,i.Tl)("files","Leave this share"):(0,i.Tl)("files","Leave these shares"):m(e)?1===e.length?(0,i.Tl)("files","Disconnect storage"):(0,i.Tl)("files","Disconnect storages"):(e=>!e.some((e=>e.type!==n.pt.File)))(e)?1===e.length?(0,i.Tl)("files","Delete file"):(0,i.Tl)("files","Delete files"):(e=>!e.some((e=>e.type!==n.pt.Folder)))(e)?1===e.length?(0,i.Tl)("files","Delete folder"):(0,i.Tl)("files","Delete folders"):(0,i.Tl)("files","Delete"),iconSvgInline:e=>d(e)?'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-close" viewBox="0 0 24 24"><path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" /></svg>':m(e)?'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-network-off" viewBox="0 0 24 24"><path d="M1,5.27L5,9.27V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H17.73L19.73,24L21,22.72L2.28,4L1,5.27M15,20A1,1 0 0,0 14,19H13V17.27L15.73,20H15M17.69,16.87L5.13,4.31C5.41,3.55 6.14,3 7,3H17A2,2 0 0,1 19,5V15C19,15.86 18.45,16.59 17.69,16.87M22,20V21.18L20.82,20H22Z" /></svg>':'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-trash-can" viewBox="0 0 24 24"><path d="M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M9,8H11V17H9V8M13,8H15V17H13V8Z" /></svg>',enabled:e=>e.length>0&&e.map((e=>e.permissions)).every((e=>!!(e&n.aX.DELETE))),async exec(e,t,s){try{return await r.A.delete(e.encodedSource),(0,a.Ic)("files:node:deleted",e),!0}catch(t){return o.A.error("Error while deleting a file",{error:t,source:e.source,node:e}),!1}},async execBatch(e,t,s){const n=e.map((e=>new Promise((n=>{c.add((async()=>{const a=await this.exec(e,t,s);n(null!==a&&a)}))}))));return Promise.all(n)},order:100});var g=s(99498);const f=function(e){const t=document.createElement("a");t.download="",t.href=e,t.click()},p=function(e,t){const s=Math.random().toString(36).substring(2),n=(0,g.Jv)("/apps/files/ajax/download.php?dir={dir}&files={files}&downloadStartSecret={secret}",{dir:e,secret:s,files:JSON.stringify(t.map((e=>e.basename)))});f(n)},h=function(e){if(!(e.permissions&n.aX.READ))return!1;if("shared"===e.attributes["mount-type"]){var t,s;const n=JSON.parse(null!==(t=e.attributes["share-attributes"])&&void 0!==t?t:"null"),a=null==n||null===(s=n.find)||void 0===s?void 0:s.call(n,(e=>"permissions"===e.scope&&"download"===e.key));if(void 0!==a&&!1===a.enabled)return!1}return!0},w=new n.hY({id:"download",displayName:()=>(0,i.Tl)("files","Download"),iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-arrow-down" viewBox="0 0 24 24"><path d="M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z" /></svg>',enabled:e=>0!==e.length&&(!e.some((e=>e.type===n.pt.Folder))||!e.some((e=>{var t;return!(null!==(t=e.root)&&void 0!==t&&t.startsWith("/files"))})))&&e.every(h),exec:async(e,t,s)=>e.type===n.pt.Folder?(p(s,[e]),null):(f(e.encodedSource),null),async execBatch(e,t,s){return 1===e.length?(this.exec(e[0],t,s),[null]):(p(s,e),new Array(e.length).fill(null))},order:30});var x=s(71089),v=s(21777),T=s(85168);const A=new n.hY({id:"edit-locally",displayName:()=>(0,i.Tl)("files","Edit locally"),iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-laptop" viewBox="0 0 24 24"><path d="M4,6H20V16H4M20,18A2,2 0 0,0 22,16V6C22,4.89 21.1,4 20,4H4C2.89,4 2,4.89 2,6V16A2,2 0 0,0 4,18H0V20H24V18H20Z" /></svg>',enabled:e=>1===e.length&&!!(e[0].permissions&n.aX.UPDATE),exec:async e=>(async function(e){const t=(0,g.KT)("apps/files/api/v1")+"/openlocaleditor?format=json";try{var s;const n=await r.A.post(t,{path:e}),a=null===(s=(0,v.HW)())||void 0===s?void 0:s.uid;let i="nc://open/".concat(a,"@")+window.location.host+(0,x.O0)(e);i+="?token="+n.data.ocs.data.token,window.location.href=i}catch(e){(0,T.Qg)((0,i.Tl)("files","Failed to redirect to client"))}}(e.path),null),order:25});var y=s(85471);const C='<svg xmlns="http://www.w3.org/2000/svg" id="mdi-star" viewBox="0 0 24 24"><path d="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z" /></svg>',b=e=>e.some((e=>1!==e.attributes.favorite)),k=async(e,t,s)=>{try{const n=(0,g.Jv)("/apps/files/api/v1/files")+(0,x.O0)(e.path);return await r.A.post(n,{tags:s?[window.OC.TAG_FAVORITE]:[]}),"favorites"!==t.id||s||"/"!==e.dirname||(0,a.Ic)("files:node:deleted",e),y.Ay.set(e.attributes,"favorite",s?1:0),s?(0,a.Ic)("files:favorites:added",e):(0,a.Ic)("files:favorites:removed",e),!0}catch(t){const n=s?"adding a file to favourites":"removing a file from favourites";return o.A.error("Error while "+n,{error:t,source:e.source,node:e}),!1}},L=new n.hY({id:"favorite",displayName:e=>b(e)?(0,i.Tl)("files","Add to favorites"):(0,i.Tl)("files","Remove from favorites"),iconSvgInline:e=>b(e)?'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-star-outline" viewBox="0 0 24 24"><path d="M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z" /></svg>':C,enabled:e=>!e.some((e=>{var t,s;return!(null!==(t=e.root)&&void 0!==t&&null!==(s=t.startsWith)&&void 0!==s&&s.call(t,"/files"))}))&&e.every((e=>e.permissions!==n.aX.NONE)),async exec(e,t){const s=b([e]);return await k(e,t,s)},async execBatch(e,t){const s=b(e);return Promise.all(e.map((async e=>await k(e,t,s))))},order:-50});var _=s(85072),E=s.n(_),S=s(97825),B=s.n(S),F=s(77659),P=s.n(F),U=s(55056),N=s.n(U),I=s(10540),j=s.n(I),O=s(41113),z=s.n(O),R=s(14456),D={};D.styleTagTransform=z(),D.setAttributes=N(),D.insert=P().bind(null,"head"),D.domAPI=B(),D.insertStyleElement=j(),E()(R.A,D),R.A&&R.A.locals&&R.A.locals;var M=s(53110),V=s(43627),$=s(41261),H=s(36882),Y=s(39285);let W;var q;!function(e){e.MOVE="Move",e.COPY="Copy",e.MOVE_OR_COPY="move-or-copy"}(q||(q={}));const G=e=>!!(e.reduce(((e,t)=>Math.min(e,t.permissions)),n.aX.ALL)&n.aX.UPDATE),K=e=>(e=>e.every((e=>{var t,s;return!JSON.parse(null!==(t=null===(s=e.attributes)||void 0===s?void 0:s["share-attributes"])&&void 0!==t?t:"[]").some((e=>"permissions"===e.scope&&!1===e.enabled&&"download"===e.key))})))(e)&&!e.some((e=>e.permissions===n.aX.NONE));var J,Z=s(36117),X=s(44719);const Q="/files/".concat(null===(J=(0,v.HW)())||void 0===J?void 0:J.uid),ee=(0,g.dC)("dav"+Q),te=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ee;const t=(0,X.UU)(e),s=e=>{null==t||t.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:null!=e?e:""})};return(0,v.zo)(s),s((0,v.do)()),(0,X.Gu)().patch("fetch",((e,t)=>{const s=t.headers;return null!=s&&s.method&&(t.method=s.method,delete s.method),fetch(e,t)})),t},se=function(e){let t=0;for(let s=0;s<e.length;s++)t=(t<<5)-t+e.charCodeAt(s)|0;return t>>>0},ne=te(),ae=function(e){var t;const s=null===(t=(0,v.HW)())||void 0===t?void 0:t.uid;if(!s)throw new Error("No user id found");const a=e.props,i=(0,n.vb)(null==a?void 0:a.permissions),r=String(a["owner-id"]||s),o=(0,g.dC)("dav"+Q+e.filename),l={id:(null==a?void 0:a.fileid)<0?se(o):(null==a?void 0:a.fileid)||0,source:o,mtime:new Date(e.lastmod),mime:e.mime||"application/octet-stream",size:(null==a?void 0:a.size)||0,permissions:i,owner:r,root:Q,attributes:{...e,...a,"owner-id":r,"owner-display-name":String(a["owner-display-name"]),hasPreview:!(null==a||!a["has-preview"]),failed:(null==a?void 0:a.fileid)<0}};return delete l.attributes.props,"file"===e.type?new n.ZH(l):new n.vd(l)},ie=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";const t=new AbortController,s=(0,n.VL)();return new Z.CancelablePromise((async(n,a,i)=>{i((()=>t.abort()));try{const a=await ne.getDirectoryContents(e,{details:!0,data:s,includeSelf:!0,signal:t.signal}),i=a.data[0],r=a.data.slice(1);if(i.filename!==e)throw new Error("Root node does not match requested path");n({folder:ae(i),contents:r.map((e=>{try{return ae(e)}catch(t){return o.A.error("Invalid node detected '".concat(e.basename,"'"),{error:t}),null}})).filter(Boolean)})}catch(e){a(e)}}))};var re=s(80573);const oe=e=>G(e)?K(e)?q.MOVE_OR_COPY:q.MOVE:q.COPY,le=async function(e,t,s){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!t)return;if(t.type!==n.pt.Folder)throw new Error((0,i.Tl)("files","Destination is not a folder"));if(s===q.MOVE&&e.dirname===t.path)throw new Error((0,i.Tl)("files","This file/folder is already in that directory"));if("".concat(t.path,"/").startsWith("".concat(e.path,"/")))throw new Error((0,i.Tl)("files","You cannot move a file/folder onto itself or into a subfolder of itself"));y.Ay.set(e,"status",n.zI.LOADING);const d=(W||(W=new l.A({concurrency:3})),W);return await d.add((async()=>{const l=e=>1===e?(0,i.Tl)("files","(copy)"):(0,i.Tl)("files","(copy %n)",void 0,e);try{const o=(0,n.H4)(),d=(0,V.join)(n.lJ,e.path),m=(0,V.join)(n.lJ,t.path);if(s===q.COPY){let s=e.basename;if(!r){const t=await o.getDirectoryContents(m);s=(0,re.lJ)(e.basename,t.map((e=>e.basename)),{suffix:l,ignoreFileExtension:e.type===n.pt.Folder})}if(await o.copyFile(d,(0,V.join)(m,s)),e.dirname===t.path){const{data:e}=await o.stat((0,V.join)(m,s),{details:!0,data:(0,n.VL)()});(0,a.Ic)("files:node:created",(0,n.Al)(e))}}else{const s=await ie(t.path);if((0,$.h)([e],s.contents))try{const{selected:n,renamed:i}=await(0,$.o)(t.path,[e],s.contents);if(!n.length&&!i.length)return await o.deleteFile(d),void(0,a.Ic)("files:node:deleted",e)}catch(e){return void(0,T.Qg)((0,i.Tl)("files","Move cancelled"))}await o.moveFile(d,(0,V.join)(m,e.basename)),(0,a.Ic)("files:node:deleted",e)}}catch(e){if(e instanceof M.pe){var d,m,c;if(412===(null==e||null===(d=e.response)||void 0===d?void 0:d.status))throw new Error((0,i.Tl)("files","A file or folder with that name already exists in this folder"));if(423===(null==e||null===(m=e.response)||void 0===m?void 0:m.status))throw new Error((0,i.Tl)("files","The files is locked"));if(404===(null==e||null===(c=e.response)||void 0===c?void 0:c.status))throw new Error((0,i.Tl)("files","The file does not exist anymore"));if(e.message)throw new Error(e.message)}throw o.A.debug(e),new Error}finally{y.Ay.set(e,"status",void 0)}}))},de=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",s=arguments.length>2?arguments[2]:void 0;const n=s.map((e=>e.fileid)).filter(Boolean),a=(0,T.a1)((0,i.Tl)("files","Choose destination")).allowDirectories(!0).setFilter((e=>!n.includes(e.fileid))).setMimeTypeFilter([]).setMultiSelect(!1).startAt(t);return new Promise(((t,n)=>{a.setButtonFactory(((n,a)=>{const r=[],o=(0,V.basename)(a),l=s.map((e=>e.dirname)),d=s.map((e=>e.path));return e!==q.COPY&&e!==q.MOVE_OR_COPY||r.push({label:o?(0,i.Tl)("files","Copy to {target}",{target:o},void 0,{escape:!1,sanitize:!1}):(0,i.Tl)("files","Copy"),type:"primary",icon:H,async callback(e){t({destination:e[0],action:q.COPY})}}),l.includes(a)||d.includes(a)||e!==q.MOVE&&e!==q.MOVE_OR_COPY||r.push({label:o?(0,i.Tl)("files","Move to {target}",{target:o},void 0,{escape:!1,sanitize:!1}):(0,i.Tl)("files","Move"),type:e===q.MOVE?"primary":"secondary",icon:Y,async callback(e){t({destination:e[0],action:q.MOVE})}}),r})),a.build().pick().catch((e=>{o.A.debug(e),e instanceof T.vT?n(new Error((0,i.Tl)("files","Cancelled move or copy operation"))):n(new Error((0,i.Tl)("files","Move or copy operation failed")))}))}))},me=new n.hY({id:"move-copy",displayName(e){switch(oe(e)){case q.MOVE:return(0,i.Tl)("files","Move");case q.COPY:return(0,i.Tl)("files","Copy");case q.MOVE_OR_COPY:return(0,i.Tl)("files","Move or copy")}},iconSvgInline:()=>Y,enabled:e=>!!e.every((e=>{var t;return null===(t=e.root)||void 0===t?void 0:t.startsWith("/files/")}))&&e.length>0&&(G(e)||K(e)),async exec(e,t,s){const n=oe([e]);let a;try{a=await de(n,s,[e])}catch(e){return o.A.error(e),!1}try{return await le(e,a.destination,a.action),!0}catch(e){return!!(e instanceof Error&&e.message)&&((0,T.Qg)(e.message),null)}},async execBatch(e,t,s){const n=oe(e),a=await de(n,s,e),i=e.map((async e=>{try{return await le(e,a.destination,a.action),!0}catch(t){return o.A.error("Failed to ".concat(a.action," node"),{node:e,error:t}),!1}}));return await Promise.all(i)},order:15}),ce='<svg xmlns="http://www.w3.org/2000/svg" id="mdi-folder" viewBox="0 0 24 24"><path d="M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z" /></svg>',ue=new n.hY({id:"open-folder",displayName(e){const t=e[0].attributes.displayName||e[0].basename;return(0,i.Tl)("files","Open folder {displayName}",{displayName:t})},iconSvgInline:()=>ce,enabled(e){if(1!==e.length)return!1;const t=e[0];return!!t.isDavRessource&&t.type===n.pt.Folder&&!!(t.permissions&n.aX.READ)},exec:async(e,t)=>!(!e||e.type!==n.pt.Folder)&&(window.OCP.Files.Router.goToRoute(null,{view:t.id,fileid:e.fileid},{dir:e.path}),null),default:n.m9.HIDDEN,order:-100}),ge=new n.hY({id:"open-in-files-recent",displayName:()=>(0,i.Tl)("files","Open in Files"),iconSvgInline:()=>"",enabled:(e,t)=>"recent"===t.id,async exec(e){let t=e.dirname;return e.type===n.pt.Folder&&(t=t+"/"+e.basename),window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:e.fileid},{dir:t,openfile:"true"}),null},order:-1e3,default:n.m9.HIDDEN}),fe=new n.hY({id:"rename",displayName:()=>(0,i.Tl)("files","Rename"),iconSvgInline:()=>'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-pencil" viewBox="0 0 24 24"><path 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" /></svg>',enabled:e=>e.length>0&&e.map((e=>e.permissions)).every((e=>!!(e&n.aX.UPDATE))),exec:async e=>((0,a.Ic)("files:node:rename",e),null),order:10});var pe=s(49981);const he=new n.hY({id:"details",displayName:()=>(0,i.Tl)("files","Open details"),iconSvgInline:()=>pe,enabled:e=>{var t,s,a;return 1===e.length&&!!e[0]&&!(null===(t=window)||void 0===t||null===(t=t.OCA)||void 0===t||null===(t=t.Files)||void 0===t||!t.Sidebar)&&null!==(s=(null===(a=e[0].root)||void 0===a?void 0:a.startsWith("/files/"))&&e[0].permissions!==n.aX.NONE)&&void 0!==s&&s},async exec(e,t,s){try{return await window.OCA.Files.Sidebar.open(e.path),window.OCP.Files.Router.goToRoute(null,{view:t.id,fileid:e.fileid},{...window.OCP.Files.Router.query,dir:s},!0),null}catch(e){return o.A.error("Error while opening sidebar",{error:e}),!1}},order:-50}),we=new n.hY({id:"view-in-folder",displayName:()=>(0,i.Tl)("files","View in folder"),iconSvgInline:()=>Y,enabled(e,t){if("files"===t.id)return!1;if(1!==e.length)return!1;const s=e[0];return!!s.isDavRessource&&s.permissions!==n.aX.NONE&&s.type===n.pt.File},exec:async e=>!(!e||e.type!==n.pt.File)&&(window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:e.fileid},{dir:e.dirname}),null),order:80});var xe=s(9518),ve=s(94219),Te=s(82182);const Ae=(0,y.pM)({name:"NewNodeDialog",components:{NcButton:xe.A,NcDialog:ve.A,NcTextField:Te.A},props:{defaultName:{type:String,default:(0,i.Tl)("files","New folder")},otherNames:{type:Array,default:()=>[]},open:{type:Boolean,default:!0},name:{type:String,default:(0,i.Tl)("files","Create new folder")},label:{type:String,default:(0,i.Tl)("files","Folder name")}},emits:{close:e=>null===e||e},data(){return{localDefaultName:this.defaultName||(0,i.Tl)("files","New folder")}},computed:{errorMessage(){return this.isUniqueName?"":(0,i.Tl)("files","A file or folder with that name already exists.")},uniqueName(){return(0,re.lJ)(this.localDefaultName,this.otherNames)},isUniqueName(){return this.localDefaultName===this.uniqueName}},watch:{defaultName(){this.localDefaultName=this.defaultName||(0,i.Tl)("files","New folder")},open(){this.$nextTick((()=>this.focusInput()))}},mounted(){this.localDefaultName=this.uniqueName,this.$nextTick((()=>this.focusInput()))},methods:{t:i.Tl,focusInput(){this.open&&this.$nextTick((()=>{var e,t;return null===(e=this.$refs.input)||void 0===e||null===(t=e.focus)||void 0===t?void 0:t.call(e)}))},onCreate(){this.$emit("close",this.localDefaultName)},onClose(e){e||this.$emit("close",null)}}}),ye=(0,s(14486).A)(Ae,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcDialog",{attrs:{name:e.name,open:e.open,"close-on-click-outside":"","out-transition":""},on:{"update:open":e.onClose},scopedSlots:e._u([{key:"actions",fn:function(){return[t("NcButton",{attrs:{type:"primary",disabled:!e.isUniqueName},on:{click:e.onCreate}},[e._v("\n\t\t\t"+e._s(e.t("files","Create"))+"\n\t\t")])]},proxy:!0}])},[e._v(" "),t("form",{on:{submit:function(t){return t.preventDefault(),e.onCreate.apply(null,arguments)}}},[t("NcTextField",{ref:"input",attrs:{error:!e.isUniqueName,"helper-text":e.errorMessage,label:e.label,value:e.localDefaultName},on:{"update:value":function(t){e.localDefaultName=t}}})],1)])}),[],!1,null,null,null).exports;function Ce(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=t.map((e=>e.basename));return new Promise((t=>{(0,T.Ss)(ye,{...s,defaultName:e,otherNames:n},(e=>{t(e)}))}))}const be={id:"newFolder",displayName:(0,i.Tl)("files","New folder"),enabled:e=>!!(e.permissions&n.aX.CREATE),iconSvgInline:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-folder-plus" viewBox="0 0 24 24"><path d="M13 19C13 19.34 13.04 19.67 13.09 20H4C2.9 20 2 19.11 2 18V6C2 4.89 2.89 4 4 4H10L12 6H20C21.1 6 22 6.89 22 8V13.81C21.12 13.3 20.1 13 19 13C15.69 13 13 15.69 13 19M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z" /></svg>',order:0,async handler(e,t){const s=await Ce((0,i.Tl)("files","New folder"),t);if(null!==s){var l,d,m,c,u;const{fileid:t,source:g}=await(async(e,t)=>{const s=e.source+"/"+t,n=e.encodedSource+"/"+encodeURIComponent(t),a=await(0,r.A)({method:"MKCOL",url:n,headers:{Overwrite:"F"}});return{fileid:parseInt(a.headers["oc-fileid"]),source:s}})(e,s),f=new n.vd({source:g,id:t,mtime:new Date,owner:(null===(l=(0,v.HW)())||void 0===l?void 0:l.uid)||null,permissions:n.aX.ALL,root:(null==e?void 0:e.root)||"/files/"+(null===(d=(0,v.HW)())||void 0===d?void 0:d.uid),attributes:{"mount-type":null===(m=e.attributes)||void 0===m?void 0:m["mount-type"],"owner-id":null===(c=e.attributes)||void 0===c?void 0:c["owner-id"],"owner-display-name":null===(u=e.attributes)||void 0===u?void 0:u["owner-display-name"]}});(0,T.Te)((0,i.Tl)("files",'Created new folder "{name}"',{name:(0,V.basename)(g)})),o.A.debug("Created new folder",{folder:f,source:g}),(0,a.Ic)("files:node:created",f),window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:f.fileid},{dir:e.path})}}};var ke=s(38613);let Le=(0,ke.C)("files","templates_path",!1);o.A.debug("Initial templates folder",{templatesPath:Le});const _e={id:"template-picker",displayName:(0,i.Tl)("files","Create new templates folder"),iconSvgInline:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-plus" viewBox="0 0 24 24"><path d="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" /></svg>',order:10,enabled(e){var t;return!Le&&e.owner===(null===(t=(0,v.HW)())||void 0===t?void 0:t.uid)&&!!(e.permissions&n.aX.CREATE)},async handler(e,t){const s=await Ce((0,i.Tl)("files","Templates"),t,{name:(0,i.Tl)("files","New template folder")});null!==s&&(async function(e,t){const s=(0,V.join)(e.path,t);try{o.A.debug("Initializing the templates directory",{templatePath:s});const{data:e}=await r.A.post((0,g.KT)("apps/files/api/v1/templates/path"),{templatePath:s,copySystemTemplates:!0});window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:void 0},{dir:s}),o.A.info("Created new templates folder",{...e.ocs.data}),Le=e.ocs.data.templates_path}catch(e){o.A.error("Unable to initialize the templates directory"),(0,T.Qg)((0,i.Tl)("files","Unable to initialize the templates directory"))}}(e,s),(0,n.gj)("template-picker"))}},Ee=(0,y.$V)((()=>Promise.all([s.e(4208),s.e(5929)]).then(s.bind(s,75929))));let Se=null;const Be=async e=>{if(null===Se){const t=document.createElement("div");t.id="template-picker",document.body.appendChild(t),Se=new y.Ay({render:t=>t(Ee,{ref:"picker",props:{parent:e}}),methods:{open(){this.$refs.picker.open(...arguments)}},el:t})}return Se},Fe=te(),Pe=async function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";const s=(0,n.VL)(),a=(0,n.b2)();let i;"/"===t&&(i=await Fe.stat(t,{details:!0,data:s}));const r=await Fe.getDirectoryContents(t,{details:!0,data:"/"===t?a:s,headers:{method:"/"===t?"REPORT":"PROPFIND"},includeSelf:!0}),o=(null===(e=i)||void 0===e?void 0:e.data)||r.data[0],l=r.data.filter((e=>e.filename!==t));return{folder:ae(o),contents:l.map(ae)}},Ue=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return new n.Ss({id:Ne(e.path),name:(0,V.basename)(e.path),icon:ce,order:t,params:{dir:e.path,fileid:e.fileid.toString(),view:"favorites"},parent:"favorites",columns:[],getContents:Pe})},Ne=function(e){return"favorite-".concat(se(e))};var Ie=s(19166),je=s(63757),Oe=s(96763);let ze;const Re=e=>ze=e,De=Symbol();function Me(e){return e&&"object"==typeof e&&"[object Object]"===Object.prototype.toString.call(e)&&"function"!=typeof e.toJSON}var Ve;!function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"}(Ve||(Ve={}));const $e="undefined"!=typeof window,He="undefined"!=typeof __VUE_PROD_DEVTOOLS__&&__VUE_PROD_DEVTOOLS__&&$e,Ye=(()=>"object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:"object"==typeof globalThis?globalThis:{HTMLElement:null})();function We(e,t,s){const n=new XMLHttpRequest;n.open("GET",e),n.responseType="blob",n.onload=function(){Ze(n.response,t,s)},n.onerror=function(){Oe.error("could not download file")},n.send()}function qe(e){const t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return t.status>=200&&t.status<=299}function Ge(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(t){const s=document.createEvent("MouseEvents");s.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(s)}}const Ke="object"==typeof navigator?navigator:{userAgent:""},Je=(()=>/Macintosh/.test(Ke.userAgent)&&/AppleWebKit/.test(Ke.userAgent)&&!/Safari/.test(Ke.userAgent))(),Ze=$e?"undefined"!=typeof HTMLAnchorElement&&"download"in HTMLAnchorElement.prototype&&!Je?function(e,t="download",s){const n=document.createElement("a");n.download=t,n.rel="noopener","string"==typeof e?(n.href=e,n.origin!==location.origin?qe(n.href)?We(e,t,s):(n.target="_blank",Ge(n)):Ge(n)):(n.href=URL.createObjectURL(e),setTimeout((function(){URL.revokeObjectURL(n.href)}),4e4),setTimeout((function(){Ge(n)}),0))}:"msSaveOrOpenBlob"in Ke?function(e,t="download",s){if("string"==typeof e)if(qe(e))We(e,t,s);else{const t=document.createElement("a");t.href=e,t.target="_blank",setTimeout((function(){Ge(t)}))}else navigator.msSaveOrOpenBlob(function(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e}(e,s),t)}:function(e,t,s,n){if((n=n||open("","_blank"))&&(n.document.title=n.document.body.innerText="downloading..."),"string"==typeof e)return We(e,t,s);const a="application/octet-stream"===e.type,i=/constructor/i.test(String(Ye.HTMLElement))||"safari"in Ye,r=/CriOS\/[\d]+/.test(navigator.userAgent);if((r||a&&i||Je)&&"undefined"!=typeof FileReader){const t=new FileReader;t.onloadend=function(){let e=t.result;if("string"!=typeof e)throw n=null,new Error("Wrong reader.result type");e=r?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),n?n.location.href=e:location.assign(e),n=null},t.readAsDataURL(e)}else{const t=URL.createObjectURL(e);n?n.location.assign(t):location.href=t,n=null,setTimeout((function(){URL.revokeObjectURL(t)}),4e4)}}:()=>{};function Xe(e,t){const s="🍍 "+e;"function"==typeof __VUE_DEVTOOLS_TOAST__?__VUE_DEVTOOLS_TOAST__(s,t):"error"===t?Oe.error(s):"warn"===t?Oe.warn(s):Oe.log(s)}function Qe(e){return"_a"in e&&"install"in e}function et(){if(!("clipboard"in navigator))return Xe("Your browser doesn't support the Clipboard API","error"),!0}function tt(e){return!!(e instanceof Error&&e.message.toLowerCase().includes("document is not focused"))&&(Xe('You need to activate the "Emulate a focused page" setting in the "Rendering" panel of devtools.',"warn"),!0)}let st;function nt(e,t){for(const s in t){const n=e.state.value[s];n?Object.assign(n,t[s]):e.state.value[s]=t[s]}}function at(e){return{_custom:{display:e}}}const it="🍍 Pinia (root)",rt="_root";function ot(e){return Qe(e)?{id:rt,label:it}:{id:e.$id,label:e.$id}}function lt(e){return e?Array.isArray(e)?e.reduce(((e,t)=>(e.keys.push(t.key),e.operations.push(t.type),e.oldValue[t.key]=t.oldValue,e.newValue[t.key]=t.newValue,e)),{oldValue:{},keys:[],operations:[],newValue:{}}):{operation:at(e.type),key:at(e.key),oldValue:e.oldValue,newValue:e.newValue}:{}}function dt(e){switch(e){case Ve.direct:return"mutation";case Ve.patchFunction:case Ve.patchObject:return"$patch";default:return"unknown"}}let mt=!0;const ct=[],ut="pinia:mutations",gt="pinia",{assign:ft}=Object,pt=e=>"🍍 "+e;function ht(e,t){(0,je.$q)({id:"dev.esm.pinia",label:"Pinia 🍍",logo:"https://pinia.vuejs.org/logo.svg",packageName:"pinia",homepage:"https://pinia.vuejs.org",componentStateTypes:ct,app:e},(s=>{"function"!=typeof s.now&&Xe("You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),s.addTimelineLayer({id:ut,label:"Pinia 🍍",color:15064968}),s.addInspector({id:gt,label:"Pinia 🍍",icon:"storage",treeFilterPlaceholder:"Search stores",actions:[{icon:"content_copy",action:()=>{!async function(e){if(!et())try{await navigator.clipboard.writeText(JSON.stringify(e.state.value)),Xe("Global state copied to clipboard.")}catch(e){if(tt(e))return;Xe("Failed to serialize the state. Check the console for more details.","error"),Oe.error(e)}}(t)},tooltip:"Serialize and copy the state"},{icon:"content_paste",action:async()=>{await async function(e){if(!et())try{nt(e,JSON.parse(await navigator.clipboard.readText())),Xe("Global state pasted from clipboard.")}catch(e){if(tt(e))return;Xe("Failed to deserialize the state from clipboard. Check the console for more details.","error"),Oe.error(e)}}(t),s.sendInspectorTree(gt),s.sendInspectorState(gt)},tooltip:"Replace the state with the content of your clipboard"},{icon:"save",action:()=>{!async function(e){try{Ze(new Blob([JSON.stringify(e.state.value)],{type:"text/plain;charset=utf-8"}),"pinia-state.json")}catch(e){Xe("Failed to export the state as JSON. Check the console for more details.","error"),Oe.error(e)}}(t)},tooltip:"Save the state as a JSON file"},{icon:"folder_open",action:async()=>{await async function(e){try{const t=(st||(st=document.createElement("input"),st.type="file",st.accept=".json"),function(){return new Promise(((e,t)=>{st.onchange=async()=>{const t=st.files;if(!t)return e(null);const s=t.item(0);return e(s?{text:await s.text(),file:s}:null)},st.oncancel=()=>e(null),st.onerror=t,st.click()}))}),s=await t();if(!s)return;const{text:n,file:a}=s;nt(e,JSON.parse(n)),Xe(`Global state imported from "${a.name}".`)}catch(e){Xe("Failed to import the state from JSON. Check the console for more details.","error"),Oe.error(e)}}(t),s.sendInspectorTree(gt),s.sendInspectorState(gt)},tooltip:"Import the state from a JSON file"}],nodeActions:[{icon:"restore",tooltip:'Reset the state (with "$reset")',action:e=>{const s=t._s.get(e);s?"function"!=typeof s.$reset?Xe(`Cannot reset "${e}" store because it doesn't have a "$reset" method implemented.`,"warn"):(s.$reset(),Xe(`Store "${e}" reset.`)):Xe(`Cannot reset "${e}" store because it wasn't found.`,"warn")}}]}),s.on.inspectComponent(((e,t)=>{const s=e.componentInstance&&e.componentInstance.proxy;if(s&&s._pStores){const t=e.componentInstance.proxy._pStores;Object.values(t).forEach((t=>{e.instanceData.state.push({type:pt(t.$id),key:"state",editable:!0,value:t._isOptionsAPI?{_custom:{value:(0,Ie.ux)(t.$state),actions:[{icon:"restore",tooltip:"Reset the state of this store",action:()=>t.$reset()}]}}:Object.keys(t.$state).reduce(((e,s)=>(e[s]=t.$state[s],e)),{})}),t._getters&&t._getters.length&&e.instanceData.state.push({type:pt(t.$id),key:"getters",editable:!1,value:t._getters.reduce(((e,s)=>{try{e[s]=t[s]}catch(t){e[s]=t}return e}),{})})}))}})),s.on.getInspectorTree((s=>{if(s.app===e&&s.inspectorId===gt){let e=[t];e=e.concat(Array.from(t._s.values())),s.rootNodes=(s.filter?e.filter((e=>"$id"in e?e.$id.toLowerCase().includes(s.filter.toLowerCase()):it.toLowerCase().includes(s.filter.toLowerCase()))):e).map(ot)}})),s.on.getInspectorState((s=>{if(s.app===e&&s.inspectorId===gt){const e=s.nodeId===rt?t:t._s.get(s.nodeId);if(!e)return;e&&(s.state=function(e){if(Qe(e)){const t=Array.from(e._s.keys()),s=e._s,n={state:t.map((t=>({editable:!0,key:t,value:e.state.value[t]}))),getters:t.filter((e=>s.get(e)._getters)).map((e=>{const t=s.get(e);return{editable:!1,key:e,value:t._getters.reduce(((e,s)=>(e[s]=t[s],e)),{})}}))};return n}const t={state:Object.keys(e.$state).map((t=>({editable:!0,key:t,value:e.$state[t]})))};return e._getters&&e._getters.length&&(t.getters=e._getters.map((t=>({editable:!1,key:t,value:e[t]})))),e._customProperties.size&&(t.customProperties=Array.from(e._customProperties).map((t=>({editable:!0,key:t,value:e[t]})))),t}(e))}})),s.on.editInspectorState(((s,n)=>{if(s.app===e&&s.inspectorId===gt){const e=s.nodeId===rt?t:t._s.get(s.nodeId);if(!e)return Xe(`store "${s.nodeId}" not found`,"error");const{path:n}=s;Qe(e)?n.unshift("state"):1===n.length&&e._customProperties.has(n[0])&&!(n[0]in e.$state)||n.unshift("$state"),mt=!1,s.set(e,n,s.state.value),mt=!0}})),s.on.editComponentState((e=>{if(e.type.startsWith("🍍")){const s=e.type.replace(/^🍍\s*/,""),n=t._s.get(s);if(!n)return Xe(`store "${s}" not found`,"error");const{path:a}=e;if("state"!==a[0])return Xe(`Invalid path for store "${s}":\n${a}\nOnly state can be modified.`);a[0]="$state",mt=!1,e.set(n,a,e.state.value),mt=!0}}))}))}let wt,xt=0;function vt(e,t,s){const n=t.reduce(((t,s)=>(t[s]=(0,Ie.ux)(e)[s],t)),{});for(const t in n)e[t]=function(){const a=xt,i=s?new Proxy(e,{get:(...e)=>(wt=a,Reflect.get(...e)),set:(...e)=>(wt=a,Reflect.set(...e))}):e;wt=a;const r=n[t].apply(i,arguments);return wt=void 0,r}}function Tt({app:e,store:t,options:s}){if(t.$id.startsWith("__hot:"))return;t._isOptionsAPI=!!s.state,vt(t,Object.keys(s.actions),t._isOptionsAPI);const n=t._hotUpdate;(0,Ie.ux)(t)._hotUpdate=function(e){n.apply(this,arguments),vt(t,Object.keys(e._hmrPayload.actions),!!t._isOptionsAPI)},function(e,t){ct.includes(pt(t.$id))||ct.push(pt(t.$id)),(0,je.$q)({id:"dev.esm.pinia",label:"Pinia 🍍",logo:"https://pinia.vuejs.org/logo.svg",packageName:"pinia",homepage:"https://pinia.vuejs.org",componentStateTypes:ct,app:e,settings:{logStoreChanges:{label:"Notify about new/deleted stores",type:"boolean",defaultValue:!0}}},(e=>{const s="function"==typeof e.now?e.now.bind(e):Date.now;t.$onAction((({after:n,onError:a,name:i,args:r})=>{const o=xt++;e.addTimelineEvent({layerId:ut,event:{time:s(),title:"🛫 "+i,subtitle:"start",data:{store:at(t.$id),action:at(i),args:r},groupId:o}}),n((n=>{wt=void 0,e.addTimelineEvent({layerId:ut,event:{time:s(),title:"🛬 "+i,subtitle:"end",data:{store:at(t.$id),action:at(i),args:r,result:n},groupId:o}})})),a((n=>{wt=void 0,e.addTimelineEvent({layerId:ut,event:{time:s(),logType:"error",title:"💥 "+i,subtitle:"end",data:{store:at(t.$id),action:at(i),args:r,error:n},groupId:o}})}))}),!0),t._customProperties.forEach((n=>{(0,Ie.wB)((()=>(0,Ie.R1)(t[n])),((t,a)=>{e.notifyComponentUpdate(),e.sendInspectorState(gt),mt&&e.addTimelineEvent({layerId:ut,event:{time:s(),title:"Change",subtitle:n,data:{newValue:t,oldValue:a},groupId:wt}})}),{deep:!0})})),t.$subscribe((({events:n,type:a},i)=>{if(e.notifyComponentUpdate(),e.sendInspectorState(gt),!mt)return;const r={time:s(),title:dt(a),data:ft({store:at(t.$id)},lt(n)),groupId:wt};a===Ve.patchFunction?r.subtitle="⤵️":a===Ve.patchObject?r.subtitle="🧩":n&&!Array.isArray(n)&&(r.subtitle=n.type),n&&(r.data["rawEvent(s)"]={_custom:{display:"DebuggerEvent",type:"object",tooltip:"raw DebuggerEvent[]",value:n}}),e.addTimelineEvent({layerId:ut,event:r})}),{detached:!0,flush:"sync"});const n=t._hotUpdate;t._hotUpdate=(0,Ie.IG)((a=>{n(a),e.addTimelineEvent({layerId:ut,event:{time:s(),title:"🔥 "+t.$id,subtitle:"HMR update",data:{store:at(t.$id),info:at("HMR update")}}}),e.notifyComponentUpdate(),e.sendInspectorTree(gt),e.sendInspectorState(gt)}));const{$dispose:a}=t;t.$dispose=()=>{a(),e.notifyComponentUpdate(),e.sendInspectorTree(gt),e.sendInspectorState(gt),e.getSettings().logStoreChanges&&Xe(`Disposed "${t.$id}" store 🗑`)},e.notifyComponentUpdate(),e.sendInspectorTree(gt),e.sendInspectorState(gt),e.getSettings().logStoreChanges&&Xe(`"${t.$id}" store installed 🆕`)}))}(e,t)}const At=()=>{};function yt(e,t,s,n=At){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!s&&(0,Ie.o5)()&&(0,Ie.jr)(a),a}function Ct(e,...t){e.slice().forEach((e=>{e(...t)}))}const bt=e=>e();function kt(e,t){e instanceof Map&&t instanceof Map&&t.forEach(((t,s)=>e.set(s,t))),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const s in t){if(!t.hasOwnProperty(s))continue;const n=t[s],a=e[s];Me(a)&&Me(n)&&e.hasOwnProperty(s)&&!(0,Ie.i9)(n)&&!(0,Ie.g8)(n)?e[s]=kt(a,n):e[s]=n}return e}const Lt=Symbol(),_t=new WeakMap,{assign:Et}=Object;function St(e,t,s={},n,a,i){let r;const o=Et({actions:{}},s),l={deep:!0};let d,m,c,u=[],g=[];const f=n.state.value[e];i||f||(Ie.LE?(0,Ie.hZ)(n.state.value,e,{}):n.state.value[e]={});const p=(0,Ie.KR)({});let h;function w(t){let s;d=m=!1,"function"==typeof t?(t(n.state.value[e]),s={type:Ve.patchFunction,storeId:e,events:c}):(kt(n.state.value[e],t),s={type:Ve.patchObject,payload:t,storeId:e,events:c});const a=h=Symbol();(0,Ie.dY)().then((()=>{h===a&&(d=!0)})),m=!0,Ct(u,s,n.state.value[e])}const x=i?function(){const{state:e}=s,t=e?e():{};this.$patch((e=>{Et(e,t)}))}:At;function v(t,s){return function(){Re(n);const a=Array.from(arguments),i=[],r=[];let o;Ct(g,{args:a,name:t,store:y,after:function(e){i.push(e)},onError:function(e){r.push(e)}});try{o=s.apply(this&&this.$id===e?this:y,a)}catch(e){throw Ct(r,e),e}return o instanceof Promise?o.then((e=>(Ct(i,e),e))).catch((e=>(Ct(r,e),Promise.reject(e)))):(Ct(i,o),o)}}const T=(0,Ie.IG)({actions:{},getters:{},state:[],hotState:p}),A={_p:n,$id:e,$onAction:yt.bind(null,g),$patch:w,$reset:x,$subscribe(t,s={}){const a=yt(u,t,s.detached,(()=>i())),i=r.run((()=>(0,Ie.wB)((()=>n.state.value[e]),(n=>{("sync"===s.flush?m:d)&&t({storeId:e,type:Ve.direct,events:c},n)}),Et({},l,s))));return a},$dispose:function(){r.stop(),u=[],g=[],n._s.delete(e)}};Ie.LE&&(A._r=!1);const y=(0,Ie.Kh)(He?Et({_hmrPayload:T,_customProperties:(0,Ie.IG)(new Set)},A):A);n._s.set(e,y);const C=(n._a&&n._a.runWithContext||bt)((()=>n._e.run((()=>(r=(0,Ie.uY)()).run(t)))));for(const t in C){const s=C[t];if((0,Ie.i9)(s)&&(k=s,!(0,Ie.i9)(k)||!k.effect)||(0,Ie.g8)(s))i||(!f||(b=s,Ie.LE?_t.has(b):Me(b)&&b.hasOwnProperty(Lt))||((0,Ie.i9)(s)?s.value=f[t]:kt(s,f[t])),Ie.LE?(0,Ie.hZ)(n.state.value[e],t,s):n.state.value[e][t]=s);else if("function"==typeof s){const e=v(t,s);Ie.LE?(0,Ie.hZ)(C,t,e):C[t]=e,o.actions[t]=s}}var b,k;if(Ie.LE?Object.keys(C).forEach((e=>{(0,Ie.hZ)(y,e,C[e])})):(Et(y,C),Et((0,Ie.ux)(y),C)),Object.defineProperty(y,"$state",{get:()=>n.state.value[e],set:e=>{w((t=>{Et(t,e)}))}}),He){const e={writable:!0,configurable:!0,enumerable:!1};["_p","_hmrPayload","_getters","_customProperties"].forEach((t=>{Object.defineProperty(y,t,Et({value:y[t]},e))}))}return Ie.LE&&(y._r=!0),n._p.forEach((e=>{if(He){const t=r.run((()=>e({store:y,app:n._a,pinia:n,options:o})));Object.keys(t||{}).forEach((e=>y._customProperties.add(e))),Et(y,t)}else Et(y,r.run((()=>e({store:y,app:n._a,pinia:n,options:o}))))})),f&&i&&s.hydrate&&s.hydrate(y.$state,f),d=!0,m=!0,y}const Bt=(0,ke.C)("files","config",{show_hidden:!1,crop_image_previews:!0,sort_favorites_first:!0,sort_folders_first:!0,grid_view:!1}),Ft=function(){const e=(0,Ie.uY)(!0),t=e.run((()=>(0,Ie.KR)({})));let s=[],n=[];const a=(0,Ie.IG)({install(e){Re(a),Ie.LE||(a._a=e,e.provide(De,a),e.config.globalProperties.$pinia=a,He&&ht(e,a),n.forEach((e=>s.push(e))),n=[])},use(e){return this._a||Ie.LE?s.push(e):n.push(e),this},_p:s,_a:null,_e:e,_s:new Map,state:t});return He&&"undefined"!=typeof Proxy&&a.use(Tt),a}(),Pt=(0,n.H4)(),Ut=Math.round(Date.now()/1e3-1209600);(0,n.Gg)(u),(0,n.Gg)(w),(0,n.Gg)(A),(0,n.Gg)(L),(0,n.Gg)(me),(0,n.Gg)(ue),(0,n.Gg)(ge),(0,n.Gg)(fe),(0,n.Gg)(he),(0,n.Gg)(we),(0,n.zj)(be),(0,n.zj)(_e),(0,ke.C)("files","templates",[]).forEach(((e,t)=>{(0,n.zj)({id:"template-new-".concat(e.app,"-").concat(t),displayName:e.label,iconClass:e.iconClass||"icon-file",enabled:e=>!!(e.permissions&n.aX.CREATE),order:11,async handler(t,s){const n=Be(t),a=await Ce("".concat(e.label).concat(e.extension),s,{label:(0,i.Tl)("files","Filename"),name:e.label});null!==a&&(await n).open(a,e)}})})),(()=>{const e=(0,ke.C)("files","favoriteFolders",[]),t=e.map(((e,t)=>Ue(e,t)));o.A.debug("Generating favorites view",{favoriteFolders:e});const s=(0,n.bh)();s.register(new n.Ss({id:"favorites",name:(0,i.Tl)("files","Favorites"),caption:(0,i.Tl)("files","List of favorites files and folders."),emptyTitle:(0,i.Tl)("files","No favorites yet"),emptyCaption:(0,i.Tl)("files","Files and folders you mark as favorite will show up here"),icon:C,order:5,columns:[],getContents:Pe})),t.forEach((e=>s.register(e))),(0,a.B1)("files:favorites:added",(e=>{var t;e.type===n.pt.Folder&&(null!==e.path&&null!==(t=e.root)&&void 0!==t&&t.startsWith("/files")?l(e):o.A.error("Favorite folder is not within user files root",{node:e}))})),(0,a.B1)("files:favorites:removed",(e=>{var t;e.type===n.pt.Folder&&(null!==e.path&&null!==(t=e.root)&&void 0!==t&&t.startsWith("/files")?d(e.path):o.A.error("Favorite folder is not within user files root",{node:e}))})),(0,a.B1)("files:node:renamed",(e=>{e.type===n.pt.Folder&&1===e.attributes.favorite&&m(e)}));const r=function(){e.sort(((e,t)=>e.path.localeCompare(t.path,(0,i.Z0)(),{ignorePunctuation:!0}))),e.forEach(((e,s)=>{const n=t.find((t=>t.id===Ne(e.path)));n&&(n.order=s)}))},l=function(n){const a={path:n.path,fileid:n.fileid},i=Ue(a);e.find((e=>e.path===n.path))||(e.push(a),t.push(i),r(),s.register(i))},d=function(n){const a=Ne(n),i=e.findIndex((e=>e.path===n));-1!==i&&(e.splice(i,1),t.splice(i,1),s.remove(a),r())},m=function(t){const s=e.find((e=>e.fileid===t.fileid));void 0!==s&&(d(s.path),l(t))}})(),(0,n.bh)().register(new n.Ss({id:"files",name:(0,i.Tl)("files","All files"),caption:(0,i.Tl)("files","List of your files and folders."),icon:ce,order:0,getContents:ie})),(0,n.bh)().register(new n.Ss({id:"recent",name:(0,i.Tl)("files","Recent"),caption:(0,i.Tl)("files","List of recently modified files and folders."),emptyTitle:(0,i.Tl)("files","No recently modified files"),emptyCaption:(0,i.Tl)("files","Files and folders you recently modified will show up here."),icon:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-history" viewBox="0 0 24 24"><path d="M13.5,8H12V13L16.28,15.54L17,14.33L13.5,12.25V8M13,3A9,9 0 0,0 4,12H1L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3" /></svg>',order:2,defaultSortKey:"mtime",getContents:async function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";const s=function(){const e=function(e,t,s){let n,a;const i="function"==typeof t;function r(e,s){const r=(0,Ie.PS)();return(e=e||(r?(0,Ie.WQ)(De,null):null))&&Re(e),(e=ze)._s.has(n)||(i?St(n,t,a,e):function(e,t,s,n){const{state:a,actions:i,getters:r}=t,o=s.state.value[e];let l;l=St(e,(function(){o||(Ie.LE?(0,Ie.hZ)(s.state.value,e,a?a():{}):s.state.value[e]=a?a():{});const t=(0,Ie.QW)(s.state.value[e]);return Et(t,i,Object.keys(r||{}).reduce(((t,n)=>(t[n]=(0,Ie.IG)((0,Ie.EW)((()=>{Re(s);const t=s._s.get(e);if(!Ie.LE||t._r)return r[n].call(t,t)}))),t)),{}))}),t,s,0,!0)}(n,a,e)),e._s.get(n)}return"string"==typeof e?(n=e,a=i?s:t):(a=e,n=e.id),r.$id=n,r}("userconfig",{state:()=>({userConfig:Bt}),actions:{onUpdate(e,t){y.Ay.set(this.userConfig,e,t)},async update(e,t){await r.A.put((0,g.Jv)("/apps/files/api/v1/config/"+e),{value:t}),(0,a.Ic)("files:config:updated",{key:e,value:t})}}})(...arguments);return e._initialized||((0,a.B1)("files:config:updated",(function(t){let{key:s,value:n}=t;e.onUpdate(s,n)})),e._initialized=!0),e}(Ft),i=(await Pt.getDirectoryContents(t,{details:!0,data:(0,n.R3)(Ut),headers:{method:"SEARCH","Content-Type":"application/xml; charset=utf-8"},deep:!0})).data;return{folder:new n.vd({id:0,source:"".concat(n.PY).concat(n.lJ),root:n.lJ,owner:(null===(e=(0,v.HW)())||void 0===e?void 0:e.uid)||null,permissions:n.aX.READ}),contents:i.map((e=>(0,n.Al)(e))).filter((e=>"/"!==t||s.userConfig.show_hidden||!e.dirname.split("/").some((e=>e.startsWith(".")))))}}})),"serviceWorker"in navigator?window.addEventListener("load",(async()=>{try{const e=(0,g.Jv)("/apps/files/preview-service-worker.js",{},{noRewrite:!0}),t=await navigator.serviceWorker.register(e,{scope:"/"});o.A.debug("SW registered: ",{registration:t})}catch(e){o.A.error("SW registration failed: ",{error:e})}})):o.A.debug("Service Worker is not enabled on this browser."),(0,n.Yc)("nc:hidden",{nc:"http://nextcloud.org/ns"}),(0,n.Yc)("nc:is-mount-root",{nc:"http://nextcloud.org/ns"}),(0,n.Yc)("nc:metadata-files-live-photo",{nc:"http://nextcloud.org/ns"})},80573:(e,t,s)=>{"use strict";s.d(t,{lJ:()=>a,mF:()=>i}),s(35810),s(53334);var n=s(43627);const a=function(e,t){const s={suffix:e=>"(".concat(e,")"),ignoreFileExtension:!1,...arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}};let a=e,i=1;for(;t.includes(a);){const t=s.ignoreFileExtension?"":(0,n.extname)(e),r=(0,n.basename)(e,t);a="".concat(r," ").concat(s.suffix(i++)).concat(t)}return a},i=function(e){const t=(e.startsWith("/")?e:"/".concat(e)).split("/");let s="";return t.forEach((e=>{""!==e&&(s+="/"+encodeURIComponent(e))})),s}},14456:(e,t,s)=>{"use strict";s.d(t,{A:()=>f});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i),o=s(4417),l=s.n(o),d=new URL(s(57273),s.b),m=new URL(s(63710),s.b),c=r()(a()),u=l()(d),g=l()(m);c.push([e.id,`@charset "UTF-8";\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\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 <http://www.gnu.org/licenses/>.\n */\n.toastify.dialogs {\n  min-width: 200px;\n  background: none;\n  background-color: var(--color-main-background);\n  color: var(--color-main-text);\n  box-shadow: 0 0 6px 0 var(--color-box-shadow);\n  padding: 0 12px;\n  margin-top: 45px;\n  position: fixed;\n  z-index: 10100;\n  border-radius: var(--border-radius);\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-container {\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-button,\n.toastify.dialogs .toast-close {\n  position: static;\n  overflow: hidden;\n  box-sizing: border-box;\n  min-width: 44px;\n  height: 100%;\n  padding: 12px;\n  white-space: nowrap;\n  background-repeat: no-repeat;\n  background-position: center;\n  background-color: transparent;\n  min-height: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close,\n.toastify.dialogs .toast-close.toast-close {\n  text-indent: 0;\n  opacity: .4;\n  border: none;\n  min-height: 44px;\n  margin-left: 10px;\n  font-size: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close:before,\n.toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(${u});\n  content: " ";\n  filter: var(--background-invert-if-dark);\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n}\n.toastify.dialogs .toast-undo-button.toast-undo-button,\n.toastify.dialogs .toast-close.toast-undo-button {\n  height: calc(100% - 6px);\n  margin: 3px 3px 3px 12px;\n}\n.toastify.dialogs .toast-undo-button:hover,\n.toastify.dialogs .toast-undo-button:focus,\n.toastify.dialogs .toast-undo-button:active,\n.toastify.dialogs .toast-close:hover,\n.toastify.dialogs .toast-close:focus,\n.toastify.dialogs .toast-close:active {\n  cursor: pointer;\n  opacity: 1;\n}\n.toastify.dialogs.toastify-top {\n  right: 10px;\n}\n.toastify.dialogs.toast-with-click {\n  cursor: pointer;\n}\n.toastify.dialogs.toast-error {\n  border-left: 3px solid var(--color-error);\n}\n.toastify.dialogs.toast-info {\n  border-left: 3px solid var(--color-primary);\n}\n.toastify.dialogs.toast-warning {\n  border-left: 3px solid var(--color-warning);\n}\n.toastify.dialogs.toast-success,\n.toastify.dialogs.toast-undo {\n  border-left: 3px solid var(--color-success);\n}\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(${g});\n}\n.nc-generic-dialog .dialog__actions {\n  justify-content: space-between;\n  min-width: calc(100% - 12px);\n}\n._file-picker__file-icon_1vgv4_5 {\n  width: 32px;\n  height: 32px;\n  min-width: 32px;\n  min-height: 32px;\n  background-repeat: no-repeat;\n  background-size: contain;\n  display: flex;\n  justify-content: center;\n}\ntr.file-picker__row[data-v-6aded0d9] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-6aded0d9] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-6aded0d9] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\n  padding-inline: 2px 0;\n}\n@keyframes gradient-6aded0d9 {\n  0% {\n    background-position: 0% 50%;\n  }\n  50% {\n    background-position: 100% 50%;\n  }\n  to {\n    background-position: 0% 50%;\n  }\n}\n.loading-row .row-checkbox[data-v-6aded0d9] {\n  text-align: center !important;\n}\n.loading-row span[data-v-6aded0d9] {\n  display: inline-block;\n  height: 24px;\n  background:\n    linear-gradient(\n      to right,\n      var(--color-background-darker),\n      var(--color-text-maxcontrast),\n      var(--color-background-darker));\n  background-size: 600px 100%;\n  border-radius: var(--border-radius);\n  animation: gradient-6aded0d9 12s ease infinite;\n}\n.loading-row .row-wrapper[data-v-6aded0d9] {\n  display: inline-flex;\n  align-items: center;\n}\n.loading-row .row-checkbox span[data-v-6aded0d9] {\n  width: 24px;\n}\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\n  margin-inline-start: 6px;\n  width: 130px;\n}\n.loading-row .row-size span[data-v-6aded0d9] {\n  width: 80px;\n}\n.loading-row .row-modified span[data-v-6aded0d9] {\n  width: 90px;\n}\ntr.file-picker__row[data-v-48df4f27] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-48df4f27] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-48df4f27] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-48df4f27]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-48df4f27] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-48df4f27] {\n  padding-inline: 2px 0;\n}\n.file-picker__row--selected[data-v-48df4f27] {\n  background-color: var(--color-background-dark);\n}\n.file-picker__row[data-v-48df4f27]:hover {\n  background-color: var(--color-background-hover);\n}\n.file-picker__name-container[data-v-48df4f27] {\n  display: flex;\n  justify-content: start;\n  align-items: center;\n  height: 100%;\n}\n.file-picker__file-name[data-v-48df4f27] {\n  padding-inline-start: 6px;\n  min-width: 0;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.file-picker__file-extension[data-v-48df4f27] {\n  color: var(--color-text-maxcontrast);\n  min-width: fit-content;\n}\n.file-picker__header-preview[data-v-d3c94818] {\n  width: 22px;\n  height: 32px;\n  flex: 0 0 auto;\n}\n.file-picker__files[data-v-d3c94818] {\n  margin: 2px;\n  margin-inline-start: 12px;\n  overflow: scroll auto;\n}\n.file-picker__files table[data-v-d3c94818] {\n  width: 100%;\n  max-height: 100%;\n  table-layout: fixed;\n}\n.file-picker__files th[data-v-d3c94818] {\n  position: sticky;\n  z-index: 1;\n  top: 0;\n  background-color: var(--color-main-background);\n  padding: 2px;\n}\n.file-picker__files th .header-wrapper[data-v-d3c94818] {\n  display: flex;\n}\n.file-picker__files th.row-checkbox[data-v-d3c94818] {\n  width: 44px;\n}\n.file-picker__files th.row-name[data-v-d3c94818] {\n  width: 230px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] {\n  width: 100px;\n}\n.file-picker__files th.row-modified[data-v-d3c94818] {\n  width: 120px;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue__wrapper {\n  justify-content: start;\n  flex-direction: row-reverse;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue {\n  padding-inline: 16px 4px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] .button-vue__wrapper {\n  justify-content: end;\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper {\n  color: var(--color-text-maxcontrast);\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper .button-vue__text {\n  font-weight: 400;\n}\n.file-picker__breadcrumbs[data-v-22cbb5df] {\n  flex-grow: 0 !important;\n}\n.file-picker__side[data-v-a06474d4] {\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  gap: .5rem;\n  min-width: 200px;\n  padding: 2px;\n  margin-block-start: 7px;\n  overflow: auto;\n}\n.file-picker__side[data-v-a06474d4] .button-vue__wrapper {\n  justify-content: start;\n}\n.file-picker__filter-input[data-v-a06474d4] {\n  margin-block: 7px;\n  max-width: 260px;\n}\n@media (max-width: 736px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n  .file-picker__filter-input[data-v-a06474d4] {\n    max-width: unset;\n  }\n}\n.file-picker__navigation {\n  padding-inline: 8px 2px;\n}\n.file-picker__navigation,\n.file-picker__navigation * {\n  box-sizing: border-box;\n}\n.file-picker__navigation .v-select.select {\n  min-width: 220px;\n}\n@media (min-width: 513px) and (max-width: 736px) {\n  .file-picker__navigation {\n    gap: 11px;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__navigation {\n    flex-direction: column-reverse !important;\n  }\n}\n.file-picker__view[data-v-6ff1b36b] {\n  height: 50px;\n  display: flex;\n  justify-content: start;\n  align-items: center;\n}\n.file-picker__view h3[data-v-6ff1b36b] {\n  font-weight: 700;\n  height: fit-content;\n  margin: 0;\n}\n.file-picker__main[data-v-6ff1b36b] {\n  box-sizing: border-box;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  min-height: 0;\n  flex: 1;\n  padding-inline: 2px;\n}\n.file-picker__main *[data-v-6ff1b36b] {\n  box-sizing: border-box;\n}\n[data-v-6ff1b36b] .file-picker {\n  height: min(80vh, 800px) !important;\n}\n@media (max-width: 512px) {\n  [data-v-6ff1b36b] .file-picker {\n    height: calc(100% - 16px - var(--default-clickable-area)) !important;\n  }\n}\n[data-v-6ff1b36b] .file-picker__content {\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n}\n`,"",{version:3,sources:["webpack://./node_modules/@nextcloud/dialogs/dist/style.css"],names:[],mappings:"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,gBAAgB;EAChB,gBAAgB;EAChB,8CAA8C;EAC9C,6BAA6B;EAC7B,6CAA6C;EAC7C,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,cAAc;EACd,mCAAmC;EACnC,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,mBAAmB;AACrB;AACA;;EAEE,gBAAgB;EAChB,gBAAgB;EAChB,sBAAsB;EACtB,eAAe;EACf,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,4BAA4B;EAC5B,2BAA2B;EAC3B,6BAA6B;EAC7B,aAAa;AACf;AACA;;EAEE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;AACd;AACA;;EAEE,yDAA8Q;EAC9Q,YAAY;EACZ,wCAAwC;EACxC,qBAAqB;EACrB,WAAW;EACX,YAAY;AACd;AACA;;EAEE,wBAAwB;EACxB,wBAAwB;AAC1B;AACA;;;;;;EAME,eAAe;EACf,UAAU;AACZ;AACA;EACE,WAAW;AACb;AACA;EACE,eAAe;AACjB;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,2CAA2C;AAC7C;AACA;;EAEE,2CAA2C;AAC7C;AACA;EACE,yDAAsT;AACxT;AACA;EACE,8BAA8B;EAC9B,4BAA4B;AAC9B;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,4BAA4B;EAC5B,wBAAwB;EACxB,aAAa;EACb,uBAAuB;AACzB;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE;IACE,2BAA2B;EAC7B;EACA;IACE,6BAA6B;EAC/B;EACA;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,qBAAqB;EACrB,YAAY;EACZ;;;;;qCAKmC;EACnC,2BAA2B;EAC3B,mCAAmC;EACnC,8CAA8C;AAChD;AACA;EACE,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,WAAW;AACb;AACA;EACE,wBAAwB;EACxB,YAAY;AACd;AACA;EACE,WAAW;AACb;AACA;EACE,WAAW;AACb;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,yBAAyB;EACzB,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,oCAAoC;EACpC,sBAAsB;AACxB;AACA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;AACA;EACE,WAAW;EACX,yBAAyB;EACzB,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,UAAU;EACV,MAAM;EACN,8CAA8C;EAC9C,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,WAAW;AACb;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,2BAA2B;AAC7B;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,oBAAoB;AACtB;AACA;EACE,oCAAoC;AACtC;AACA;EACE,gBAAgB;AAClB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,oBAAoB;EACpB,UAAU;EACV,gBAAgB;EAChB,YAAY;EACZ,uBAAuB;EACvB,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;AACF;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;EACA;IACE,gBAAgB;EAClB;AACF;AACA;EACE,uBAAuB;AACzB;AACA;;EAEE,sBAAsB;AACxB;AACA;EACE,gBAAgB;AAClB;AACA;EACE;IACE,SAAS;EACX;AACF;AACA;EACE;IACE,yCAAyC;EAC3C;AACF;AACA;EACE,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,SAAS;AACX;AACA;EACE,sBAAsB;EACtB,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,aAAa;EACb,OAAO;EACP,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,mCAAmC;AACrC;AACA;EACE;IACE,oEAAoE;EACtE;AACF;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB",sourcesContent:["@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\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 <http://www.gnu.org/licenses/>.\n */\n.toastify.dialogs {\n  min-width: 200px;\n  background: none;\n  background-color: var(--color-main-background);\n  color: var(--color-main-text);\n  box-shadow: 0 0 6px 0 var(--color-box-shadow);\n  padding: 0 12px;\n  margin-top: 45px;\n  position: fixed;\n  z-index: 10100;\n  border-radius: var(--border-radius);\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-container {\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-button,\n.toastify.dialogs .toast-close {\n  position: static;\n  overflow: hidden;\n  box-sizing: border-box;\n  min-width: 44px;\n  height: 100%;\n  padding: 12px;\n  white-space: nowrap;\n  background-repeat: no-repeat;\n  background-position: center;\n  background-color: transparent;\n  min-height: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close,\n.toastify.dialogs .toast-close.toast-close {\n  text-indent: 0;\n  opacity: .4;\n  border: none;\n  min-height: 44px;\n  margin-left: 10px;\n  font-size: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close:before,\n.toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(\"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='16'%20width='16'%3e%3cpath%20d='M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z'/%3e%3c/svg%3e\");\n  content: \" \";\n  filter: var(--background-invert-if-dark);\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n}\n.toastify.dialogs .toast-undo-button.toast-undo-button,\n.toastify.dialogs .toast-close.toast-undo-button {\n  height: calc(100% - 6px);\n  margin: 3px 3px 3px 12px;\n}\n.toastify.dialogs .toast-undo-button:hover,\n.toastify.dialogs .toast-undo-button:focus,\n.toastify.dialogs .toast-undo-button:active,\n.toastify.dialogs .toast-close:hover,\n.toastify.dialogs .toast-close:focus,\n.toastify.dialogs .toast-close:active {\n  cursor: pointer;\n  opacity: 1;\n}\n.toastify.dialogs.toastify-top {\n  right: 10px;\n}\n.toastify.dialogs.toast-with-click {\n  cursor: pointer;\n}\n.toastify.dialogs.toast-error {\n  border-left: 3px solid var(--color-error);\n}\n.toastify.dialogs.toast-info {\n  border-left: 3px solid var(--color-primary);\n}\n.toastify.dialogs.toast-warning {\n  border-left: 3px solid var(--color-warning);\n}\n.toastify.dialogs.toast-success,\n.toastify.dialogs.toast-undo {\n  border-left: 3px solid var(--color-success);\n}\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(\"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='16'%20width='16'%3e%3cpath%20d='M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z'%20style='fill-opacity:1;fill:%23ffffff'/%3e%3c/svg%3e\");\n}\n.nc-generic-dialog .dialog__actions {\n  justify-content: space-between;\n  min-width: calc(100% - 12px);\n}\n._file-picker__file-icon_1vgv4_5 {\n  width: 32px;\n  height: 32px;\n  min-width: 32px;\n  min-height: 32px;\n  background-repeat: no-repeat;\n  background-size: contain;\n  display: flex;\n  justify-content: center;\n}\ntr.file-picker__row[data-v-6aded0d9] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-6aded0d9] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-6aded0d9] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\n  padding-inline: 2px 0;\n}\n@keyframes gradient-6aded0d9 {\n  0% {\n    background-position: 0% 50%;\n  }\n  50% {\n    background-position: 100% 50%;\n  }\n  to {\n    background-position: 0% 50%;\n  }\n}\n.loading-row .row-checkbox[data-v-6aded0d9] {\n  text-align: center !important;\n}\n.loading-row span[data-v-6aded0d9] {\n  display: inline-block;\n  height: 24px;\n  background:\n    linear-gradient(\n      to right,\n      var(--color-background-darker),\n      var(--color-text-maxcontrast),\n      var(--color-background-darker));\n  background-size: 600px 100%;\n  border-radius: var(--border-radius);\n  animation: gradient-6aded0d9 12s ease infinite;\n}\n.loading-row .row-wrapper[data-v-6aded0d9] {\n  display: inline-flex;\n  align-items: center;\n}\n.loading-row .row-checkbox span[data-v-6aded0d9] {\n  width: 24px;\n}\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\n  margin-inline-start: 6px;\n  width: 130px;\n}\n.loading-row .row-size span[data-v-6aded0d9] {\n  width: 80px;\n}\n.loading-row .row-modified span[data-v-6aded0d9] {\n  width: 90px;\n}\ntr.file-picker__row[data-v-48df4f27] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-48df4f27] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-48df4f27] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-48df4f27]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-48df4f27] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-48df4f27] {\n  padding-inline: 2px 0;\n}\n.file-picker__row--selected[data-v-48df4f27] {\n  background-color: var(--color-background-dark);\n}\n.file-picker__row[data-v-48df4f27]:hover {\n  background-color: var(--color-background-hover);\n}\n.file-picker__name-container[data-v-48df4f27] {\n  display: flex;\n  justify-content: start;\n  align-items: center;\n  height: 100%;\n}\n.file-picker__file-name[data-v-48df4f27] {\n  padding-inline-start: 6px;\n  min-width: 0;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.file-picker__file-extension[data-v-48df4f27] {\n  color: var(--color-text-maxcontrast);\n  min-width: fit-content;\n}\n.file-picker__header-preview[data-v-d3c94818] {\n  width: 22px;\n  height: 32px;\n  flex: 0 0 auto;\n}\n.file-picker__files[data-v-d3c94818] {\n  margin: 2px;\n  margin-inline-start: 12px;\n  overflow: scroll auto;\n}\n.file-picker__files table[data-v-d3c94818] {\n  width: 100%;\n  max-height: 100%;\n  table-layout: fixed;\n}\n.file-picker__files th[data-v-d3c94818] {\n  position: sticky;\n  z-index: 1;\n  top: 0;\n  background-color: var(--color-main-background);\n  padding: 2px;\n}\n.file-picker__files th .header-wrapper[data-v-d3c94818] {\n  display: flex;\n}\n.file-picker__files th.row-checkbox[data-v-d3c94818] {\n  width: 44px;\n}\n.file-picker__files th.row-name[data-v-d3c94818] {\n  width: 230px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] {\n  width: 100px;\n}\n.file-picker__files th.row-modified[data-v-d3c94818] {\n  width: 120px;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue__wrapper {\n  justify-content: start;\n  flex-direction: row-reverse;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue {\n  padding-inline: 16px 4px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] .button-vue__wrapper {\n  justify-content: end;\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper {\n  color: var(--color-text-maxcontrast);\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper .button-vue__text {\n  font-weight: 400;\n}\n.file-picker__breadcrumbs[data-v-22cbb5df] {\n  flex-grow: 0 !important;\n}\n.file-picker__side[data-v-a06474d4] {\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  gap: .5rem;\n  min-width: 200px;\n  padding: 2px;\n  margin-block-start: 7px;\n  overflow: auto;\n}\n.file-picker__side[data-v-a06474d4] .button-vue__wrapper {\n  justify-content: start;\n}\n.file-picker__filter-input[data-v-a06474d4] {\n  margin-block: 7px;\n  max-width: 260px;\n}\n@media (max-width: 736px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n  .file-picker__filter-input[data-v-a06474d4] {\n    max-width: unset;\n  }\n}\n.file-picker__navigation {\n  padding-inline: 8px 2px;\n}\n.file-picker__navigation,\n.file-picker__navigation * {\n  box-sizing: border-box;\n}\n.file-picker__navigation .v-select.select {\n  min-width: 220px;\n}\n@media (min-width: 513px) and (max-width: 736px) {\n  .file-picker__navigation {\n    gap: 11px;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__navigation {\n    flex-direction: column-reverse !important;\n  }\n}\n.file-picker__view[data-v-6ff1b36b] {\n  height: 50px;\n  display: flex;\n  justify-content: start;\n  align-items: center;\n}\n.file-picker__view h3[data-v-6ff1b36b] {\n  font-weight: 700;\n  height: fit-content;\n  margin: 0;\n}\n.file-picker__main[data-v-6ff1b36b] {\n  box-sizing: border-box;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  min-height: 0;\n  flex: 1;\n  padding-inline: 2px;\n}\n.file-picker__main *[data-v-6ff1b36b] {\n  box-sizing: border-box;\n}\n[data-v-6ff1b36b] .file-picker {\n  height: min(80vh, 800px) !important;\n}\n@media (max-width: 512px) {\n  [data-v-6ff1b36b] .file-picker {\n    height: calc(100% - 16px - var(--default-clickable-area)) !important;\n  }\n}\n[data-v-6ff1b36b] .file-picker__content {\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n}\n"],sourceRoot:""}]);const f=c},30521:(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([e.id,".upload-picker[data-v-eca9500a] {\n  display: inline-flex;\n  align-items: center;\n  height: 44px;\n}\n.upload-picker__progress[data-v-eca9500a] {\n  width: 200px;\n  max-width: 0;\n  transition: max-width var(--animation-quick) ease-in-out;\n  margin-top: 8px;\n}\n.upload-picker__progress p[data-v-eca9500a] {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.upload-picker--uploading .upload-picker__progress[data-v-eca9500a] {\n  max-width: 200px;\n  margin-right: 20px;\n  margin-left: 8px;\n}\n.upload-picker--paused .upload-picker__progress[data-v-eca9500a] {\n  animation: breathing-eca9500a 3s ease-out infinite normal;\n}\n@keyframes breathing-eca9500a {\n  0% {\n    opacity: .5;\n  }\n  25% {\n    opacity: 1;\n  }\n  60% {\n    opacity: .5;\n  }\n  to {\n    opacity: .5;\n  }\n}\n","",{version:3,sources:["webpack://./node_modules/@nextcloud/upload/dist/assets/index-Ussc_ol3.css"],names:[],mappings:"AAAA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,YAAY;EACZ,YAAY;EACZ,wDAAwD;EACxD,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,yDAAyD;AAC3D;AACA;EACE;IACE,WAAW;EACb;EACA;IACE,UAAU;EACZ;EACA;IACE,WAAW;EACb;EACA;IACE,WAAW;EACb;AACF",sourcesContent:[".upload-picker[data-v-eca9500a] {\n  display: inline-flex;\n  align-items: center;\n  height: 44px;\n}\n.upload-picker__progress[data-v-eca9500a] {\n  width: 200px;\n  max-width: 0;\n  transition: max-width var(--animation-quick) ease-in-out;\n  margin-top: 8px;\n}\n.upload-picker__progress p[data-v-eca9500a] {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.upload-picker--uploading .upload-picker__progress[data-v-eca9500a] {\n  max-width: 200px;\n  margin-right: 20px;\n  margin-left: 8px;\n}\n.upload-picker--paused .upload-picker__progress[data-v-eca9500a] {\n  animation: breathing-eca9500a 3s ease-out infinite normal;\n}\n@keyframes breathing-eca9500a {\n  0% {\n    opacity: .5;\n  }\n  25% {\n    opacity: 1;\n  }\n  60% {\n    opacity: .5;\n  }\n  to {\n    opacity: .5;\n  }\n}\n"],sourceRoot:""}]);const o=r},75270:e=>{function t(e,t){return null==e?t:e}e.exports=function(e){var s,n=t((e=e||{}).max,1),a=t(e.min,0),i=t(e.autostart,!0),r=t(e.ignoreSameProgress,!1),o=null,l=null,d=null,m=(s=t(e.historyTimeConstant,2.5),function(e,t,n){return e+n/(n+s)*(t-e)});function c(){u(a)}function u(e,t){if("number"!=typeof t&&(t=Date.now()),l!==t&&(!r||d!==e)){if(null===l||null===d)return d=e,void(l=t);var s=.001*(t-l),n=(e-d)/s;o=null===o?n:m(o,n,s),d=e,l=t}}return{start:c,reset:function(){o=null,l=null,d=null,i&&c()},report:u,estimate:function(e){if(null===d)return 1/0;if(d>=n)return 0;if(null===o)return 1/0;var t=(n-d)/o;return"number"==typeof e&&"number"==typeof l&&(t-=.001*(e-l)),Math.max(0,t)},rate:function(){return null===o?0:o}}}},63710:e=>{"use strict";e.exports="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20height=%2716%27%20width=%2716%27%3e%3cpath%20d=%27M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z%27%20style=%27fill-opacity:1;fill:%23ffffff%27/%3e%3c/svg%3e"},57273:e=>{"use strict";e.exports="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20height=%2716%27%20width=%2716%27%3e%3cpath%20d=%27M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z%27/%3e%3c/svg%3e"},35810:(e,t,s)=>{"use strict";s.d(t,{Al:()=>R,Gg:()=>w,H4:()=>O,PY:()=>j,Q$:()=>z,R3:()=>L,Ss:()=>lt,VL:()=>b,Yc:()=>A,ZH:()=>U,aX:()=>x,b2:()=>k,bh:()=>H,gj:()=>ct,hY:()=>h,lJ:()=>I,m1:()=>ut,m9:()=>p,pt:()=>E,v7:()=>V,vb:()=>_,vd:()=>N,zI:()=>F,zj:()=>mt});var n=s(21777),a=s(84697),i=s(43627),r=s(71089),o=s(66656),l=s(44719),d=s(36117),m=s(2568);const c=null===(u=(0,n.HW)())?(0,a.YK)().setApp("files").build():(0,a.YK)().setApp("files").setUid(u.uid).build();var u;class g{_entries=[];registerEntry(e){this.validateEntry(e),e.category=e.category??1,this._entries.push(e)}unregisterEntry(e){const t="string"==typeof e?this.getEntryIndex(e):this.getEntryIndex(e.id);-1!==t?this._entries.splice(t,1):c.warn("Entry not found, nothing removed",{entry:e,entries:this.getEntries()})}getEntries(e){return e?this._entries.filter((t=>"function"!=typeof t.enabled||t.enabled(e))):this._entries}getEntryIndex(e){return this._entries.findIndex((t=>t.id===e))}validateEntry(e){if(!e.id||!e.displayName||!e.iconSvgInline&&!e.iconClass||!e.handler)throw new Error("Invalid entry");if("string"!=typeof e.id||"string"!=typeof e.displayName)throw new Error("Invalid id or displayName property");if(e.iconClass&&"string"!=typeof e.iconClass||e.iconSvgInline&&"string"!=typeof e.iconSvgInline)throw new Error("Invalid icon provided");if(void 0!==e.enabled&&"function"!=typeof e.enabled)throw new Error("Invalid enabled property");if("function"!=typeof e.handler)throw new Error("Invalid handler property");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order property");if(-1!==this.getEntryIndex(e.id))throw new Error("Duplicate entry")}}const f=function(){return void 0===window._nc_newfilemenu&&(window._nc_newfilemenu=new g,c.debug("NewFileMenu initialized")),window._nc_newfilemenu};var p=(e=>(e.DEFAULT="default",e.HIDDEN="hidden",e))(p||{});class h{_action;constructor(e){this.validateAction(e),this._action=e}get id(){return this._action.id}get displayName(){return this._action.displayName}get title(){return this._action.title}get iconSvgInline(){return this._action.iconSvgInline}get enabled(){return this._action.enabled}get exec(){return this._action.exec}get execBatch(){return this._action.execBatch}get order(){return this._action.order}get parent(){return this._action.parent}get default(){return this._action.default}get inline(){return this._action.inline}get renderInline(){return this._action.renderInline}validateAction(e){if(!e.id||"string"!=typeof e.id)throw new Error("Invalid id");if(!e.displayName||"function"!=typeof e.displayName)throw new Error("Invalid displayName function");if("title"in e&&"function"!=typeof e.title)throw new Error("Invalid title function");if(!e.iconSvgInline||"function"!=typeof e.iconSvgInline)throw new Error("Invalid iconSvgInline function");if(!e.exec||"function"!=typeof e.exec)throw new Error("Invalid exec function");if("enabled"in e&&"function"!=typeof e.enabled)throw new Error("Invalid enabled function");if("execBatch"in e&&"function"!=typeof e.execBatch)throw new Error("Invalid execBatch function");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order");if("parent"in e&&"string"!=typeof e.parent)throw new Error("Invalid parent");if(e.default&&!Object.values(p).includes(e.default))throw new Error("Invalid default");if("inline"in e&&"function"!=typeof e.inline)throw new Error("Invalid inline function");if("renderInline"in e&&"function"!=typeof e.renderInline)throw new Error("Invalid renderInline function")}}const w=function(e){void 0===window._nc_fileactions&&(window._nc_fileactions=[],c.debug("FileActions initialized")),window._nc_fileactions.find((t=>t.id===e.id))?c.error(`FileAction ${e.id} already registered`,{action:e}):window._nc_fileactions.push(e)};var x=(e=>(e[e.NONE=0]="NONE",e[e.CREATE=4]="CREATE",e[e.READ=1]="READ",e[e.UPDATE=2]="UPDATE",e[e.DELETE=8]="DELETE",e[e.SHARE=16]="SHARE",e[e.ALL=31]="ALL",e))(x||{});const v=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:size"],T={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"},A=function(e,t={nc:"http://nextcloud.org/ns"}){void 0===window._nc_dav_properties&&(window._nc_dav_properties=[...v],window._nc_dav_namespaces={...T});const s={...window._nc_dav_namespaces,...t};return window._nc_dav_properties.find((t=>t===e))?(c.warn(`${e} already registered`,{prop:e}),!1):e.startsWith("<")||2!==e.split(":").length?(c.error(`${e} is not valid. See example: 'oc:fileid'`,{prop:e}),!1):s[e.split(":")[0]]?(window._nc_dav_properties.push(e),window._nc_dav_namespaces=s,!0):(c.error(`${e} namespace unknown`,{prop:e,namespaces:s}),!1)},y=function(){return void 0===window._nc_dav_properties&&(window._nc_dav_properties=[...v]),window._nc_dav_properties.map((e=>`<${e} />`)).join(" ")},C=function(){return void 0===window._nc_dav_namespaces&&(window._nc_dav_namespaces={...T}),Object.keys(window._nc_dav_namespaces).map((e=>`xmlns:${e}="${window._nc_dav_namespaces?.[e]}"`)).join(" ")},b=function(){return`<?xml version="1.0"?>\n\t\t<d:propfind ${C()}>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`},k=function(){return`<?xml version="1.0"?>\n\t\t<oc:filter-files ${C()}>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`},L=function(e){return`<?xml version="1.0" encoding="UTF-8"?>\n<d:searchrequest ${C()}\n\txmlns:ns="https://github.com/icewind1991/SearchDAV/ns">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${y()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${(0,n.HW)()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${e}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`},_=function(e=""){let t=x.NONE;return e?((e.includes("C")||e.includes("K"))&&(t|=x.CREATE),e.includes("G")&&(t|=x.READ),(e.includes("W")||e.includes("N")||e.includes("V"))&&(t|=x.UPDATE),e.includes("D")&&(t|=x.DELETE),e.includes("R")&&(t|=x.SHARE),t):t};var E=(e=>(e.Folder="folder",e.File="file",e))(E||{});const S=function(e,t){return null!==e.match(t)},B=(e,t)=>{if(e.id&&"number"!=typeof e.id)throw new Error("Invalid id type of value");if(!e.source)throw new Error("Missing mandatory source");try{new URL(e.source)}catch(e){throw new Error("Invalid source format, source must be a valid URL")}if(!e.source.startsWith("http"))throw new Error("Invalid source format, only http(s) is supported");if(e.mtime&&!(e.mtime instanceof Date))throw new Error("Invalid mtime type");if(e.crtime&&!(e.crtime instanceof Date))throw new Error("Invalid crtime type");if(!e.mime||"string"!=typeof e.mime||!e.mime.match(/^[-\w.]+\/[-+\w.]+$/gi))throw new Error("Missing or invalid mandatory mime");if("size"in e&&"number"!=typeof e.size&&void 0!==e.size)throw new Error("Invalid size type");if("permissions"in e&&void 0!==e.permissions&&!("number"==typeof e.permissions&&e.permissions>=x.NONE&&e.permissions<=x.ALL))throw new Error("Invalid permissions");if(e.owner&&null!==e.owner&&"string"!=typeof e.owner)throw new Error("Invalid owner type");if(e.attributes&&"object"!=typeof e.attributes)throw new Error("Invalid attributes type");if(e.root&&"string"!=typeof e.root)throw new Error("Invalid root type");if(e.root&&!e.root.startsWith("/"))throw new Error("Root must start with a leading slash");if(e.root&&!e.source.includes(e.root))throw new Error("Root must be part of the source");if(e.root&&S(e.source,t)){const s=e.source.match(t)[0];if(!e.source.includes((0,i.join)(s,e.root)))throw new Error("The root must be relative to the service. e.g /files/emma")}if(e.status&&!Object.values(F).includes(e.status))throw new Error("Status must be a valid NodeStatus")};var F=(e=>(e.NEW="new",e.FAILED="failed",e.LOADING="loading",e.LOCKED="locked",e))(F||{});class P{_data;_attributes;_knownDavService=/(remote|public)\.php\/(web)?dav/i;readonlyAttributes=Object.entries(Object.getOwnPropertyDescriptors(P.prototype)).filter((e=>"function"==typeof e[1].get&&"__proto__"!==e[0])).map((e=>e[0]));handler={set:(e,t,s)=>!this.readonlyAttributes.includes(t)&&(this.updateMtime(),Reflect.set(e,t,s)),deleteProperty:(e,t)=>!this.readonlyAttributes.includes(t)&&(this.updateMtime(),Reflect.deleteProperty(e,t)),get:(e,t,s)=>this.readonlyAttributes.includes(t)?(c.warn(`Accessing "Node.attributes.${t}" is deprecated, access it directly on the Node instance.`),Reflect.get(this,t)):Reflect.get(e,t,s)};constructor(e,t){B(e,t||this._knownDavService),this._data={...e,attributes:{}},this._attributes=new Proxy(this._data.attributes,this.handler),this.update(e.attributes??{}),this._data.mtime=e.mtime,t&&(this._knownDavService=t)}get source(){return this._data.source.replace(/\/$/i,"")}get encodedSource(){const{origin:e}=new URL(this.source);return e+(0,r.O0)(this.source.slice(e.length))}get basename(){return(0,i.basename)(this.source)}get extension(){return(0,i.extname)(this.source)}get dirname(){if(this.root){let e=this.source;this.isDavRessource&&(e=e.split(this._knownDavService).pop());const t=e.indexOf(this.root),s=this.root.replace(/\/$/,"");return(0,i.dirname)(e.slice(t+s.length)||"/")}const e=new URL(this.source);return(0,i.dirname)(e.pathname)}get mime(){return this._data.mime}get mtime(){return this._data.mtime}get crtime(){return this._data.crtime}get size(){return this._data.size}set size(e){this.updateMtime(),this._data.size=e}get attributes(){return this._attributes}get permissions(){return null!==this.owner||this.isDavRessource?void 0!==this._data.permissions?this._data.permissions:x.NONE:x.READ}set permissions(e){this.updateMtime(),this._data.permissions=e}get owner(){return this.isDavRessource?this._data.owner:null}get isDavRessource(){return S(this.source,this._knownDavService)}get root(){return this._data.root?this._data.root.replace(/^(.+)\/$/,"$1"):this.isDavRessource&&(0,i.dirname)(this.source).split(this._knownDavService).pop()||null}get path(){if(this.root){let e=this.source;this.isDavRessource&&(e=e.split(this._knownDavService).pop());const t=e.indexOf(this.root),s=this.root.replace(/\/$/,"");return e.slice(t+s.length)||"/"}return(this.dirname+"/"+this.basename).replace(/\/\//g,"/")}get fileid(){return this._data?.id}get status(){return this._data?.status}set status(e){this._data.status=e}move(e){B({...this._data,source:e},this._knownDavService),this._data.source=e,this.updateMtime()}rename(e){if(e.includes("/"))throw new Error("Invalid basename");this.move((0,i.dirname)(this.source)+"/"+e)}updateMtime(){this._data.mtime&&(this._data.mtime=new Date)}update(e){for(const[t,s]of Object.entries(e))try{void 0===s?delete this.attributes[t]:this.attributes[t]=s}catch(e){if(e instanceof TypeError)continue;throw e}}}class U extends P{get type(){return E.File}}class N extends P{constructor(e){super({...e,mime:"httpd/unix-directory"})}get type(){return E.Folder}get extension(){return null}get mime(){return"httpd/unix-directory"}}const I=`/files/${(0,n.HW)()?.uid}`,j=(0,o.dC)("dav"),O=function(e=j,t={}){const s=(0,l.UU)(e,{headers:t});function a(e){s.setHeaders({...t,"X-Requested-With":"XMLHttpRequest",requesttoken:e??""})}return(0,n.zo)(a),a((0,n.do)()),(0,l.Gu)().patch("fetch",((e,t)=>{const s=t.headers;return s?.method&&(t.method=s.method,delete s.method),fetch(e,t)})),s},z=(e,t="/",s=I)=>{const n=new AbortController;return new d.CancelablePromise((async(a,i,r)=>{r((()=>n.abort()));try{a((await e.getDirectoryContents(`${s}${t}`,{signal:n.signal,details:!0,data:k(),headers:{method:"REPORT"},includeSelf:!0})).data.filter((e=>e.filename!==t)).map((e=>R(e,s))))}catch(e){i(e)}}))},R=function(e,t=I,s=j){let a=(0,n.HW)()?.uid;const i=document.querySelector("input#isPublic")?.value;if(i)a=a??document.querySelector("input#sharingUserId")?.value,a=a??"anonymous";else if(!a)throw new Error("No user id found");const r=e.props,o=_(r?.permissions),l=String(r?.["owner-id"]||a),d={id:r?.fileid||0,source:`${s}${e.filename}`,mtime:new Date(Date.parse(e.lastmod)),mime:e.mime||"application/octet-stream",size:r?.size||Number.parseInt(r.getcontentlength||"0"),permissions:o,owner:l,root:t,attributes:{...e,...r,hasPreview:r?.["has-preview"]}};return delete d.attributes?.props,"file"===e.type?new U(d):new N(d)};window._oc_config,window._oc_config?.blacklist_files_regex&&new RegExp(window._oc_config.blacklist_files_regex);const D=["B","KB","MB","GB","TB","PB"],M=["B","KiB","MiB","GiB","TiB","PiB"];function V(e,t=!1,s=!1,n=!1){s=s&&!n,"string"==typeof e&&(e=Number(e));let a=e>0?Math.floor(Math.log(e)/Math.log(n?1e3:1024)):0;a=Math.min((s?M.length:D.length)-1,a);const i=s?M[a]:D[a];let r=(e/Math.pow(n?1e3:1024,a)).toFixed(1);return!0===t&&0===a?("0.0"!==r?"< 1 ":"0 ")+(s?M[1]:D[1]):(r=a<2?parseFloat(r).toFixed(0):parseFloat(r).toLocaleString((0,m.lO)()),r+" "+i)}class ${_views=[];_currentView=null;register(e){if(this._views.find((t=>t.id===e.id)))throw new Error(`View id ${e.id} is already registered`);this._views.push(e)}remove(e){const t=this._views.findIndex((t=>t.id===e));-1!==t&&this._views.splice(t,1)}get views(){return this._views}setActive(e){this._currentView=e}get active(){return this._currentView}}const H=function(){return void 0===window._nc_navigation&&(window._nc_navigation=new $,c.debug("Navigation service initialized")),window._nc_navigation};class Y{_column;constructor(e){W(e),this._column=e}get id(){return this._column.id}get title(){return this._column.title}get render(){return this._column.render}get sort(){return this._column.sort}get summary(){return this._column.summary}}const W=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("A column id is required");if(!e.title||"string"!=typeof e.title)throw new Error("A column title is required");if(!e.render||"function"!=typeof e.render)throw new Error("A render function is required");if(e.sort&&"function"!=typeof e.sort)throw new Error("Column sortFunction must be a function");if(e.summary&&"function"!=typeof e.summary)throw new Error("Column summary must be a function");return!0};var q={},G={};!function(e){const t=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",s="["+t+"]["+t+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",n=new RegExp("^"+s+"$");e.isExist=function(e){return void 0!==e},e.isEmptyObject=function(e){return 0===Object.keys(e).length},e.merge=function(e,t,s){if(t){const n=Object.keys(t),a=n.length;for(let i=0;i<a;i++)e[n[i]]="strict"===s?[t[n[i]]]:t[n[i]]}},e.getValue=function(t){return e.isExist(t)?t:""},e.isName=function(e){return!(null==n.exec(e))},e.getAllMatches=function(e,t){const s=[];let n=t.exec(e);for(;n;){const a=[];a.startIndex=t.lastIndex-n[0].length;const i=n.length;for(let e=0;e<i;e++)a.push(n[e]);s.push(a),n=t.exec(e)}return s},e.nameRegexp=s}(G);const K=G,J={allowBooleanAttributes:!1,unpairedTags:[]};function Z(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function X(e,t){const s=t;for(;t<e.length;t++)if("?"!=e[t]&&" "!=e[t]);else{const n=e.substr(s,t-s);if(t>5&&"xml"===n)return re("InvalidXml","XML declaration allowed only at the start of the document.",le(e,t));if("?"==e[t]&&">"==e[t+1]){t++;break}}return t}function Q(e,t){if(e.length>t+5&&"-"===e[t+1]&&"-"===e[t+2]){for(t+=3;t<e.length;t++)if("-"===e[t]&&"-"===e[t+1]&&">"===e[t+2]){t+=2;break}}else if(e.length>t+8&&"D"===e[t+1]&&"O"===e[t+2]&&"C"===e[t+3]&&"T"===e[t+4]&&"Y"===e[t+5]&&"P"===e[t+6]&&"E"===e[t+7]){let s=1;for(t+=8;t<e.length;t++)if("<"===e[t])s++;else if(">"===e[t]&&(s--,0===s))break}else if(e.length>t+9&&"["===e[t+1]&&"C"===e[t+2]&&"D"===e[t+3]&&"A"===e[t+4]&&"T"===e[t+5]&&"A"===e[t+6]&&"["===e[t+7])for(t+=8;t<e.length;t++)if("]"===e[t]&&"]"===e[t+1]&&">"===e[t+2]){t+=2;break}return t}q.validate=function(e,t){t=Object.assign({},J,t);const s=[];let n=!1,a=!1;"\ufeff"===e[0]&&(e=e.substr(1));for(let r=0;r<e.length;r++)if("<"===e[r]&&"?"===e[r+1]){if(r+=2,r=X(e,r),r.err)return r}else{if("<"!==e[r]){if(Z(e[r]))continue;return re("InvalidChar","char '"+e[r]+"' is not expected.",le(e,r))}{let o=r;if(r++,"!"===e[r]){r=Q(e,r);continue}{let l=!1;"/"===e[r]&&(l=!0,r++);let d="";for(;r<e.length&&">"!==e[r]&&" "!==e[r]&&"\t"!==e[r]&&"\n"!==e[r]&&"\r"!==e[r];r++)d+=e[r];if(d=d.trim(),"/"===d[d.length-1]&&(d=d.substring(0,d.length-1),r--),i=d,!K.isName(i)){let t;return t=0===d.trim().length?"Invalid space after '<'.":"Tag '"+d+"' is an invalid name.",re("InvalidTag",t,le(e,r))}const m=se(e,r);if(!1===m)return re("InvalidAttr","Attributes for '"+d+"' have open quote.",le(e,r));let c=m.value;if(r=m.index,"/"===c[c.length-1]){const s=r-c.length;c=c.substring(0,c.length-1);const a=ae(c,t);if(!0!==a)return re(a.err.code,a.err.msg,le(e,s+a.err.line));n=!0}else if(l){if(!m.tagClosed)return re("InvalidTag","Closing tag '"+d+"' doesn't have proper closing.",le(e,r));if(c.trim().length>0)return re("InvalidTag","Closing tag '"+d+"' can't have attributes or invalid starting.",le(e,o));if(0===s.length)return re("InvalidTag","Closing tag '"+d+"' has not been opened.",le(e,o));{const t=s.pop();if(d!==t.tagName){let s=le(e,t.tagStartPos);return re("InvalidTag","Expected closing tag '"+t.tagName+"' (opened in line "+s.line+", col "+s.col+") instead of closing tag '"+d+"'.",le(e,o))}0==s.length&&(a=!0)}}else{const i=ae(c,t);if(!0!==i)return re(i.err.code,i.err.msg,le(e,r-c.length+i.err.line));if(!0===a)return re("InvalidXml","Multiple possible root nodes found.",le(e,r));-1!==t.unpairedTags.indexOf(d)||s.push({tagName:d,tagStartPos:o}),n=!0}for(r++;r<e.length;r++)if("<"===e[r]){if("!"===e[r+1]){r++,r=Q(e,r);continue}if("?"!==e[r+1])break;if(r=X(e,++r),r.err)return r}else if("&"===e[r]){const t=ie(e,r);if(-1==t)return re("InvalidChar","char '&' is not expected.",le(e,r));r=t}else if(!0===a&&!Z(e[r]))return re("InvalidXml","Extra text at the end",le(e,r));"<"===e[r]&&r--}}}var i;return n?1==s.length?re("InvalidTag","Unclosed tag '"+s[0].tagName+"'.",le(e,s[0].tagStartPos)):!(s.length>0)||re("InvalidXml","Invalid '"+JSON.stringify(s.map((e=>e.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):re("InvalidXml","Start tag expected.",1)};const ee='"',te="'";function se(e,t){let s="",n="",a=!1;for(;t<e.length;t++){if(e[t]===ee||e[t]===te)""===n?n=e[t]:n!==e[t]||(n="");else if(">"===e[t]&&""===n){a=!0;break}s+=e[t]}return""===n&&{value:s,index:t,tagClosed:a}}const ne=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function ae(e,t){const s=K.getAllMatches(e,ne),n={};for(let e=0;e<s.length;e++){if(0===s[e][1].length)return re("InvalidAttr","Attribute '"+s[e][2]+"' has no space in starting.",de(s[e]));if(void 0!==s[e][3]&&void 0===s[e][4])return re("InvalidAttr","Attribute '"+s[e][2]+"' is without value.",de(s[e]));if(void 0===s[e][3]&&!t.allowBooleanAttributes)return re("InvalidAttr","boolean attribute '"+s[e][2]+"' is not allowed.",de(s[e]));const a=s[e][2];if(!oe(a))return re("InvalidAttr","Attribute '"+a+"' is an invalid name.",de(s[e]));if(n.hasOwnProperty(a))return re("InvalidAttr","Attribute '"+a+"' is repeated.",de(s[e]));n[a]=1}return!0}function ie(e,t){if(";"===e[++t])return-1;if("#"===e[t])return function(e,t){let s=/\d/;for("x"===e[t]&&(t++,s=/[\da-fA-F]/);t<e.length;t++){if(";"===e[t])return t;if(!e[t].match(s))break}return-1}(e,++t);let s=0;for(;t<e.length;t++,s++)if(!(e[t].match(/\w/)&&s<20)){if(";"===e[t])break;return-1}return t}function re(e,t,s){return{err:{code:e,msg:t,line:s.line||s,col:s.col}}}function oe(e){return K.isName(e)}function le(e,t){const s=e.substring(0,t).split(/\r?\n/);return{line:s.length,col:s[s.length-1].length+1}}function de(e){return e.startIndex+e[1].length}var me={};const ce={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(e,t,s){return e}};me.buildOptions=function(e){return Object.assign({},ce,e)},me.defaultOptions=ce;const ue=G;function ge(e,t){let s="";for(;t<e.length&&"'"!==e[t]&&'"'!==e[t];t++)s+=e[t];if(s=s.trim(),-1!==s.indexOf(" "))throw new Error("External entites are not supported");const n=e[t++];let a="";for(;t<e.length&&e[t]!==n;t++)a+=e[t];return[s,a,t]}function fe(e,t){return"!"===e[t+1]&&"-"===e[t+2]&&"-"===e[t+3]}function pe(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"N"===e[t+3]&&"T"===e[t+4]&&"I"===e[t+5]&&"T"===e[t+6]&&"Y"===e[t+7]}function he(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"L"===e[t+3]&&"E"===e[t+4]&&"M"===e[t+5]&&"E"===e[t+6]&&"N"===e[t+7]&&"T"===e[t+8]}function we(e,t){return"!"===e[t+1]&&"A"===e[t+2]&&"T"===e[t+3]&&"T"===e[t+4]&&"L"===e[t+5]&&"I"===e[t+6]&&"S"===e[t+7]&&"T"===e[t+8]}function xe(e,t){return"!"===e[t+1]&&"N"===e[t+2]&&"O"===e[t+3]&&"T"===e[t+4]&&"A"===e[t+5]&&"T"===e[t+6]&&"I"===e[t+7]&&"O"===e[t+8]&&"N"===e[t+9]}function ve(e){if(ue.isName(e))return e;throw new Error(`Invalid entity name ${e}`)}const Te=/^[-+]?0x[a-fA-F0-9]+$/,Ae=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const ye={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0},Ce=G,be=class{constructor(e){this.tagname=e,this.child=[],this[":@"]={}}add(e,t){"__proto__"===e&&(e="#__proto__"),this.child.push({[e]:t})}addChild(e){"__proto__"===e.tagname&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,":@":e[":@"]}):this.child.push({[e.tagname]:e.child})}},ke=function(e,t){const s={};if("O"!==e[t+3]||"C"!==e[t+4]||"T"!==e[t+5]||"Y"!==e[t+6]||"P"!==e[t+7]||"E"!==e[t+8])throw new Error("Invalid Tag instead of DOCTYPE");{t+=9;let n=1,a=!1,i=!1,r="";for(;t<e.length;t++)if("<"!==e[t]||i)if(">"===e[t]){if(i?"-"===e[t-1]&&"-"===e[t-2]&&(i=!1,n--):n--,0===n)break}else"["===e[t]?a=!0:r+=e[t];else{if(a&&pe(e,t))t+=7,[entityName,val,t]=ge(e,t+1),-1===val.indexOf("&")&&(s[ve(entityName)]={regx:RegExp(`&${entityName};`,"g"),val});else if(a&&he(e,t))t+=8;else if(a&&we(e,t))t+=8;else if(a&&xe(e,t))t+=9;else{if(!fe)throw new Error("Invalid DOCTYPE");i=!0}n++,r=""}if(0!==n)throw new Error("Unclosed DOCTYPE")}return{entities:s,i:t}},Le=function(e,t={}){if(t=Object.assign({},ye,t),!e||"string"!=typeof e)return e;let s=e.trim();if(void 0!==t.skipLike&&t.skipLike.test(s))return e;if(t.hex&&Te.test(s))return Number.parseInt(s,16);{const a=Ae.exec(s);if(a){const i=a[1],r=a[2];let o=(n=a[3])&&-1!==n.indexOf(".")?("."===(n=n.replace(/0+$/,""))?n="0":"."===n[0]?n="0"+n:"."===n[n.length-1]&&(n=n.substr(0,n.length-1)),n):n;const l=a[4]||a[6];if(!t.leadingZeros&&r.length>0&&i&&"."!==s[2])return e;if(!t.leadingZeros&&r.length>0&&!i&&"."!==s[1])return e;{const n=Number(s),a=""+n;return-1!==a.search(/[eE]/)||l?t.eNotation?n:e:-1!==s.indexOf(".")?"0"===a&&""===o||a===o||i&&a==="-"+o?n:e:r?o===a||i+o===a?n:e:s===a||s===i+a?n:e}}return e}var n};function _e(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];this.lastEntities[n]={regex:new RegExp("&"+n+";","g"),val:e[n]}}}function Ee(e,t,s,n,a,i,r){if(void 0!==e&&(this.options.trimValues&&!n&&(e=e.trim()),e.length>0)){r||(e=this.replaceEntitiesValue(e));const n=this.options.tagValueProcessor(t,e,s,a,i);return null==n?e:typeof n!=typeof e||n!==e?n:this.options.trimValues||e.trim()===e?De(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function Se(e){if(this.options.removeNSPrefix){const t=e.split(":"),s="/"===e.charAt(0)?"/":"";if("xmlns"===t[0])return"";2===t.length&&(e=s+t[1])}return e}const Be=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function Fe(e,t,s){if(!this.options.ignoreAttributes&&"string"==typeof e){const s=Ce.getAllMatches(e,Be),n=s.length,a={};for(let e=0;e<n;e++){const n=this.resolveNameSpace(s[e][1]);let i=s[e][4],r=this.options.attributeNamePrefix+n;if(n.length)if(this.options.transformAttributeName&&(r=this.options.transformAttributeName(r)),"__proto__"===r&&(r="#__proto__"),void 0!==i){this.options.trimValues&&(i=i.trim()),i=this.replaceEntitiesValue(i);const e=this.options.attributeValueProcessor(n,i,t);a[r]=null==e?i:typeof e!=typeof i||e!==i?e:De(i,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(a[r]=!0)}if(!Object.keys(a).length)return;if(this.options.attributesGroupName){const e={};return e[this.options.attributesGroupName]=a,e}return a}}const Pe=function(e){e=e.replace(/\r\n?/g,"\n");const t=new be("!xml");let s=t,n="",a="";for(let i=0;i<e.length;i++)if("<"===e[i])if("/"===e[i+1]){const t=Oe(e,">",i,"Closing Tag is not closed.");let r=e.substring(i+2,t).trim();if(this.options.removeNSPrefix){const e=r.indexOf(":");-1!==e&&(r=r.substr(e+1))}this.options.transformTagName&&(r=this.options.transformTagName(r)),s&&(n=this.saveTextToParentTag(n,s,a));const o=a.substring(a.lastIndexOf(".")+1);if(r&&-1!==this.options.unpairedTags.indexOf(r))throw new Error(`Unpaired tag can not be used as closing tag: </${r}>`);let l=0;o&&-1!==this.options.unpairedTags.indexOf(o)?(l=a.lastIndexOf(".",a.lastIndexOf(".")-1),this.tagsNodeStack.pop()):l=a.lastIndexOf("."),a=a.substring(0,l),s=this.tagsNodeStack.pop(),n="",i=t}else if("?"===e[i+1]){let t=ze(e,i,!1,"?>");if(!t)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,s,a),this.options.ignoreDeclaration&&"?xml"===t.tagName||this.options.ignorePiTags);else{const e=new be(t.tagName);e.add(this.options.textNodeName,""),t.tagName!==t.tagExp&&t.attrExpPresent&&(e[":@"]=this.buildAttributesMap(t.tagExp,a,t.tagName)),this.addChild(s,e,a)}i=t.closeIndex+1}else if("!--"===e.substr(i+1,3)){const t=Oe(e,"--\x3e",i+4,"Comment is not closed.");if(this.options.commentPropName){const r=e.substring(i+4,t-2);n=this.saveTextToParentTag(n,s,a),s.add(this.options.commentPropName,[{[this.options.textNodeName]:r}])}i=t}else if("!D"===e.substr(i+1,2)){const t=ke(e,i);this.docTypeEntities=t.entities,i=t.i}else if("!["===e.substr(i+1,2)){const t=Oe(e,"]]>",i,"CDATA is not closed.")-2,r=e.substring(i+9,t);n=this.saveTextToParentTag(n,s,a);let o=this.parseTextData(r,s.tagname,a,!0,!1,!0,!0);null==o&&(o=""),this.options.cdataPropName?s.add(this.options.cdataPropName,[{[this.options.textNodeName]:r}]):s.add(this.options.textNodeName,o),i=t+2}else{let r=ze(e,i,this.options.removeNSPrefix),o=r.tagName;const l=r.rawTagName;let d=r.tagExp,m=r.attrExpPresent,c=r.closeIndex;this.options.transformTagName&&(o=this.options.transformTagName(o)),s&&n&&"!xml"!==s.tagname&&(n=this.saveTextToParentTag(n,s,a,!1));const u=s;if(u&&-1!==this.options.unpairedTags.indexOf(u.tagname)&&(s=this.tagsNodeStack.pop(),a=a.substring(0,a.lastIndexOf("."))),o!==t.tagname&&(a+=a?"."+o:o),this.isItStopNode(this.options.stopNodes,a,o)){let t="";if(d.length>0&&d.lastIndexOf("/")===d.length-1)"/"===o[o.length-1]?(o=o.substr(0,o.length-1),a=a.substr(0,a.length-1),d=o):d=d.substr(0,d.length-1),i=r.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(o))i=r.closeIndex;else{const s=this.readStopNodeData(e,l,c+1);if(!s)throw new Error(`Unexpected end of ${l}`);i=s.i,t=s.tagContent}const n=new be(o);o!==d&&m&&(n[":@"]=this.buildAttributesMap(d,a,o)),t&&(t=this.parseTextData(t,o,a,!0,m,!0,!0)),a=a.substr(0,a.lastIndexOf(".")),n.add(this.options.textNodeName,t),this.addChild(s,n,a)}else{if(d.length>0&&d.lastIndexOf("/")===d.length-1){"/"===o[o.length-1]?(o=o.substr(0,o.length-1),a=a.substr(0,a.length-1),d=o):d=d.substr(0,d.length-1),this.options.transformTagName&&(o=this.options.transformTagName(o));const e=new be(o);o!==d&&m&&(e[":@"]=this.buildAttributesMap(d,a,o)),this.addChild(s,e,a),a=a.substr(0,a.lastIndexOf("."))}else{const e=new be(o);this.tagsNodeStack.push(s),o!==d&&m&&(e[":@"]=this.buildAttributesMap(d,a,o)),this.addChild(s,e,a),s=e}n="",i=c}}else n+=e[i];return t.child};function Ue(e,t,s){const n=this.options.updateTag(t.tagname,s,t[":@"]);!1===n||("string"==typeof n?(t.tagname=n,e.addChild(t)):e.addChild(t))}const Ne=function(e){if(this.options.processEntities){for(let t in this.docTypeEntities){const s=this.docTypeEntities[t];e=e.replace(s.regx,s.val)}for(let t in this.lastEntities){const s=this.lastEntities[t];e=e.replace(s.regex,s.val)}if(this.options.htmlEntities)for(let t in this.htmlEntities){const s=this.htmlEntities[t];e=e.replace(s.regex,s.val)}e=e.replace(this.ampEntity.regex,this.ampEntity.val)}return e};function Ie(e,t,s,n){return e&&(void 0===n&&(n=0===Object.keys(t.child).length),void 0!==(e=this.parseTextData(e,t.tagname,s,!1,!!t[":@"]&&0!==Object.keys(t[":@"]).length,n))&&""!==e&&t.add(this.options.textNodeName,e),e=""),e}function je(e,t,s){const n="*."+s;for(const s in e){const a=e[s];if(n===a||t===a)return!0}return!1}function Oe(e,t,s,n){const a=e.indexOf(t,s);if(-1===a)throw new Error(n);return a+t.length-1}function ze(e,t,s,n=">"){const a=function(e,t,s=">"){let n,a="";for(let i=t;i<e.length;i++){let t=e[i];if(n)t===n&&(n="");else if('"'===t||"'"===t)n=t;else if(t===s[0]){if(!s[1])return{data:a,index:i};if(e[i+1]===s[1])return{data:a,index:i}}else"\t"===t&&(t=" ");a+=t}}(e,t+1,n);if(!a)return;let i=a.data;const r=a.index,o=i.search(/\s/);let l=i,d=!0;-1!==o&&(l=i.substring(0,o),i=i.substring(o+1).trimStart());const m=l;if(s){const e=l.indexOf(":");-1!==e&&(l=l.substr(e+1),d=l!==a.data.substr(e+1))}return{tagName:l,tagExp:i,closeIndex:r,attrExpPresent:d,rawTagName:m}}function Re(e,t,s){const n=s;let a=1;for(;s<e.length;s++)if("<"===e[s])if("/"===e[s+1]){const i=Oe(e,">",s,`${t} is not closed`);if(e.substring(s+2,i).trim()===t&&(a--,0===a))return{tagContent:e.substring(n,s),i};s=i}else if("?"===e[s+1])s=Oe(e,"?>",s+1,"StopNode is not closed.");else if("!--"===e.substr(s+1,3))s=Oe(e,"--\x3e",s+3,"StopNode is not closed.");else if("!["===e.substr(s+1,2))s=Oe(e,"]]>",s,"StopNode is not closed.")-2;else{const n=ze(e,s,">");n&&((n&&n.tagName)===t&&"/"!==n.tagExp[n.tagExp.length-1]&&a++,s=n.closeIndex)}}function De(e,t,s){if(t&&"string"==typeof e){const t=e.trim();return"true"===t||"false"!==t&&Le(e,s)}return Ce.isExist(e)?e:""}var Me={};function Ve(e,t,s){let n;const a={};for(let i=0;i<e.length;i++){const r=e[i],o=$e(r);let l="";if(l=void 0===s?o:s+"."+o,o===t.textNodeName)void 0===n?n=r[o]:n+=""+r[o];else{if(void 0===o)continue;if(r[o]){let e=Ve(r[o],t,l);const s=Ye(e,t);r[":@"]?He(e,r[":@"],l,t):1!==Object.keys(e).length||void 0===e[t.textNodeName]||t.alwaysCreateTextNode?0===Object.keys(e).length&&(t.alwaysCreateTextNode?e[t.textNodeName]="":e=""):e=e[t.textNodeName],void 0!==a[o]&&a.hasOwnProperty(o)?(Array.isArray(a[o])||(a[o]=[a[o]]),a[o].push(e)):t.isArray(o,l,s)?a[o]=[e]:a[o]=e}}}return"string"==typeof n?n.length>0&&(a[t.textNodeName]=n):void 0!==n&&(a[t.textNodeName]=n),a}function $e(e){const t=Object.keys(e);for(let e=0;e<t.length;e++){const s=t[e];if(":@"!==s)return s}}function He(e,t,s,n){if(t){const a=Object.keys(t),i=a.length;for(let r=0;r<i;r++){const i=a[r];n.isArray(i,s+"."+i,!0,!0)?e[i]=[t[i]]:e[i]=t[i]}}}function Ye(e,t){const{textNodeName:s}=t,n=Object.keys(e).length;return 0===n||!(1!==n||!e[s]&&"boolean"!=typeof e[s]&&0!==e[s])}Me.prettify=function(e,t){return Ve(e,t)};const{buildOptions:We}=me,qe=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(e,t)=>String.fromCharCode(Number.parseInt(t,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(e,t)=>String.fromCharCode(Number.parseInt(t,16))}},this.addExternalEntities=_e,this.parseXml=Pe,this.parseTextData=Ee,this.resolveNameSpace=Se,this.buildAttributesMap=Fe,this.isItStopNode=je,this.replaceEntitiesValue=Ne,this.readStopNodeData=Re,this.saveTextToParentTag=Ie,this.addChild=Ue}},{prettify:Ge}=Me,Ke=q;function Je(e,t,s,n){let a="",i=!1;for(let r=0;r<e.length;r++){const o=e[r],l=Ze(o);if(void 0===l)continue;let d="";if(d=0===s.length?l:`${s}.${l}`,l===t.textNodeName){let e=o[l];Qe(d,t)||(e=t.tagValueProcessor(l,e),e=et(e,t)),i&&(a+=n),a+=e,i=!1;continue}if(l===t.cdataPropName){i&&(a+=n),a+=`<![CDATA[${o[l][0][t.textNodeName]}]]>`,i=!1;continue}if(l===t.commentPropName){a+=n+`\x3c!--${o[l][0][t.textNodeName]}--\x3e`,i=!0;continue}if("?"===l[0]){const e=Xe(o[":@"],t),s="?xml"===l?"":n;let r=o[l][0][t.textNodeName];r=0!==r.length?" "+r:"",a+=s+`<${l}${r}${e}?>`,i=!0;continue}let m=n;""!==m&&(m+=t.indentBy);const c=n+`<${l}${Xe(o[":@"],t)}`,u=Je(o[l],t,d,m);-1!==t.unpairedTags.indexOf(l)?t.suppressUnpairedNode?a+=c+">":a+=c+"/>":u&&0!==u.length||!t.suppressEmptyNode?u&&u.endsWith(">")?a+=c+`>${u}${n}</${l}>`:(a+=c+">",u&&""!==n&&(u.includes("/>")||u.includes("</"))?a+=n+t.indentBy+u+n:a+=u,a+=`</${l}>`):a+=c+"/>",i=!0}return a}function Ze(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];if(e.hasOwnProperty(n)&&":@"!==n)return n}}function Xe(e,t){let s="";if(e&&!t.ignoreAttributes)for(let n in e){if(!e.hasOwnProperty(n))continue;let a=t.attributeValueProcessor(n,e[n]);a=et(a,t),!0===a&&t.suppressBooleanAttributes?s+=` ${n.substr(t.attributeNamePrefix.length)}`:s+=` ${n.substr(t.attributeNamePrefix.length)}="${a}"`}return s}function Qe(e,t){let s=(e=e.substr(0,e.length-t.textNodeName.length-1)).substr(e.lastIndexOf(".")+1);for(let n in t.stopNodes)if(t.stopNodes[n]===e||t.stopNodes[n]==="*."+s)return!0;return!1}function et(e,t){if(e&&e.length>0&&t.processEntities)for(let s=0;s<t.entities.length;s++){const n=t.entities[s];e=e.replace(n.regex,n.val)}return e}const tt=function(e,t){let s="";return t.format&&t.indentBy.length>0&&(s="\n"),Je(e,t,"",s)},st={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:"  ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function nt(e){this.options=Object.assign({},st,e),this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=rt),this.processTextOrObjNode=at,this.options.format?(this.indentate=it,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function at(e,t,s){const n=this.j2x(e,s+1);return void 0!==e[this.options.textNodeName]&&1===Object.keys(e).length?this.buildTextValNode(e[this.options.textNodeName],t,n.attrStr,s):this.buildObjectNode(n.val,t,n.attrStr,s)}function it(e){return this.options.indentBy.repeat(e)}function rt(e){return!(!e.startsWith(this.options.attributeNamePrefix)||e===this.options.textNodeName)&&e.substr(this.attrPrefixLen)}nt.prototype.build=function(e){return this.options.preserveOrder?tt(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0).val)},nt.prototype.j2x=function(e,t){let s="",n="";for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a))if(void 0===e[a])this.isAttribute(a)&&(n+="");else if(null===e[a])this.isAttribute(a)?n+="":"?"===a[0]?n+=this.indentate(t)+"<"+a+"?"+this.tagEndChar:n+=this.indentate(t)+"<"+a+"/"+this.tagEndChar;else if(e[a]instanceof Date)n+=this.buildTextValNode(e[a],a,"",t);else if("object"!=typeof e[a]){const i=this.isAttribute(a);if(i)s+=this.buildAttrPairStr(i,""+e[a]);else if(a===this.options.textNodeName){let t=this.options.tagValueProcessor(a,""+e[a]);n+=this.replaceEntitiesValue(t)}else n+=this.buildTextValNode(e[a],a,"",t)}else if(Array.isArray(e[a])){const s=e[a].length;let i="";for(let r=0;r<s;r++){const s=e[a][r];void 0===s||(null===s?"?"===a[0]?n+=this.indentate(t)+"<"+a+"?"+this.tagEndChar:n+=this.indentate(t)+"<"+a+"/"+this.tagEndChar:"object"==typeof s?this.options.oneListGroup?i+=this.j2x(s,t+1).val:i+=this.processTextOrObjNode(s,a,t):i+=this.buildTextValNode(s,a,"",t))}this.options.oneListGroup&&(i=this.buildObjectNode(i,a,"",t)),n+=i}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const t=Object.keys(e[a]),n=t.length;for(let i=0;i<n;i++)s+=this.buildAttrPairStr(t[i],""+e[a][t[i]])}else n+=this.processTextOrObjNode(e[a],a,t);return{attrStr:s,val:n}},nt.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,""+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&"true"===t?" "+e:" "+e+'="'+t+'"'},nt.prototype.buildObjectNode=function(e,t,s,n){if(""===e)return"?"===t[0]?this.indentate(n)+"<"+t+s+"?"+this.tagEndChar:this.indentate(n)+"<"+t+s+this.closeTag(t)+this.tagEndChar;{let a="</"+t+this.tagEndChar,i="";return"?"===t[0]&&(i="?",a=""),!s&&""!==s||-1!==e.indexOf("<")?!1!==this.options.commentPropName&&t===this.options.commentPropName&&0===i.length?this.indentate(n)+`\x3c!--${e}--\x3e`+this.newLine:this.indentate(n)+"<"+t+s+i+this.tagEndChar+e+this.indentate(n)+a:this.indentate(n)+"<"+t+s+i+">"+e+a}},nt.prototype.closeTag=function(e){let t="";return-1!==this.options.unpairedTags.indexOf(e)?this.options.suppressUnpairedNode||(t="/"):t=this.options.suppressEmptyNode?"/":`></${e}`,t},nt.prototype.buildTextValNode=function(e,t,s,n){if(!1!==this.options.cdataPropName&&t===this.options.cdataPropName)return this.indentate(n)+`<![CDATA[${e}]]>`+this.newLine;if(!1!==this.options.commentPropName&&t===this.options.commentPropName)return this.indentate(n)+`\x3c!--${e}--\x3e`+this.newLine;if("?"===t[0])return this.indentate(n)+"<"+t+s+"?"+this.tagEndChar;{let a=this.options.tagValueProcessor(t,e);return a=this.replaceEntitiesValue(a),""===a?this.indentate(n)+"<"+t+s+this.closeTag(t)+this.tagEndChar:this.indentate(n)+"<"+t+s+">"+a+"</"+t+this.tagEndChar}},nt.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){const s=this.options.entities[t];e=e.replace(s.regex,s.val)}return e};var ot={XMLParser:class{constructor(e){this.externalEntities={},this.options=We(e)}parse(e,t){if("string"==typeof e);else{if(!e.toString)throw new Error("XML data is accepted in String or Bytes[] form.");e=e.toString()}if(t){!0===t&&(t={});const s=Ke.validate(e,t);if(!0!==s)throw Error(`${s.err.msg}:${s.err.line}:${s.err.col}`)}const s=new qe(this.options);s.addExternalEntities(this.externalEntities);const n=s.parseXml(e);return this.options.preserveOrder||void 0===n?n:Ge(n,this.options)}addEntity(e,t){if(-1!==t.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==e.indexOf("&")||-1!==e.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'");if("&"===t)throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=t}},XMLValidator:q,XMLBuilder:nt};class lt{_view;constructor(e){dt(e),this._view=e}get id(){return this._view.id}get name(){return this._view.name}get caption(){return this._view.caption}get emptyTitle(){return this._view.emptyTitle}get emptyCaption(){return this._view.emptyCaption}get getContents(){return this._view.getContents}get icon(){return this._view.icon}set icon(e){this._view.icon=e}get order(){return this._view.order}set order(e){this._view.order=e}get params(){return this._view.params}set params(e){this._view.params=e}get columns(){return this._view.columns}get emptyView(){return this._view.emptyView}get parent(){return this._view.parent}get sticky(){return this._view.sticky}get expanded(){return this._view.expanded}set expanded(e){this._view.expanded=e}get defaultSortKey(){return this._view.defaultSortKey}}const dt=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("View id is required and must be a string");if(!e.name||"string"!=typeof e.name)throw new Error("View name is required and must be a string");if(e.columns&&e.columns.length>0&&(!e.caption||"string"!=typeof e.caption))throw new Error("View caption is required for top-level views and must be a string");if(!e.getContents||"function"!=typeof e.getContents)throw new Error("View getContents is required and must be a function");if(!e.icon||"string"!=typeof e.icon||!function(e){if("string"!=typeof e)throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);if(0===(e=e.trim()).length)return!1;if(!0!==ot.XMLValidator.validate(e))return!1;let t;const s=new ot.XMLParser;try{t=s.parse(e)}catch{return!1}return!!t&&!!Object.keys(t).some((e=>"svg"===e.toLowerCase()))}(e.icon))throw new Error("View icon is required and must be a valid svg string");if(!("order"in e)||"number"!=typeof e.order)throw new Error("View order is required and must be a number");if(e.columns&&e.columns.forEach((e=>{if(!(e instanceof Y))throw new Error("View columns must be an array of Column. Invalid column found")})),e.emptyView&&"function"!=typeof e.emptyView)throw new Error("View emptyView must be a function");if(e.parent&&"string"!=typeof e.parent)throw new Error("View parent must be a string");if("sticky"in e&&"boolean"!=typeof e.sticky)throw new Error("View sticky must be a boolean");if("expanded"in e&&"boolean"!=typeof e.expanded)throw new Error("View expanded must be a boolean");if(e.defaultSortKey&&"string"!=typeof e.defaultSortKey)throw new Error("View defaultSortKey must be a string");return!0},mt=function(e){return f().registerEntry(e)},ct=function(e){return f().unregisterEntry(e)},ut=function(e){return f().getEntries(e).sort(((e,t)=>void 0!==e.order&&void 0!==t.order&&e.order!==t.order?e.order-t.order:e.displayName.localeCompare(t.displayName,void 0,{numeric:!0,sensitivity:"base"})))}},41261:(e,t,s)=>{"use strict";s.d(t,{a:()=>ae,h:()=>me,l:()=>G,n:()=>X,o:()=>de,t:()=>ie});var n=s(85072),a=s.n(n),i=s(97825),r=s.n(i),o=s(77659),l=s.n(o),d=s(55056),m=s.n(d),c=s(10540),u=s.n(c),g=s(41113),f=s.n(g),p=s(30521),h={};h.styleTagTransform=f(),h.setAttributes=m(),h.insert=l().bind(null,"head"),h.domAPI=r(),h.insertStyleElement=u(),a()(p.A,h),p.A&&p.A.locals&&p.A.locals;var w=s(53110),x=s(71089),v=s(35810),T=s(88164),A=s(21777),y=s(26287);class C extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}}const b=Object.freeze({pending:Symbol("pending"),canceled:Symbol("canceled"),resolved:Symbol("resolved"),rejected:Symbol("rejected")});class k{static fn(e){return(...t)=>new k(((s,n,a)=>{t.push(a),e(...t).then(s,n)}))}#e=[];#t=!0;#s=b.pending;#n;#a;constructor(e){this.#n=new Promise(((t,s)=>{this.#a=s;const n=e=>{if(this.#s!==b.pending)throw new Error(`The \`onCancel\` handler was attached after the promise ${this.#s.description}.`);this.#e.push(e)};Object.defineProperties(n,{shouldReject:{get:()=>this.#t,set:e=>{this.#t=e}}}),e((e=>{this.#s===b.canceled&&n.shouldReject||(t(e),this.#i(b.resolved))}),(e=>{this.#s===b.canceled&&n.shouldReject||(s(e),this.#i(b.rejected))}),n)}))}then(e,t){return this.#n.then(e,t)}catch(e){return this.#n.catch(e)}finally(e){return this.#n.finally(e)}cancel(e){if(this.#s===b.pending){if(this.#i(b.canceled),this.#e.length>0)try{for(const e of this.#e)e()}catch(e){return void this.#a(e)}this.#t&&this.#a(new C(e))}}get isCanceled(){return this.#s===b.canceled}#i(e){this.#s===b.pending&&(this.#s=e)}}Object.setPrototypeOf(k.prototype,Promise.prototype);var L=s(9052);class _ extends Error{constructor(e){super(e),this.name="TimeoutError"}}class E extends Error{constructor(e){super(),this.name="AbortError",this.message=e}}const S=e=>void 0===globalThis.DOMException?new E(e):new DOMException(e),B=e=>{const t=void 0===e.reason?S("This operation was aborted."):e.reason;return t instanceof Error?t:S(t)};class F{#r=[];enqueue(e,t){const s={priority:(t={priority:0,...t}).priority,run:e};if(this.size&&this.#r[this.size-1].priority>=t.priority)return void this.#r.push(s);const n=function(e,t,s){let n=0,a=e.length;for(;a>0;){const s=Math.trunc(a/2);let r=n+s;i=e[r],t.priority-i.priority<=0?(n=++r,a-=s+1):a=s}var i;return n}(this.#r,s);this.#r.splice(n,0,s)}dequeue(){const e=this.#r.shift();return e?.run}filter(e){return this.#r.filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return this.#r.length}}class P extends L{#o;#l;#d=0;#m;#c;#u=0;#g;#f;#r;#p;#h=0;#w;#x;#v;timeout;constructor(e){if(super(),!("number"==typeof(e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:F,...e}).intervalCap&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#o=e.carryoverConcurrencyCount,this.#l=e.intervalCap===Number.POSITIVE_INFINITY||0===e.interval,this.#m=e.intervalCap,this.#c=e.interval,this.#r=new e.queueClass,this.#p=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#v=!0===e.throwOnTimeout,this.#x=!1===e.autoStart}get#T(){return this.#l||this.#d<this.#m}get#A(){return this.#h<this.#w}#y(){this.#h--,this.#C(),this.emit("next")}#b(){this.#k(),this.#L(),this.#f=void 0}get#_(){const e=Date.now();if(void 0===this.#g){const t=this.#u-e;if(!(t<0))return void 0===this.#f&&(this.#f=setTimeout((()=>{this.#b()}),t)),!0;this.#d=this.#o?this.#h:0}return!1}#C(){if(0===this.#r.size)return this.#g&&clearInterval(this.#g),this.#g=void 0,this.emit("empty"),0===this.#h&&this.emit("idle"),!1;if(!this.#x){const e=!this.#_;if(this.#T&&this.#A){const t=this.#r.dequeue();return!!t&&(this.emit("active"),t(),e&&this.#L(),!0)}}return!1}#L(){this.#l||void 0!==this.#g||(this.#g=setInterval((()=>{this.#k()}),this.#c),this.#u=Date.now()+this.#c)}#k(){0===this.#d&&0===this.#h&&this.#g&&(clearInterval(this.#g),this.#g=void 0),this.#d=this.#o?this.#h:0,this.#E()}#E(){for(;this.#C(););}get concurrency(){return this.#w}set concurrency(e){if(!("number"==typeof e&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#w=e,this.#E()}async#S(e){return new Promise(((t,s)=>{e.addEventListener("abort",(()=>{s(e.reason)}),{once:!0})}))}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#v,...t},new Promise(((s,n)=>{this.#r.enqueue((async()=>{this.#h++,this.#d++;try{t.signal?.throwIfAborted();let n=e({signal:t.signal});t.timeout&&(n=function(e,t){const{milliseconds:s,fallback:n,message:a,customTimers:i={setTimeout,clearTimeout}}=t;let r;const o=new Promise(((o,l)=>{if("number"!=typeof s||1!==Math.sign(s))throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${s}\``);if(t.signal){const{signal:e}=t;e.aborted&&l(B(e)),e.addEventListener("abort",(()=>{l(B(e))}))}if(s===Number.POSITIVE_INFINITY)return void e.then(o,l);const d=new _;r=i.setTimeout.call(void 0,(()=>{if(n)try{o(n())}catch(e){l(e)}else"function"==typeof e.cancel&&e.cancel(),!1===a?o():a instanceof Error?l(a):(d.message=a??`Promise timed out after ${s} milliseconds`,l(d))}),s),(async()=>{try{o(await e)}catch(e){l(e)}})()})).finally((()=>{o.clear()}));return o.clear=()=>{i.clearTimeout.call(void 0,r),r=void 0},o}(Promise.resolve(n),{milliseconds:t.timeout})),t.signal&&(n=Promise.race([n,this.#S(t.signal)]));const a=await n;s(a),this.emit("completed",a)}catch(e){if(e instanceof _&&!t.throwOnTimeout)return void s();n(e),this.emit("error",e)}finally{this.#y()}}),t),this.emit("add"),this.#C()}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){return this.#x?(this.#x=!1,this.#E(),this):this}pause(){this.#x=!0}clear(){this.#r=new this.#p}async onEmpty(){0!==this.#r.size&&await this.#B("empty")}async onSizeLessThan(e){this.#r.size<e||await this.#B("next",(()=>this.#r.size<e))}async onIdle(){0===this.#h&&0===this.#r.size||await this.#B("idle")}async#B(e,t){return new Promise((s=>{const n=()=>{t&&!t()||(this.off(e,n),s())};this.on(e,n)}))}get size(){return this.#r.size}sizeBy(e){return this.#r.filter(e).length}get pending(){return this.#h}get isPaused(){return this.#x}}var U=s(53529),N=s(85168),I=s(75270),j=s(85471),O=s(63420),z=s(24764),R=s(9518),D=s(6695),M=s(95101),V=s(11195);const $=async function(e,t,s,n=(()=>{}),a=void 0,i={}){let r;return r=t instanceof Blob?t:await t(),a&&(i.Destination=a),i["Content-Type"]||(i["Content-Type"]="application/octet-stream"),await y.A.request({method:"PUT",url:e,data:r,signal:s,onUploadProgress:n,headers:i})},H=function(e,t,s){return 0===t&&e.size<=s?Promise.resolve(new Blob([e],{type:e.type||"application/octet-stream"})):Promise.resolve(new Blob([e.slice(t,t+s)],{type:"application/octet-stream"}))},Y=function(e=void 0){const t=window.OC?.appConfig?.files?.max_chunk_size;if(t<=0)return 0;if(!Number(t))return 10485760;const s=Math.max(Number(t),5242880);return void 0===e?s:Math.max(s,Math.ceil(e/1e4))};var W=(e=>(e[e.INITIALIZED=0]="INITIALIZED",e[e.UPLOADING=1]="UPLOADING",e[e.ASSEMBLING=2]="ASSEMBLING",e[e.FINISHED=3]="FINISHED",e[e.CANCELLED=4]="CANCELLED",e[e.FAILED=5]="FAILED",e))(W||{});let q=class{_source;_file;_isChunked;_chunks;_size;_uploaded=0;_startTime=0;_status=0;_controller;_response=null;constructor(e,t=!1,s,n){const a=Math.min(Y()>0?Math.ceil(s/Y()):1,1e4);this._source=e,this._isChunked=t&&Y()>0&&a>1,this._chunks=this._isChunked?a:1,this._size=s,this._file=n,this._controller=new AbortController}get source(){return this._source}get file(){return this._file}get isChunked(){return this._isChunked}get chunks(){return this._chunks}get size(){return this._size}get startTime(){return this._startTime}set response(e){this._response=e}get response(){return this._response}get uploaded(){return this._uploaded}set uploaded(e){if(e>=this._size)return this._status=this._isChunked?2:3,void(this._uploaded=this._size);this._status=1,this._uploaded=e,0===this._startTime&&(this._startTime=(new Date).getTime())}get status(){return this._status}set status(e){this._status=e}get signal(){return this._controller.signal}cancel(){this._controller.abort(),this._status=4}};const G=null===(K=(0,A.HW)())?(0,U.YK)().setApp("uploader").build():(0,U.YK)().setApp("uploader").setUid(K.uid).build();var K,J=(e=>(e[e.IDLE=0]="IDLE",e[e.UPLOADING=1]="UPLOADING",e[e.PAUSED=2]="PAUSED",e))(J||{});class Z{_destinationFolder;_isPublic;_uploadQueue=[];_jobQueue=new P({concurrency:3});_queueSize=0;_queueProgress=0;_queueStatus=0;_notifiers=[];constructor(e=!1,t){if(this._isPublic=e,!t){const e=(0,A.HW)()?.uid,s=(0,T.dC)(`dav/files/${e}`);if(!e)throw new Error("User is not logged in");t=new v.vd({id:0,owner:e,permissions:v.aX.ALL,root:`/files/${e}`,source:s})}this.destination=t,G.debug("Upload workspace initialized",{destination:this.destination,root:this.root,isPublic:e,maxChunksSize:Y()})}get destination(){return this._destinationFolder}set destination(e){if(!e)throw new Error("Invalid destination folder");G.debug("Destination set",{folder:e}),this._destinationFolder=e}get root(){return this._destinationFolder.source}get queue(){return this._uploadQueue}reset(){this._uploadQueue.splice(0,this._uploadQueue.length),this._jobQueue.clear(),this._queueSize=0,this._queueProgress=0,this._queueStatus=0}pause(){this._jobQueue.pause(),this._queueStatus=2}start(){this._jobQueue.start(),this._queueStatus=1,this.updateStats()}get info(){return{size:this._queueSize,progress:this._queueProgress,status:this._queueStatus}}updateStats(){const e=this._uploadQueue.map((e=>e.size)).reduce(((e,t)=>e+t),0),t=this._uploadQueue.map((e=>e.uploaded)).reduce(((e,t)=>e+t),0);this._queueSize=e,this._queueProgress=t,2!==this._queueStatus&&(this._queueStatus=this._jobQueue.size>0?1:0)}addNotifier(e){this._notifiers.push(e)}upload(e,t,s){const n=`${s||this.root}/${e.replace(/^\//,"")}`,{origin:a}=new URL(n),i=a+(0,x.O0)(n.slice(a.length));G.debug(`Uploading ${t.name} to ${i}`);const r=Y(t.size),o=0===r||t.size<r||this._isPublic,l=new q(n,!o,t.size,t);return this._uploadQueue.push(l),this.updateStats(),new k((async(e,s,n)=>{if(n(l.cancel),o){G.debug("Initializing regular upload",{file:t,upload:l});const n=await H(t,0,l.size),a=async()=>{try{l.response=await $(i,n,l.signal,(e=>{l.uploaded=l.uploaded+e.bytes,this.updateStats()}),void 0,{"X-OC-Mtime":t.lastModified/1e3,"Content-Type":t.type}),l.uploaded=l.size,this.updateStats(),G.debug(`Successfully uploaded ${t.name}`,{file:t,upload:l}),e(l)}catch(e){if(e instanceof w.k3)return l.status=W.FAILED,void s("Upload has been cancelled");e?.response&&(l.response=e.response),l.status=W.FAILED,G.error(`Failed uploading ${t.name}`,{error:e,file:t,upload:l}),s("Failed uploading the file")}this._notifiers.forEach((e=>{try{e(l)}catch{}}))};this._jobQueue.add(a),this.updateStats()}else{G.debug("Initializing chunked upload",{file:t,upload:l});const n=await async function(e){const t=`${(0,T.dC)(`dav/uploads/${(0,A.HW)()?.uid}`)}/web-file-upload-${[...Array(16)].map((()=>Math.floor(16*Math.random()).toString(16))).join("")}`,s=e?{Destination:e}:void 0;return await y.A.request({method:"MKCOL",url:t,headers:s}),t}(i),a=[];for(let e=0;e<l.chunks;e++){const s=e*r,o=Math.min(s+r,l.size),d=()=>H(t,s,r),m=()=>$(`${n}/${e+1}`,d,l.signal,(()=>this.updateStats()),i,{"X-OC-Mtime":t.lastModified/1e3,"OC-Total-Length":t.size,"Content-Type":"application/octet-stream"}).then((()=>{l.uploaded=l.uploaded+r})).catch((t=>{throw 507===t?.response?.status?(G.error("Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks",{error:t,upload:l}),l.cancel(),l.status=W.FAILED,t):(t instanceof w.k3||(G.error(`Chunk ${e+1} ${s} - ${o} uploading failed`,{error:t,upload:l}),l.cancel(),l.status=W.FAILED),t)}));a.push(this._jobQueue.add(m))}try{await Promise.all(a),this.updateStats(),l.response=await y.A.request({method:"MOVE",url:`${n}/.file`,headers:{"X-OC-Mtime":t.lastModified/1e3,"OC-Total-Length":t.size,Destination:i}}),this.updateStats(),l.status=W.FINISHED,G.debug(`Successfully uploaded ${t.name}`,{file:t,upload:l}),e(l)}catch(e){e instanceof w.k3?(l.status=W.FAILED,s("Upload has been cancelled")):(l.status=W.FAILED,s("Failed assembling the chunks together")),y.A.request({method:"DELETE",url:`${n}`})}this._notifiers.forEach((e=>{try{e(l)}catch{}}))}return this._jobQueue.onIdle().then((()=>this.reset())),l}))}}function X(e,t,s,n,a,i,r,o){var l,d="function"==typeof e?e.options:e;if(t&&(d.render=t,d.staticRenderFns=s,d._compiled=!0),n&&(d.functional=!0),i&&(d._scopeId="data-v-"+i),r?(l=function(e){!(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)&&typeof __VUE_SSR_CONTEXT__<"u"&&(e=__VUE_SSR_CONTEXT__),a&&a.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},d._ssrRegister=l):a&&(l=o?function(){a.call(this,(d.functional?this.parent:this).$root.$options.shadowRoot)}:a),l)if(d.functional){d._injectStyles=l;var m=d.render;d.render=function(e,t){return l.call(t),m(e,t)}}else{var c=d.beforeCreate;d.beforeCreate=c?[].concat(c,l):[l]}return{exports:e,options:d}}const Q=X({name:"CancelIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon cancel-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"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 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null,null).exports,ee=X({name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon plus-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"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:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null,null).exports,te=X({name:"UploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon upload-icon",attrs:{"aria-hidden":!e.title||null,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"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:"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null,null).exports,se=(0,V.$)().detectLocale();[{locale:"af",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)","Content-Type":"text/plain; charset=UTF-8",Language:"af","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: af\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ar",json:{charset:"utf-8",headers:{"Last-Translator":"Ali <alimahwer@yahoo.com>, 2024","Language-Team":"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)","Content-Type":"text/plain; charset=UTF-8",Language:"ar","Plural-Forms":"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nAli <alimahwer@yahoo.com>, 2024\n"},msgstr:["Last-Translator: Ali <alimahwer@yahoo.com>, 2024\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ملف متعارض","{count} ملف متعارض","{count} ملفان متعارضان","{count} ملف متعارض","{count} ملفات متعارضة","{count} ملفات متعارضة"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ملف متعارض في n {dirname}","{count} ملف متعارض في n {dirname}","{count} ملفان متعارضان في n {dirname}","{count} ملف متعارض في n {dirname}","{count} ملفات متعارضة في n {dirname}","{count} ملفات متعارضة في n {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} ثانية متبقية"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} متبقية"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["باقٍ بضعُ ثوانٍ"]},Cancel:{msgid:"Cancel",msgstr:["إلغاء"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["إلغِ العملية بالكامل"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["إلغاء عمليات رفع الملفات"]},Continue:{msgid:"Continue",msgstr:["إستمر"]},"estimating time left":{msgid:"estimating time left",msgstr:["تقدير الوقت المتبقي"]},"Existing version":{msgid:"Existing version",msgstr:["الإصدار الحالي"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["إذا اخترت الإبقاء على النسختين معاً، فإن الملف المنسوخ سيتم إلحاق رقم تسلسلي في نهاية اسمه."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["تاريخ آخر تعديل غير معلوم"]},New:{msgid:"New",msgstr:["جديد"]},"New version":{msgid:"New version",msgstr:["نسخة جديدة"]},paused:{msgid:"paused",msgstr:["مُجمَّد"]},"Preview image":{msgid:"Preview image",msgstr:["معاينة الصورة"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["حدِّد كل صناديق الخيارات"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["حدِّد كل الملفات الموجودة"]},"Select all new files":{msgid:"Select all new files",msgstr:["حدِّد كل الملفات الجديدة"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف"]},"Unknown size":{msgid:"Unknown size",msgstr:["حجم غير معلوم"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["تمَّ إلغاء الرفع"]},"Upload files":{msgid:"Upload files",msgstr:["رفع ملفات"]},"Upload progress":{msgid:"Upload progress",msgstr:["تقدُّم الرفع "]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["أيُّ الملفات ترغب في الإبقاء عليها؟"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار."]}}}}},{locale:"ar_SA",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)","Content-Type":"text/plain; charset=UTF-8",Language:"ar_SA","Plural-Forms":"nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar_SA\nPlural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ast",json:{charset:"utf-8",headers:{"Last-Translator":"enolp <enolp@softastur.org>, 2023","Language-Team":"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)","Content-Type":"text/plain; charset=UTF-8",Language:"ast","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nenolp <enolp@softastur.org>, 2023\n"},msgstr:["Last-Translator: enolp <enolp@softastur.org>, 2023\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ast\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ficheru en coflictu","{count} ficheros en coflictu"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ficheru en coflictu en {dirname}","{count} ficheros en coflictu en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Tiempu que queda: {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["queden unos segundos"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Encaboxar les xubes"]},Continue:{msgid:"Continue",msgstr:["Siguir"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando'l tiempu que falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión esistente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["La data de la última modificación ye desconocida"]},New:{msgid:"New",msgstr:["Nuevu"]},"New version":{msgid:"New version",msgstr:["Versión nueva"]},paused:{msgid:"paused",msgstr:["en posa"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar la imaxe"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar toles caxelles"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleicionar tolos ficheros esistentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleicionar tolos ficheros nuevos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar esti ficheru","Saltar {count} ficheros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamañu desconocíu"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Encaboxóse la xuba"]},"Upload files":{msgid:"Upload files",msgstr:["Xubir ficheros"]},"Upload progress":{msgid:"Upload progress",msgstr:["Xuba en cursu"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué ficheros quies caltener?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Tienes de seleicionar polo menos una versión de cada ficheru pa siguir."]}}}}},{locale:"az",json:{charset:"utf-8",headers:{"Last-Translator":"Rashad Aliyev <microphprashad@gmail.com>, 2023","Language-Team":"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)","Content-Type":"text/plain; charset=UTF-8",Language:"az","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRashad Aliyev <microphprashad@gmail.com>, 2023\n"},msgstr:["Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: az\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saniyə qalıb"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} qalıb"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir neçə saniyə qalıb"]},Add:{msgid:"Add",msgstr:["Əlavə et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yükləməni imtina et"]},"estimating time left":{msgid:"estimating time left",msgstr:["Təxmini qalan vaxt"]},paused:{msgid:"paused",msgstr:["pauzadadır"]},"Upload files":{msgid:"Upload files",msgstr:["Faylları yüklə"]}}}}},{locale:"be",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)","Content-Type":"text/plain; charset=UTF-8",Language:"be","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: be\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bg_BG",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)","Content-Type":"text/plain; charset=UTF-8",Language:"bg_BG","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bg_BG\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bn_BD",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)","Content-Type":"text/plain; charset=UTF-8",Language:"bn_BD","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bn_BD\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"br",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)","Content-Type":"text/plain; charset=UTF-8",Language:"br","Plural-Forms":"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: br\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bs",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)","Content-Type":"text/plain; charset=UTF-8",Language:"bs","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bs\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ca",json:{charset:"utf-8",headers:{"Last-Translator":"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022","Language-Team":"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)","Content-Type":"text/plain; charset=UTF-8",Language:"ca","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMarc Riera <marcriera@softcatala.org>, 2022\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\n"},msgstr:["Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ca\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segons"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["Queden {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Queden uns segons"]},Add:{msgid:"Add",msgstr:["Afegeix"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel·la les pujades"]},"estimating time left":{msgid:"estimating time left",msgstr:["S'està estimant el temps restant"]},paused:{msgid:"paused",msgstr:["En pausa"]},"Upload files":{msgid:"Upload files",msgstr:["Puja els fitxers"]}}}}},{locale:"cs",json:{charset:"utf-8",headers:{"Last-Translator":"Pavel Borecki <pavel.borecki@gmail.com>, 2022","Language-Team":"Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)","Content-Type":"text/plain; charset=UTF-8",Language:"cs","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPavel Borecki <pavel.borecki@gmail.com>, 2022\n"},msgstr:["Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2022\nLanguage-Team: Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["zbývá {seconds}"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["zbývá {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zbývá několik sekund"]},Add:{msgid:"Add",msgstr:["Přidat"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušit nahrávání"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhadovaný zbývající čas"]},paused:{msgid:"paused",msgstr:["pozastaveno"]}}}}},{locale:"cs_CZ",json:{charset:"utf-8",headers:{"Last-Translator":"Michal Šmahel <ceskyDJ@seznam.cz>, 2024","Language-Team":"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)","Content-Type":"text/plain; charset=UTF-8",Language:"cs_CZ","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\n"},msgstr:["Last-Translator: Michal Šmahel <ceskyDJ@seznam.cz>, 2024\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs_CZ\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} kolize souborů","{count} kolize souborů","{count} kolizí souborů","{count} kolize souborů"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} kolize souboru v {dirname}","{count} kolize souboru v {dirname}","{count} kolizí souborů v {dirname}","{count} kolize souboru v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["zbývá {seconds}"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["zbývá {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zbývá několik sekund"]},Cancel:{msgid:"Cancel",msgstr:["Zrušit"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Zrušit celou operaci"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušit nahrávání"]},Continue:{msgid:"Continue",msgstr:["Pokračovat"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhaduje se zbývající čas"]},"Existing version":{msgid:"Existing version",msgstr:["Existující verze"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Pokud vyberete obě verze, zkopírovaný soubor bude mít k názvu přidáno číslo."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Neznámé datum poslední úpravy"]},New:{msgid:"New",msgstr:["Nové"]},"New version":{msgid:"New version",msgstr:["Nová verze"]},paused:{msgid:"paused",msgstr:["pozastaveno"]},"Preview image":{msgid:"Preview image",msgstr:["Náhled obrázku"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Označit všechny zaškrtávací kolonky"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vybrat veškeré stávající soubory"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vybrat veškeré nové soubory"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Přeskočit tento soubor","Přeskočit {count} soubory","Přeskočit {count} souborů","Přeskočit {count} soubory"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznámá velikost"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Nahrávání zrušeno"]},"Upload files":{msgid:"Upload files",msgstr:["Nahrát soubory"]},"Upload progress":{msgid:"Upload progress",msgstr:["Postup v nahrávání"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Které soubory si přejete ponechat?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru."]}}}}},{locale:"cy_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"cy_GB","Plural-Forms":"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cy_GB\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"da",json:{charset:"utf-8",headers:{"Last-Translator":"Martin Bonde <Martin@maboni.dk>, 2024","Language-Team":"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)","Content-Type":"text/plain; charset=UTF-8",Language:"da","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMartin Bonde <Martin@maboni.dk>, 2024\n"},msgstr:["Last-Translator: Martin Bonde <Martin@maboni.dk>, 2024\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: da\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fil konflikt","{count} filer i konflikt"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fil konflikt i {dirname}","{count} filer i konflikt i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{sekunder} sekunder tilbage"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{tid} tilbage"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["et par sekunder tilbage"]},Cancel:{msgid:"Cancel",msgstr:["Annuller"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuller hele handlingen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuller uploads"]},Continue:{msgid:"Continue",msgstr:["Fortsæt"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimering af resterende tid"]},"Existing version":{msgid:"Existing version",msgstr:["Eksisterende version"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Hvis du vælger begge versioner vil den kopierede fil få et nummer tilføjet til sit navn."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Sidste modifikationsdato ukendt"]},New:{msgid:"New",msgstr:["Ny"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvisning af billede"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Vælg alle felter"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vælg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vælg alle nye filer"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Spring denne fil over","Spring {count} filer over"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukendt størrelse"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Upload annulleret"]},"Upload files":{msgid:"Upload files",msgstr:["Upload filer"]},"Upload progress":{msgid:"Upload progress",msgstr:["Upload fremskridt"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer ønsker du at beholde?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du skal vælge mindst én version af hver fil for at fortsætte."]}}}}},{locale:"de",json:{charset:"utf-8",headers:{"Last-Translator":"Mario Siegmann <mario_siegmann@web.de>, 2024","Language-Team":"German (https://app.transifex.com/nextcloud/teams/64236/de/)","Content-Type":"text/plain; charset=UTF-8",Language:"de","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\n"},msgstr:["Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2024\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} Sekunden verbleibend"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["noch ein paar Sekunden"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Geschätzte verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Wenn du beide Versionen auswählst, wird der kopierten Datei eine Nummer zum Namen hinzugefügt."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Diese Datei überspringen","{count} Dateien überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Hochladen abgebrochen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchtest du behalten?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"de_DE",json:{charset:"utf-8",headers:{"Last-Translator":"Mario Siegmann <mario_siegmann@web.de>, 2024","Language-Team":"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)","Content-Type":"text/plain; charset=UTF-8",Language:"de_DE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\n"},msgstr:["Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2024\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de_DE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} Sekunden verbleiben"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["ein paar Sekunden verbleiben"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Geschätzte verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Wenn Sie beide Versionen auswählen, wird der kopierten Datei eine Nummer zum Namen hinzugefügt."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count} Datei überspringen","{count} Dateien überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Hochladen abgebrochen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchten Sie behalten?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"el",json:{charset:"utf-8",headers:{"Last-Translator":"Nik Pap, 2022","Language-Team":"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)","Content-Type":"text/plain; charset=UTF-8",Language:"el","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nNik Pap, 2022\n"},msgstr:["Last-Translator: Nik Pap, 2022\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["απομένουν {seconds} δευτερόλεπτα"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["απομένουν {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["απομένουν λίγα δευτερόλεπτα"]},Add:{msgid:"Add",msgstr:["Προσθήκη"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ακύρωση μεταφορτώσεων"]},"estimating time left":{msgid:"estimating time left",msgstr:["εκτίμηση του χρόνου που απομένει"]},paused:{msgid:"paused",msgstr:["σε παύση"]},"Upload files":{msgid:"Upload files",msgstr:["Μεταφόρτωση αρχείων"]}}}}},{locale:"el_GR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)","Content-Type":"text/plain; charset=UTF-8",Language:"el_GR","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el_GR\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"en_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Andi Chandler <andi@gowling.com>, 2023","Language-Team":"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"en_GB","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nAndi Chandler <andi@gowling.com>, 2023\n"},msgstr:["Last-Translator: Andi Chandler <andi@gowling.com>, 2023\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: en_GB\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} files conflict"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} file conflicts in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} seconds left"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} left"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["a few seconds left"]},Add:{msgid:"Add",msgstr:["Add"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel uploads"]},Continue:{msgid:"Continue",msgstr:["Continue"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimating time left"]},"Existing version":{msgid:"Existing version",msgstr:["Existing version"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["If you select both versions, the copied file will have a number added to its name."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Last modified date unknown"]},"New version":{msgid:"New version",msgstr:["New version"]},paused:{msgid:"paused",msgstr:["paused"]},"Preview image":{msgid:"Preview image",msgstr:["Preview image"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Select all checkboxes"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Select all existing files"]},"Select all new files":{msgid:"Select all new files",msgstr:["Select all new files"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Skip {count} files"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unknown size"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Upload cancelled"]},"Upload files":{msgid:"Upload files",msgstr:["Upload files"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Which files do you want to keep?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["You need to select at least one version of each file to continue."]}}}}},{locale:"eo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)","Content-Type":"text/plain; charset=UTF-8",Language:"eo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es",json:{charset:"utf-8",headers:{"Last-Translator":"Julio C. Ortega, 2024","Language-Team":"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)","Content-Type":"text/plain; charset=UTF-8",Language:"es","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nFranciscoFJ <dev-ooo@satel-sa.com>, 2023\nNext Cloud <nextcloud.translator.es@cgj.es>, 2023\nJulio C. Ortega, 2024\n"},msgstr:["Last-Translator: Julio C. Ortega, 2024\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} archivo en conflicto","{count} archivos en conflicto","{count} archivos en conflicto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} archivo en conflicto en {dirname}","{count} archivos en conflicto en {dirname}","{count} archivos en conflicto en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Si selecciona ambas versiones, al archivo copiado se le añadirá un número en el nombre."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Última fecha de modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar imagen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar este archivo","Saltar {count} archivos","Saltar {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Subida cancelada"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la subida"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_419",json:{charset:"utf-8",headers:{"Last-Translator":"ALEJANDRO CASTRO, 2022","Language-Team":"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_419","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nALEJANDRO CASTRO, 2022\n"},msgstr:["Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_419\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Add:{msgid:"Add",msgstr:["agregar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]}}}}},{locale:"es_AR",json:{charset:"utf-8",headers:{"Last-Translator":"Matias Iglesias, 2022","Language-Team":"Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_AR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMatias Iglesias, 2022\n"},msgstr:["Last-Translator: Matias Iglesias, 2022\nLanguage-Team: Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_AR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},Add:{msgid:"Add",msgstr:["Añadir"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]}}}}},{locale:"es_CL",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CL","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CL\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_DO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_DO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_DO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_EC",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_EC","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_EC\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_GT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_GT","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_GT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_HN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_HN","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_HN\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_MX",json:{charset:"utf-8",headers:{"Last-Translator":"ALEJANDRO CASTRO, 2022","Language-Team":"Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_MX","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nLuis Francisco Castro, 2022\nALEJANDRO CASTRO, 2022\n"},msgstr:["Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_MX\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Add:{msgid:"Add",msgstr:["agregar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["cancelar las cargas"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},paused:{msgid:"paused",msgstr:["en pausa"]},"Upload files":{msgid:"Upload files",msgstr:["cargar archivos"]}}}}},{locale:"es_NI",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_NI","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_NI\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PA",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PA","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PA\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PE","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PE\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_SV",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_SV","Plural-Forms":"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_SV\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_UY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_UY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_UY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"et_EE",json:{charset:"utf-8",headers:{"Last-Translator":"Taavo Roos, 2023","Language-Team":"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)","Content-Type":"text/plain; charset=UTF-8",Language:"et_EE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMait R, 2022\nTaavo Roos, 2023\n"},msgstr:["Last-Translator: Taavo Roos, 2023\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: et_EE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} jäänud sekundid"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} aega jäänud"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["jäänud mõni sekund"]},Add:{msgid:"Add",msgstr:["Lisa"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Tühista üleslaadimine"]},"estimating time left":{msgid:"estimating time left",msgstr:["hinnanguline järelejäänud aeg"]},paused:{msgid:"paused",msgstr:["pausil"]},"Upload files":{msgid:"Upload files",msgstr:["Lae failid üles"]}}}}},{locale:"eu",json:{charset:"utf-8",headers:{"Last-Translator":"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022","Language-Team":"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)","Content-Type":"text/plain; charset=UTF-8",Language:"eu","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\n"},msgstr:["Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eu\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundo geratzen dira"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} geratzen da"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["segundo batzuk geratzen dira"]},Add:{msgid:"Add",msgstr:["Gehitu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ezeztatu igoerak"]},"estimating time left":{msgid:"estimating time left",msgstr:["kalkulatutako geratzen den denbora"]},paused:{msgid:"paused",msgstr:["geldituta"]},"Upload files":{msgid:"Upload files",msgstr:["Igo fitxategiak"]}}}}},{locale:"fa",json:{charset:"utf-8",headers:{"Last-Translator":"Fatemeh Komeily, 2023","Language-Team":"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)","Content-Type":"text/plain; charset=UTF-8",Language:"fa","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nFatemeh Komeily, 2023\n"},msgstr:["Last-Translator: Fatemeh Komeily, 2023\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fa\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["ثانیه های باقی مانده"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["باقی مانده"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["چند ثانیه مانده"]},Add:{msgid:"Add",msgstr:["اضافه کردن"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["کنسل کردن فایل های اپلود شده"]},"estimating time left":{msgid:"estimating time left",msgstr:["تخمین زمان باقی مانده"]},paused:{msgid:"paused",msgstr:["مکث کردن"]},"Upload files":{msgid:"Upload files",msgstr:["بارگذاری فایل ها"]}}}}},{locale:"fi_FI",json:{charset:"utf-8",headers:{"Last-Translator":"Jiri Grönroos <jiri.gronroos@iki.fi>, 2022","Language-Team":"Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)","Content-Type":"text/plain; charset=UTF-8",Language:"fi_FI","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJiri Grönroos <jiri.gronroos@iki.fi>, 2022\n"},msgstr:["Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>, 2022\nLanguage-Team: Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fi_FI\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekuntia jäljellä"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} jäljellä"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["muutama sekunti jäljellä"]},Add:{msgid:"Add",msgstr:["Lisää"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Peruuta lähetykset"]},"estimating time left":{msgid:"estimating time left",msgstr:["arvioidaan jäljellä olevaa aikaa"]},paused:{msgid:"paused",msgstr:["keskeytetty"]},"Upload files":{msgid:"Upload files",msgstr:["Lähetä tiedostoja"]}}}}},{locale:"fo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)","Content-Type":"text/plain; charset=UTF-8",Language:"fo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"fr",json:{charset:"utf-8",headers:{"Last-Translator":"jed boulahya, 2024","Language-Team":"French (https://app.transifex.com/nextcloud/teams/64236/fr/)","Content-Type":"text/plain; charset=UTF-8",Language:"fr","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nBenoit Pruneau, 2024\njed boulahya, 2024\n"},msgstr:["Last-Translator: jed boulahya, 2024\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fr\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fichier en conflit","{count} fichiers en conflit","{count} fichiers en conflit"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fichier en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secondes restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restant"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quelques secondes restantes"]},Cancel:{msgid:"Cancel",msgstr:["Annuler"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuler l'opération entière"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuler les envois"]},Continue:{msgid:"Continue",msgstr:["Continuer"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimation du temps restant"]},"Existing version":{msgid:"Existing version",msgstr:["Version existante"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Si vous sélectionnez les deux versions, le fichier copié aura un numéro ajouté àname."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Date de la dernière modification est inconnue"]},New:{msgid:"New",msgstr:["Nouveau"]},"New version":{msgid:"New version",msgstr:["Nouvelle version"]},paused:{msgid:"paused",msgstr:["en pause"]},"Preview image":{msgid:"Preview image",msgstr:["Aperçu de l'image"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Sélectionner toutes les cases à cocher"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Sélectionner tous les fichiers existants"]},"Select all new files":{msgid:"Select all new files",msgstr:["Sélectionner tous les nouveaux fichiers"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ignorer ce fichier","Ignorer {count} fichiers","Ignorer {count} fichiers"]},"Unknown size":{msgid:"Unknown size",msgstr:["Taille inconnue"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:[" annulé"]},"Upload files":{msgid:"Upload files",msgstr:["Téléchargement des fichiers"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progression du téléchargement"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quels fichiers souhaitez-vous conserver ?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Vous devez sélectionner au moins une version de chaque fichier pour continuer."]}}}}},{locale:"gd",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)","Content-Type":"text/plain; charset=UTF-8",Language:"gd","Plural-Forms":"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gd\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"gl",json:{charset:"utf-8",headers:{"Last-Translator":"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2023","Language-Team":"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)","Content-Type":"text/plain; charset=UTF-8",Language:"gl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nNacho <nacho.vfranco@gmail.com>, 2023\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2023\n"},msgstr:["Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2023\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflito de ficheiros","{count} conflitos de ficheiros"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflito de ficheiros en {dirname}","{count} conflitos de ficheiros en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["faltan {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["falta {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltan uns segundos"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envíos"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"estimating time left":{msgid:"estimating time left",msgstr:["calculando canto tempo falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Se selecciona ambas as versións, o ficheiro copiado terá un número engadido ao seu nome."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificación descoñecida"]},New:{msgid:"New",msgstr:["Nova"]},"New version":{msgid:"New version",msgstr:["Nova versión"]},paused:{msgid:"paused",msgstr:["detido"]},"Preview image":{msgid:"Preview image",msgstr:["Vista previa da imaxe"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar todas as caixas de selección"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos os ficheiros existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos os ficheiros novos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omita este ficheiro","Omitir {count} ficheiros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño descoñecido"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Envío cancelado"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso do envío"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Que ficheiros quere conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar polo menos unha versión de cada ficheiro para continuar."]}}}}},{locale:"he",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)","Content-Type":"text/plain; charset=UTF-8",Language:"he","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: he\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hi_IN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)","Content-Type":"text/plain; charset=UTF-8",Language:"hi_IN","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hi_IN\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)","Content-Type":"text/plain; charset=UTF-8",Language:"hr","Plural-Forms":"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hr\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hsb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)","Content-Type":"text/plain; charset=UTF-8",Language:"hsb","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hsb\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hu",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)","Content-Type":"text/plain; charset=UTF-8",Language:"hu","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hu_HU",json:{charset:"utf-8",headers:{"Last-Translator":"Balázs Úr, 2022","Language-Team":"Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)","Content-Type":"text/plain; charset=UTF-8",Language:"hu_HU","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nBalázs Meskó <meskobalazs@mailbox.org>, 2022\nBalázs Úr, 2022\n"},msgstr:["Last-Translator: Balázs Úr, 2022\nLanguage-Team: Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu_HU\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{} másodperc van hátra"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} van hátra"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["pár másodperc van hátra"]},Add:{msgid:"Add",msgstr:["Hozzáadás"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Feltöltések megszakítása"]},"estimating time left":{msgid:"estimating time left",msgstr:["hátralévő idő becslése"]},paused:{msgid:"paused",msgstr:["szüneteltetve"]},"Upload files":{msgid:"Upload files",msgstr:["Fájlok feltöltése"]}}}}},{locale:"hy",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)","Content-Type":"text/plain; charset=UTF-8",Language:"hy","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hy\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ia",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)","Content-Type":"text/plain; charset=UTF-8",Language:"ia","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ia\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"id",json:{charset:"utf-8",headers:{"Last-Translator":"Linerly <linerly@proton.me>, 2023","Language-Team":"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)","Content-Type":"text/plain; charset=UTF-8",Language:"id","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nEmpty Slot Filler, 2023\nLinerly <linerly@proton.me>, 2023\n"},msgstr:["Last-Translator: Linerly <linerly@proton.me>, 2023\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: id\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} berkas berkonflik"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} berkas berkonflik dalam {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} detik tersisa"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tersisa"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["tinggal sebentar lagi"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Batalkan unggahan"]},Continue:{msgid:"Continue",msgstr:["Lanjutkan"]},"estimating time left":{msgid:"estimating time left",msgstr:["memperkirakan waktu yang tersisa"]},"Existing version":{msgid:"Existing version",msgstr:["Versi yang ada"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Tanggal perubahan terakhir tidak diketahui"]},New:{msgid:"New",msgstr:["Baru"]},"New version":{msgid:"New version",msgstr:["Versi baru"]},paused:{msgid:"paused",msgstr:["dijeda"]},"Preview image":{msgid:"Preview image",msgstr:["Gambar pratinjau"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak centang"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Pilih semua berkas yang ada"]},"Select all new files":{msgid:"Select all new files",msgstr:["Pilih semua berkas baru"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Lewati {count} berkas"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukuran tidak diketahui"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Unggahan dibatalkan"]},"Upload files":{msgid:"Upload files",msgstr:["Unggah berkas"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Berkas mana yang Anda ingin tetap simpan?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan."]}}}}},{locale:"ig",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)","Content-Type":"text/plain; charset=UTF-8",Language:"ig","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ig\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"is",json:{charset:"utf-8",headers:{"Last-Translator":"Sveinn í Felli <sv1@fellsnet.is>, 2023","Language-Team":"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)","Content-Type":"text/plain; charset=UTF-8",Language:"is","Plural-Forms":"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nSveinn í Felli <sv1@fellsnet.is>, 2023\n"},msgstr:["Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2023\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: is\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} árekstur skráa","{count} árekstrar skráa"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} árekstur skráa í {dirname}","{count} árekstrar skráa í {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekúndur eftir"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} eftir"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["nokkrar sekúndur eftir"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hætta við innsendingar"]},Continue:{msgid:"Continue",msgstr:["Halda áfram"]},"estimating time left":{msgid:"estimating time left",msgstr:["áætla tíma sem eftir er"]},"Existing version":{msgid:"Existing version",msgstr:["Fyrirliggjandi útgáfa"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti afrituðu skrárinnar."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Síðasta breytingadagsetning er óþekkt"]},New:{msgid:"New",msgstr:["Nýtt"]},"New version":{msgid:"New version",msgstr:["Ný útgáfa"]},paused:{msgid:"paused",msgstr:["í bið"]},"Preview image":{msgid:"Preview image",msgstr:["Forskoðun myndar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velja gátreiti"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velja allar fyrirliggjandi skrár"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velja allar nýjar skrár"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Sleppa þessari skrá","Sleppa {count} skrám"]},"Unknown size":{msgid:"Unknown size",msgstr:["Óþekkt stærð"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Hætt við innsendingu"]},"Upload files":{msgid:"Upload files",msgstr:["Senda inn skrár"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvaða skrám vilt þú vilt halda eftir?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram."]}}}}},{locale:"it",json:{charset:"utf-8",headers:{"Last-Translator":"Random_R, 2023","Language-Team":"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)","Content-Type":"text/plain; charset=UTF-8",Language:"it","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nLep Lep, 2023\nRandom_R, 2023\n"},msgstr:["Last-Translator: Random_R, 2023\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file in conflitto","{count} file in conflitto","{count} file in conflitto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secondi rimanenti "]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} rimanente"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alcuni secondi rimanenti"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annulla i caricamenti"]},Continue:{msgid:"Continue",msgstr:["Continua"]},"estimating time left":{msgid:"estimating time left",msgstr:["calcolo il tempo rimanente"]},"Existing version":{msgid:"Existing version",msgstr:["Versione esistente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero "]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ultima modifica sconosciuta"]},New:{msgid:"New",msgstr:["Nuovo"]},"New version":{msgid:"New version",msgstr:["Nuova versione"]},paused:{msgid:"paused",msgstr:["pausa"]},"Preview image":{msgid:"Preview image",msgstr:["Anteprima immagine"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleziona tutte le caselle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleziona tutti i file esistenti"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleziona tutti i nuovi file"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Salta questo file","Salta {count} file","Salta {count} file"]},"Unknown size":{msgid:"Unknown size",msgstr:["Dimensione sconosciuta"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Caricamento cancellato"]},"Upload files":{msgid:"Upload files",msgstr:["Carica i file"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quali file vuoi mantenere?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Devi selezionare almeno una versione di ogni file per continuare"]}}}}},{locale:"it_IT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)","Content-Type":"text/plain; charset=UTF-8",Language:"it_IT","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it_IT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ja_JP",json:{charset:"utf-8",headers:{"Last-Translator":"かたかめ, 2022","Language-Team":"Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)","Content-Type":"text/plain; charset=UTF-8",Language:"ja_JP","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nT.S, 2022\nかたかめ, 2022\n"},msgstr:["Last-Translator: かたかめ, 2022\nLanguage-Team: Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ja_JP\nPlural-Forms: nplurals=1; plural=0;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["残り {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["残り {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["残り数秒"]},Add:{msgid:"Add",msgstr:["追加"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["アップロードをキャンセル"]},"estimating time left":{msgid:"estimating time left",msgstr:["概算残り時間"]},paused:{msgid:"paused",msgstr:["一時停止中"]},"Upload files":{msgid:"Upload files",msgstr:["ファイルをアップデート"]}}}}},{locale:"ka",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ka_GE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka_GE","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka_GE\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kab",json:{charset:"utf-8",headers:{"Last-Translator":"ZiriSut, 2023","Language-Team":"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)","Content-Type":"text/plain; charset=UTF-8",Language:"kab","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nZiriSut, 2023\n"},msgstr:["Last-Translator: ZiriSut, 2023\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kab\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} tesdatin i d-yeqqimen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} i d-yeqqimen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["qqiment-d kra n tesdatin kan"]},Add:{msgid:"Add",msgstr:["Rnu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Sefsex asali"]},"estimating time left":{msgid:"estimating time left",msgstr:["asizel n wakud i d-yeqqimen"]},paused:{msgid:"paused",msgstr:["yeḥbes"]},"Upload files":{msgid:"Upload files",msgstr:["Sali-d ifuyla"]}}}}},{locale:"kk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)","Content-Type":"text/plain; charset=UTF-8",Language:"kk","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kk\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"km",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)","Content-Type":"text/plain; charset=UTF-8",Language:"km","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: km\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kn",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)","Content-Type":"text/plain; charset=UTF-8",Language:"kn","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kn\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ko",json:{charset:"utf-8",headers:{"Last-Translator":"Brandon Han, 2024","Language-Team":"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)","Content-Type":"text/plain; charset=UTF-8",Language:"ko","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nhosun Lee, 2023\nBrandon Han, 2024\n"},msgstr:["Last-Translator: Brandon Han, 2024\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ko\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}개의 파일이 충돌함"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname}에서 {count}개의 파일이 충돌함"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} 남음"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} 남음"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["곧 완료"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["업로드 취소"]},Continue:{msgid:"Continue",msgstr:["확인"]},"estimating time left":{msgid:"estimating time left",msgstr:["남은 시간 계산"]},"Existing version":{msgid:"Existing version",msgstr:["현재 버전"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["두 버전을 모두 선택할 경우, 복제된 파일 이름에 숫자가 추가됩니다."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["최근 수정일 알 수 없음"]},New:{msgid:"New",msgstr:["새로 만들기"]},"New version":{msgid:"New version",msgstr:["새 버전"]},paused:{msgid:"paused",msgstr:["일시정지됨"]},"Preview image":{msgid:"Preview image",msgstr:["미리보기 이미지"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["모든 체크박스 선택"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["모든 파일 선택"]},"Select all new files":{msgid:"Select all new files",msgstr:["모든 새 파일 선택"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count}개의 파일 넘기기"]},"Unknown size":{msgid:"Unknown size",msgstr:["크기를 알 수 없음"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["업로드 취소됨"]},"Upload files":{msgid:"Upload files",msgstr:["파일 업로드"]},"Upload progress":{msgid:"Upload progress",msgstr:["업로드 진행도"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["어떤 파일을 보존하시겠습니까?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다."]}}}}},{locale:"la",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)","Content-Type":"text/plain; charset=UTF-8",Language:"la","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: la\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)","Content-Type":"text/plain; charset=UTF-8",Language:"lb","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lb\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)","Content-Type":"text/plain; charset=UTF-8",Language:"lo","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lo\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lt_LT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)","Content-Type":"text/plain; charset=UTF-8",Language:"lt_LT","Plural-Forms":"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lt_LT\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lv",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)","Content-Type":"text/plain; charset=UTF-8",Language:"lv","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lv\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"mk",json:{charset:"utf-8",headers:{"Last-Translator":"Сашко Тодоров <sasetodorov@gmail.com>, 2022","Language-Team":"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)","Content-Type":"text/plain; charset=UTF-8",Language:"mk","Plural-Forms":"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nСашко Тодоров <sasetodorov@gmail.com>, 2022\n"},msgstr:["Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mk\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостануваат {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["преостанува {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["уште неколку секунди"]},Add:{msgid:"Add",msgstr:["Додади"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Прекини прикачување"]},"estimating time left":{msgid:"estimating time left",msgstr:["приближно преостанато време"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Upload files":{msgid:"Upload files",msgstr:["Прикачување датотеки"]}}}}},{locale:"mn",json:{charset:"utf-8",headers:{"Last-Translator":"BATKHUYAG Ganbold, 2023","Language-Team":"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)","Content-Type":"text/plain; charset=UTF-8",Language:"mn","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nBATKHUYAG Ganbold, 2023\n"},msgstr:["Last-Translator: BATKHUYAG Ganbold, 2023\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mn\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} секунд үлдсэн"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} үлдсэн"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["хэдхэн секунд үлдсэн"]},Add:{msgid:"Add",msgstr:["Нэмэх"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Илгээлтийг цуцлах"]},"estimating time left":{msgid:"estimating time left",msgstr:["Үлдсэн хугацааг тооцоолж байна"]},paused:{msgid:"paused",msgstr:["түр зогсоосон"]},"Upload files":{msgid:"Upload files",msgstr:["Файл илгээх"]}}}}},{locale:"mr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)","Content-Type":"text/plain; charset=UTF-8",Language:"mr","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mr\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ms_MY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)","Content-Type":"text/plain; charset=UTF-8",Language:"ms_MY","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ms_MY\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"my",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)","Content-Type":"text/plain; charset=UTF-8",Language:"my","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: my\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nb_NO",json:{charset:"utf-8",headers:{"Last-Translator":"Syvert Fossdal, 2024","Language-Team":"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nb_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nSyvert Fossdal, 2024\n"},msgstr:["Last-Translator: Syvert Fossdal, 2024\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nb_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekunder igjen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} igjen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["noen få sekunder igjen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt opplastninger"]},Continue:{msgid:"Continue",msgstr:["Fortsett"]},"estimating time left":{msgid:"estimating time left",msgstr:["Estimerer tid igjen"]},"Existing version":{msgid:"Existing version",msgstr:["Gjeldende versjon"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Hvis du velger begge versjoner, vil den kopierte filen få et tall lagt til navnet."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Siste gang redigert ukjent"]},New:{msgid:"New",msgstr:["Ny"]},"New version":{msgid:"New version",msgstr:["Ny versjon"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvis bilde"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velg alle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velg alle nye filer"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Hopp over {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukjent størrelse"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Opplasting avbrutt"]},"Upload files":{msgid:"Upload files",msgstr:["Last opp filer"]},"Upload progress":{msgid:"Upload progress",msgstr:["Fremdrift, opplasting"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du beholde?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du må velge minst en versjon av hver fil for å fortsette."]}}}}},{locale:"ne",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)","Content-Type":"text/plain; charset=UTF-8",Language:"ne","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ne\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nl",json:{charset:"utf-8",headers:{"Last-Translator":"Rico <rico-schwab@hotmail.com>, 2023","Language-Team":"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)","Content-Type":"text/plain; charset=UTF-8",Language:"nl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRico <rico-schwab@hotmail.com>, 2023\n"},msgstr:["Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Nog {seconds} seconden"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{seconds} over"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Nog een paar seconden"]},Add:{msgid:"Add",msgstr:["Voeg toe"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Uploads annuleren"]},"estimating time left":{msgid:"estimating time left",msgstr:["Schatting van de resterende tijd"]},paused:{msgid:"paused",msgstr:["Gepauzeerd"]},"Upload files":{msgid:"Upload files",msgstr:["Upload bestanden"]}}}}},{locale:"nn",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)","Content-Type":"text/plain; charset=UTF-8",Language:"nn","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nn_NO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nn_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"oc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)","Content-Type":"text/plain; charset=UTF-8",Language:"oc","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: oc\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pl",json:{charset:"utf-8",headers:{"Last-Translator":"Valdnet, 2024","Language-Team":"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)","Content-Type":"text/plain; charset=UTF-8",Language:"pl","Plural-Forms":"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nM H <haincu@o2.pl>, 2023\nValdnet, 2024\n"},msgstr:["Last-Translator: Valdnet, 2024\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pl\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["konflikt 1 pliku","{count} konfliktów plików","{count} konfliktów plików","{count} konfliktów plików"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} konfliktowy plik w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Pozostało {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Pozostało {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Pozostało kilka sekund"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anuluj wysyłanie"]},Continue:{msgid:"Continue",msgstr:["Kontynuuj"]},"estimating time left":{msgid:"estimating time left",msgstr:["Szacowanie pozostałego czasu"]},"Existing version":{msgid:"Existing version",msgstr:["Istniejąca wersja"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Jeżeli wybierzesz obie wersje to do nazw skopiowanych plików zostanie dodany numer"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Nieznana data ostatniej modyfikacji"]},New:{msgid:"New",msgstr:["Nowy"]},"New version":{msgid:"New version",msgstr:["Nowa wersja"]},paused:{msgid:"paused",msgstr:["Wstrzymane"]},"Preview image":{msgid:"Preview image",msgstr:["Podgląd obrazu"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Zaznacz wszystkie boxy"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Zaznacz wszystkie istniejące pliki"]},"Select all new files":{msgid:"Select all new files",msgstr:["Zaznacz wszystkie nowe pliki"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Pomiń 1 plik","Pomiń {count} plików","Pomiń {count} plików","Pomiń {count} plików"]},"Unknown size":{msgid:"Unknown size",msgstr:["Nieznany rozmiar"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Anulowano wysyłanie"]},"Upload files":{msgid:"Upload files",msgstr:["Wyślij pliki"]},"Upload progress":{msgid:"Upload progress",msgstr:["Postęp wysyłania"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Które pliki chcesz zachować"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku."]}}}}},{locale:"ps",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)","Content-Type":"text/plain; charset=UTF-8",Language:"ps","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ps\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pt_BR",json:{charset:"utf-8",headers:{"Last-Translator":"Leonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024","Language-Team":"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_BR","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\n"},msgstr:["Last-Translator: Leonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_BR\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} arquivos em conflito","{count} arquivos em conflito","{count} arquivos em conflito"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alguns segundos restantes"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar a operação inteira"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar uploads"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versão existente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, o arquivo copiado terá um número adicionado ao seu nome."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},New:{msgid:"New",msgstr:["Novo"]},"New version":{msgid:"New version",msgstr:["Nova versão"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Visualizar imagem"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marque todas as caixas de seleção"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Selecione todos os arquivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Selecione todos os novos arquivos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ignorar {count} arquivos","Ignorar {count} arquivos","Ignorar {count} arquivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamanho desconhecido"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Envio cancelado"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar arquivos"]},"Upload progress":{msgid:"Upload progress",msgstr:["Envio em progresso"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando uma pasta é selecionada, quaisquer arquivos dentro dela também serão sobrescritos."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quais arquivos você deseja manter?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Você precisa selecionar pelo menos uma versão de cada arquivo para continuar."]}}}}},{locale:"pt_PT",json:{charset:"utf-8",headers:{"Last-Translator":"Manuela Silva <mmsrs@sky.com>, 2022","Language-Team":"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_PT","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nManuela Silva <mmsrs@sky.com>, 2022\n"},msgstr:["Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_PT\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["faltam {seconds} segundo(s)"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["faltam {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltam uns segundos"]},Add:{msgid:"Add",msgstr:["Adicionar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envios"]},"estimating time left":{msgid:"estimating time left",msgstr:["tempo em falta estimado"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]}}}}},{locale:"ro",json:{charset:"utf-8",headers:{"Last-Translator":"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022","Language-Team":"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)","Content-Type":"text/plain; charset=UTF-8",Language:"ro","Plural-Forms":"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\n"},msgstr:["Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ro\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secunde rămase"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} rămas"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["câteva secunde rămase"]},Add:{msgid:"Add",msgstr:["Adaugă"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anulați încărcările"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimarea timpului rămas"]},paused:{msgid:"paused",msgstr:["pus pe pauză"]},"Upload files":{msgid:"Upload files",msgstr:["Încarcă fișiere"]}}}}},{locale:"ru",json:{charset:"utf-8",headers:{"Last-Translator":"Александр, 2023","Language-Team":"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)","Content-Type":"text/plain; charset=UTF-8",Language:"ru","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nMax Smith <sevinfolds@gmail.com>, 2023\nАлександр, 2023\n"},msgstr:["Last-Translator: Александр, 2023\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["конфликт {count} файла","конфликт {count} файлов","конфликт {count} файлов","конфликт {count} файлов"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["конфликт {count} файла в {dirname}","конфликт {count} файлов в {dirname}","конфликт {count} файлов в {dirname}","конфликт {count} файлов в {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["осталось {seconds} секунд"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["осталось {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["осталось несколько секунд"]},Add:{msgid:"Add",msgstr:["Добавить"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Отменить загрузки"]},Continue:{msgid:"Continue",msgstr:["Продолжить"]},"estimating time left":{msgid:"estimating time left",msgstr:["оценка оставшегося времени"]},"Existing version":{msgid:"Existing version",msgstr:["Текущая версия"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Если вы выберете обе версии, к имени скопированного файла будет добавлен номер."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата последнего изменения неизвестна"]},"New version":{msgid:"New version",msgstr:["Новая версия"]},paused:{msgid:"paused",msgstr:["приостановлено"]},"Preview image":{msgid:"Preview image",msgstr:["Предварительный просмотр"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Установить все флажки"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Выбрать все существующие файлы"]},"Select all new files":{msgid:"Select all new files",msgstr:["Выбрать все новые файлы"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Пропустить файл","Пропустить {count} файла","Пропустить {count} файлов","Пропустить {count} файлов"]},"Unknown size":{msgid:"Unknown size",msgstr:["Неизвестный размер"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Загрузка отменена"]},"Upload files":{msgid:"Upload files",msgstr:["Загрузка файлов"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Какие файлы вы хотите сохранить?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла."]}}}}},{locale:"ru_RU",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)","Content-Type":"text/plain; charset=UTF-8",Language:"ru_RU","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru_RU\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)","Content-Type":"text/plain; charset=UTF-8",Language:"sc","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sc\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"si",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)","Content-Type":"text/plain; charset=UTF-8",Language:"si","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"si_LK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)","Content-Type":"text/plain; charset=UTF-8",Language:"si_LK","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si_LK\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sk_SK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)","Content-Type":"text/plain; charset=UTF-8",Language:"sk_SK","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sk_SK\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sl",json:{charset:"utf-8",headers:{"Last-Translator":"Matej Urbančič <>, 2022","Language-Team":"Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)","Content-Type":"text/plain; charset=UTF-8",Language:"sl","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMatej Urbančič <>, 2022\n"},msgstr:["Last-Translator: Matej Urbančič <>, 2022\nLanguage-Team: Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["še {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["še {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["še nekaj sekund"]},Add:{msgid:"Add",msgstr:["Dodaj"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Prekliči pošiljanje"]},"estimating time left":{msgid:"estimating time left",msgstr:["ocenjen čas do konca"]},paused:{msgid:"paused",msgstr:["v premoru"]},"Upload files":{msgid:"Upload files",msgstr:["Pošlji datoteke"]}}}}},{locale:"sl_SI",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)","Content-Type":"text/plain; charset=UTF-8",Language:"sl_SI","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl_SI\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sq",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)","Content-Type":"text/plain; charset=UTF-8",Language:"sq","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sq\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sr",json:{charset:"utf-8",headers:{"Last-Translator":"Иван Пешић, 2023","Language-Team":"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nИван Пешић, 2023\n"},msgstr:["Last-Translator: Иван Пешић, 2023\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} фајл конфликт","{count} фајл конфликта","{count} фајл конфликта"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} фајл конфликт у {dirname}","{count} фајл конфликта у {dirname}","{count} фајл конфликта у {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостало је {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} преостало"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["преостало је неколико секунди"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Обустави отпремања"]},Continue:{msgid:"Continue",msgstr:["Настави"]},"estimating time left":{msgid:"estimating time left",msgstr:["процена преосталог времена"]},"Existing version":{msgid:"Existing version",msgstr:["Постојећа верзија"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Ако изаберете обе верзије, на име копираног фајла ће се додати број."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Није познат датум последње измене"]},New:{msgid:"New",msgstr:["Ново"]},"New version":{msgid:"New version",msgstr:["Нова верзија"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Preview image":{msgid:"Preview image",msgstr:["Слика прегледа"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Штиклирај сва поља за штиклирање"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Изабери све постојеће фајлове"]},"Select all new files":{msgid:"Select all new files",msgstr:["Изабери све нове фајлове"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Прескочи овај фајл","Прескочи {count} фајла","Прескочи {count} фајлова"]},"Unknown size":{msgid:"Unknown size",msgstr:["Непозната величина"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Отпремање је отказано"]},"Upload files":{msgid:"Upload files",msgstr:["Отпреми фајлове"]},"Upload progress":{msgid:"Upload progress",msgstr:["Напредак отпремања"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Које фајлове желите да задржите?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Морате да изаберете барем једну верзију сваког фајла да наставите."]}}}}},{locale:"sr@latin",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr@latin","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr@latin\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sv",json:{charset:"utf-8",headers:{"Last-Translator":"Magnus Höglund, 2024","Language-Team":"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)","Content-Type":"text/plain; charset=UTF-8",Language:"sv","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMagnus Höglund, 2024\n"},msgstr:["Last-Translator: Magnus Höglund, 2024\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sv\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} filkonflikt","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} filkonflikt i {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekunder kvarstår"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kvarstår"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["några sekunder kvar"]},Cancel:{msgid:"Cancel",msgstr:["Avbryt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Avbryt hela operationen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt uppladdningar"]},Continue:{msgid:"Continue",msgstr:["Fortsätt"]},"estimating time left":{msgid:"estimating time left",msgstr:["uppskattar kvarstående tid"]},"Existing version":{msgid:"Existing version",msgstr:["Nuvarande version"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Om du väljer båda versionerna kommer den kopierade filen att få ett nummer tillagt  i namnet."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Senaste ändringsdatum okänt"]},New:{msgid:"New",msgstr:["Ny"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pausad"]},"Preview image":{msgid:"Preview image",msgstr:["Förhandsgranska bild"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Markera alla kryssrutor"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Välj alla befintliga filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Välj alla nya filer"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Hoppa över denna fil","Hoppa över {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Okänd storlek"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Uppladdningen avbröts"]},"Upload files":{msgid:"Upload files",msgstr:["Ladda upp filer"]},"Upload progress":{msgid:"Upload progress",msgstr:["Uppladdningsförlopp"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs skrivs även alla konfliktande filer i den över."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Vilka filer vill du behålla?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du måste välja minst en version av varje fil för att fortsätta."]}}}}},{locale:"sw",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)","Content-Type":"text/plain; charset=UTF-8",Language:"sw","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sw\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ta",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)","Content-Type":"text/plain; charset=UTF-8",Language:"ta","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ta_LK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)","Content-Type":"text/plain; charset=UTF-8",Language:"ta_LK","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta_LK\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"th",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Thai (https://www.transifex.com/nextcloud/teams/64236/th/)","Content-Type":"text/plain; charset=UTF-8",Language:"th","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Thai (https://www.transifex.com/nextcloud/teams/64236/th/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"th_TH",json:{charset:"utf-8",headers:{"Last-Translator":"Phongpanot Phairat <ppnplus@protonmail.com>, 2022","Language-Team":"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)","Content-Type":"text/plain; charset=UTF-8",Language:"th_TH","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\n"},msgstr:["Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th_TH\nPlural-Forms: nplurals=1; plural=0;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["เหลืออีก {seconds} วินาที"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["เหลืออีก {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["เหลืออีกไม่กี่วินาที"]},Add:{msgid:"Add",msgstr:["เพิ่ม"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["ยกเลิกการอัปโหลด"]},"estimating time left":{msgid:"estimating time left",msgstr:["กำลังคำนวณเวลาที่เหลือ"]},paused:{msgid:"paused",msgstr:["หยุดชั่วคราว"]},"Upload files":{msgid:"Upload files",msgstr:["อัปโหลดไฟล์"]}}}}},{locale:"tk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)","Content-Type":"text/plain; charset=UTF-8",Language:"tk","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tk\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"tr",json:{charset:"utf-8",headers:{"Last-Translator":"Kaya Zeren <kayazeren@gmail.com>, 2024","Language-Team":"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)","Content-Type":"text/plain; charset=UTF-8",Language:"tr","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nKaya Zeren <kayazeren@gmail.com>, 2024\n"},msgstr:["Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2024\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tr\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} dosya çakışması var","{count} dosya çakışması var"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} klasöründe {count} dosya çakışması var","{dirname} klasöründe {count} dosya çakışması var"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saniye kaldı"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kaldı"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir kaç saniye kaldı"]},Cancel:{msgid:"Cancel",msgstr:["İptal"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Tüm işlemi iptal et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yüklemeleri iptal et"]},Continue:{msgid:"Continue",msgstr:["İlerle"]},"estimating time left":{msgid:"estimating time left",msgstr:["öngörülen kalan süre"]},"Existing version":{msgid:"Existing version",msgstr:["Var olan sürüm"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["İki sürümü de seçerseniz, kopyalanan dosyanın adına bir sayı eklenir."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Son değiştirilme tarihi bilinmiyor"]},New:{msgid:"New",msgstr:["Yeni"]},"New version":{msgid:"New version",msgstr:["Yeni sürüm"]},paused:{msgid:"paused",msgstr:["duraklatıldı"]},"Preview image":{msgid:"Preview image",msgstr:["Görsel ön izlemesi"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Tüm kutuları işaretle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Tüm var olan dosyaları seç"]},"Select all new files":{msgid:"Select all new files",msgstr:["Tüm yeni dosyaları seç"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Bu dosyayı atla","{count} dosyayı atla"]},"Unknown size":{msgid:"Unknown size",msgstr:["Boyut bilinmiyor"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Yükleme iptal edildi"]},"Upload files":{msgid:"Upload files",msgstr:["Dosyaları yükle"]},"Upload progress":{msgid:"Upload progress",msgstr:["Yükleme ilerlemesi"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hangi dosyaları tutmak istiyorsunuz?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz."]}}}}},{locale:"ug",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)","Content-Type":"text/plain; charset=UTF-8",Language:"ug","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ug\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uk",json:{charset:"utf-8",headers:{"Last-Translator":"O St <oleksiy.stasevych@gmail.com>, 2024","Language-Team":"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)","Content-Type":"text/plain; charset=UTF-8",Language:"uk","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nO St <oleksiy.stasevych@gmail.com>, 2024\n"},msgstr:["Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2024\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uk\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} конфліктний файл","{count} конфліктних файли","{count} конфліктних файлів","{count} конфліктних файлів"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} конфліктний файл у каталозі {dirname}","{count} конфліктних файли у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Залишилося {seconds} секунд"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Залишилося {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["залишилося кілька секунд"]},Cancel:{msgid:"Cancel",msgstr:["Скасувати"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Скасувати операцію повністю"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Скасувати завантаження"]},Continue:{msgid:"Continue",msgstr:["Продовжити"]},"estimating time left":{msgid:"estimating time left",msgstr:["оцінка часу, що залишився"]},"Existing version":{msgid:"Existing version",msgstr:["Присутня версія"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Якщо ви виберете обидві версії, то буде створено копію файлу, до назви якої буде додано цифру."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата останньої зміни невідома"]},New:{msgid:"New",msgstr:["Нове"]},"New version":{msgid:"New version",msgstr:["Нова версія"]},paused:{msgid:"paused",msgstr:["призупинено"]},"Preview image":{msgid:"Preview image",msgstr:["Попередній перегляд"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Вибрати все"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Вибрати усі присутні файли"]},"Select all new files":{msgid:"Select all new files",msgstr:["Вибрати усі нові файли"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Пропустити файл","Пропустити {count} файли","Пропустити {count} файлів","Пропустити {count} файлів"]},"Unknown size":{msgid:"Unknown size",msgstr:["Невідомий розмір"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Завантаження скасовано"]},"Upload files":{msgid:"Upload files",msgstr:["Завантажити файли"]},"Upload progress":{msgid:"Upload progress",msgstr:["Поступ завантаження"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Які файли залишити?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продовження потрібно вибрати принаймні одну версію для кожного файлу."]}}}}},{locale:"ur_PK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)","Content-Type":"text/plain; charset=UTF-8",Language:"ur_PK","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ur_PK\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uz",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)","Content-Type":"text/plain; charset=UTF-8",Language:"uz","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uz\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"vi",json:{charset:"utf-8",headers:{"Last-Translator":"Tung DangQuang, 2023","Language-Team":"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)","Content-Type":"text/plain; charset=UTF-8",Language:"vi","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nTung DangQuang, 2023\n"},msgstr:["Last-Translator: Tung DangQuang, 2023\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: vi\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Tập tin xung đột"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} tập tin lỗi trong {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Còn {second} giây"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Còn lại {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Còn lại một vài giây"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Huỷ tải lên"]},Continue:{msgid:"Continue",msgstr:["Tiếp Tục"]},"estimating time left":{msgid:"estimating time left",msgstr:["Thời gian còn lại dự kiến"]},"Existing version":{msgid:"Existing version",msgstr:["Phiên Bản Hiện Tại"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ngày sửa dổi lần cuối không xác định"]},New:{msgid:"New",msgstr:["Tạo Mới"]},"New version":{msgid:"New version",msgstr:["Phiên Bản Mới"]},paused:{msgid:"paused",msgstr:["đã tạm dừng"]},"Preview image":{msgid:"Preview image",msgstr:["Xem Trước Ảnh"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Chọn tất cả hộp checkbox"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Chọn tất cả các tập tin có sẵn"]},"Select all new files":{msgid:"Select all new files",msgstr:["Chọn tất cả các tập tin mới"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Bỏ Qua {count} tập tin"]},"Unknown size":{msgid:"Unknown size",msgstr:["Không rõ dung lượng"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Dừng Tải Lên"]},"Upload files":{msgid:"Upload files",msgstr:["Tập tin tải lên"]},"Upload progress":{msgid:"Upload progress",msgstr:["Đang Tải Lên"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Bạn muốn giữ tập tin nào?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục"]}}}}},{locale:"zh_CN",json:{charset:"utf-8",headers:{"Last-Translator":"Hongbo Chen, 2023","Language-Team":"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_CN","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nHongbo Chen, 2023\n"},msgstr:["Last-Translator: Hongbo Chen, 2023\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_CN\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}文件冲突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["在{dirname}目录下有{count}个文件冲突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩余 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩余 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["还剩几秒"]},Add:{msgid:"Add",msgstr:["添加"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上传"]},Continue:{msgid:"Continue",msgstr:["继续"]},"estimating time left":{msgid:"estimating time left",msgstr:["估计剩余时间"]},"Existing version":{msgid:"Existing version",msgstr:["版本已存在"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["如果选择所有的版本,新增版本的文件名为原文件名加数字"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["文件最后修改日期未知"]},"New version":{msgid:"New version",msgstr:["新版本"]},paused:{msgid:"paused",msgstr:["已暂停"]},"Preview image":{msgid:"Preview image",msgstr:["图片预览"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["选择所有的选择框"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["选择所有存在的文件"]},"Select all new files":{msgid:"Select all new files",msgstr:["选择所有的新文件"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["跳过{count}个文件"]},"Unknown size":{msgid:"Unknown size",msgstr:["文件大小未知"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["取消上传"]},"Upload files":{msgid:"Upload files",msgstr:["上传文件"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["你要保留哪些文件?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["每个文件至少选择一个版本"]}}}}},{locale:"zh_HK",json:{charset:"utf-8",headers:{"Last-Translator":"Café Tango, 2023","Language-Team":"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_HK","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nCafé Tango, 2023\n"},msgstr:["Last-Translator: Café Tango, 2023\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_HK\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},Add:{msgid:"Add",msgstr:["添加"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["若您選取兩個版本,複製的檔案的名稱將會新增編號。"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期不詳"]},"New version":{msgid:"New version",msgstr:["新版本 "]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 個檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["大小不詳"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["已取消上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}},{locale:"zh_TW",json:{charset:"utf-8",headers:{"Last-Translator":"黃柏諺 <s8321414@gmail.com>, 2024","Language-Team":"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_TW","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\n黃柏諺 <s8321414@gmail.com>, 2024\n"},msgstr:["Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_TW\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["若您選取兩個版本,複製的檔案的名稱將會新增編號。"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期未知"]},New:{msgid:"New",msgstr:["新增"]},"New version":{msgid:"New version",msgstr:["新版本"]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["未知大小"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["已取消上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Upload progress":{msgid:"Upload progress",msgstr:["上傳進度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}}].map((e=>se.addTranslation(e.locale,e.json)));const ne=se.build(),ae=ne.ngettext.bind(ne),ie=ne.gettext.bind(ne),re=j.Ay.extend({name:"UploadPicker",components:{Cancel:Q,NcActionButton:O.A,NcActions:z.A,NcButton:R.A,NcIconSvgWrapper:D.A,NcProgressBar:M.A,Plus:ee,Upload:te},props:{accept:{type:Array,default:null},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},destination:{type:v.vd,default:void 0},content:{type:Array,default:()=>[]},forbiddenCharacters:{type:Array,default:()=>[]}},data:()=>({addLabel:ie("New"),cancelLabel:ie("Cancel uploads"),uploadLabel:ie("Upload files"),progressLabel:ie("Upload progress"),progressTimeId:`nc-uploader-progress-${Math.random().toString(36).slice(7)}`,eta:null,timeLeft:"",newFileMenuEntries:[],uploadManager:le()}),computed:{totalQueueSize(){return this.uploadManager.info?.size||0},uploadedQueueSize(){return this.uploadManager.info?.progress||0},progress(){return Math.round(this.uploadedQueueSize/this.totalQueueSize*100)||0},queue(){return this.uploadManager.queue},hasFailure(){return 0!==this.queue?.filter((e=>e.status===W.FAILED)).length},isUploading(){return this.queue?.length>0},isAssembling(){return 0!==this.queue?.filter((e=>e.status===W.ASSEMBLING)).length},isPaused(){return this.uploadManager.info?.status===J.PAUSED},buttonName(){if(!this.isUploading)return this.addLabel}},watch:{destination(e){this.setDestination(e)},totalQueueSize(e){this.eta=I({min:0,max:e}),this.updateStatus()},uploadedQueueSize(e){this.eta?.report?.(e),this.updateStatus()},isPaused(e){e?this.$emit("paused",this.queue):this.$emit("resumed",this.queue)}},beforeMount(){this.destination&&this.setDestination(this.destination),this.uploadManager.addNotifier(this.onUploadCompletion),G.debug("UploadPicker initialised")},methods:{onClick(){this.$refs.input.click()},async onPick(){let e=[...this.$refs.input.files];if(me(e,this.content)){const t=e.filter((e=>this.content.find((t=>t.basename===e.name)))).filter(Boolean),s=e.filter((e=>!t.includes(e)));try{const{selected:n,renamed:a}=await de(this.destination.basename,t,this.content);e=[...s,...n,...a]}catch{return void(0,N.Qg)(ie("Upload cancelled"))}}e.forEach((e=>{const t=(this.forbiddenCharacters||[]).find((t=>e.name.includes(t)));t?(0,N.Qg)(ie(`"${t}" is not allowed inside a file name.`)):this.uploadManager.upload(e.name,e).catch((()=>{}))})),this.$refs.form.reset()},onCancel(){this.uploadManager.queue.forEach((e=>{e.cancel()})),this.$refs.form.reset()},updateStatus(){if(this.isPaused)return void(this.timeLeft=ie("paused"));const e=Math.round(this.eta.estimate());if(e!==1/0)if(e<10)this.timeLeft=ie("a few seconds left");else if(e>60){const t=new Date(0);t.setSeconds(e);const s=t.toISOString().slice(11,19);this.timeLeft=ie("{time} left",{time:s})}else this.timeLeft=ie("{seconds} seconds left",{seconds:e});else this.timeLeft=ie("estimating time left")},setDestination(e){this.destination?(this.uploadManager.destination=e,this.newFileMenuEntries=(0,v.m1)(e)):G.debug("Invalid destination")},onUploadCompletion(e){e.status===W.FAILED?this.$emit("failed",e):this.$emit("uploaded",e)}}});X(re,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.destination?t("form",{ref:"form",staticClass:"upload-picker",class:{"upload-picker--uploading":e.isUploading,"upload-picker--paused":e.isPaused},attrs:{"data-cy-upload-picker":""}},[e.newFileMenuEntries&&0===e.newFileMenuEntries.length?t("NcButton",{attrs:{disabled:e.disabled,"data-cy-upload-picker-add":"",type:"secondary"},on:{click:e.onClick},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Plus",{attrs:{title:"",size:20,decorative:""}})]},proxy:!0}],null,!1,2954875042)},[e._v(" "+e._s(e.buttonName)+" ")]):t("NcActions",{attrs:{"menu-name":e.buttonName,"menu-title":e.addLabel,type:"secondary"},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Plus",{attrs:{title:"",size:20,decorative:""}})]},proxy:!0}],null,!1,2954875042)},[t("NcActionButton",{attrs:{"data-cy-upload-picker-add":"","close-after-click":!0},on:{click:e.onClick},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Upload",{attrs:{title:"",size:20,decorative:""}})]},proxy:!0}],null,!1,3606034491)},[e._v(" "+e._s(e.uploadLabel)+" ")]),e._l(e.newFileMenuEntries,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0},on:{click:function(t){return s.handler(e.destination,e.content)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])}))],2),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isUploading,expression:"isUploading"}],staticClass:"upload-picker__progress"},[t("NcProgressBar",{attrs:{"aria-label":e.progressLabel,"aria-describedby":e.progressTimeId,error:e.hasFailure,value:e.progress,size:"medium"}}),t("p",{attrs:{id:e.progressTimeId}},[e._v(" "+e._s(e.timeLeft)+" ")])],1),e.isUploading?t("NcButton",{staticClass:"upload-picker__cancel",attrs:{type:"tertiary","aria-label":e.cancelLabel,"data-cy-upload-picker-cancel":""},on:{click:e.onCancel},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Cancel",{attrs:{title:"",size:20}})]},proxy:!0}],null,!1,4076886712)}):e._e(),t("input",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],ref:"input",attrs:{type:"file",accept:e.accept?.join?.(", "),multiple:e.multiple,"data-cy-upload-picker-input":""},on:{change:e.onPick}})],1):e._e()}),[],!1,null,"eca9500a",null,null).exports;let oe=null;function le(){const e=null!==document.querySelector('input[name="isPublic"][value="1"]');return oe instanceof Z||(oe=new Z(e)),oe}async function de(e,t,n){const a=(0,j.$V)((()=>Promise.all([s.e(4208),s.e(6075)]).then(s.bind(s,56075))));return new Promise(((s,i)=>{const r=new j.Ay({name:"ConflictPickerRoot",render:o=>o(a,{props:{dirname:e,conflicts:t,content:n},on:{submit(e){s(e),r.$destroy(),r.$el?.parentNode?.removeChild(r.$el)},cancel(e){i(e??new Error("Canceled")),r.$destroy(),r.$el?.parentNode?.removeChild(r.$el)}}})});r.$mount(),document.body.appendChild(r.$el)}))}function me(e,t){const s=t.map((e=>e.basename));return e.filter((e=>{const t=e instanceof File?e.name:e.basename;return-1!==s.indexOf(t)})).length>0}},88164:(e,t,s)=>{"use strict";s.d(t,{Jv:()=>i,dC:()=>n});const n=(e,t)=>{var s;return(null!=(s=null==t?void 0:t.baseURL)?s:r())+(e=>"/remote.php/"+e)(e)},a=(e,t,s)=>{const n=Object.assign({escape:!0},s||{});return"/"!==e.charAt(0)&&(e="/"+e),a=(a=t||{})||{},e.replace(/{([^{}]*)}/g,(function(e,t){const s=a[t];return n.escape?encodeURIComponent("string"==typeof s||"number"==typeof s?s.toString():e):"string"==typeof s||"number"==typeof s?s.toString():e}));var a},i=(e,t,s)=>{var n,i,r;const l=Object.assign({noRewrite:!1},s||{}),d=null!=(n=null==s?void 0:s.baseURL)?n:o();return!0!==(null==(r=null==(i=null==window?void 0:window.OC)?void 0:i.config)?void 0:r.modRewriteWorking)||l.noRewrite?d+"/index.php"+a(e,t,s):d+a(e,t,s)},r=()=>window.location.protocol+"//"+window.location.host+o();function o(){let e=window._oc_webroot;if(typeof e>"u"){e=location.pathname;const t=e.indexOf("/index.php/");if(-1!==t)e=e.slice(0,t);else{const t=e.indexOf("/",1);e=e.slice(0,t>0?t:void 0)}}return e}},53110:(e,t,s)=>{"use strict";s.d(t,{k3:()=>r,pe:()=>i});var n=s(28893);const{Axios:a,AxiosError:i,CanceledError:r,isCancel:o,CancelToken:l,VERSION:d,all:m,Cancel:c,isAxiosError:u,spread:g,toFormData:f,AxiosHeaders:p,HttpStatusCode:h,formToJSON:w,getAdapter:x,mergeConfig:v}=n.A}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={id:e,loaded:!1,exports:{}};return n[e].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}i.m=n,e=[],i.O=(t,s,n,a)=>{if(!s){var r=1/0;for(m=0;m<e.length;m++){s=e[m][0],n=e[m][1],a=e[m][2];for(var o=!0,l=0;l<s.length;l++)(!1&a||r>=a)&&Object.keys(i.O).every((e=>i.O[e](s[l])))?s.splice(l--,1):(o=!1,a<r&&(r=a));if(o){e.splice(m--,1);var d=n();void 0!==d&&(t=d)}}return t}a=a||0;for(var m=e.length;m>0&&e[m-1][2]>a;m--)e[m]=e[m-1];e[m]=[s,n,a]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,s)=>(i.f[s](e,t),t)),[])),i.u=e=>e+"-"+e+".js?v="+{1110:"2909496e7e35d6258214",5929:"2e5e3b59f8a28f14168b",6075:"f8e1d39004c19c13e598",8902:"bb2f9be8a039f8db7e58"}[e],i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},s="nextcloud:",i.l=(e,n,a,r)=>{if(t[e])t[e].push(n);else{var o,l;if(void 0!==a)for(var d=document.getElementsByTagName("script"),m=0;m<d.length;m++){var c=d[m];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==s+a){o=c;break}}o||(l=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,i.nc&&o.setAttribute("nonce",i.nc),o.setAttribute("data-webpack",s+a),o.src=e),t[e]=[n];var u=(s,n)=>{o.onerror=o.onload=null,clearTimeout(g);var a=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),a&&a.forEach((e=>e(n))),s)return s(n)},g=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),l&&document.head.appendChild(o)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.j=1171,(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var s=t.getElementsByTagName("script");if(s.length)for(var n=s.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=s[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{i.b=document.baseURI||self.location.href;var e={1171:0};i.f.j=(t,s)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)s.push(n[2]);else{var a=new Promise(((s,a)=>n=e[t]=[s,a]));s.push(n[2]=a);var r=i.p+i.u(t),o=new Error;i.l(r,(s=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=s&&("load"===s.type?"missing":s.type),r=s&&s.target&&s.target.src;o.message="Loading chunk "+t+" failed.\n("+a+": "+r+")",o.name="ChunkLoadError",o.type=a,o.request=r,n[1](o)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,s)=>{var n,a,r=s[0],o=s[1],l=s[2],d=0;if(r.some((t=>0!==e[t]))){for(n in o)i.o(o,n)&&(i.m[n]=o[n]);if(l)var m=l(i)}for(t&&t(s);d<r.length;d++)a=r[d],i.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return i.O(m)},s=self.webpackChunknextcloud=self.webpackChunknextcloud||[];s.forEach(t.bind(null,0)),s.push=t.bind(null,s.push.bind(s))})(),i.nc=void 0;var r=i.O(void 0,[4208],(()=>i(40586)));r=i.O(r)})();
+//# sourceMappingURL=files-init.js.map?v=14c3f9a7f1d7a01d1ba8
\ No newline at end of file
index ffb3ec7b0823dc4c55d6324f336c348cf311ef07..1ca614540d483b2e5803f516c74f787dcc4df0a6 100644 (file)
@@ -1 +1 @@
-{"version":3,"file":"files-init.js?v=1a063dcc671231d06e57","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/eventemitter3/index.js","webpack:///nextcloud/apps/files/src/logger.js","webpack:///nextcloud/apps/files/src/actions/deleteAction.ts","webpack:///nextcloud/apps/files/src/actions/downloadAction.ts","webpack:///nextcloud/apps/files/src/actions/editLocallyAction.ts","webpack:///nextcloud/apps/files/src/actions/favoriteAction.ts","webpack://nextcloud/./node_modules/@nextcloud/dialogs/dist/style.css?d87c","webpack:///nextcloud/apps/files/src/actions/moveOrCopyActionUtils.ts","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyAction.ts","webpack:///nextcloud/apps/files/src/actions/openFolderAction.ts","webpack:///nextcloud/apps/files/src/actions/openInFilesAction.ts","webpack:///nextcloud/apps/files/src/actions/renameAction.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/actions/viewInFolderAction.ts","webpack:///nextcloud/apps/files/src/components/NewNodeDialog.vue","webpack:///nextcloud/apps/files/src/components/NewNodeDialog.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/NewNodeDialog.vue?1a36","webpack:///nextcloud/apps/files/src/utils/newNodeDialog.ts","webpack:///nextcloud/apps/files/src/newMenu/newFolder.ts","webpack:///nextcloud/apps/files/src/newMenu/newTemplatesFolder.ts","webpack:///nextcloud/apps/files/src/newMenu/newFromTemplate.ts","webpack:///nextcloud/apps/files/src/services/Favorites.ts","webpack:///nextcloud/apps/files/src/views/favorites.ts","webpack:///nextcloud/node_modules/pinia/dist/pinia.mjs","webpack:///nextcloud/apps/files/src/store/userconfig.ts","webpack:///nextcloud/apps/files/src/store/index.ts","webpack:///nextcloud/apps/files/src/services/Recent.ts","webpack:///nextcloud/apps/files/src/init.ts","webpack:///nextcloud/apps/files/src/views/files.ts","webpack:///nextcloud/apps/files/src/views/recent.ts","webpack:///nextcloud/apps/files/src/services/ServiceWorker.js","webpack:///nextcloud/apps/files/src/services/LivePhotos.ts","webpack:///nextcloud/apps/files/src/utils/fileUtils.ts","webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/style.css","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/assets/index-Ussc_ol3.css","webpack:///nextcloud/node_modules/simple-eta/index.js","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack://nextcloud/./node_modules/@nextcloud/upload/dist/assets/index-Ussc_ol3.css?40cd","webpack:///nextcloud/node_modules/p-cancelable/index.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-timeout/index.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-queue/dist/priority-queue.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-queue/dist/lower-bound.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-queue/dist/index.js","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/index-DM2X1kc6.mjs","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/@nextcloud/router/dist/index.mjs","webpack:///nextcloud/node_modules/axios/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\n}\n","/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files')\n\t.detectUser()\n\t.build()\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, Node, View, FileAction, FileType } from '@nextcloud/files';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport CloseSvg from '@mdi/svg/svg/close.svg?raw';\nimport NetworkOffSvg from '@mdi/svg/svg/network-off.svg?raw';\nimport TrashCanSvg from '@mdi/svg/svg/trash-can.svg?raw';\nimport logger from '../logger.js';\nimport PQueue from 'p-queue';\nconst canUnshareOnly = (nodes) => {\n    return nodes.every(node => node.attributes['is-mount-root'] === true\n        && node.attributes['mount-type'] === 'shared');\n};\nconst canDisconnectOnly = (nodes) => {\n    return nodes.every(node => node.attributes['is-mount-root'] === true\n        && node.attributes['mount-type'] === 'external');\n};\nconst isMixedUnshareAndDelete = (nodes) => {\n    if (nodes.length === 1) {\n        return false;\n    }\n    const hasSharedItems = nodes.some(node => canUnshareOnly([node]));\n    const hasDeleteItems = nodes.some(node => !canUnshareOnly([node]));\n    return hasSharedItems && hasDeleteItems;\n};\nconst isAllFiles = (nodes) => {\n    return !nodes.some(node => node.type !== FileType.File);\n};\nconst isAllFolders = (nodes) => {\n    return !nodes.some(node => node.type !== FileType.Folder);\n};\nconst queue = new PQueue({ concurrency: 5 });\nexport const action = new FileAction({\n    id: 'delete',\n    displayName(nodes, view) {\n        /**\n         * If we're in the trashbin, we can only delete permanently\n         */\n        if (view.id === 'trashbin') {\n            return t('files', 'Delete permanently');\n        }\n        /**\n         * If we're in the sharing view, we can only unshare\n         */\n        if (isMixedUnshareAndDelete(nodes)) {\n            return t('files', 'Delete and unshare');\n        }\n        /**\n         * If those nodes are all the root node of a\n         * share, we can only unshare them.\n         */\n        if (canUnshareOnly(nodes)) {\n            if (nodes.length === 1) {\n                return t('files', 'Leave this share');\n            }\n            return t('files', 'Leave these shares');\n        }\n        /**\n         * If those nodes are all the root node of an\n         * external storage, we can only disconnect it.\n         */\n        if (canDisconnectOnly(nodes)) {\n            if (nodes.length === 1) {\n                return t('files', 'Disconnect storage');\n            }\n            return t('files', 'Disconnect storages');\n        }\n        /**\n         * If we're only selecting files, use proper wording\n         */\n        if (isAllFiles(nodes)) {\n            if (nodes.length === 1) {\n                return t('files', 'Delete file');\n            }\n            return t('files', 'Delete files');\n        }\n        /**\n         * If we're only selecting folders, use proper wording\n         */\n        if (isAllFolders(nodes)) {\n            if (nodes.length === 1) {\n                return t('files', 'Delete folder');\n            }\n            return t('files', 'Delete folders');\n        }\n        return t('files', 'Delete');\n    },\n    iconSvgInline: (nodes) => {\n        if (canUnshareOnly(nodes)) {\n            return CloseSvg;\n        }\n        if (canDisconnectOnly(nodes)) {\n            return NetworkOffSvg;\n        }\n        return TrashCanSvg;\n    },\n    enabled(nodes) {\n        return nodes.length > 0 && nodes\n            .map(node => node.permissions)\n            .every(permission => (permission & Permission.DELETE) !== 0);\n    },\n    async exec(node, view, dir) {\n        try {\n            await axios.delete(node.encodedSource);\n            // Let's delete even if it's moved to the trashbin\n            // since it has been removed from the current view\n            // and changing the view will trigger a reload anyway.\n            emit('files:node:deleted', node);\n            return true;\n        }\n        catch (error) {\n            logger.error('Error while deleting a file', { error, source: node.source, node });\n            return false;\n        }\n    },\n    async execBatch(nodes, view, dir) {\n        // Map each node to a promise that resolves with the result of exec(node)\n        const promises = nodes.map(node => {\n            // Create a promise that resolves with the result of exec(node)\n            const promise = new Promise(resolve => {\n                queue.add(async () => {\n                    const result = await this.exec(node, view, dir);\n                    resolve(result !== null ? result : false);\n                });\n            });\n            return promise;\n        });\n        return Promise.all(promises);\n    },\n    order: 100,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { generateUrl } from '@nextcloud/router';\nimport { FileAction, Permission, Node, FileType, View } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport ArrowDownSvg from '@mdi/svg/svg/arrow-down.svg?raw';\nconst triggerDownload = function (url) {\n    const hiddenElement = document.createElement('a');\n    hiddenElement.download = '';\n    hiddenElement.href = url;\n    hiddenElement.click();\n};\nconst downloadNodes = function (dir, nodes) {\n    const secret = Math.random().toString(36).substring(2);\n    const url = generateUrl('/apps/files/ajax/download.php?dir={dir}&files={files}&downloadStartSecret={secret}', {\n        dir,\n        secret,\n        files: JSON.stringify(nodes.map(node => node.basename)),\n    });\n    triggerDownload(url);\n};\nconst isDownloadable = function (node) {\n    if ((node.permissions & Permission.READ) === 0) {\n        return false;\n    }\n    // If the mount type is a share, ensure it got download permissions.\n    if (node.attributes['mount-type'] === 'shared') {\n        const shareAttributes = JSON.parse(node.attributes['share-attributes'] ?? 'null');\n        const downloadAttribute = shareAttributes?.find?.((attribute) => attribute.scope === 'permissions' && attribute.key === 'download');\n        if (downloadAttribute !== undefined && downloadAttribute.enabled === false) {\n            return false;\n        }\n    }\n    return true;\n};\nexport const action = new FileAction({\n    id: 'download',\n    displayName: () => t('files', 'Download'),\n    iconSvgInline: () => ArrowDownSvg,\n    enabled(nodes) {\n        if (nodes.length === 0) {\n            return false;\n        }\n        // We can download direct dav files. But if we have\n        // some folders, we need to use the /apps/files/ajax/download.php\n        // endpoint, which only supports user root folder.\n        if (nodes.some(node => node.type === FileType.Folder)\n            && nodes.some(node => !node.root?.startsWith('/files'))) {\n            return false;\n        }\n        return nodes.every(isDownloadable);\n    },\n    async exec(node, view, dir) {\n        if (node.type === FileType.Folder) {\n            downloadNodes(dir, [node]);\n            return null;\n        }\n        triggerDownload(node.encodedSource);\n        return null;\n    },\n    async execBatch(nodes, view, dir) {\n        if (nodes.length === 1) {\n            this.exec(nodes[0], view, dir);\n            return [null];\n        }\n        downloadNodes(dir, nodes);\n        return new Array(nodes.length).fill(null);\n    },\n    order: 30,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { encodePath } from '@nextcloud/paths';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { FileAction, Permission } from '@nextcloud/files';\nimport { showError } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport LaptopSvg from '@mdi/svg/svg/laptop.svg?raw';\nconst openLocalClient = async function (path) {\n    const link = generateOcsUrl('apps/files/api/v1') + '/openlocaleditor?format=json';\n    try {\n        const result = await axios.post(link, { path });\n        const uid = getCurrentUser()?.uid;\n        let url = `nc://open/${uid}@` + window.location.host + encodePath(path);\n        url += '?token=' + result.data.ocs.data.token;\n        window.location.href = url;\n    }\n    catch (error) {\n        showError(t('files', 'Failed to redirect to client'));\n    }\n};\nexport const action = new FileAction({\n    id: 'edit-locally',\n    displayName: () => t('files', 'Edit locally'),\n    iconSvgInline: () => LaptopSvg,\n    // Only works on single files\n    enabled(nodes) {\n        // Only works on single node\n        if (nodes.length !== 1) {\n            return false;\n        }\n        return (nodes[0].permissions & Permission.UPDATE) !== 0;\n    },\n    async exec(node) {\n        openLocalClient(node.path);\n        return null;\n    },\n    order: 25,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { Permission, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nimport StarOutlineSvg from '@mdi/svg/svg/star-outline.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport logger from '../logger.js';\nimport { encodePath } from '@nextcloud/paths';\n// If any of the nodes is not favorited, we display the favorite action.\nconst shouldFavorite = (nodes) => {\n    return nodes.some(node => node.attributes.favorite !== 1);\n};\nexport const favoriteNode = async (node, view, willFavorite) => {\n    try {\n        // TODO: migrate to webdav tags plugin\n        const url = generateUrl('/apps/files/api/v1/files') + encodePath(node.path);\n        await axios.post(url, {\n            tags: willFavorite\n                ? [window.OC.TAG_FAVORITE]\n                : [],\n        });\n        // Let's delete if we are in the favourites view\n        // AND if it is removed from the user favorites\n        // AND it's in the root of the favorites view\n        if (view.id === 'favorites' && !willFavorite && node.dirname === '/') {\n            emit('files:node:deleted', node);\n        }\n        // Update the node webdav attribute\n        Vue.set(node.attributes, 'favorite', willFavorite ? 1 : 0);\n        // Dispatch event to whoever is interested\n        if (willFavorite) {\n            emit('files:favorites:added', node);\n        }\n        else {\n            emit('files:favorites:removed', node);\n        }\n        return true;\n    }\n    catch (error) {\n        const action = willFavorite ? 'adding a file to favourites' : 'removing a file from favourites';\n        logger.error('Error while ' + action, { error, source: node.source, node });\n        return false;\n    }\n};\nexport const action = new FileAction({\n    id: 'favorite',\n    displayName(nodes) {\n        return shouldFavorite(nodes)\n            ? t('files', 'Add to favorites')\n            : t('files', 'Remove from favorites');\n    },\n    iconSvgInline: (nodes) => {\n        return shouldFavorite(nodes)\n            ? StarOutlineSvg\n            : StarSvg;\n    },\n    enabled(nodes) {\n        // We can only favorite nodes within files and with permissions\n        return !nodes.some(node => !node.root?.startsWith?.('/files'))\n            && nodes.every(node => node.permissions !== Permission.NONE);\n    },\n    async exec(node, view) {\n        const willFavorite = shouldFavorite([node]);\n        return await favoriteNode(node, view, willFavorite);\n    },\n    async execBatch(nodes, view) {\n        const willFavorite = shouldFavorite(nodes);\n        return Promise.all(nodes.map(async (node) => await favoriteNode(node, view, willFavorite)));\n    },\n    order: -50,\n});\n","\n      import API from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../css-loader/dist/cjs.js!./style.css\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!./style.css\";\n       export default content && content.locals ? content.locals : undefined;\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport '@nextcloud/dialogs/style.css';\nimport { Permission } from '@nextcloud/files';\nimport PQueue from 'p-queue';\n// This is the processing queue. We only want to allow 3 concurrent requests\nlet queue;\n/**\n * Get the processing queue\n */\nexport const getQueue = () => {\n    if (!queue) {\n        queue = new PQueue({ concurrency: 3 });\n    }\n    return queue;\n};\nexport var MoveCopyAction;\n(function (MoveCopyAction) {\n    MoveCopyAction[\"MOVE\"] = \"Move\";\n    MoveCopyAction[\"COPY\"] = \"Copy\";\n    MoveCopyAction[\"MOVE_OR_COPY\"] = \"move-or-copy\";\n})(MoveCopyAction || (MoveCopyAction = {}));\nexport const canMove = (nodes) => {\n    const minPermission = nodes.reduce((min, node) => Math.min(min, node.permissions), Permission.ALL);\n    return (minPermission & Permission.UPDATE) !== 0;\n};\nexport const canDownload = (nodes) => {\n    return nodes.every(node => {\n        const shareAttributes = JSON.parse(node.attributes?.['share-attributes'] ?? '[]');\n        return !shareAttributes.some(attribute => attribute.scope === 'permissions' && attribute.enabled === false && attribute.key === 'download');\n    });\n};\nexport const canCopy = (nodes) => {\n    // a shared file cannot be copied if the download is disabled\n    // it can be copied if the user has at least read permissions\n    return canDownload(nodes)\n        && !nodes.some(node => node.permissions === Permission.NONE);\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { createClient, getPatcher } from 'webdav';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser, getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth';\nexport const rootPath = `/files/${getCurrentUser()?.uid}`;\nexport const defaultRootUrl = generateRemoteUrl('dav' + rootPath);\nexport const getClient = (rootUrl = defaultRootUrl) => {\n    const client = createClient(rootUrl);\n    // set CSRF token header\n    const setHeaders = (token) => {\n        client?.setHeaders({\n            // Add this so the server knows it is an request from the browser\n            'X-Requested-With': 'XMLHttpRequest',\n            // Inject user auth\n            requesttoken: token ?? '',\n        });\n    };\n    // refresh headers when request token changes\n    onRequestTokenUpdate(setHeaders);\n    setHeaders(getRequestToken());\n    /**\n     * Allow to override the METHOD to support dav REPORT\n     *\n     * @see https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/request.ts\n     */\n    const patcher = getPatcher();\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore\n    // https://github.com/perry-mitchell/hot-patcher/issues/6\n    patcher.patch('fetch', (url, options) => {\n        const headers = options.headers;\n        if (headers?.method) {\n            options.method = headers.method;\n            delete headers.method;\n        }\n        return fetch(url, options);\n    });\n    return client;\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nexport const hashCode = function (str) {\n    let hash = 0;\n    for (let i = 0; i < str.length; i++) {\n        hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0;\n    }\n    return (hash >>> 0);\n};\n","import { CancelablePromise } from 'cancelable-promise';\nimport { File, Folder, davParsePermissions, davGetDefaultPropfind } from '@nextcloud/files';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getClient, rootPath } from './WebdavClient.ts';\nimport { hashCode } from '../utils/hashUtils';\nimport logger from '../logger';\nconst client = getClient();\nexport const resultToNode = function (node) {\n    const userId = getCurrentUser()?.uid;\n    if (!userId) {\n        throw new Error('No user id found');\n    }\n    const props = node.props;\n    const permissions = davParsePermissions(props?.permissions);\n    const owner = String(props['owner-id'] || userId);\n    const source = generateRemoteUrl('dav' + rootPath + node.filename);\n    const id = props?.fileid < 0\n        ? hashCode(source)\n        : props?.fileid || 0;\n    const nodeData = {\n        id,\n        source,\n        mtime: new Date(node.lastmod),\n        mime: node.mime || 'application/octet-stream',\n        size: props?.size || 0,\n        permissions,\n        owner,\n        root: rootPath,\n        attributes: {\n            ...node,\n            ...props,\n            'owner-id': owner,\n            'owner-display-name': String(props['owner-display-name']),\n            hasPreview: !!props?.['has-preview'],\n            failed: props?.fileid < 0,\n        },\n    };\n    delete nodeData.attributes.props;\n    return node.type === 'file'\n        ? new File(nodeData)\n        : new Folder(nodeData);\n};\nexport const getContents = (path = '/') => {\n    const controller = new AbortController();\n    const propfindPayload = davGetDefaultPropfind();\n    return new CancelablePromise(async (resolve, reject, onCancel) => {\n        onCancel(() => controller.abort());\n        try {\n            const contentsResponse = await client.getDirectoryContents(path, {\n                details: true,\n                data: propfindPayload,\n                includeSelf: true,\n                signal: controller.signal,\n            });\n            const root = contentsResponse.data[0];\n            const contents = contentsResponse.data.slice(1);\n            if (root.filename !== path) {\n                throw new Error('Root node does not match requested path');\n            }\n            resolve({\n                folder: resultToNode(root),\n                contents: contents.map(result => {\n                    try {\n                        return resultToNode(result);\n                    }\n                    catch (error) {\n                        logger.error(`Invalid node detected '${result.basename}'`, { error });\n                        return null;\n                    }\n                }).filter(Boolean),\n            });\n        }\n        catch (error) {\n            reject(error);\n        }\n    });\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport '@nextcloud/dialogs/style.css';\n// eslint-disable-next-line n/no-extraneous-import\nimport { AxiosError } from 'axios';\nimport { basename, join } from 'path';\nimport { emit } from '@nextcloud/event-bus';\nimport { FilePickerClosed, getFilePickerBuilder, showError } from '@nextcloud/dialogs';\nimport { Permission, FileAction, FileType, NodeStatus, davGetClient, davRootPath, davResultToNode, davGetDefaultPropfind } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { openConflictPicker, hasConflict } from '@nextcloud/upload';\nimport Vue from 'vue';\nimport CopyIconSvg from '@mdi/svg/svg/folder-multiple.svg?raw';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nimport { MoveCopyAction, canCopy, canMove, getQueue } from './moveOrCopyActionUtils';\nimport { getContents } from '../services/Files';\nimport logger from '../logger';\nimport { getUniqueName } from '../utils/fileUtils';\n/**\n * Return the action that is possible for the given nodes\n * @param {Node[]} nodes The nodes to check against\n * @return {MoveCopyAction} The action that is possible for the given nodes\n */\nconst getActionForNodes = (nodes) => {\n    if (canMove(nodes)) {\n        if (canCopy(nodes)) {\n            return MoveCopyAction.MOVE_OR_COPY;\n        }\n        return MoveCopyAction.MOVE;\n    }\n    // Assuming we can copy as the enabled checks for copy permissions\n    return MoveCopyAction.COPY;\n};\n/**\n * Handle the copy/move of a node to a destination\n * This can be imported and used by other scripts/components on server\n * @param {Node} node The node to copy/move\n * @param {Folder} destination The destination to copy/move the node to\n * @param {MoveCopyAction} method The method to use for the copy/move\n * @param {boolean} overwrite Whether to overwrite the destination if it exists\n * @return {Promise<void>} A promise that resolves when the copy/move is done\n */\nexport const handleCopyMoveNodeTo = async (node, destination, method, overwrite = false) => {\n    if (!destination) {\n        return;\n    }\n    if (destination.type !== FileType.Folder) {\n        throw new Error(t('files', 'Destination is not a folder'));\n    }\n    // Do not allow to MOVE a node to the same folder it is already located\n    if (method === MoveCopyAction.MOVE && node.dirname === destination.path) {\n        throw new Error(t('files', 'This file/folder is already in that directory'));\n    }\n    /**\n     * Example:\n     * - node: /foo/bar/file.txt -> path = /foo/bar/file.txt, destination: /foo\n     *   Allow move of /foo does not start with /foo/bar/file.txt so allow\n     * - node: /foo , destination: /foo/bar\n     *   Do not allow as it would copy foo within itself\n     * - node: /foo/bar.txt, destination: /foo\n     *   Allow copy a file to the same directory\n     * - node: \"/foo/bar\", destination: \"/foo/bar 1\"\n     *   Allow to move or copy but we need to check with trailing / otherwise it would report false positive\n     */\n    if (`${destination.path}/`.startsWith(`${node.path}/`)) {\n        throw new Error(t('files', 'You cannot move a file/folder onto itself or into a subfolder of itself'));\n    }\n    // Set loading state\n    Vue.set(node, 'status', NodeStatus.LOADING);\n    const queue = getQueue();\n    return await queue.add(async () => {\n        const copySuffix = (index) => {\n            if (index === 1) {\n                return t('files', '(copy)'); // TRANSLATORS: Mark a file as a copy of another file\n            }\n            return t('files', '(copy %n)', undefined, index); // TRANSLATORS: Meaning it is the n'th copy of a file\n        };\n        try {\n            const client = davGetClient();\n            const currentPath = join(davRootPath, node.path);\n            const destinationPath = join(davRootPath, destination.path);\n            if (method === MoveCopyAction.COPY) {\n                let target = node.basename;\n                // If we do not allow overwriting then find an unique name\n                if (!overwrite) {\n                    const otherNodes = await client.getDirectoryContents(destinationPath);\n                    target = getUniqueName(node.basename, otherNodes.map((n) => n.basename), {\n                        suffix: copySuffix,\n                        ignoreFileExtension: node.type === FileType.Folder,\n                    });\n                }\n                await client.copyFile(currentPath, join(destinationPath, target));\n                // If the node is copied into current directory the view needs to be updated\n                if (node.dirname === destination.path) {\n                    const { data } = await client.stat(join(destinationPath, target), {\n                        details: true,\n                        data: davGetDefaultPropfind(),\n                    });\n                    emit('files:node:created', davResultToNode(data));\n                }\n            }\n            else {\n                // show conflict file popup if we do not allow overwriting\n                const otherNodes = await getContents(destination.path);\n                if (hasConflict([node], otherNodes.contents)) {\n                    try {\n                        // Let the user choose what to do with the conflicting files\n                        const { selected, renamed } = await openConflictPicker(destination.path, [node], otherNodes.contents);\n                        // if the user selected to keep the old file, and did not select the new file\n                        // that means they opted to delete the current node\n                        if (!selected.length && !renamed.length) {\n                            await client.deleteFile(currentPath);\n                            emit('files:node:deleted', node);\n                            return;\n                        }\n                    }\n                    catch (error) {\n                        // User cancelled\n                        showError(t('files', 'Move cancelled'));\n                        return;\n                    }\n                }\n                // getting here means either no conflict, file was renamed to keep both files\n                // in a conflict, or the selected file was chosen to be kept during the conflict\n                await client.moveFile(currentPath, join(destinationPath, node.basename));\n                // Delete the node as it will be fetched again\n                // when navigating to the destination folder\n                emit('files:node:deleted', node);\n            }\n        }\n        catch (error) {\n            if (error instanceof AxiosError) {\n                if (error?.response?.status === 412) {\n                    throw new Error(t('files', 'A file or folder with that name already exists in this folder'));\n                }\n                else if (error?.response?.status === 423) {\n                    throw new Error(t('files', 'The files is locked'));\n                }\n                else if (error?.response?.status === 404) {\n                    throw new Error(t('files', 'The file does not exist anymore'));\n                }\n                else if (error.message) {\n                    throw new Error(error.message);\n                }\n            }\n            logger.debug(error);\n            throw new Error();\n        }\n        finally {\n            Vue.set(node, 'status', undefined);\n        }\n    });\n};\n/**\n * Open a file picker for the given action\n * @param {MoveCopyAction} action The action to open the file picker for\n * @param {string} dir The directory to start the file picker in\n * @param {Node[]} nodes The nodes to move/copy\n * @return {Promise<MoveCopyResult>} The picked destination\n */\nconst openFilePickerForAction = async (action, dir = '/', nodes) => {\n    const fileIDs = nodes.map(node => node.fileid).filter(Boolean);\n    const filePicker = getFilePickerBuilder(t('files', 'Choose destination'))\n        .allowDirectories(true)\n        .setFilter((n) => {\n        // We don't want to show the current nodes in the file picker\n        return !fileIDs.includes(n.fileid);\n    })\n        .setMimeTypeFilter([])\n        .setMultiSelect(false)\n        .startAt(dir);\n    return new Promise((resolve, reject) => {\n        filePicker.setButtonFactory((selection, path) => {\n            const buttons = [];\n            const target = basename(path);\n            const dirnames = nodes.map(node => node.dirname);\n            const paths = nodes.map(node => node.path);\n            if (action === MoveCopyAction.COPY || action === MoveCopyAction.MOVE_OR_COPY) {\n                buttons.push({\n                    label: target ? t('files', 'Copy to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Copy'),\n                    type: 'primary',\n                    icon: CopyIconSvg,\n                    async callback(destination) {\n                        resolve({\n                            destination: destination[0],\n                            action: MoveCopyAction.COPY,\n                        });\n                    },\n                });\n            }\n            // Invalid MOVE targets (but valid copy targets)\n            if (dirnames.includes(path)) {\n                // This file/folder is already in that directory\n                return buttons;\n            }\n            if (paths.includes(path)) {\n                // You cannot move a file/folder onto itself\n                return buttons;\n            }\n            if (action === MoveCopyAction.MOVE || action === MoveCopyAction.MOVE_OR_COPY) {\n                buttons.push({\n                    label: target ? t('files', 'Move to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Move'),\n                    type: action === MoveCopyAction.MOVE ? 'primary' : 'secondary',\n                    icon: FolderMoveSvg,\n                    async callback(destination) {\n                        resolve({\n                            destination: destination[0],\n                            action: MoveCopyAction.MOVE,\n                        });\n                    },\n                });\n            }\n            return buttons;\n        });\n        const picker = filePicker.build();\n        picker.pick().catch((error) => {\n            logger.debug(error);\n            if (error instanceof FilePickerClosed) {\n                reject(new Error(t('files', 'Cancelled move or copy operation')));\n            }\n            else {\n                reject(new Error(t('files', 'Move or copy operation failed')));\n            }\n        });\n    });\n};\nexport const action = new FileAction({\n    id: 'move-copy',\n    displayName(nodes) {\n        switch (getActionForNodes(nodes)) {\n            case MoveCopyAction.MOVE:\n                return t('files', 'Move');\n            case MoveCopyAction.COPY:\n                return t('files', 'Copy');\n            case MoveCopyAction.MOVE_OR_COPY:\n                return t('files', 'Move or copy');\n        }\n    },\n    iconSvgInline: () => FolderMoveSvg,\n    enabled(nodes) {\n        // We only support moving/copying files within the user folder\n        if (!nodes.every(node => node.root?.startsWith('/files/'))) {\n            return false;\n        }\n        return nodes.length > 0 && (canMove(nodes) || canCopy(nodes));\n    },\n    async exec(node, view, dir) {\n        const action = getActionForNodes([node]);\n        let result;\n        try {\n            result = await openFilePickerForAction(action, dir, [node]);\n        }\n        catch (e) {\n            logger.error(e);\n            return false;\n        }\n        try {\n            await handleCopyMoveNodeTo(node, result.destination, result.action);\n            return true;\n        }\n        catch (error) {\n            if (error instanceof Error && !!error.message) {\n                showError(error.message);\n                // Silent action as we handle the toast\n                return null;\n            }\n            return false;\n        }\n    },\n    async execBatch(nodes, view, dir) {\n        const action = getActionForNodes(nodes);\n        const result = await openFilePickerForAction(action, dir, nodes);\n        const promises = nodes.map(async (node) => {\n            try {\n                await handleCopyMoveNodeTo(node, result.destination, result.action);\n                return true;\n            }\n            catch (error) {\n                logger.error(`Failed to ${result.action} node`, { node, error });\n                return false;\n            }\n        });\n        // We need to keep the selection on error!\n        // So we do not return null, and for batch action\n        // we let the front handle the error.\n        return await Promise.all(promises);\n    },\n    order: 15,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { Permission, Node, FileType, View, FileAction, DefaultType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nexport const action = new FileAction({\n    id: 'open-folder',\n    displayName(files) {\n        // Only works on single node\n        const displayName = files[0].attributes.displayName || files[0].basename;\n        return t('files', 'Open folder {displayName}', { displayName });\n    },\n    iconSvgInline: () => FolderSvg,\n    enabled(nodes) {\n        // Only works on single node\n        if (nodes.length !== 1) {\n            return false;\n        }\n        const node = nodes[0];\n        if (!node.isDavRessource) {\n            return false;\n        }\n        return node.type === FileType.Folder\n            && (node.permissions & Permission.READ) !== 0;\n    },\n    async exec(node, view) {\n        if (!node || node.type !== FileType.Folder) {\n            return false;\n        }\n        window.OCP.Files.Router.goToRoute(null, { view: view.id, fileid: node.fileid }, { dir: node.path });\n        return null;\n    },\n    // Main action if enabled, meaning folders only\n    default: DefaultType.HIDDEN,\n    order: -100,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport { FileType, FileAction, DefaultType } from '@nextcloud/files';\n/**\n * TODO: Move away from a redirect and handle\n * navigation straight out of the recent view\n */\nexport const action = new FileAction({\n    id: 'open-in-files-recent',\n    displayName: () => t('files', 'Open in Files'),\n    iconSvgInline: () => '',\n    enabled: (nodes, view) => view.id === 'recent',\n    async exec(node) {\n        let dir = node.dirname;\n        if (node.type === FileType.Folder) {\n            dir = dir + '/' + node.basename;\n        }\n        window.OCP.Files.Router.goToRoute(null, // use default route\n        { view: 'files', fileid: node.fileid }, { dir, openfile: 'true' });\n        return null;\n    },\n    // Before openFolderAction\n    order: -1000,\n    default: DefaultType.HIDDEN,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport PencilSvg from '@mdi/svg/svg/pencil.svg?raw';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n    id: 'rename',\n    displayName: () => t('files', 'Rename'),\n    iconSvgInline: () => PencilSvg,\n    enabled: (nodes) => {\n        return nodes.length > 0 && nodes\n            .map(node => node.permissions)\n            .every(permission => (permission & Permission.UPDATE) !== 0);\n    },\n    async exec(node) {\n        // Renaming is a built-in feature of the files app\n        emit('files:node:rename', node);\n        return null;\n    },\n    order: 10,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { Permission, View, FileAction, FileType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport logger from '../logger.js';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n    id: ACTION_DETAILS,\n    displayName: () => t('files', 'Open details'),\n    iconSvgInline: () => InformationSvg,\n    // Sidebar currently supports user folder only, /files/USER\n    enabled: (nodes) => {\n        // Only works on single node\n        if (nodes.length !== 1) {\n            return false;\n        }\n        if (!nodes[0]) {\n            return false;\n        }\n        // Only work if the sidebar is available\n        if (!window?.OCA?.Files?.Sidebar) {\n            return false;\n        }\n        return (nodes[0].root?.startsWith('/files/') && nodes[0].permissions !== Permission.NONE) ?? false;\n    },\n    async exec(node, view, dir) {\n        try {\n            // TODO: migrate Sidebar to use a Node instead\n            await window.OCA.Files.Sidebar.open(node.path);\n            // Silently update current fileid\n            window.OCP.Files.Router.goToRoute(null, { view: view.id, fileid: node.fileid }, { ...window.OCP.Files.Router.query, dir }, true);\n            return null;\n        }\n        catch (error) {\n            logger.error('Error while opening sidebar', { error });\n            return false;\n        }\n    },\n    order: -50,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { Node, FileType, Permission, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nexport const action = new FileAction({\n    id: 'view-in-folder',\n    displayName() {\n        return t('files', 'View in folder');\n    },\n    iconSvgInline: () => FolderMoveSvg,\n    enabled(nodes, view) {\n        // Only works outside of the main files view\n        if (view.id === 'files') {\n            return false;\n        }\n        // Only works on single node\n        if (nodes.length !== 1) {\n            return false;\n        }\n        const node = nodes[0];\n        if (!node.isDavRessource) {\n            return false;\n        }\n        if (node.permissions === Permission.NONE) {\n            return false;\n        }\n        return node.type === FileType.File;\n    },\n    async exec(node) {\n        if (!node || node.type !== FileType.File) {\n            return false;\n        }\n        window.OCP.Files.Router.goToRoute(null, { view: 'files', fileid: node.fileid }, { dir: node.dirname });\n        return null;\n    },\n    order: 80,\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcDialog',{attrs:{\"name\":_vm.name,\"open\":_vm.open,\"close-on-click-outside\":\"\",\"out-transition\":\"\"},on:{\"update:open\":_vm.onClose},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{attrs:{\"type\":\"primary\",\"disabled\":!_vm.isUniqueName},on:{\"click\":_vm.onCreate}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Create'))+\"\\n\\t\\t\")])]},proxy:true}])},[_vm._v(\" \"),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onCreate.apply(null, arguments)}}},[_c('NcTextField',{ref:\"input\",attrs:{\"error\":!_vm.isUniqueName,\"helper-text\":_vm.errorMessage,\"label\":_vm.label,\"value\":_vm.localDefaultName},on:{\"update:value\":function($event){_vm.localDefaultName=$event}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewNodeDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewNodeDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NewNodeDialog.vue?vue&type=template&id=c63cee88\"\nimport script from \"./NewNodeDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./NewNodeDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2024 Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { spawnDialog } from '@nextcloud/dialogs';\nimport NewNodeDialog from '../components/NewNodeDialog.vue';\n/**\n * Ask user for file or folder name\n * @param defaultName Default name to use\n * @param folderContent Nodes with in the current folder to check for unique name\n * @param labels Labels to set on the dialog\n * @return string if successfull otherwise null if aborted\n */\nexport function newNodeName(defaultName, folderContent, labels = {}) {\n    const contentNames = folderContent.map((node) => node.basename);\n    return new Promise((resolve) => {\n        spawnDialog(NewNodeDialog, {\n            ...labels,\n            defaultName,\n            otherNames: contentNames,\n        }, (folderName) => {\n            resolve(folderName);\n        });\n    });\n}\n","import { basename } from 'path';\nimport { emit } from '@nextcloud/event-bus';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { Permission, Folder } from '@nextcloud/files';\nimport { showSuccess } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport FolderPlusSvg from '@mdi/svg/svg/folder-plus.svg?raw';\nimport { newNodeName } from '../utils/newNodeDialog';\nimport logger from '../logger';\nconst createNewFolder = async (root, name) => {\n    const source = root.source + '/' + name;\n    const encodedSource = root.encodedSource + '/' + encodeURIComponent(name);\n    const response = await axios({\n        method: 'MKCOL',\n        url: encodedSource,\n        headers: {\n            Overwrite: 'F',\n        },\n    });\n    return {\n        fileid: parseInt(response.headers['oc-fileid']),\n        source,\n    };\n};\nexport const entry = {\n    id: 'newFolder',\n    displayName: t('files', 'New folder'),\n    enabled: (context) => (context.permissions & Permission.CREATE) !== 0,\n    iconSvgInline: FolderPlusSvg,\n    order: 0,\n    async handler(context, content) {\n        const name = await newNodeName(t('files', 'New folder'), content);\n        if (name !== null) {\n            const { fileid, source } = await createNewFolder(context, name);\n            // Create the folder in the store\n            const folder = new Folder({\n                source,\n                id: fileid,\n                mtime: new Date(),\n                owner: getCurrentUser()?.uid || null,\n                permissions: Permission.ALL,\n                root: context?.root || '/files/' + getCurrentUser()?.uid,\n                // Include mount-type from parent folder as this is inherited\n                attributes: {\n                    'mount-type': context.attributes?.['mount-type'],\n                    'owner-id': context.attributes?.['owner-id'],\n                    'owner-display-name': context.attributes?.['owner-display-name'],\n                },\n            });\n            showSuccess(t('files', 'Created new folder \"{name}\"', { name: basename(source) }));\n            logger.debug('Created new folder', { folder, source });\n            emit('files:node:created', folder);\n            window.OCP.Files.Router.goToRoute(null, // use default route\n            { view: 'files', fileid: folder.fileid }, { dir: context.path });\n        }\n    },\n};\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { showError } from '@nextcloud/dialogs';\nimport { Permission, removeNewFileMenuEntry } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { translate as t } from '@nextcloud/l10n';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { join } from 'path';\nimport { newNodeName } from '../utils/newNodeDialog';\nimport PlusSvg from '@mdi/svg/svg/plus.svg?raw';\nimport axios from '@nextcloud/axios';\nimport logger from '../logger.js';\nlet templatesPath = loadState('files', 'templates_path', false);\nlogger.debug('Initial templates folder', { templatesPath });\n/**\n * Init template folder\n * @param directory Folder where to create the templates folder\n * @param name Name to use or the templates folder\n */\nconst initTemplatesFolder = async function (directory, name) {\n    const templatePath = join(directory.path, name);\n    try {\n        logger.debug('Initializing the templates directory', { templatePath });\n        const { data } = await axios.post(generateOcsUrl('apps/files/api/v1/templates/path'), {\n            templatePath,\n            copySystemTemplates: true,\n        });\n        // Go to template directory\n        window.OCP.Files.Router.goToRoute(null, // use default route\n        { view: 'files', fileid: undefined }, { dir: templatePath });\n        logger.info('Created new templates folder', {\n            ...data.ocs.data,\n        });\n        templatesPath = data.ocs.data.templates_path;\n    }\n    catch (error) {\n        logger.error('Unable to initialize the templates directory');\n        showError(t('files', 'Unable to initialize the templates directory'));\n    }\n};\nexport const entry = {\n    id: 'template-picker',\n    displayName: t('files', 'Create new templates folder'),\n    iconSvgInline: PlusSvg,\n    order: 10,\n    enabled(context) {\n        // Templates folder already initialized\n        if (templatesPath) {\n            return false;\n        }\n        // Allow creation on your own folders only\n        if (context.owner !== getCurrentUser()?.uid) {\n            return false;\n        }\n        return (context.permissions & Permission.CREATE) !== 0;\n    },\n    async handler(context, content) {\n        const name = await newNodeName(t('files', 'Templates'), content, { name: t('files', 'New template folder') });\n        if (name !== null) {\n            // Create the template folder\n            initTemplatesFolder(context, name);\n            // Remove the menu entry\n            removeNewFileMenuEntry('template-picker');\n        }\n    },\n};\n","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { Folder, Node, Permission, addNewFileMenuEntry } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { newNodeName } from '../utils/newNodeDialog';\nimport { translate as t } from '@nextcloud/l10n';\nimport Vue, { defineAsyncComponent } from 'vue';\n// async to reduce bundle size\nconst TemplatePickerVue = defineAsyncComponent(() => import('../views/TemplatePicker.vue'));\nlet TemplatePicker = null;\nconst getTemplatePicker = async (context) => {\n    if (TemplatePicker === null) {\n        // Create document root\n        const mountingPoint = document.createElement('div');\n        mountingPoint.id = 'template-picker';\n        document.body.appendChild(mountingPoint);\n        // Init vue app\n        TemplatePicker = new Vue({\n            render: (h) => h(TemplatePickerVue, {\n                ref: 'picker',\n                props: {\n                    parent: context,\n                },\n            }),\n            methods: { open(...args) { this.$refs.picker.open(...args); } },\n            el: mountingPoint,\n        });\n    }\n    return TemplatePicker;\n};\n/**\n * Register all new-file-menu entries for all template providers\n */\nexport function registerTemplateEntries() {\n    const templates = loadState('files', 'templates', []);\n    // Init template files menu\n    templates.forEach((provider, index) => {\n        addNewFileMenuEntry({\n            id: `template-new-${provider.app}-${index}`,\n            displayName: provider.label,\n            // TODO: migrate to inline svg\n            iconClass: provider.iconClass || 'icon-file',\n            enabled(context) {\n                return (context.permissions & Permission.CREATE) !== 0;\n            },\n            order: 11,\n            async handler(context, content) {\n                const templatePicker = getTemplatePicker(context);\n                const name = await newNodeName(`${provider.label}${provider.extension}`, content, {\n                    label: t('files', 'Filename'),\n                    name: provider.label,\n                });\n                if (name !== null) {\n                    // Create the file\n                    const picker = await templatePicker;\n                    picker.open(name, provider);\n                }\n            },\n        });\n    });\n}\n","import { Folder, davGetDefaultPropfind, davGetFavoritesReport } from '@nextcloud/files';\nimport { getClient } from './WebdavClient';\nimport { resultToNode } from './Files';\nconst client = getClient();\nexport const getContents = async (path = '/') => {\n    const propfindPayload = davGetDefaultPropfind();\n    const reportPayload = davGetFavoritesReport();\n    // Get root folder\n    let rootResponse;\n    if (path === '/') {\n        rootResponse = await client.stat(path, {\n            details: true,\n            data: propfindPayload,\n        });\n    }\n    const contentsResponse = await client.getDirectoryContents(path, {\n        details: true,\n        // Only filter favorites if we're at the root\n        data: path === '/' ? reportPayload : propfindPayload,\n        headers: {\n            // Patched in WebdavClient.ts\n            method: path === '/' ? 'REPORT' : 'PROPFIND',\n        },\n        includeSelf: true,\n    });\n    const root = rootResponse?.data || contentsResponse.data[0];\n    const contents = contentsResponse.data.filter(node => node.filename !== path);\n    return {\n        folder: resultToNode(root),\n        contents: contents.map(resultToNode),\n    };\n};\n","import { subscribe } from '@nextcloud/event-bus';\nimport { FileType, View, getNavigation } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { getLanguage, translate as t } from '@nextcloud/l10n';\nimport { basename } from 'path';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport { getContents } from '../services/Favorites';\nimport { hashCode } from '../utils/hashUtils';\nimport logger from '../logger';\nexport const generateFavoriteFolderView = function (folder, index = 0) {\n    return new View({\n        id: generateIdFromPath(folder.path),\n        name: basename(folder.path),\n        icon: FolderSvg,\n        order: index,\n        params: {\n            dir: folder.path,\n            fileid: folder.fileid.toString(),\n            view: 'favorites',\n        },\n        parent: 'favorites',\n        columns: [],\n        getContents,\n    });\n};\nexport const generateIdFromPath = function (path) {\n    return `favorite-${hashCode(path)}`;\n};\nexport default () => {\n    // Load state in function for mock testing purposes\n    const favoriteFolders = loadState('files', 'favoriteFolders', []);\n    const favoriteFoldersViews = favoriteFolders.map((folder, index) => generateFavoriteFolderView(folder, index));\n    logger.debug('Generating favorites view', { favoriteFolders });\n    const Navigation = getNavigation();\n    Navigation.register(new View({\n        id: 'favorites',\n        name: t('files', 'Favorites'),\n        caption: t('files', 'List of favorites files and folders.'),\n        emptyTitle: t('files', 'No favorites yet'),\n        emptyCaption: t('files', 'Files and folders you mark as favorite will show up here'),\n        icon: StarSvg,\n        order: 5,\n        columns: [],\n        getContents,\n    }));\n    favoriteFoldersViews.forEach(view => Navigation.register(view));\n    /**\n     * Update favourites navigation when a new folder is added\n     */\n    subscribe('files:favorites:added', (node) => {\n        if (node.type !== FileType.Folder) {\n            return;\n        }\n        // Sanity check\n        if (node.path === null || !node.root?.startsWith('/files')) {\n            logger.error('Favorite folder is not within user files root', { node });\n            return;\n        }\n        addToFavorites(node);\n    });\n    /**\n     * Remove favourites navigation when a folder is removed\n     */\n    subscribe('files:favorites:removed', (node) => {\n        if (node.type !== FileType.Folder) {\n            return;\n        }\n        // Sanity check\n        if (node.path === null || !node.root?.startsWith('/files')) {\n            logger.error('Favorite folder is not within user files root', { node });\n            return;\n        }\n        removePathFromFavorites(node.path);\n    });\n    /**\n     * Sort the favorites paths array and\n     * update the order property of the existing views\n     */\n    const updateAndSortViews = function () {\n        favoriteFolders.sort((a, b) => a.path.localeCompare(b.path, getLanguage(), { ignorePunctuation: true }));\n        favoriteFolders.forEach((folder, index) => {\n            const view = favoriteFoldersViews.find((view) => view.id === generateIdFromPath(folder.path));\n            if (view) {\n                view.order = index;\n            }\n        });\n    };\n    // Add a folder to the favorites paths array and update the views\n    const addToFavorites = function (node) {\n        const newFavoriteFolder = { path: node.path, fileid: node.fileid };\n        const view = generateFavoriteFolderView(newFavoriteFolder);\n        // Skip if already exists\n        if (favoriteFolders.find((folder) => folder.path === node.path)) {\n            return;\n        }\n        // Update arrays\n        favoriteFolders.push(newFavoriteFolder);\n        favoriteFoldersViews.push(view);\n        // Update and sort views\n        updateAndSortViews();\n        Navigation.register(view);\n    };\n    // Remove a folder from the favorites paths array and update the views\n    const removePathFromFavorites = function (path) {\n        const id = generateIdFromPath(path);\n        const index = favoriteFolders.findIndex((folder) => folder.path === path);\n        // Skip if not exists\n        if (index === -1) {\n            return;\n        }\n        // Update arrays\n        favoriteFolders.splice(index, 1);\n        favoriteFoldersViews.splice(index, 1);\n        // Update and sort views\n        Navigation.remove(id);\n        updateAndSortViews();\n    };\n};\n","/*!\n * pinia v2.1.7\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\nimport { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isVue2, isRef, isReactive, set, getCurrentScope, onScopeDispose, getCurrentInstance, reactive, toRef, del, nextTick, computed, toRefs } from 'vue-demi';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n    return (o &&\n        typeof o === 'object' &&\n        Object.prototype.toString.call(o) === '[object Object]' &&\n        typeof o.toJSON !== 'function');\n}\n// type DeepReadonly<T> = { readonly [P in keyof T]: DeepReadonly<T[P]> }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n    /**\n     * Direct mutation of the state:\n     *\n     * - `store.name = 'new name'`\n     * - `store.$state.name = 'new name'`\n     * - `store.list.push('new item')`\n     */\n    MutationType[\"direct\"] = \"direct\";\n    /**\n     * Mutated the state with `$patch` and an object\n     *\n     * - `store.$patch({ name: 'newName' })`\n     */\n    MutationType[\"patchObject\"] = \"patch object\";\n    /**\n     * Mutated the state with `$patch` and a function\n     *\n     * - `store.$patch(state => state.name = 'newName')`\n     */\n    MutationType[\"patchFunction\"] = \"patch function\";\n    // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\nconst IS_CLIENT = typeof window !== 'undefined';\n/**\n * Should we add the devtools plugins.\n * - only if dev mode or forced through the prod devtools flag\n * - not in test\n * - only if window exists (could change in the future)\n */\nconst USE_DEVTOOLS = ((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test') && IS_CLIENT;\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n    ? window\n    : typeof self === 'object' && self.self === self\n        ? self\n        : typeof global === 'object' && global.global === global\n            ? global\n            : typeof globalThis === 'object'\n                ? globalThis\n                : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n    // prepend BOM for UTF-8 XML and text/* types (including HTML)\n    // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n    if (autoBom &&\n        /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n        return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n    }\n    return blob;\n}\nfunction download(url, name, opts) {\n    const xhr = new XMLHttpRequest();\n    xhr.open('GET', url);\n    xhr.responseType = 'blob';\n    xhr.onload = function () {\n        saveAs(xhr.response, name, opts);\n    };\n    xhr.onerror = function () {\n        console.error('could not download file');\n    };\n    xhr.send();\n}\nfunction corsEnabled(url) {\n    const xhr = new XMLHttpRequest();\n    // use sync to avoid popup blocker\n    xhr.open('HEAD', url, false);\n    try {\n        xhr.send();\n    }\n    catch (e) { }\n    return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n    try {\n        node.dispatchEvent(new MouseEvent('click'));\n    }\n    catch (e) {\n        const evt = document.createEvent('MouseEvents');\n        evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n        node.dispatchEvent(evt);\n    }\n}\nconst _navigator = \n typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n    /AppleWebKit/.test(_navigator.userAgent) &&\n    !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n    ? () => { } // noop\n    : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n        typeof HTMLAnchorElement !== 'undefined' &&\n            'download' in HTMLAnchorElement.prototype &&\n            !isMacOSWebView\n            ? downloadSaveAs\n            : // Use msSaveOrOpenBlob as a second approach\n                'msSaveOrOpenBlob' in _navigator\n                    ? msSaveAs\n                    : // Fallback to using FileReader and a popup\n                        fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n    const a = document.createElement('a');\n    a.download = name;\n    a.rel = 'noopener'; // tabnabbing\n    // TODO: detect chrome extensions & packaged apps\n    // a.target = '_blank'\n    if (typeof blob === 'string') {\n        // Support regular links\n        a.href = blob;\n        if (a.origin !== location.origin) {\n            if (corsEnabled(a.href)) {\n                download(blob, name, opts);\n            }\n            else {\n                a.target = '_blank';\n                click(a);\n            }\n        }\n        else {\n            click(a);\n        }\n    }\n    else {\n        // Support blobs\n        a.href = URL.createObjectURL(blob);\n        setTimeout(function () {\n            URL.revokeObjectURL(a.href);\n        }, 4e4); // 40s\n        setTimeout(function () {\n            click(a);\n        }, 0);\n    }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n    if (typeof blob === 'string') {\n        if (corsEnabled(blob)) {\n            download(blob, name, opts);\n        }\n        else {\n            const a = document.createElement('a');\n            a.href = blob;\n            a.target = '_blank';\n            setTimeout(function () {\n                click(a);\n            });\n        }\n    }\n    else {\n        // @ts-ignore: works on windows\n        navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n    }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n    // Open a popup immediately do go around popup blocker\n    // Mostly only available on user interaction and the fileReader is async so...\n    popup = popup || open('', '_blank');\n    if (popup) {\n        popup.document.title = popup.document.body.innerText = 'downloading...';\n    }\n    if (typeof blob === 'string')\n        return download(blob, name, opts);\n    const force = blob.type === 'application/octet-stream';\n    const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n    const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n    if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n        typeof FileReader !== 'undefined') {\n        // Safari doesn't allow downloading of blob URLs\n        const reader = new FileReader();\n        reader.onloadend = function () {\n            let url = reader.result;\n            if (typeof url !== 'string') {\n                popup = null;\n                throw new Error('Wrong reader.result type');\n            }\n            url = isChromeIOS\n                ? url\n                : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n            if (popup) {\n                popup.location.href = url;\n            }\n            else {\n                location.assign(url);\n            }\n            popup = null; // reverse-tabnabbing #460\n        };\n        reader.readAsDataURL(blob);\n    }\n    else {\n        const url = URL.createObjectURL(blob);\n        if (popup)\n            popup.location.assign(url);\n        else\n            location.href = url;\n        popup = null; // reverse-tabnabbing #460\n        setTimeout(function () {\n            URL.revokeObjectURL(url);\n        }, 4e4); // 40s\n    }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n    const piniaMessage = '🍍 ' + message;\n    if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n        // No longer available :(\n        __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n    }\n    else if (type === 'error') {\n        console.error(piniaMessage);\n    }\n    else if (type === 'warn') {\n        console.warn(piniaMessage);\n    }\n    else {\n        console.log(piniaMessage);\n    }\n}\nfunction isPinia(o) {\n    return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\n// ---\nfunction checkClipboardAccess() {\n    if (!('clipboard' in navigator)) {\n        toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n        return true;\n    }\n}\nfunction checkNotFocusedError(error) {\n    if (error instanceof Error &&\n        error.message.toLowerCase().includes('document is not focused')) {\n        toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n        return true;\n    }\n    return false;\n}\nasync function actionGlobalCopyState(pinia) {\n    if (checkClipboardAccess())\n        return;\n    try {\n        await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n        toastMessage('Global state copied to clipboard.');\n    }\n    catch (error) {\n        if (checkNotFocusedError(error))\n            return;\n        toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n        console.error(error);\n    }\n}\nasync function actionGlobalPasteState(pinia) {\n    if (checkClipboardAccess())\n        return;\n    try {\n        loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n        toastMessage('Global state pasted from clipboard.');\n    }\n    catch (error) {\n        if (checkNotFocusedError(error))\n            return;\n        toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n        console.error(error);\n    }\n}\nasync function actionGlobalSaveState(pinia) {\n    try {\n        saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n            type: 'text/plain;charset=utf-8',\n        }), 'pinia-state.json');\n    }\n    catch (error) {\n        toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n        console.error(error);\n    }\n}\nlet fileInput;\nfunction getFileOpener() {\n    if (!fileInput) {\n        fileInput = document.createElement('input');\n        fileInput.type = 'file';\n        fileInput.accept = '.json';\n    }\n    function openFile() {\n        return new Promise((resolve, reject) => {\n            fileInput.onchange = async () => {\n                const files = fileInput.files;\n                if (!files)\n                    return resolve(null);\n                const file = files.item(0);\n                if (!file)\n                    return resolve(null);\n                return resolve({ text: await file.text(), file });\n            };\n            // @ts-ignore: TODO: changed from 4.3 to 4.4\n            fileInput.oncancel = () => resolve(null);\n            fileInput.onerror = reject;\n            fileInput.click();\n        });\n    }\n    return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n    try {\n        const open = getFileOpener();\n        const result = await open();\n        if (!result)\n            return;\n        const { text, file } = result;\n        loadStoresState(pinia, JSON.parse(text));\n        toastMessage(`Global state imported from \"${file.name}\".`);\n    }\n    catch (error) {\n        toastMessage(`Failed to import the state from JSON. Check the console for more details.`, 'error');\n        console.error(error);\n    }\n}\nfunction loadStoresState(pinia, state) {\n    for (const key in state) {\n        const storeState = pinia.state.value[key];\n        // store is already instantiated, patch it\n        if (storeState) {\n            Object.assign(storeState, state[key]);\n        }\n        else {\n            // store is not instantiated, set the initial state\n            pinia.state.value[key] = state[key];\n        }\n    }\n}\n\nfunction formatDisplay(display) {\n    return {\n        _custom: {\n            display,\n        },\n    };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n    return isPinia(store)\n        ? {\n            id: PINIA_ROOT_ID,\n            label: PINIA_ROOT_LABEL,\n        }\n        : {\n            id: store.$id,\n            label: store.$id,\n        };\n}\nfunction formatStoreForInspectorState(store) {\n    if (isPinia(store)) {\n        const storeNames = Array.from(store._s.keys());\n        const storeMap = store._s;\n        const state = {\n            state: storeNames.map((storeId) => ({\n                editable: true,\n                key: storeId,\n                value: store.state.value[storeId],\n            })),\n            getters: storeNames\n                .filter((id) => storeMap.get(id)._getters)\n                .map((id) => {\n                const store = storeMap.get(id);\n                return {\n                    editable: false,\n                    key: id,\n                    value: store._getters.reduce((getters, key) => {\n                        getters[key] = store[key];\n                        return getters;\n                    }, {}),\n                };\n            }),\n        };\n        return state;\n    }\n    const state = {\n        state: Object.keys(store.$state).map((key) => ({\n            editable: true,\n            key,\n            value: store.$state[key],\n        })),\n    };\n    // avoid adding empty getters\n    if (store._getters && store._getters.length) {\n        state.getters = store._getters.map((getterName) => ({\n            editable: false,\n            key: getterName,\n            value: store[getterName],\n        }));\n    }\n    if (store._customProperties.size) {\n        state.customProperties = Array.from(store._customProperties).map((key) => ({\n            editable: true,\n            key,\n            value: store[key],\n        }));\n    }\n    return state;\n}\nfunction formatEventData(events) {\n    if (!events)\n        return {};\n    if (Array.isArray(events)) {\n        // TODO: handle add and delete for arrays and objects\n        return events.reduce((data, event) => {\n            data.keys.push(event.key);\n            data.operations.push(event.type);\n            data.oldValue[event.key] = event.oldValue;\n            data.newValue[event.key] = event.newValue;\n            return data;\n        }, {\n            oldValue: {},\n            keys: [],\n            operations: [],\n            newValue: {},\n        });\n    }\n    else {\n        return {\n            operation: formatDisplay(events.type),\n            key: formatDisplay(events.key),\n            oldValue: events.oldValue,\n            newValue: events.newValue,\n        };\n    }\n}\nfunction formatMutationType(type) {\n    switch (type) {\n        case MutationType.direct:\n            return 'mutation';\n        case MutationType.patchFunction:\n            return '$patch';\n        case MutationType.patchObject:\n            return '$patch';\n        default:\n            return 'unknown';\n    }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n    setupDevtoolsPlugin({\n        id: 'dev.esm.pinia',\n        label: 'Pinia 🍍',\n        logo: 'https://pinia.vuejs.org/logo.svg',\n        packageName: 'pinia',\n        homepage: 'https://pinia.vuejs.org',\n        componentStateTypes,\n        app,\n    }, (api) => {\n        if (typeof api.now !== 'function') {\n            toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n        }\n        api.addTimelineLayer({\n            id: MUTATIONS_LAYER_ID,\n            label: `Pinia 🍍`,\n            color: 0xe5df88,\n        });\n        api.addInspector({\n            id: INSPECTOR_ID,\n            label: 'Pinia 🍍',\n            icon: 'storage',\n            treeFilterPlaceholder: 'Search stores',\n            actions: [\n                {\n                    icon: 'content_copy',\n                    action: () => {\n                        actionGlobalCopyState(pinia);\n                    },\n                    tooltip: 'Serialize and copy the state',\n                },\n                {\n                    icon: 'content_paste',\n                    action: async () => {\n                        await actionGlobalPasteState(pinia);\n                        api.sendInspectorTree(INSPECTOR_ID);\n                        api.sendInspectorState(INSPECTOR_ID);\n                    },\n                    tooltip: 'Replace the state with the content of your clipboard',\n                },\n                {\n                    icon: 'save',\n                    action: () => {\n                        actionGlobalSaveState(pinia);\n                    },\n                    tooltip: 'Save the state as a JSON file',\n                },\n                {\n                    icon: 'folder_open',\n                    action: async () => {\n                        await actionGlobalOpenStateFile(pinia);\n                        api.sendInspectorTree(INSPECTOR_ID);\n                        api.sendInspectorState(INSPECTOR_ID);\n                    },\n                    tooltip: 'Import the state from a JSON file',\n                },\n            ],\n            nodeActions: [\n                {\n                    icon: 'restore',\n                    tooltip: 'Reset the state (with \"$reset\")',\n                    action: (nodeId) => {\n                        const store = pinia._s.get(nodeId);\n                        if (!store) {\n                            toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n                        }\n                        else if (typeof store.$reset !== 'function') {\n                            toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n                        }\n                        else {\n                            store.$reset();\n                            toastMessage(`Store \"${nodeId}\" reset.`);\n                        }\n                    },\n                },\n            ],\n        });\n        api.on.inspectComponent((payload, ctx) => {\n            const proxy = (payload.componentInstance &&\n                payload.componentInstance.proxy);\n            if (proxy && proxy._pStores) {\n                const piniaStores = payload.componentInstance.proxy._pStores;\n                Object.values(piniaStores).forEach((store) => {\n                    payload.instanceData.state.push({\n                        type: getStoreType(store.$id),\n                        key: 'state',\n                        editable: true,\n                        value: store._isOptionsAPI\n                            ? {\n                                _custom: {\n                                    value: toRaw(store.$state),\n                                    actions: [\n                                        {\n                                            icon: 'restore',\n                                            tooltip: 'Reset the state of this store',\n                                            action: () => store.$reset(),\n                                        },\n                                    ],\n                                },\n                            }\n                            : // NOTE: workaround to unwrap transferred refs\n                                Object.keys(store.$state).reduce((state, key) => {\n                                    state[key] = store.$state[key];\n                                    return state;\n                                }, {}),\n                    });\n                    if (store._getters && store._getters.length) {\n                        payload.instanceData.state.push({\n                            type: getStoreType(store.$id),\n                            key: 'getters',\n                            editable: false,\n                            value: store._getters.reduce((getters, key) => {\n                                try {\n                                    getters[key] = store[key];\n                                }\n                                catch (error) {\n                                    // @ts-expect-error: we just want to show it in devtools\n                                    getters[key] = error;\n                                }\n                                return getters;\n                            }, {}),\n                        });\n                    }\n                });\n            }\n        });\n        api.on.getInspectorTree((payload) => {\n            if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n                let stores = [pinia];\n                stores = stores.concat(Array.from(pinia._s.values()));\n                payload.rootNodes = (payload.filter\n                    ? stores.filter((store) => '$id' in store\n                        ? store.$id\n                            .toLowerCase()\n                            .includes(payload.filter.toLowerCase())\n                        : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n                    : stores).map(formatStoreForInspectorTree);\n            }\n        });\n        api.on.getInspectorState((payload) => {\n            if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n                const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n                    ? pinia\n                    : pinia._s.get(payload.nodeId);\n                if (!inspectedStore) {\n                    // this could be the selected store restored for a different project\n                    // so it's better not to say anything here\n                    return;\n                }\n                if (inspectedStore) {\n                    payload.state = formatStoreForInspectorState(inspectedStore);\n                }\n            }\n        });\n        api.on.editInspectorState((payload, ctx) => {\n            if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n                const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n                    ? pinia\n                    : pinia._s.get(payload.nodeId);\n                if (!inspectedStore) {\n                    return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n                }\n                const { path } = payload;\n                if (!isPinia(inspectedStore)) {\n                    // access only the state\n                    if (path.length !== 1 ||\n                        !inspectedStore._customProperties.has(path[0]) ||\n                        path[0] in inspectedStore.$state) {\n                        path.unshift('$state');\n                    }\n                }\n                else {\n                    // Root access, we can omit the `.value` because the devtools API does it for us\n                    path.unshift('state');\n                }\n                isTimelineActive = false;\n                payload.set(inspectedStore, path, payload.state.value);\n                isTimelineActive = true;\n            }\n        });\n        api.on.editComponentState((payload) => {\n            if (payload.type.startsWith('🍍')) {\n                const storeId = payload.type.replace(/^🍍\\s*/, '');\n                const store = pinia._s.get(storeId);\n                if (!store) {\n                    return toastMessage(`store \"${storeId}\" not found`, 'error');\n                }\n                const { path } = payload;\n                if (path[0] !== 'state') {\n                    return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n                }\n                // rewrite the first entry to be able to directly set the state as\n                // well as any other path\n                path[0] = '$state';\n                isTimelineActive = false;\n                payload.set(store, path, payload.state.value);\n                isTimelineActive = true;\n            }\n        });\n    });\n}\nfunction addStoreToDevtools(app, store) {\n    if (!componentStateTypes.includes(getStoreType(store.$id))) {\n        componentStateTypes.push(getStoreType(store.$id));\n    }\n    setupDevtoolsPlugin({\n        id: 'dev.esm.pinia',\n        label: 'Pinia 🍍',\n        logo: 'https://pinia.vuejs.org/logo.svg',\n        packageName: 'pinia',\n        homepage: 'https://pinia.vuejs.org',\n        componentStateTypes,\n        app,\n        settings: {\n            logStoreChanges: {\n                label: 'Notify about new/deleted stores',\n                type: 'boolean',\n                defaultValue: true,\n            },\n            // useEmojis: {\n            //   label: 'Use emojis in messages ⚡️',\n            //   type: 'boolean',\n            //   defaultValue: true,\n            // },\n        },\n    }, (api) => {\n        // gracefully handle errors\n        const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n        store.$onAction(({ after, onError, name, args }) => {\n            const groupId = runningActionId++;\n            api.addTimelineEvent({\n                layerId: MUTATIONS_LAYER_ID,\n                event: {\n                    time: now(),\n                    title: '🛫 ' + name,\n                    subtitle: 'start',\n                    data: {\n                        store: formatDisplay(store.$id),\n                        action: formatDisplay(name),\n                        args,\n                    },\n                    groupId,\n                },\n            });\n            after((result) => {\n                activeAction = undefined;\n                api.addTimelineEvent({\n                    layerId: MUTATIONS_LAYER_ID,\n                    event: {\n                        time: now(),\n                        title: '🛬 ' + name,\n                        subtitle: 'end',\n                        data: {\n                            store: formatDisplay(store.$id),\n                            action: formatDisplay(name),\n                            args,\n                            result,\n                        },\n                        groupId,\n                    },\n                });\n            });\n            onError((error) => {\n                activeAction = undefined;\n                api.addTimelineEvent({\n                    layerId: MUTATIONS_LAYER_ID,\n                    event: {\n                        time: now(),\n                        logType: 'error',\n                        title: '💥 ' + name,\n                        subtitle: 'end',\n                        data: {\n                            store: formatDisplay(store.$id),\n                            action: formatDisplay(name),\n                            args,\n                            error,\n                        },\n                        groupId,\n                    },\n                });\n            });\n        }, true);\n        store._customProperties.forEach((name) => {\n            watch(() => unref(store[name]), (newValue, oldValue) => {\n                api.notifyComponentUpdate();\n                api.sendInspectorState(INSPECTOR_ID);\n                if (isTimelineActive) {\n                    api.addTimelineEvent({\n                        layerId: MUTATIONS_LAYER_ID,\n                        event: {\n                            time: now(),\n                            title: 'Change',\n                            subtitle: name,\n                            data: {\n                                newValue,\n                                oldValue,\n                            },\n                            groupId: activeAction,\n                        },\n                    });\n                }\n            }, { deep: true });\n        });\n        store.$subscribe(({ events, type }, state) => {\n            api.notifyComponentUpdate();\n            api.sendInspectorState(INSPECTOR_ID);\n            if (!isTimelineActive)\n                return;\n            // rootStore.state[store.id] = state\n            const eventData = {\n                time: now(),\n                title: formatMutationType(type),\n                data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n                groupId: activeAction,\n            };\n            if (type === MutationType.patchFunction) {\n                eventData.subtitle = '⤵️';\n            }\n            else if (type === MutationType.patchObject) {\n                eventData.subtitle = '🧩';\n            }\n            else if (events && !Array.isArray(events)) {\n                eventData.subtitle = events.type;\n            }\n            if (events) {\n                eventData.data['rawEvent(s)'] = {\n                    _custom: {\n                        display: 'DebuggerEvent',\n                        type: 'object',\n                        tooltip: 'raw DebuggerEvent[]',\n                        value: events,\n                    },\n                };\n            }\n            api.addTimelineEvent({\n                layerId: MUTATIONS_LAYER_ID,\n                event: eventData,\n            });\n        }, { detached: true, flush: 'sync' });\n        const hotUpdate = store._hotUpdate;\n        store._hotUpdate = markRaw((newStore) => {\n            hotUpdate(newStore);\n            api.addTimelineEvent({\n                layerId: MUTATIONS_LAYER_ID,\n                event: {\n                    time: now(),\n                    title: '🔥 ' + store.$id,\n                    subtitle: 'HMR update',\n                    data: {\n                        store: formatDisplay(store.$id),\n                        info: formatDisplay(`HMR update`),\n                    },\n                },\n            });\n            // update the devtools too\n            api.notifyComponentUpdate();\n            api.sendInspectorTree(INSPECTOR_ID);\n            api.sendInspectorState(INSPECTOR_ID);\n        });\n        const { $dispose } = store;\n        store.$dispose = () => {\n            $dispose();\n            api.notifyComponentUpdate();\n            api.sendInspectorTree(INSPECTOR_ID);\n            api.sendInspectorState(INSPECTOR_ID);\n            api.getSettings().logStoreChanges &&\n                toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n        };\n        // trigger an update so it can display new registered stores\n        api.notifyComponentUpdate();\n        api.sendInspectorTree(INSPECTOR_ID);\n        api.sendInspectorState(INSPECTOR_ID);\n        api.getSettings().logStoreChanges &&\n            toastMessage(`\"${store.$id}\" store installed 🆕`);\n    });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n    // original actions of the store as they are given by pinia. We are going to override them\n    const actions = actionNames.reduce((storeActions, actionName) => {\n        // use toRaw to avoid tracking #541\n        storeActions[actionName] = toRaw(store)[actionName];\n        return storeActions;\n    }, {});\n    for (const actionName in actions) {\n        store[actionName] = function () {\n            // the running action id is incremented in a before action hook\n            const _actionId = runningActionId;\n            const trackedStore = wrapWithProxy\n                ? new Proxy(store, {\n                    get(...args) {\n                        activeAction = _actionId;\n                        return Reflect.get(...args);\n                    },\n                    set(...args) {\n                        activeAction = _actionId;\n                        return Reflect.set(...args);\n                    },\n                })\n                : store;\n            // For Setup Stores we need https://github.com/tc39/proposal-async-context\n            activeAction = _actionId;\n            const retValue = actions[actionName].apply(trackedStore, arguments);\n            // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n            activeAction = undefined;\n            return retValue;\n        };\n    }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n    // HMR module\n    if (store.$id.startsWith('__hot:')) {\n        return;\n    }\n    // detect option api vs setup api\n    store._isOptionsAPI = !!options.state;\n    patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n    // Upgrade the HMR to also update the new actions\n    const originalHotUpdate = store._hotUpdate;\n    toRaw(store)._hotUpdate = function (newStore) {\n        originalHotUpdate.apply(this, arguments);\n        patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);\n    };\n    addStoreToDevtools(app, \n    // FIXME: is there a way to allow the assignment from Store<Id, S, G, A> to StoreGeneric?\n    store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n    const scope = effectScope(true);\n    // NOTE: here we could check the window object for a state and directly set it\n    // if there is anything like it with Vue 3 SSR\n    const state = scope.run(() => ref({}));\n    let _p = [];\n    // plugins added before calling app.use(pinia)\n    let toBeInstalled = [];\n    const pinia = markRaw({\n        install(app) {\n            // this allows calling useStore() outside of a component setup after\n            // installing pinia's plugin\n            setActivePinia(pinia);\n            if (!isVue2) {\n                pinia._a = app;\n                app.provide(piniaSymbol, pinia);\n                app.config.globalProperties.$pinia = pinia;\n                /* istanbul ignore else */\n                if (USE_DEVTOOLS) {\n                    registerPiniaDevtools(app, pinia);\n                }\n                toBeInstalled.forEach((plugin) => _p.push(plugin));\n                toBeInstalled = [];\n            }\n        },\n        use(plugin) {\n            if (!this._a && !isVue2) {\n                toBeInstalled.push(plugin);\n            }\n            else {\n                _p.push(plugin);\n            }\n            return this;\n        },\n        _p,\n        // it's actually undefined here\n        // @ts-expect-error\n        _a: null,\n        _e: scope,\n        _s: new Map(),\n        state,\n    });\n    // pinia devtools rely on dev only features so they cannot be forced unless\n    // the dev build of Vue is used. Avoid old browsers like IE11.\n    if (USE_DEVTOOLS && typeof Proxy !== 'undefined') {\n        pinia.use(devtoolsPlugin);\n    }\n    return pinia;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n    return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n    // no need to go through symbols because they cannot be serialized anyway\n    for (const key in oldState) {\n        const subPatch = oldState[key];\n        // skip the whole sub tree\n        if (!(key in newState)) {\n            continue;\n        }\n        const targetValue = newState[key];\n        if (isPlainObject(targetValue) &&\n            isPlainObject(subPatch) &&\n            !isRef(subPatch) &&\n            !isReactive(subPatch)) {\n            newState[key] = patchObject(targetValue, subPatch);\n        }\n        else {\n            // objects are either a bit more complex (e.g. refs) or primitives, so we\n            // just set the whole thing\n            if (isVue2) {\n                set(newState, key, subPatch);\n            }\n            else {\n                newState[key] = subPatch;\n            }\n        }\n    }\n    return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n *   import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n    // strip as much as possible from iife.prod\n    if (!(process.env.NODE_ENV !== 'production')) {\n        return () => { };\n    }\n    return (newModule) => {\n        const pinia = hot.data.pinia || initialUseStore._pinia;\n        if (!pinia) {\n            // this store is still not used\n            return;\n        }\n        // preserve the pinia instance across loads\n        hot.data.pinia = pinia;\n        // console.log('got data', newStore)\n        for (const exportName in newModule) {\n            const useStore = newModule[exportName];\n            // console.log('checking for', exportName)\n            if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n                // console.log('Accepting update for', useStore.$id)\n                const id = useStore.$id;\n                if (id !== initialUseStore.$id) {\n                    console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n                    // return import.meta.hot.invalidate()\n                    return hot.invalidate();\n                }\n                const existingStore = pinia._s.get(id);\n                if (!existingStore) {\n                    console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n                    return;\n                }\n                useStore(pinia, existingStore);\n            }\n        }\n    };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n    subscriptions.push(callback);\n    const removeSubscription = () => {\n        const idx = subscriptions.indexOf(callback);\n        if (idx > -1) {\n            subscriptions.splice(idx, 1);\n            onCleanup();\n        }\n    };\n    if (!detached && getCurrentScope()) {\n        onScopeDispose(removeSubscription);\n    }\n    return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n    subscriptions.slice().forEach((callback) => {\n        callback(...args);\n    });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\nfunction mergeReactiveObjects(target, patchToApply) {\n    // Handle Map instances\n    if (target instanceof Map && patchToApply instanceof Map) {\n        patchToApply.forEach((value, key) => target.set(key, value));\n    }\n    // Handle Set instances\n    if (target instanceof Set && patchToApply instanceof Set) {\n        patchToApply.forEach(target.add, target);\n    }\n    // no need to go through symbols because they cannot be serialized anyway\n    for (const key in patchToApply) {\n        if (!patchToApply.hasOwnProperty(key))\n            continue;\n        const subPatch = patchToApply[key];\n        const targetValue = target[key];\n        if (isPlainObject(targetValue) &&\n            isPlainObject(subPatch) &&\n            target.hasOwnProperty(key) &&\n            !isRef(subPatch) &&\n            !isReactive(subPatch)) {\n            // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n            // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n            // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n            target[key] = mergeReactiveObjects(targetValue, subPatch);\n        }\n        else {\n            // @ts-expect-error: subPatch is a valid value\n            target[key] = subPatch;\n        }\n    }\n    return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n    ? Symbol('pinia:skipHydration')\n    : /* istanbul ignore next */ Symbol();\nconst skipHydrateMap = /*#__PURE__*/ new WeakMap();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n    return isVue2\n        ? // in @vue/composition-api, the refs are sealed so defineProperty doesn't work...\n            /* istanbul ignore next */ skipHydrateMap.set(obj, 1) && obj\n        : Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n    return isVue2\n        ? /* istanbul ignore next */ !skipHydrateMap.has(obj)\n        : !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n    return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n    const { state, actions, getters } = options;\n    const initialState = pinia.state.value[id];\n    let store;\n    function setup() {\n        if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n            /* istanbul ignore if */\n            if (isVue2) {\n                set(pinia.state.value, id, state ? state() : {});\n            }\n            else {\n                pinia.state.value[id] = state ? state() : {};\n            }\n        }\n        // avoid creating a state in pinia.state.value\n        const localState = (process.env.NODE_ENV !== 'production') && hot\n            ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n                toRefs(ref(state ? state() : {}).value)\n            : toRefs(pinia.state.value[id]);\n        return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n            if ((process.env.NODE_ENV !== 'production') && name in localState) {\n                console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n            }\n            computedGetters[name] = markRaw(computed(() => {\n                setActivePinia(pinia);\n                // it was created just before\n                const store = pinia._s.get(id);\n                // allow cross using stores\n                /* istanbul ignore next */\n                if (isVue2 && !store._r)\n                    return;\n                // @ts-expect-error\n                // return getters![name].call(context, context)\n                // TODO: avoid reading the getter while assigning with a global variable\n                return getters[name].call(store, store);\n            }));\n            return computedGetters;\n        }, {}));\n    }\n    store = createSetupStore(id, setup, options, pinia, hot, true);\n    return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n    let scope;\n    const optionsForPlugin = assign({ actions: {} }, options);\n    /* istanbul ignore if */\n    if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n        throw new Error('Pinia destroyed');\n    }\n    // watcher options for $subscribe\n    const $subscribeOptions = {\n        deep: true,\n        // flush: 'post',\n    };\n    /* istanbul ignore else */\n    if ((process.env.NODE_ENV !== 'production') && !isVue2) {\n        $subscribeOptions.onTrigger = (event) => {\n            /* istanbul ignore else */\n            if (isListening) {\n                debuggerEvents = event;\n                // avoid triggering this while the store is being built and the state is being set in pinia\n            }\n            else if (isListening == false && !store._hotUpdating) {\n                // let patch send all the events together later\n                /* istanbul ignore else */\n                if (Array.isArray(debuggerEvents)) {\n                    debuggerEvents.push(event);\n                }\n                else {\n                    console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n                }\n            }\n        };\n    }\n    // internal state\n    let isListening; // set to true at the end\n    let isSyncListening; // set to true at the end\n    let subscriptions = [];\n    let actionSubscriptions = [];\n    let debuggerEvents;\n    const initialState = pinia.state.value[$id];\n    // avoid setting the state for option stores if it is set\n    // by the setup\n    if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n        /* istanbul ignore if */\n        if (isVue2) {\n            set(pinia.state.value, $id, {});\n        }\n        else {\n            pinia.state.value[$id] = {};\n        }\n    }\n    const hotState = ref({});\n    // avoid triggering too many listeners\n    // https://github.com/vuejs/pinia/issues/1129\n    let activeListener;\n    function $patch(partialStateOrMutator) {\n        let subscriptionMutation;\n        isListening = isSyncListening = false;\n        // reset the debugger events since patches are sync\n        /* istanbul ignore else */\n        if ((process.env.NODE_ENV !== 'production')) {\n            debuggerEvents = [];\n        }\n        if (typeof partialStateOrMutator === 'function') {\n            partialStateOrMutator(pinia.state.value[$id]);\n            subscriptionMutation = {\n                type: MutationType.patchFunction,\n                storeId: $id,\n                events: debuggerEvents,\n            };\n        }\n        else {\n            mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n            subscriptionMutation = {\n                type: MutationType.patchObject,\n                payload: partialStateOrMutator,\n                storeId: $id,\n                events: debuggerEvents,\n            };\n        }\n        const myListenerId = (activeListener = Symbol());\n        nextTick().then(() => {\n            if (activeListener === myListenerId) {\n                isListening = true;\n            }\n        });\n        isSyncListening = true;\n        // because we paused the watcher, we need to manually call the subscriptions\n        triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n    }\n    const $reset = isOptionsStore\n        ? function $reset() {\n            const { state } = options;\n            const newState = state ? state() : {};\n            // we use a patch to group all changes into one single subscription\n            this.$patch(($state) => {\n                assign($state, newState);\n            });\n        }\n        : /* istanbul ignore next */\n            (process.env.NODE_ENV !== 'production')\n                ? () => {\n                    throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n                }\n                : noop;\n    function $dispose() {\n        scope.stop();\n        subscriptions = [];\n        actionSubscriptions = [];\n        pinia._s.delete($id);\n    }\n    /**\n     * Wraps an action to handle subscriptions.\n     *\n     * @param name - name of the action\n     * @param action - action to wrap\n     * @returns a wrapped action to handle subscriptions\n     */\n    function wrapAction(name, action) {\n        return function () {\n            setActivePinia(pinia);\n            const args = Array.from(arguments);\n            const afterCallbackList = [];\n            const onErrorCallbackList = [];\n            function after(callback) {\n                afterCallbackList.push(callback);\n            }\n            function onError(callback) {\n                onErrorCallbackList.push(callback);\n            }\n            // @ts-expect-error\n            triggerSubscriptions(actionSubscriptions, {\n                args,\n                name,\n                store,\n                after,\n                onError,\n            });\n            let ret;\n            try {\n                ret = action.apply(this && this.$id === $id ? this : store, args);\n                // handle sync errors\n            }\n            catch (error) {\n                triggerSubscriptions(onErrorCallbackList, error);\n                throw error;\n            }\n            if (ret instanceof Promise) {\n                return ret\n                    .then((value) => {\n                    triggerSubscriptions(afterCallbackList, value);\n                    return value;\n                })\n                    .catch((error) => {\n                    triggerSubscriptions(onErrorCallbackList, error);\n                    return Promise.reject(error);\n                });\n            }\n            // trigger after callbacks\n            triggerSubscriptions(afterCallbackList, ret);\n            return ret;\n        };\n    }\n    const _hmrPayload = /*#__PURE__*/ markRaw({\n        actions: {},\n        getters: {},\n        state: [],\n        hotState,\n    });\n    const partialStore = {\n        _p: pinia,\n        // _s: scope,\n        $id,\n        $onAction: addSubscription.bind(null, actionSubscriptions),\n        $patch,\n        $reset,\n        $subscribe(callback, options = {}) {\n            const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n            const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n                if (options.flush === 'sync' ? isSyncListening : isListening) {\n                    callback({\n                        storeId: $id,\n                        type: MutationType.direct,\n                        events: debuggerEvents,\n                    }, state);\n                }\n            }, assign({}, $subscribeOptions, options)));\n            return removeSubscription;\n        },\n        $dispose,\n    };\n    /* istanbul ignore if */\n    if (isVue2) {\n        // start as non ready\n        partialStore._r = false;\n    }\n    const store = reactive((process.env.NODE_ENV !== 'production') || USE_DEVTOOLS\n        ? assign({\n            _hmrPayload,\n            _customProperties: markRaw(new Set()), // devtools custom properties\n        }, partialStore\n        // must be added later\n        // setupStore\n        )\n        : partialStore);\n    // store the partial store now so the setup of stores can instantiate each other before they are finished without\n    // creating infinite loops.\n    pinia._s.set($id, store);\n    const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n    // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n    const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(setup)));\n    // overwrite existing actions to support $onAction\n    for (const key in setupStore) {\n        const prop = setupStore[key];\n        if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n            // mark it as a piece of state to be serialized\n            if ((process.env.NODE_ENV !== 'production') && hot) {\n                set(hotState.value, key, toRef(setupStore, key));\n                // createOptionStore directly sets the state in pinia.state.value so we\n                // can just skip that\n            }\n            else if (!isOptionsStore) {\n                // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n                if (initialState && shouldHydrate(prop)) {\n                    if (isRef(prop)) {\n                        prop.value = initialState[key];\n                    }\n                    else {\n                        // probably a reactive object, lets recursively assign\n                        // @ts-expect-error: prop is unknown\n                        mergeReactiveObjects(prop, initialState[key]);\n                    }\n                }\n                // transfer the ref to the pinia state to keep everything in sync\n                /* istanbul ignore if */\n                if (isVue2) {\n                    set(pinia.state.value[$id], key, prop);\n                }\n                else {\n                    pinia.state.value[$id][key] = prop;\n                }\n            }\n            /* istanbul ignore else */\n            if ((process.env.NODE_ENV !== 'production')) {\n                _hmrPayload.state.push(key);\n            }\n            // action\n        }\n        else if (typeof prop === 'function') {\n            // @ts-expect-error: we are overriding the function we avoid wrapping if\n            const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : wrapAction(key, prop);\n            // this a hot module replacement store because the hotUpdate method needs\n            // to do it with the right context\n            /* istanbul ignore if */\n            if (isVue2) {\n                set(setupStore, key, actionValue);\n            }\n            else {\n                // @ts-expect-error\n                setupStore[key] = actionValue;\n            }\n            /* istanbul ignore else */\n            if ((process.env.NODE_ENV !== 'production')) {\n                _hmrPayload.actions[key] = prop;\n            }\n            // list actions so they can be used in plugins\n            // @ts-expect-error\n            optionsForPlugin.actions[key] = prop;\n        }\n        else if ((process.env.NODE_ENV !== 'production')) {\n            // add getters for devtools\n            if (isComputed(prop)) {\n                _hmrPayload.getters[key] = isOptionsStore\n                    ? // @ts-expect-error\n                        options.getters[key]\n                    : prop;\n                if (IS_CLIENT) {\n                    const getters = setupStore._getters ||\n                        // @ts-expect-error: same\n                        (setupStore._getters = markRaw([]));\n                    getters.push(key);\n                }\n            }\n        }\n    }\n    // add the state, getters, and action properties\n    /* istanbul ignore if */\n    if (isVue2) {\n        Object.keys(setupStore).forEach((key) => {\n            set(store, key, setupStore[key]);\n        });\n    }\n    else {\n        assign(store, setupStore);\n        // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n        // Make `storeToRefs()` work with `reactive()` #799\n        assign(toRaw(store), setupStore);\n    }\n    // use this instead of a computed with setter to be able to create it anywhere\n    // without linking the computed lifespan to wherever the store is first\n    // created.\n    Object.defineProperty(store, '$state', {\n        get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n        set: (state) => {\n            /* istanbul ignore if */\n            if ((process.env.NODE_ENV !== 'production') && hot) {\n                throw new Error('cannot set hotState');\n            }\n            $patch(($state) => {\n                assign($state, state);\n            });\n        },\n    });\n    // add the hotUpdate before plugins to allow them to override it\n    /* istanbul ignore else */\n    if ((process.env.NODE_ENV !== 'production')) {\n        store._hotUpdate = markRaw((newStore) => {\n            store._hotUpdating = true;\n            newStore._hmrPayload.state.forEach((stateKey) => {\n                if (stateKey in store.$state) {\n                    const newStateTarget = newStore.$state[stateKey];\n                    const oldStateSource = store.$state[stateKey];\n                    if (typeof newStateTarget === 'object' &&\n                        isPlainObject(newStateTarget) &&\n                        isPlainObject(oldStateSource)) {\n                        patchObject(newStateTarget, oldStateSource);\n                    }\n                    else {\n                        // transfer the ref\n                        newStore.$state[stateKey] = oldStateSource;\n                    }\n                }\n                // patch direct access properties to allow store.stateProperty to work as\n                // store.$state.stateProperty\n                set(store, stateKey, toRef(newStore.$state, stateKey));\n            });\n            // remove deleted state properties\n            Object.keys(store.$state).forEach((stateKey) => {\n                if (!(stateKey in newStore.$state)) {\n                    del(store, stateKey);\n                }\n            });\n            // avoid devtools logging this as a mutation\n            isListening = false;\n            isSyncListening = false;\n            pinia.state.value[$id] = toRef(newStore._hmrPayload, 'hotState');\n            isSyncListening = true;\n            nextTick().then(() => {\n                isListening = true;\n            });\n            for (const actionName in newStore._hmrPayload.actions) {\n                const action = newStore[actionName];\n                set(store, actionName, wrapAction(actionName, action));\n            }\n            // TODO: does this work in both setup and option store?\n            for (const getterName in newStore._hmrPayload.getters) {\n                const getter = newStore._hmrPayload.getters[getterName];\n                const getterValue = isOptionsStore\n                    ? // special handling of options api\n                        computed(() => {\n                            setActivePinia(pinia);\n                            return getter.call(store, store);\n                        })\n                    : getter;\n                set(store, getterName, getterValue);\n            }\n            // remove deleted getters\n            Object.keys(store._hmrPayload.getters).forEach((key) => {\n                if (!(key in newStore._hmrPayload.getters)) {\n                    del(store, key);\n                }\n            });\n            // remove old actions\n            Object.keys(store._hmrPayload.actions).forEach((key) => {\n                if (!(key in newStore._hmrPayload.actions)) {\n                    del(store, key);\n                }\n            });\n            // update the values used in devtools and to allow deleting new properties later on\n            store._hmrPayload = newStore._hmrPayload;\n            store._getters = newStore._getters;\n            store._hotUpdating = false;\n        });\n    }\n    if (USE_DEVTOOLS) {\n        const nonEnumerable = {\n            writable: true,\n            configurable: true,\n            // avoid warning on devtools trying to display this property\n            enumerable: false,\n        };\n        ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n            Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));\n        });\n    }\n    /* istanbul ignore if */\n    if (isVue2) {\n        // mark the store as ready before plugins\n        store._r = true;\n    }\n    // apply all plugins\n    pinia._p.forEach((extender) => {\n        /* istanbul ignore else */\n        if (USE_DEVTOOLS) {\n            const extensions = scope.run(() => extender({\n                store,\n                app: pinia._a,\n                pinia,\n                options: optionsForPlugin,\n            }));\n            Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n            assign(store, extensions);\n        }\n        else {\n            assign(store, scope.run(() => extender({\n                store,\n                app: pinia._a,\n                pinia,\n                options: optionsForPlugin,\n            })));\n        }\n    });\n    if ((process.env.NODE_ENV !== 'production') &&\n        store.$state &&\n        typeof store.$state === 'object' &&\n        typeof store.$state.constructor === 'function' &&\n        !store.$state.constructor.toString().includes('[native code]')) {\n        console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n            `\\tstate: () => new MyClass()\\n` +\n            `Found in store \"${store.$id}\".`);\n    }\n    // only apply hydrate to option stores with an initial state in pinia\n    if (initialState &&\n        isOptionsStore &&\n        options.hydrate) {\n        options.hydrate(store.$state, initialState);\n    }\n    isListening = true;\n    isSyncListening = true;\n    return store;\n}\nfunction defineStore(\n// TODO: add proper types from above\nidOrOptions, setup, setupOptions) {\n    let id;\n    let options;\n    const isSetupStore = typeof setup === 'function';\n    if (typeof idOrOptions === 'string') {\n        id = idOrOptions;\n        // the option store setup will contain the actual options in this case\n        options = isSetupStore ? setupOptions : setup;\n    }\n    else {\n        options = idOrOptions;\n        id = idOrOptions.id;\n        if ((process.env.NODE_ENV !== 'production') && typeof id !== 'string') {\n            throw new Error(`[🍍]: \"defineStore()\" must be passed a store id as its first argument.`);\n        }\n    }\n    function useStore(pinia, hot) {\n        const hasContext = hasInjectionContext();\n        pinia =\n            // in test mode, ignore the argument provided as we can always retrieve a\n            // pinia instance with getActivePinia()\n            ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\n                (hasContext ? inject(piniaSymbol, null) : null);\n        if (pinia)\n            setActivePinia(pinia);\n        if ((process.env.NODE_ENV !== 'production') && !activePinia) {\n            throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Are you trying to use a store before calling \"app.use(pinia)\"?\\n` +\n                `See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\\n` +\n                `This will fail in production.`);\n        }\n        pinia = activePinia;\n        if (!pinia._s.has(id)) {\n            // creating the store registers it in `pinia._s`\n            if (isSetupStore) {\n                createSetupStore(id, setup, options, pinia);\n            }\n            else {\n                createOptionsStore(id, options, pinia);\n            }\n            /* istanbul ignore else */\n            if ((process.env.NODE_ENV !== 'production')) {\n                // @ts-expect-error: not the right inferred type\n                useStore._pinia = pinia;\n            }\n        }\n        const store = pinia._s.get(id);\n        if ((process.env.NODE_ENV !== 'production') && hot) {\n            const hotId = '__hot:' + id;\n            const newStore = isSetupStore\n                ? createSetupStore(hotId, setup, options, pinia, true)\n                : createOptionsStore(hotId, assign({}, options), pinia, true);\n            hot._hotUpdate(newStore);\n            // cleanup the state properties and the store from the cache\n            delete pinia.state.value[hotId];\n            pinia._s.delete(hotId);\n        }\n        if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\n            const currentInstance = getCurrentInstance();\n            // save stores in instances to access them devtools\n            if (currentInstance &&\n                currentInstance.proxy &&\n                // avoid adding stores that are just built for hot module replacement\n                !hot) {\n                const vm = currentInstance.proxy;\n                const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\n                cache[id] = store;\n            }\n        }\n        // StoreGeneric cannot be casted towards Store\n        return store;\n    }\n    useStore.$id = id;\n    return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n    mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n *   computed: {\n *     // other computed properties\n *     ...mapStores(useUserStore, useCartStore)\n *   },\n *\n *   created() {\n *     this.userStore // store with id \"user\"\n *     this.cartStore // store with id \"cart\"\n *   }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n    if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n        console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n            `Replace\\n` +\n            `\\tmapStores([useAuthStore, useCartStore])\\n` +\n            `with\\n` +\n            `\\tmapStores(useAuthStore, useCartStore)\\n` +\n            `This will fail in production if not fixed.`);\n        stores = stores[0];\n    }\n    return stores.reduce((reduced, useStore) => {\n        // @ts-expect-error: $id is added by defineStore\n        reduced[useStore.$id + mapStoreSuffix] = function () {\n            return useStore(this.$pinia);\n        };\n        return reduced;\n    }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n    return Array.isArray(keysOrMapper)\n        ? keysOrMapper.reduce((reduced, key) => {\n            reduced[key] = function () {\n                return useStore(this.$pinia)[key];\n            };\n            return reduced;\n        }, {})\n        : Object.keys(keysOrMapper).reduce((reduced, key) => {\n            // @ts-expect-error\n            reduced[key] = function () {\n                const store = useStore(this.$pinia);\n                const storeKey = keysOrMapper[key];\n                // for some reason TS is unable to infer the type of storeKey to be a\n                // function\n                return typeof storeKey === 'function'\n                    ? storeKey.call(this, store)\n                    : store[storeKey];\n            };\n            return reduced;\n        }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n    return Array.isArray(keysOrMapper)\n        ? keysOrMapper.reduce((reduced, key) => {\n            // @ts-expect-error\n            reduced[key] = function (...args) {\n                return useStore(this.$pinia)[key](...args);\n            };\n            return reduced;\n        }, {})\n        : Object.keys(keysOrMapper).reduce((reduced, key) => {\n            // @ts-expect-error\n            reduced[key] = function (...args) {\n                return useStore(this.$pinia)[keysOrMapper[key]](...args);\n            };\n            return reduced;\n        }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n    return Array.isArray(keysOrMapper)\n        ? keysOrMapper.reduce((reduced, key) => {\n            // @ts-ignore\n            reduced[key] = {\n                get() {\n                    return useStore(this.$pinia)[key];\n                },\n                set(value) {\n                    // it's easier to type it here as any\n                    return (useStore(this.$pinia)[key] = value);\n                },\n            };\n            return reduced;\n        }, {})\n        : Object.keys(keysOrMapper).reduce((reduced, key) => {\n            // @ts-ignore\n            reduced[key] = {\n                get() {\n                    return useStore(this.$pinia)[keysOrMapper[key]];\n                },\n                set(value) {\n                    // it's easier to type it here as any\n                    return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n                },\n            };\n            return reduced;\n        }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n    // See https://github.com/vuejs/pinia/issues/852\n    // It's easier to just use toRefs() even if it includes more stuff\n    if (isVue2) {\n        // @ts-expect-error: toRefs include methods and others\n        return toRefs(store);\n    }\n    else {\n        store = toRaw(store);\n        const refs = {};\n        for (const key in store) {\n            const value = store[key];\n            if (isRef(value) || isReactive(value)) {\n                // @ts-expect-error: the key is state or getter\n                refs[key] =\n                    // ---\n                    toRef(store, key);\n            }\n        }\n        return refs;\n    }\n}\n\n/**\n * Vue 2 Plugin that must be installed for pinia to work. Note **you don't need\n * this plugin if you are using Nuxt.js**. Use the `buildModule` instead:\n * https://pinia.vuejs.org/ssr/nuxt.html.\n *\n * @example\n * ```js\n * import Vue from 'vue'\n * import { PiniaVuePlugin, createPinia } from 'pinia'\n *\n * Vue.use(PiniaVuePlugin)\n * const pinia = createPinia()\n *\n * new Vue({\n *   el: '#app',\n *   // ...\n *   pinia,\n * })\n * ```\n *\n * @param _Vue - `Vue` imported from 'vue'.\n */\nconst PiniaVuePlugin = function (_Vue) {\n    // Equivalent of\n    // app.config.globalProperties.$pinia = pinia\n    _Vue.mixin({\n        beforeCreate() {\n            const options = this.$options;\n            if (options.pinia) {\n                const pinia = options.pinia;\n                // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/main/src/apis/inject.ts#L31\n                /* istanbul ignore else */\n                if (!this._provided) {\n                    const provideCache = {};\n                    Object.defineProperty(this, '_provided', {\n                        get: () => provideCache,\n                        set: (v) => Object.assign(provideCache, v),\n                    });\n                }\n                this._provided[piniaSymbol] = pinia;\n                // propagate the pinia instance in an SSR friendly way\n                // avoid adding it to nuxt twice\n                /* istanbul ignore else */\n                if (!this.$pinia) {\n                    this.$pinia = pinia;\n                }\n                pinia._a = this;\n                if (IS_CLIENT) {\n                    // this allows calling useStore() outside of a component setup after\n                    // installing pinia's plugin\n                    setActivePinia(pinia);\n                }\n                if (USE_DEVTOOLS) {\n                    registerPiniaDevtools(pinia._a, pinia);\n                }\n            }\n            else if (!this.$pinia && options.parent && options.parent.$pinia) {\n                this.$pinia = options.parent.$pinia;\n            }\n        },\n        destroyed() {\n            delete this._pStores;\n        },\n    });\n};\n\nexport { MutationType, PiniaVuePlugin, acceptHMRUpdate, createPinia, defineStore, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, skipHydrate, storeToRefs };\n","import { defineStore } from 'pinia';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { loadState } from '@nextcloud/initial-state';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nconst userConfig = loadState('files', 'config', {\n    show_hidden: false,\n    crop_image_previews: true,\n    sort_favorites_first: true,\n    sort_folders_first: true,\n    grid_view: false,\n});\nexport const useUserConfigStore = function (...args) {\n    const store = defineStore('userconfig', {\n        state: () => ({\n            userConfig,\n        }),\n        actions: {\n            /**\n             * Update the user config local store\n             */\n            onUpdate(key, value) {\n                Vue.set(this.userConfig, key, value);\n            },\n            /**\n             * Update the user config local store AND on server side\n             */\n            async update(key, value) {\n                await axios.put(generateUrl('/apps/files/api/v1/config/' + key), {\n                    value,\n                });\n                emit('files:config:updated', { key, value });\n            },\n        },\n    });\n    const userConfigStore = store(...args);\n    // Make sure we only register the listeners once\n    if (!userConfigStore._initialized) {\n        subscribe('files:config:updated', function ({ key, value }) {\n            userConfigStore.onUpdate(key, value);\n        });\n        userConfigStore._initialized = true;\n    }\n    return userConfigStore;\n};\n","/**\n * @copyright Copyright (c) 2024 Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { createPinia } from 'pinia';\nexport const pinia = createPinia();\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { Folder, Permission, davGetRecentSearch, davGetClient, davResultToNode, davRootPath, davRemoteURL } from '@nextcloud/files';\nimport { useUserConfigStore } from '../store/userconfig.ts';\nimport { pinia } from '../store/index.ts';\nconst client = davGetClient();\nconst lastTwoWeeksTimestamp = Math.round((Date.now() / 1000) - (60 * 60 * 24 * 14));\n/**\n * Get recently changed nodes\n *\n * This takes the users preference about hidden files into account.\n * If hidden files are not shown, then also recently changed files *in* hidden directories are filtered.\n *\n * @param path Path to search for recent changes\n */\nexport const getContents = async (path = '/') => {\n    const store = useUserConfigStore(pinia);\n    /**\n     * Filter function that returns only the visible nodes - or hidden if explicitly configured\n     * @param node The node to check\n     */\n    const filterHidden = (node) => path !== '/' // We need to hide files from hidden directories in the root if not configured to show\n        || store.userConfig.show_hidden // If configured to show hidden files we can early return\n        || !node.dirname.split('/').some((dir) => dir.startsWith('.')); // otherwise only include the file if non of the parent directories is hidden\n    const contentsResponse = await client.getDirectoryContents(path, {\n        details: true,\n        data: davGetRecentSearch(lastTwoWeeksTimestamp),\n        headers: {\n            // Patched in WebdavClient.ts\n            method: 'SEARCH',\n            // Somehow it's needed to get the correct response\n            'Content-Type': 'application/xml; charset=utf-8',\n        },\n        deep: true,\n    });\n    const contents = contentsResponse.data;\n    return {\n        folder: new Folder({\n            id: 0,\n            source: `${davRemoteURL}${davRootPath}`,\n            root: davRootPath,\n            owner: getCurrentUser()?.uid || null,\n            permissions: Permission.READ,\n        }),\n        contents: contents.map((r) => davResultToNode(r)).filter(filterHidden),\n    };\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { addNewFileMenuEntry, registerDavProperty, registerFileAction } from '@nextcloud/files';\nimport { action as deleteAction } from './actions/deleteAction';\nimport { action as downloadAction } from './actions/downloadAction';\nimport { action as editLocallyAction } from './actions/editLocallyAction';\nimport { action as favoriteAction } from './actions/favoriteAction';\nimport { action as moveOrCopyAction } from './actions/moveOrCopyAction';\nimport { action as openFolderAction } from './actions/openFolderAction';\nimport { action as openInFilesAction } from './actions/openInFilesAction';\nimport { action as renameAction } from './actions/renameAction';\nimport { action as sidebarAction } from './actions/sidebarAction';\nimport { action as viewInFolderAction } from './actions/viewInFolderAction';\nimport { entry as newFolderEntry } from './newMenu/newFolder.ts';\nimport { entry as newTemplatesFolder } from './newMenu/newTemplatesFolder.ts';\nimport { registerTemplateEntries } from './newMenu/newFromTemplate.ts';\nimport registerFavoritesView from './views/favorites';\nimport registerRecentView from './views/recent';\nimport registerFilesView from './views/files';\nimport registerPreviewServiceWorker from './services/ServiceWorker.js';\nimport { initLivePhotos } from './services/LivePhotos';\n// Register file actions\nregisterFileAction(deleteAction);\nregisterFileAction(downloadAction);\nregisterFileAction(editLocallyAction);\nregisterFileAction(favoriteAction);\nregisterFileAction(moveOrCopyAction);\nregisterFileAction(openFolderAction);\nregisterFileAction(openInFilesAction);\nregisterFileAction(renameAction);\nregisterFileAction(sidebarAction);\nregisterFileAction(viewInFolderAction);\n// Register new menu entry\naddNewFileMenuEntry(newFolderEntry);\naddNewFileMenuEntry(newTemplatesFolder);\nregisterTemplateEntries();\n// Register files views\nregisterFavoritesView();\nregisterFilesView();\nregisterRecentView();\n// Register preview service worker\nregisterPreviewServiceWorker();\nregisterDavProperty('nc:hidden', { nc: 'http://nextcloud.org/ns' });\nregisterDavProperty('nc:is-mount-root', { nc: 'http://nextcloud.org/ns' });\ninitLivePhotos();\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nimport { getContents } from '../services/Files';\nimport { View, getNavigation } from '@nextcloud/files';\nexport default () => {\n    const Navigation = getNavigation();\n    Navigation.register(new View({\n        id: 'files',\n        name: t('files', 'All files'),\n        caption: t('files', 'List of your files and folders.'),\n        icon: FolderSvg,\n        order: 0,\n        getContents,\n    }));\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { View, getNavigation } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport HistorySvg from '@mdi/svg/svg/history.svg?raw';\nimport { getContents } from '../services/Recent';\nexport default () => {\n    const Navigation = getNavigation();\n    Navigation.register(new View({\n        id: 'recent',\n        name: t('files', 'Recent'),\n        caption: t('files', 'List of recently modified files and folders.'),\n        emptyTitle: t('files', 'No recently modified files'),\n        emptyCaption: t('files', 'Files and folders you recently modified will show up here.'),\n        icon: HistorySvg,\n        order: 2,\n        defaultSortKey: 'mtime',\n        getContents,\n    }));\n};\n","/**\n * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { generateUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\nexport default () => {\n\tif ('serviceWorker' in navigator) {\n\t\t// Use the window load event to keep the page load performant\n\t\twindow.addEventListener('load', async () => {\n\t\t\ttry {\n\t\t\t\tconst url = generateUrl('/apps/files/preview-service-worker.js', {}, { noRewrite: true })\n\t\t\t\tconst registration = await navigator.serviceWorker.register(url, { scope: '/' })\n\t\t\t\tlogger.debug('SW registered: ', { registration })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('SW registration failed: ', { error })\n\t\t\t}\n\t\t})\n\t} else {\n\t\tlogger.debug('Service Worker is not enabled on this browser.')\n\t}\n}\n","/**\n * @copyright Copyright (c) 2023 Louis Chmn <louis@chmn.me>\n *\n * @author Louis Chmn <louis@chmn.me>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { Node, registerDavProperty } from '@nextcloud/files';\nexport function initLivePhotos() {\n    registerDavProperty('nc:metadata-files-live-photo', { nc: 'http://nextcloud.org/ns' });\n}\n/**\n * @param {Node} node - The node\n */\nexport function isLivePhoto(node) {\n    return node.attributes['metadata-files-live-photo'] !== undefined;\n}\n","/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { FileType } from '@nextcloud/files';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\nimport { basename, extname } from 'path';\n// TODO: move to @nextcloud/files\n/**\n * Create an unique file name\n * @param name The initial name to use\n * @param otherNames Other names that are already used\n * @param options Optional parameters for tuning the behavior\n * @param options.suffix A function that takes an index and returns a suffix to add to the file name, defaults to '(index)'\n * @param options.ignoreFileExtension Set to true to ignore the file extension when adding the suffix (when getting a unique directory name)\n * @return Either the initial name, if unique, or the name with the suffix so that the name is unique\n */\nexport const getUniqueName = (name, otherNames, options = {}) => {\n    const opts = {\n        suffix: (n) => `(${n})`,\n        ignoreFileExtension: false,\n        ...options,\n    };\n    let newName = name;\n    let i = 1;\n    while (otherNames.includes(newName)) {\n        const ext = opts.ignoreFileExtension ? '' : extname(name);\n        const base = basename(name, ext);\n        newName = `${base} ${opts.suffix(i++)}${ext}`;\n    }\n    return newName;\n};\nexport const encodeFilePath = function (path) {\n    const pathSections = (path.startsWith('/') ? path : `/${path}`).split('/');\n    let relativePath = '';\n    pathSections.forEach((section) => {\n        if (section !== '') {\n            relativePath += '/' + encodeURIComponent(section);\n        }\n    });\n    return relativePath;\n};\n/**\n * Extract dir and name from file path\n *\n * @param {string} path the full path\n * @return {string[]} [dirPath, fileName]\n */\nexport const extractFilePaths = function (path) {\n    const pathSections = path.split('/');\n    const fileName = pathSections[pathSections.length - 1];\n    const dirPath = pathSections.slice(0, pathSections.length - 1).join('/');\n    return [dirPath, fileName];\n};\n/**\n * Generate a translated summary of an array of nodes\n * @param {Node[]} nodes the nodes to summarize\n * @return {string}\n */\nexport const getSummaryFor = (nodes) => {\n    const fileCount = nodes.filter(node => node.type === FileType.File).length;\n    const folderCount = nodes.filter(node => node.type === FileType.Folder).length;\n    if (fileCount === 0) {\n        return n('files', '{folderCount} folder', '{folderCount} folders', folderCount, { folderCount });\n    }\n    else if (folderCount === 0) {\n        return n('files', '{fileCount} file', '{fileCount} files', fileCount, { fileCount });\n    }\n    if (fileCount === 1) {\n        return n('files', '1 file and {folderCount} folder', '1 file and {folderCount} folders', folderCount, { folderCount });\n    }\n    if (folderCount === 1) {\n        return n('files', '{fileCount} file and 1 folder', '{fileCount} files and 1 folder', fileCount, { fileCount });\n    }\n    return t('files', '{fileCount} files and {folderCount} folders', { fileCount, folderCount });\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20height=%2716%27%20width=%2716%27%3e%3cpath%20d=%27M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z%27/%3e%3c/svg%3e\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20height=%2716%27%20width=%2716%27%3e%3cpath%20d=%27M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z%27%20style=%27fill-opacity:1;fill:%23ffffff%27/%3e%3c/svg%3e\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\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 <http://www.gnu.org/licenses/>.\n */\n.toastify.dialogs {\n  min-width: 200px;\n  background: none;\n  background-color: var(--color-main-background);\n  color: var(--color-main-text);\n  box-shadow: 0 0 6px 0 var(--color-box-shadow);\n  padding: 0 12px;\n  margin-top: 45px;\n  position: fixed;\n  z-index: 10100;\n  border-radius: var(--border-radius);\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-container {\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-button,\n.toastify.dialogs .toast-close {\n  position: static;\n  overflow: hidden;\n  box-sizing: border-box;\n  min-width: 44px;\n  height: 100%;\n  padding: 12px;\n  white-space: nowrap;\n  background-repeat: no-repeat;\n  background-position: center;\n  background-color: transparent;\n  min-height: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close,\n.toastify.dialogs .toast-close.toast-close {\n  text-indent: 0;\n  opacity: .4;\n  border: none;\n  min-height: 44px;\n  margin-left: 10px;\n  font-size: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close:before,\n.toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n  content: \" \";\n  filter: var(--background-invert-if-dark);\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n}\n.toastify.dialogs .toast-undo-button.toast-undo-button,\n.toastify.dialogs .toast-close.toast-undo-button {\n  height: calc(100% - 6px);\n  margin: 3px 3px 3px 12px;\n}\n.toastify.dialogs .toast-undo-button:hover,\n.toastify.dialogs .toast-undo-button:focus,\n.toastify.dialogs .toast-undo-button:active,\n.toastify.dialogs .toast-close:hover,\n.toastify.dialogs .toast-close:focus,\n.toastify.dialogs .toast-close:active {\n  cursor: pointer;\n  opacity: 1;\n}\n.toastify.dialogs.toastify-top {\n  right: 10px;\n}\n.toastify.dialogs.toast-with-click {\n  cursor: pointer;\n}\n.toastify.dialogs.toast-error {\n  border-left: 3px solid var(--color-error);\n}\n.toastify.dialogs.toast-info {\n  border-left: 3px solid var(--color-primary);\n}\n.toastify.dialogs.toast-warning {\n  border-left: 3px solid var(--color-warning);\n}\n.toastify.dialogs.toast-success,\n.toastify.dialogs.toast-undo {\n  border-left: 3px solid var(--color-success);\n}\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\n}\n.nc-generic-dialog .dialog__actions {\n  justify-content: space-between;\n  min-width: calc(100% - 12px);\n}\n._file-picker__file-icon_1vgv4_5 {\n  width: 32px;\n  height: 32px;\n  min-width: 32px;\n  min-height: 32px;\n  background-repeat: no-repeat;\n  background-size: contain;\n  display: flex;\n  justify-content: center;\n}\ntr.file-picker__row[data-v-6aded0d9] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-6aded0d9] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-6aded0d9] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\n  padding-inline: 2px 0;\n}\n@keyframes gradient-6aded0d9 {\n  0% {\n    background-position: 0% 50%;\n  }\n  50% {\n    background-position: 100% 50%;\n  }\n  to {\n    background-position: 0% 50%;\n  }\n}\n.loading-row .row-checkbox[data-v-6aded0d9] {\n  text-align: center !important;\n}\n.loading-row span[data-v-6aded0d9] {\n  display: inline-block;\n  height: 24px;\n  background:\n    linear-gradient(\n      to right,\n      var(--color-background-darker),\n      var(--color-text-maxcontrast),\n      var(--color-background-darker));\n  background-size: 600px 100%;\n  border-radius: var(--border-radius);\n  animation: gradient-6aded0d9 12s ease infinite;\n}\n.loading-row .row-wrapper[data-v-6aded0d9] {\n  display: inline-flex;\n  align-items: center;\n}\n.loading-row .row-checkbox span[data-v-6aded0d9] {\n  width: 24px;\n}\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\n  margin-inline-start: 6px;\n  width: 130px;\n}\n.loading-row .row-size span[data-v-6aded0d9] {\n  width: 80px;\n}\n.loading-row .row-modified span[data-v-6aded0d9] {\n  width: 90px;\n}\ntr.file-picker__row[data-v-48df4f27] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-48df4f27] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-48df4f27] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-48df4f27]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-48df4f27] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-48df4f27] {\n  padding-inline: 2px 0;\n}\n.file-picker__row--selected[data-v-48df4f27] {\n  background-color: var(--color-background-dark);\n}\n.file-picker__row[data-v-48df4f27]:hover {\n  background-color: var(--color-background-hover);\n}\n.file-picker__name-container[data-v-48df4f27] {\n  display: flex;\n  justify-content: start;\n  align-items: center;\n  height: 100%;\n}\n.file-picker__file-name[data-v-48df4f27] {\n  padding-inline-start: 6px;\n  min-width: 0;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.file-picker__file-extension[data-v-48df4f27] {\n  color: var(--color-text-maxcontrast);\n  min-width: fit-content;\n}\n.file-picker__header-preview[data-v-d3c94818] {\n  width: 22px;\n  height: 32px;\n  flex: 0 0 auto;\n}\n.file-picker__files[data-v-d3c94818] {\n  margin: 2px;\n  margin-inline-start: 12px;\n  overflow: scroll auto;\n}\n.file-picker__files table[data-v-d3c94818] {\n  width: 100%;\n  max-height: 100%;\n  table-layout: fixed;\n}\n.file-picker__files th[data-v-d3c94818] {\n  position: sticky;\n  z-index: 1;\n  top: 0;\n  background-color: var(--color-main-background);\n  padding: 2px;\n}\n.file-picker__files th .header-wrapper[data-v-d3c94818] {\n  display: flex;\n}\n.file-picker__files th.row-checkbox[data-v-d3c94818] {\n  width: 44px;\n}\n.file-picker__files th.row-name[data-v-d3c94818] {\n  width: 230px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] {\n  width: 100px;\n}\n.file-picker__files th.row-modified[data-v-d3c94818] {\n  width: 120px;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue__wrapper {\n  justify-content: start;\n  flex-direction: row-reverse;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue {\n  padding-inline: 16px 4px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] .button-vue__wrapper {\n  justify-content: end;\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper {\n  color: var(--color-text-maxcontrast);\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper .button-vue__text {\n  font-weight: 400;\n}\n.file-picker__breadcrumbs[data-v-22cbb5df] {\n  flex-grow: 0 !important;\n}\n.file-picker__side[data-v-a06474d4] {\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  gap: .5rem;\n  min-width: 200px;\n  padding: 2px;\n  margin-block-start: 7px;\n  overflow: auto;\n}\n.file-picker__side[data-v-a06474d4] .button-vue__wrapper {\n  justify-content: start;\n}\n.file-picker__filter-input[data-v-a06474d4] {\n  margin-block: 7px;\n  max-width: 260px;\n}\n@media (max-width: 736px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n  .file-picker__filter-input[data-v-a06474d4] {\n    max-width: unset;\n  }\n}\n.file-picker__navigation {\n  padding-inline: 8px 2px;\n}\n.file-picker__navigation,\n.file-picker__navigation * {\n  box-sizing: border-box;\n}\n.file-picker__navigation .v-select.select {\n  min-width: 220px;\n}\n@media (min-width: 513px) and (max-width: 736px) {\n  .file-picker__navigation {\n    gap: 11px;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__navigation {\n    flex-direction: column-reverse !important;\n  }\n}\n.file-picker__view[data-v-6ff1b36b] {\n  height: 50px;\n  display: flex;\n  justify-content: start;\n  align-items: center;\n}\n.file-picker__view h3[data-v-6ff1b36b] {\n  font-weight: 700;\n  height: fit-content;\n  margin: 0;\n}\n.file-picker__main[data-v-6ff1b36b] {\n  box-sizing: border-box;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  min-height: 0;\n  flex: 1;\n  padding-inline: 2px;\n}\n.file-picker__main *[data-v-6ff1b36b] {\n  box-sizing: border-box;\n}\n[data-v-6ff1b36b] .file-picker {\n  height: min(80vh, 800px) !important;\n}\n@media (max-width: 512px) {\n  [data-v-6ff1b36b] .file-picker {\n    height: calc(100% - 16px - var(--default-clickable-area)) !important;\n  }\n}\n[data-v-6ff1b36b] .file-picker__content {\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/dialogs/dist/style.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,gBAAgB;EAChB,gBAAgB;EAChB,8CAA8C;EAC9C,6BAA6B;EAC7B,6CAA6C;EAC7C,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,cAAc;EACd,mCAAmC;EACnC,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,mBAAmB;AACrB;AACA;;EAEE,gBAAgB;EAChB,gBAAgB;EAChB,sBAAsB;EACtB,eAAe;EACf,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,4BAA4B;EAC5B,2BAA2B;EAC3B,6BAA6B;EAC7B,aAAa;AACf;AACA;;EAEE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;AACd;AACA;;EAEE,yDAA8Q;EAC9Q,YAAY;EACZ,wCAAwC;EACxC,qBAAqB;EACrB,WAAW;EACX,YAAY;AACd;AACA;;EAEE,wBAAwB;EACxB,wBAAwB;AAC1B;AACA;;;;;;EAME,eAAe;EACf,UAAU;AACZ;AACA;EACE,WAAW;AACb;AACA;EACE,eAAe;AACjB;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,2CAA2C;AAC7C;AACA;;EAEE,2CAA2C;AAC7C;AACA;EACE,yDAAsT;AACxT;AACA;EACE,8BAA8B;EAC9B,4BAA4B;AAC9B;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,4BAA4B;EAC5B,wBAAwB;EACxB,aAAa;EACb,uBAAuB;AACzB;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE;IACE,2BAA2B;EAC7B;EACA;IACE,6BAA6B;EAC/B;EACA;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,qBAAqB;EACrB,YAAY;EACZ;;;;;qCAKmC;EACnC,2BAA2B;EAC3B,mCAAmC;EACnC,8CAA8C;AAChD;AACA;EACE,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,WAAW;AACb;AACA;EACE,wBAAwB;EACxB,YAAY;AACd;AACA;EACE,WAAW;AACb;AACA;EACE,WAAW;AACb;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,yBAAyB;EACzB,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,oCAAoC;EACpC,sBAAsB;AACxB;AACA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;AACA;EACE,WAAW;EACX,yBAAyB;EACzB,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,UAAU;EACV,MAAM;EACN,8CAA8C;EAC9C,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,WAAW;AACb;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,2BAA2B;AAC7B;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,oBAAoB;AACtB;AACA;EACE,oCAAoC;AACtC;AACA;EACE,gBAAgB;AAClB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,oBAAoB;EACpB,UAAU;EACV,gBAAgB;EAChB,YAAY;EACZ,uBAAuB;EACvB,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;AACF;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;EACA;IACE,gBAAgB;EAClB;AACF;AACA;EACE,uBAAuB;AACzB;AACA;;EAEE,sBAAsB;AACxB;AACA;EACE,gBAAgB;AAClB;AACA;EACE;IACE,SAAS;EACX;AACF;AACA;EACE;IACE,yCAAyC;EAC3C;AACF;AACA;EACE,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,SAAS;AACX;AACA;EACE,sBAAsB;EACtB,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,aAAa;EACb,OAAO;EACP,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,mCAAmC;AACrC;AACA;EACE;IACE,oEAAoE;EACtE;AACF;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\\n *\\n * @author Julius Härtl <jus@bitgrid.net>\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\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 <http://www.gnu.org/licenses/>.\\n */\\n.toastify.dialogs {\\n  min-width: 200px;\\n  background: none;\\n  background-color: var(--color-main-background);\\n  color: var(--color-main-text);\\n  box-shadow: 0 0 6px 0 var(--color-box-shadow);\\n  padding: 0 12px;\\n  margin-top: 45px;\\n  position: fixed;\\n  z-index: 10100;\\n  border-radius: var(--border-radius);\\n  display: flex;\\n  align-items: center;\\n}\\n.toastify.dialogs .toast-undo-container {\\n  display: flex;\\n  align-items: center;\\n}\\n.toastify.dialogs .toast-undo-button,\\n.toastify.dialogs .toast-close {\\n  position: static;\\n  overflow: hidden;\\n  box-sizing: border-box;\\n  min-width: 44px;\\n  height: 100%;\\n  padding: 12px;\\n  white-space: nowrap;\\n  background-repeat: no-repeat;\\n  background-position: center;\\n  background-color: transparent;\\n  min-height: 0;\\n}\\n.toastify.dialogs .toast-undo-button.toast-close,\\n.toastify.dialogs .toast-close.toast-close {\\n  text-indent: 0;\\n  opacity: .4;\\n  border: none;\\n  min-height: 44px;\\n  margin-left: 10px;\\n  font-size: 0;\\n}\\n.toastify.dialogs .toast-undo-button.toast-close:before,\\n.toastify.dialogs .toast-close.toast-close:before {\\n  background-image: url(\\\"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='16'%20width='16'%3e%3cpath%20d='M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z'/%3e%3c/svg%3e\\\");\\n  content: \\\" \\\";\\n  filter: var(--background-invert-if-dark);\\n  display: inline-block;\\n  width: 16px;\\n  height: 16px;\\n}\\n.toastify.dialogs .toast-undo-button.toast-undo-button,\\n.toastify.dialogs .toast-close.toast-undo-button {\\n  height: calc(100% - 6px);\\n  margin: 3px 3px 3px 12px;\\n}\\n.toastify.dialogs .toast-undo-button:hover,\\n.toastify.dialogs .toast-undo-button:focus,\\n.toastify.dialogs .toast-undo-button:active,\\n.toastify.dialogs .toast-close:hover,\\n.toastify.dialogs .toast-close:focus,\\n.toastify.dialogs .toast-close:active {\\n  cursor: pointer;\\n  opacity: 1;\\n}\\n.toastify.dialogs.toastify-top {\\n  right: 10px;\\n}\\n.toastify.dialogs.toast-with-click {\\n  cursor: pointer;\\n}\\n.toastify.dialogs.toast-error {\\n  border-left: 3px solid var(--color-error);\\n}\\n.toastify.dialogs.toast-info {\\n  border-left: 3px solid var(--color-primary);\\n}\\n.toastify.dialogs.toast-warning {\\n  border-left: 3px solid var(--color-warning);\\n}\\n.toastify.dialogs.toast-success,\\n.toastify.dialogs.toast-undo {\\n  border-left: 3px solid var(--color-success);\\n}\\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\\n  background-image: url(\\\"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='16'%20width='16'%3e%3cpath%20d='M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z'%20style='fill-opacity:1;fill:%23ffffff'/%3e%3c/svg%3e\\\");\\n}\\n.nc-generic-dialog .dialog__actions {\\n  justify-content: space-between;\\n  min-width: calc(100% - 12px);\\n}\\n._file-picker__file-icon_1vgv4_5 {\\n  width: 32px;\\n  height: 32px;\\n  min-width: 32px;\\n  min-height: 32px;\\n  background-repeat: no-repeat;\\n  background-size: contain;\\n  display: flex;\\n  justify-content: center;\\n}\\ntr.file-picker__row[data-v-6aded0d9] {\\n  height: var(--row-height, 50px);\\n}\\ntr.file-picker__row td[data-v-6aded0d9] {\\n  cursor: pointer;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n  border-bottom: none;\\n}\\ntr.file-picker__row td.row-checkbox[data-v-6aded0d9] {\\n  padding: 0 2px;\\n}\\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\\n  padding-inline: 14px 0;\\n}\\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\\n  text-align: end;\\n  padding-inline: 0 14px;\\n}\\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\\n  padding-inline: 2px 0;\\n}\\n@keyframes gradient-6aded0d9 {\\n  0% {\\n    background-position: 0% 50%;\\n  }\\n  50% {\\n    background-position: 100% 50%;\\n  }\\n  to {\\n    background-position: 0% 50%;\\n  }\\n}\\n.loading-row .row-checkbox[data-v-6aded0d9] {\\n  text-align: center !important;\\n}\\n.loading-row span[data-v-6aded0d9] {\\n  display: inline-block;\\n  height: 24px;\\n  background:\\n    linear-gradient(\\n      to right,\\n      var(--color-background-darker),\\n      var(--color-text-maxcontrast),\\n      var(--color-background-darker));\\n  background-size: 600px 100%;\\n  border-radius: var(--border-radius);\\n  animation: gradient-6aded0d9 12s ease infinite;\\n}\\n.loading-row .row-wrapper[data-v-6aded0d9] {\\n  display: inline-flex;\\n  align-items: center;\\n}\\n.loading-row .row-checkbox span[data-v-6aded0d9] {\\n  width: 24px;\\n}\\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\\n  margin-inline-start: 6px;\\n  width: 130px;\\n}\\n.loading-row .row-size span[data-v-6aded0d9] {\\n  width: 80px;\\n}\\n.loading-row .row-modified span[data-v-6aded0d9] {\\n  width: 90px;\\n}\\ntr.file-picker__row[data-v-48df4f27] {\\n  height: var(--row-height, 50px);\\n}\\ntr.file-picker__row td[data-v-48df4f27] {\\n  cursor: pointer;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n  border-bottom: none;\\n}\\ntr.file-picker__row td.row-checkbox[data-v-48df4f27] {\\n  padding: 0 2px;\\n}\\ntr.file-picker__row td[data-v-48df4f27]:not(.row-checkbox) {\\n  padding-inline: 14px 0;\\n}\\ntr.file-picker__row td.row-size[data-v-48df4f27] {\\n  text-align: end;\\n  padding-inline: 0 14px;\\n}\\ntr.file-picker__row td.row-name[data-v-48df4f27] {\\n  padding-inline: 2px 0;\\n}\\n.file-picker__row--selected[data-v-48df4f27] {\\n  background-color: var(--color-background-dark);\\n}\\n.file-picker__row[data-v-48df4f27]:hover {\\n  background-color: var(--color-background-hover);\\n}\\n.file-picker__name-container[data-v-48df4f27] {\\n  display: flex;\\n  justify-content: start;\\n  align-items: center;\\n  height: 100%;\\n}\\n.file-picker__file-name[data-v-48df4f27] {\\n  padding-inline-start: 6px;\\n  min-width: 0;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n}\\n.file-picker__file-extension[data-v-48df4f27] {\\n  color: var(--color-text-maxcontrast);\\n  min-width: fit-content;\\n}\\n.file-picker__header-preview[data-v-d3c94818] {\\n  width: 22px;\\n  height: 32px;\\n  flex: 0 0 auto;\\n}\\n.file-picker__files[data-v-d3c94818] {\\n  margin: 2px;\\n  margin-inline-start: 12px;\\n  overflow: scroll auto;\\n}\\n.file-picker__files table[data-v-d3c94818] {\\n  width: 100%;\\n  max-height: 100%;\\n  table-layout: fixed;\\n}\\n.file-picker__files th[data-v-d3c94818] {\\n  position: sticky;\\n  z-index: 1;\\n  top: 0;\\n  background-color: var(--color-main-background);\\n  padding: 2px;\\n}\\n.file-picker__files th .header-wrapper[data-v-d3c94818] {\\n  display: flex;\\n}\\n.file-picker__files th.row-checkbox[data-v-d3c94818] {\\n  width: 44px;\\n}\\n.file-picker__files th.row-name[data-v-d3c94818] {\\n  width: 230px;\\n}\\n.file-picker__files th.row-size[data-v-d3c94818] {\\n  width: 100px;\\n}\\n.file-picker__files th.row-modified[data-v-d3c94818] {\\n  width: 120px;\\n}\\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue__wrapper {\\n  justify-content: start;\\n  flex-direction: row-reverse;\\n}\\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue {\\n  padding-inline: 16px 4px;\\n}\\n.file-picker__files th.row-size[data-v-d3c94818] .button-vue__wrapper {\\n  justify-content: end;\\n}\\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper {\\n  color: var(--color-text-maxcontrast);\\n}\\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper .button-vue__text {\\n  font-weight: 400;\\n}\\n.file-picker__breadcrumbs[data-v-22cbb5df] {\\n  flex-grow: 0 !important;\\n}\\n.file-picker__side[data-v-a06474d4] {\\n  display: flex;\\n  flex-direction: column;\\n  align-items: stretch;\\n  gap: .5rem;\\n  min-width: 200px;\\n  padding: 2px;\\n  margin-block-start: 7px;\\n  overflow: auto;\\n}\\n.file-picker__side[data-v-a06474d4] .button-vue__wrapper {\\n  justify-content: start;\\n}\\n.file-picker__filter-input[data-v-a06474d4] {\\n  margin-block: 7px;\\n  max-width: 260px;\\n}\\n@media (max-width: 736px) {\\n  .file-picker__side[data-v-a06474d4] {\\n    flex-direction: row;\\n    min-width: unset;\\n  }\\n}\\n@media (max-width: 512px) {\\n  .file-picker__side[data-v-a06474d4] {\\n    flex-direction: row;\\n    min-width: unset;\\n  }\\n  .file-picker__filter-input[data-v-a06474d4] {\\n    max-width: unset;\\n  }\\n}\\n.file-picker__navigation {\\n  padding-inline: 8px 2px;\\n}\\n.file-picker__navigation,\\n.file-picker__navigation * {\\n  box-sizing: border-box;\\n}\\n.file-picker__navigation .v-select.select {\\n  min-width: 220px;\\n}\\n@media (min-width: 513px) and (max-width: 736px) {\\n  .file-picker__navigation {\\n    gap: 11px;\\n  }\\n}\\n@media (max-width: 512px) {\\n  .file-picker__navigation {\\n    flex-direction: column-reverse !important;\\n  }\\n}\\n.file-picker__view[data-v-6ff1b36b] {\\n  height: 50px;\\n  display: flex;\\n  justify-content: start;\\n  align-items: center;\\n}\\n.file-picker__view h3[data-v-6ff1b36b] {\\n  font-weight: 700;\\n  height: fit-content;\\n  margin: 0;\\n}\\n.file-picker__main[data-v-6ff1b36b] {\\n  box-sizing: border-box;\\n  width: 100%;\\n  display: flex;\\n  flex-direction: column;\\n  min-height: 0;\\n  flex: 1;\\n  padding-inline: 2px;\\n}\\n.file-picker__main *[data-v-6ff1b36b] {\\n  box-sizing: border-box;\\n}\\n[data-v-6ff1b36b] .file-picker {\\n  height: min(80vh, 800px) !important;\\n}\\n@media (max-width: 512px) {\\n  [data-v-6ff1b36b] .file-picker {\\n    height: calc(100% - 16px - var(--default-clickable-area)) !important;\\n  }\\n}\\n[data-v-6ff1b36b] .file-picker__content {\\n  display: flex;\\n  flex-direction: column;\\n  overflow: hidden;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.upload-picker[data-v-eca9500a] {\n  display: inline-flex;\n  align-items: center;\n  height: 44px;\n}\n.upload-picker__progress[data-v-eca9500a] {\n  width: 200px;\n  max-width: 0;\n  transition: max-width var(--animation-quick) ease-in-out;\n  margin-top: 8px;\n}\n.upload-picker__progress p[data-v-eca9500a] {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.upload-picker--uploading .upload-picker__progress[data-v-eca9500a] {\n  max-width: 200px;\n  margin-right: 20px;\n  margin-left: 8px;\n}\n.upload-picker--paused .upload-picker__progress[data-v-eca9500a] {\n  animation: breathing-eca9500a 3s ease-out infinite normal;\n}\n@keyframes breathing-eca9500a {\n  0% {\n    opacity: .5;\n  }\n  25% {\n    opacity: 1;\n  }\n  60% {\n    opacity: .5;\n  }\n  to {\n    opacity: .5;\n  }\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/upload/dist/assets/index-Ussc_ol3.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,YAAY;EACZ,YAAY;EACZ,wDAAwD;EACxD,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,yDAAyD;AAC3D;AACA;EACE;IACE,WAAW;EACb;EACA;IACE,UAAU;EACZ;EACA;IACE,WAAW;EACb;EACA;IACE,WAAW;EACb;AACF\",\"sourcesContent\":[\".upload-picker[data-v-eca9500a] {\\n  display: inline-flex;\\n  align-items: center;\\n  height: 44px;\\n}\\n.upload-picker__progress[data-v-eca9500a] {\\n  width: 200px;\\n  max-width: 0;\\n  transition: max-width var(--animation-quick) ease-in-out;\\n  margin-top: 8px;\\n}\\n.upload-picker__progress p[data-v-eca9500a] {\\n  overflow: hidden;\\n  white-space: nowrap;\\n  text-overflow: ellipsis;\\n}\\n.upload-picker--uploading .upload-picker__progress[data-v-eca9500a] {\\n  max-width: 200px;\\n  margin-right: 20px;\\n  margin-left: 8px;\\n}\\n.upload-picker--paused .upload-picker__progress[data-v-eca9500a] {\\n  animation: breathing-eca9500a 3s ease-out infinite normal;\\n}\\n@keyframes breathing-eca9500a {\\n  0% {\\n    opacity: .5;\\n  }\\n  25% {\\n    opacity: 1;\\n  }\\n  60% {\\n    opacity: .5;\\n  }\\n  to {\\n    opacity: .5;\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// @flow\n\n/*::\ntype Options = {\n  max?: number,\n  min?: number,\n  historyTimeConstant?: number,\n  autostart?: boolean,\n  ignoreSameProgress?: boolean,\n}\n*/\n\nfunction makeLowPassFilter(RC/*: number*/) {\n  return function (previousOutput, input, dt) {\n    const alpha = dt / (dt + RC);\n    return previousOutput + alpha * (input - previousOutput);\n  }\n}\n\nfunction def/*:: <T>*/(x/*: ?T*/, d/*: T*/)/*: T*/ {\n  return (x === undefined || x === null) ? d : x;\n}\n\nfunction makeEta(options/*::?: Options */) {\n  options = options || {};\n  var max = def(options.max, 1);\n  var min = def(options.min, 0);\n  var autostart = def(options.autostart, true);\n  var ignoreSameProgress = def(options.ignoreSameProgress, false);\n\n  var rate/*: number | null */ = null;\n  var lastTimestamp/*: number | null */ = null;\n  var lastProgress/*: number | null */ = null;\n\n  var filter = makeLowPassFilter(def(options.historyTimeConstant, 2.5));\n\n  function start() {\n    report(min);\n  }\n\n  function reset() {\n    rate = null;\n    lastTimestamp = null;\n    lastProgress = null;\n    if (autostart) {\n      start();\n    }\n  }\n\n  function report(progress /*: number */, timestamp/*::?: number */) {\n    if (typeof timestamp !== 'number') {\n      timestamp = Date.now();\n    }\n\n    if (lastTimestamp === timestamp) { return; }\n    if (ignoreSameProgress && lastProgress === progress) { return; }\n\n    if (lastTimestamp === null || lastProgress === null) {\n      lastProgress = progress;\n      lastTimestamp = timestamp;\n      return;\n    }\n\n    var deltaProgress = progress - lastProgress;\n    var deltaTimestamp = 0.001 * (timestamp - lastTimestamp);\n    var currentRate = deltaProgress / deltaTimestamp;\n\n    rate = rate === null\n      ? currentRate\n      : filter(rate, currentRate, deltaTimestamp);\n    lastProgress = progress;\n    lastTimestamp = timestamp;\n  }\n\n  function estimate(timestamp/*::?: number*/) {\n    if (lastProgress === null) { return Infinity; }\n    if (lastProgress >= max) { return 0; }\n    if (rate === null) { return Infinity; }\n\n    var estimatedTime = (max - lastProgress) / rate;\n    if (typeof timestamp === 'number' && typeof lastTimestamp === 'number') {\n      estimatedTime -= (timestamp - lastTimestamp) * 0.001;\n    }\n    return Math.max(0, estimatedTime);\n  }\n\n  function getRate() {\n    return rate === null ? 0 : rate;\n  }\n\n  return {\n    start: start,\n    reset: reset,\n    report: report,\n    estimate: estimate,\n    rate: getRate,\n  }\n}\n\nmodule.exports = makeEta;\n","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { join, basename, extname, dirname } from \"path\";\nimport { encodePath } from \"@nextcloud/paths\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { CancelablePromise } from \"cancelable-promise\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst getLogger = (user) => {\n  if (user === null) {\n    return getLoggerBuilder().setApp(\"files\").build();\n  }\n  return getLoggerBuilder().setApp(\"files\").setUid(user.uid).build();\n};\nconst logger = getLogger(getCurrentUser());\n/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n  NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n  NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n  NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n  return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewFileMenu {\n  _entries = [];\n  registerEntry(entry) {\n    this.validateEntry(entry);\n    entry.category = entry.category ?? 1;\n    this._entries.push(entry);\n  }\n  unregisterEntry(entry) {\n    const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n    if (entryIndex === -1) {\n      logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n      return;\n    }\n    this._entries.splice(entryIndex, 1);\n  }\n  /**\n   * Get the list of registered entries\n   *\n   * @param {Folder} context the creation context. Usually the current folder\n   */\n  getEntries(context) {\n    if (context) {\n      return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n    }\n    return this._entries;\n  }\n  getEntryIndex(id) {\n    return this._entries.findIndex((entry) => entry.id === id);\n  }\n  validateEntry(entry) {\n    if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n      throw new Error(\"Invalid entry\");\n    }\n    if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n      throw new Error(\"Invalid id or displayName property\");\n    }\n    if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n      throw new Error(\"Invalid icon provided\");\n    }\n    if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n      throw new Error(\"Invalid enabled property\");\n    }\n    if (typeof entry.handler !== \"function\") {\n      throw new Error(\"Invalid handler property\");\n    }\n    if (\"order\" in entry && typeof entry.order !== \"number\") {\n      throw new Error(\"Invalid order property\");\n    }\n    if (this.getEntryIndex(entry.id) !== -1) {\n      throw new Error(\"Duplicate entry\");\n    }\n  }\n}\nconst getNewFileMenu = function() {\n  if (typeof window._nc_newfilemenu === \"undefined\") {\n    window._nc_newfilemenu = new NewFileMenu();\n    logger.debug(\"NewFileMenu initialized\");\n  }\n  return window._nc_newfilemenu;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n  DefaultType2[\"DEFAULT\"] = \"default\";\n  DefaultType2[\"HIDDEN\"] = \"hidden\";\n  return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n  _action;\n  constructor(action) {\n    this.validateAction(action);\n    this._action = action;\n  }\n  get id() {\n    return this._action.id;\n  }\n  get displayName() {\n    return this._action.displayName;\n  }\n  get title() {\n    return this._action.title;\n  }\n  get iconSvgInline() {\n    return this._action.iconSvgInline;\n  }\n  get enabled() {\n    return this._action.enabled;\n  }\n  get exec() {\n    return this._action.exec;\n  }\n  get execBatch() {\n    return this._action.execBatch;\n  }\n  get order() {\n    return this._action.order;\n  }\n  get parent() {\n    return this._action.parent;\n  }\n  get default() {\n    return this._action.default;\n  }\n  get inline() {\n    return this._action.inline;\n  }\n  get renderInline() {\n    return this._action.renderInline;\n  }\n  validateAction(action) {\n    if (!action.id || typeof action.id !== \"string\") {\n      throw new Error(\"Invalid id\");\n    }\n    if (!action.displayName || typeof action.displayName !== \"function\") {\n      throw new Error(\"Invalid displayName function\");\n    }\n    if (\"title\" in action && typeof action.title !== \"function\") {\n      throw new Error(\"Invalid title function\");\n    }\n    if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n      throw new Error(\"Invalid iconSvgInline function\");\n    }\n    if (!action.exec || typeof action.exec !== \"function\") {\n      throw new Error(\"Invalid exec function\");\n    }\n    if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n      throw new Error(\"Invalid enabled function\");\n    }\n    if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n      throw new Error(\"Invalid execBatch function\");\n    }\n    if (\"order\" in action && typeof action.order !== \"number\") {\n      throw new Error(\"Invalid order\");\n    }\n    if (\"parent\" in action && typeof action.parent !== \"string\") {\n      throw new Error(\"Invalid parent\");\n    }\n    if (action.default && !Object.values(DefaultType).includes(action.default)) {\n      throw new Error(\"Invalid default\");\n    }\n    if (\"inline\" in action && typeof action.inline !== \"function\") {\n      throw new Error(\"Invalid inline function\");\n    }\n    if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n      throw new Error(\"Invalid renderInline function\");\n    }\n  }\n}\nconst registerFileAction = function(action) {\n  if (typeof window._nc_fileactions === \"undefined\") {\n    window._nc_fileactions = [];\n    logger.debug(\"FileActions initialized\");\n  }\n  if (window._nc_fileactions.find((search) => search.id === action.id)) {\n    logger.error(`FileAction ${action.id} already registered`, { action });\n    return;\n  }\n  window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n  if (typeof window._nc_fileactions === \"undefined\") {\n    window._nc_fileactions = [];\n    logger.debug(\"FileActions initialized\");\n  }\n  return window._nc_fileactions;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass Header {\n  _header;\n  constructor(header) {\n    this.validateHeader(header);\n    this._header = header;\n  }\n  get id() {\n    return this._header.id;\n  }\n  get order() {\n    return this._header.order;\n  }\n  get enabled() {\n    return this._header.enabled;\n  }\n  get render() {\n    return this._header.render;\n  }\n  get updated() {\n    return this._header.updated;\n  }\n  validateHeader(header) {\n    if (!header.id || !header.render || !header.updated) {\n      throw new Error(\"Invalid header: id, render and updated are required\");\n    }\n    if (typeof header.id !== \"string\") {\n      throw new Error(\"Invalid id property\");\n    }\n    if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n      throw new Error(\"Invalid enabled property\");\n    }\n    if (header.render && typeof header.render !== \"function\") {\n      throw new Error(\"Invalid render property\");\n    }\n    if (header.updated && typeof header.updated !== \"function\") {\n      throw new Error(\"Invalid updated property\");\n    }\n  }\n}\nconst registerFileListHeaders = function(header) {\n  if (typeof window._nc_filelistheader === \"undefined\") {\n    window._nc_filelistheader = [];\n    logger.debug(\"FileListHeaders initialized\");\n  }\n  if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n    logger.error(`Header ${header.id} already registered`, { header });\n    return;\n  }\n  window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n  if (typeof window._nc_filelistheader === \"undefined\") {\n    window._nc_filelistheader = [];\n    logger.debug(\"FileListHeaders initialized\");\n  }\n  return window._nc_filelistheader;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nvar Permission = /* @__PURE__ */ ((Permission2) => {\n  Permission2[Permission2[\"NONE\"] = 0] = \"NONE\";\n  Permission2[Permission2[\"CREATE\"] = 4] = \"CREATE\";\n  Permission2[Permission2[\"READ\"] = 1] = \"READ\";\n  Permission2[Permission2[\"UPDATE\"] = 2] = \"UPDATE\";\n  Permission2[Permission2[\"DELETE\"] = 8] = \"DELETE\";\n  Permission2[Permission2[\"SHARE\"] = 16] = \"SHARE\";\n  Permission2[Permission2[\"ALL\"] = 31] = \"ALL\";\n  return Permission2;\n})(Permission || {});\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst defaultDavProperties = [\n  \"d:getcontentlength\",\n  \"d:getcontenttype\",\n  \"d:getetag\",\n  \"d:getlastmodified\",\n  \"d:quota-available-bytes\",\n  \"d:resourcetype\",\n  \"nc:has-preview\",\n  \"nc:is-encrypted\",\n  \"nc:mount-type\",\n  \"oc:comments-unread\",\n  \"oc:favorite\",\n  \"oc:fileid\",\n  \"oc:owner-display-name\",\n  \"oc:owner-id\",\n  \"oc:permissions\",\n  \"oc:size\"\n];\nconst defaultDavNamespaces = {\n  d: \"DAV:\",\n  nc: \"http://nextcloud.org/ns\",\n  oc: \"http://owncloud.org/ns\",\n  ocs: \"http://open-collaboration-services.org/ns\"\n};\nconst registerDavProperty = function(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n  if (typeof window._nc_dav_properties === \"undefined\") {\n    window._nc_dav_properties = [...defaultDavProperties];\n    window._nc_dav_namespaces = { ...defaultDavNamespaces };\n  }\n  const namespaces = { ...window._nc_dav_namespaces, ...namespace };\n  if (window._nc_dav_properties.find((search) => search === prop)) {\n    logger.warn(`${prop} already registered`, { prop });\n    return false;\n  }\n  if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n    logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n    return false;\n  }\n  const ns = prop.split(\":\")[0];\n  if (!namespaces[ns]) {\n    logger.error(`${prop} namespace unknown`, { prop, namespaces });\n    return false;\n  }\n  window._nc_dav_properties.push(prop);\n  window._nc_dav_namespaces = namespaces;\n  return true;\n};\nconst getDavProperties = function() {\n  if (typeof window._nc_dav_properties === \"undefined\") {\n    window._nc_dav_properties = [...defaultDavProperties];\n  }\n  return window._nc_dav_properties.map((prop) => `<${prop} />`).join(\" \");\n};\nconst getDavNameSpaces = function() {\n  if (typeof window._nc_dav_namespaces === \"undefined\") {\n    window._nc_dav_namespaces = { ...defaultDavNamespaces };\n  }\n  return Object.keys(window._nc_dav_namespaces).map((ns) => `xmlns:${ns}=\"${window._nc_dav_namespaces?.[ns]}\"`).join(\" \");\n};\nconst davGetDefaultPropfind = function() {\n  return `<?xml version=\"1.0\"?>\n\t\t<d:propfind ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;\n};\nconst davGetFavoritesReport = function() {\n  return `<?xml version=\"1.0\"?>\n\t\t<oc:filter-files ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`;\n};\nconst davGetRecentSearch = function(lastModified) {\n  return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<d:searchrequest ${getDavNameSpaces()}\n\txmlns:ns=\"https://github.com/icewind1991/SearchDAV/ns\">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${getCurrentUser()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${lastModified}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst davParsePermissions = function(permString = \"\") {\n  let permissions = Permission.NONE;\n  if (!permString) {\n    return permissions;\n  }\n  if (permString.includes(\"C\") || permString.includes(\"K\")) {\n    permissions |= Permission.CREATE;\n  }\n  if (permString.includes(\"G\")) {\n    permissions |= Permission.READ;\n  }\n  if (permString.includes(\"W\") || permString.includes(\"N\") || permString.includes(\"V\")) {\n    permissions |= Permission.UPDATE;\n  }\n  if (permString.includes(\"D\")) {\n    permissions |= Permission.DELETE;\n  }\n  if (permString.includes(\"R\")) {\n    permissions |= Permission.SHARE;\n  }\n  return permissions;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nvar FileType = /* @__PURE__ */ ((FileType2) => {\n  FileType2[\"Folder\"] = \"folder\";\n  FileType2[\"File\"] = \"file\";\n  return FileType2;\n})(FileType || {});\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst isDavRessource = function(source, davService) {\n  return source.match(davService) !== null;\n};\nconst validateData = (data, davService) => {\n  if (data.id && typeof data.id !== \"number\") {\n    throw new Error(\"Invalid id type of value\");\n  }\n  if (!data.source) {\n    throw new Error(\"Missing mandatory source\");\n  }\n  try {\n    new URL(data.source);\n  } catch (e) {\n    throw new Error(\"Invalid source format, source must be a valid URL\");\n  }\n  if (!data.source.startsWith(\"http\")) {\n    throw new Error(\"Invalid source format, only http(s) is supported\");\n  }\n  if (data.mtime && !(data.mtime instanceof Date)) {\n    throw new Error(\"Invalid mtime type\");\n  }\n  if (data.crtime && !(data.crtime instanceof Date)) {\n    throw new Error(\"Invalid crtime type\");\n  }\n  if (!data.mime || typeof data.mime !== \"string\" || !data.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi)) {\n    throw new Error(\"Missing or invalid mandatory mime\");\n  }\n  if (\"size\" in data && typeof data.size !== \"number\" && data.size !== void 0) {\n    throw new Error(\"Invalid size type\");\n  }\n  if (\"permissions\" in data && data.permissions !== void 0 && !(typeof data.permissions === \"number\" && data.permissions >= Permission.NONE && data.permissions <= Permission.ALL)) {\n    throw new Error(\"Invalid permissions\");\n  }\n  if (data.owner && data.owner !== null && typeof data.owner !== \"string\") {\n    throw new Error(\"Invalid owner type\");\n  }\n  if (data.attributes && typeof data.attributes !== \"object\") {\n    throw new Error(\"Invalid attributes type\");\n  }\n  if (data.root && typeof data.root !== \"string\") {\n    throw new Error(\"Invalid root type\");\n  }\n  if (data.root && !data.root.startsWith(\"/\")) {\n    throw new Error(\"Root must start with a leading slash\");\n  }\n  if (data.root && !data.source.includes(data.root)) {\n    throw new Error(\"Root must be part of the source\");\n  }\n  if (data.root && isDavRessource(data.source, davService)) {\n    const service = data.source.match(davService)[0];\n    if (!data.source.includes(join(service, data.root))) {\n      throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n    }\n  }\n  if (data.status && !Object.values(NodeStatus).includes(data.status)) {\n    throw new Error(\"Status must be a valid NodeStatus\");\n  }\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nvar NodeStatus = /* @__PURE__ */ ((NodeStatus2) => {\n  NodeStatus2[\"NEW\"] = \"new\";\n  NodeStatus2[\"FAILED\"] = \"failed\";\n  NodeStatus2[\"LOADING\"] = \"loading\";\n  NodeStatus2[\"LOCKED\"] = \"locked\";\n  return NodeStatus2;\n})(NodeStatus || {});\nclass Node {\n  _data;\n  _attributes;\n  _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n  readonlyAttributes = Object.entries(Object.getOwnPropertyDescriptors(Node.prototype)).filter((e) => typeof e[1].get === \"function\" && e[0] !== \"__proto__\").map((e) => e[0]);\n  handler = {\n    set: (target, prop, value) => {\n      if (this.readonlyAttributes.includes(prop)) {\n        return false;\n      }\n      this.updateMtime();\n      return Reflect.set(target, prop, value);\n    },\n    deleteProperty: (target, prop) => {\n      if (this.readonlyAttributes.includes(prop)) {\n        return false;\n      }\n      this.updateMtime();\n      return Reflect.deleteProperty(target, prop);\n    },\n    // TODO: This is deprecated and only needed for files v3\n    get: (target, prop, receiver) => {\n      if (this.readonlyAttributes.includes(prop)) {\n        logger.warn(`Accessing \"Node.attributes.${prop}\" is deprecated, access it directly on the Node instance.`);\n        return Reflect.get(this, prop);\n      }\n      return Reflect.get(target, prop, receiver);\n    }\n  };\n  constructor(data, davService) {\n    validateData(data, davService || this._knownDavService);\n    this._data = { ...data, attributes: {} };\n    this._attributes = new Proxy(this._data.attributes, this.handler);\n    this.update(data.attributes ?? {});\n    this._data.mtime = data.mtime;\n    if (davService) {\n      this._knownDavService = davService;\n    }\n  }\n  /**\n   * Get the source url to this object\n   * There is no setter as the source is not meant to be changed manually.\n   * You can use the rename or move method to change the source.\n   */\n  get source() {\n    return this._data.source.replace(/\\/$/i, \"\");\n  }\n  /**\n   * Get the encoded source url to this object for requests purposes\n   */\n  get encodedSource() {\n    const { origin } = new URL(this.source);\n    return origin + encodePath(this.source.slice(origin.length));\n  }\n  /**\n   * Get this object name\n   * There is no setter as the source is not meant to be changed manually.\n   * You can use the rename or move method to change the source.\n   */\n  get basename() {\n    return basename(this.source);\n  }\n  /**\n   * Get this object's extension\n   * There is no setter as the source is not meant to be changed manually.\n   * You can use the rename or move method to change the source.\n   */\n  get extension() {\n    return extname(this.source);\n  }\n  /**\n   * Get the directory path leading to this object\n   * Will use the relative path to root if available\n   *\n   * There is no setter as the source is not meant to be changed manually.\n   * You can use the rename or move method to change the source.\n   */\n  get dirname() {\n    if (this.root) {\n      let source = this.source;\n      if (this.isDavRessource) {\n        source = source.split(this._knownDavService).pop();\n      }\n      const firstMatch = source.indexOf(this.root);\n      const root = this.root.replace(/\\/$/, \"\");\n      return dirname(source.slice(firstMatch + root.length) || \"/\");\n    }\n    const url = new URL(this.source);\n    return dirname(url.pathname);\n  }\n  /**\n   * Get the file mime\n   * There is no setter as the mime is not meant to be changed\n   */\n  get mime() {\n    return this._data.mime;\n  }\n  /**\n   * Get the file modification time\n   * There is no setter as the modification time is not meant to be changed manually.\n   * It will be automatically updated when the attributes are changed.\n   */\n  get mtime() {\n    return this._data.mtime;\n  }\n  /**\n   * Get the file creation time\n   * There is no setter as the creation time is not meant to be changed\n   */\n  get crtime() {\n    return this._data.crtime;\n  }\n  /**\n   * Get the file size\n   */\n  get size() {\n    return this._data.size;\n  }\n  /**\n   * Set the file size\n   */\n  set size(size) {\n    this.updateMtime();\n    this._data.size = size;\n  }\n  /**\n   * Get the file attribute\n   * This contains all additional attributes not provided by the Node class\n   */\n  get attributes() {\n    return this._attributes;\n  }\n  /**\n   * Get the file permissions\n   */\n  get permissions() {\n    if (this.owner === null && !this.isDavRessource) {\n      return Permission.READ;\n    }\n    return this._data.permissions !== void 0 ? this._data.permissions : Permission.NONE;\n  }\n  /**\n   * Set the file permissions\n   */\n  set permissions(permissions) {\n    this.updateMtime();\n    this._data.permissions = permissions;\n  }\n  /**\n   * Get the file owner\n   * There is no setter as the owner is not meant to be changed\n   */\n  get owner() {\n    if (!this.isDavRessource) {\n      return null;\n    }\n    return this._data.owner;\n  }\n  /**\n   * Is this a dav-related ressource ?\n   */\n  get isDavRessource() {\n    return isDavRessource(this.source, this._knownDavService);\n  }\n  /**\n   * Get the dav root of this object\n   * There is no setter as the root is not meant to be changed\n   */\n  get root() {\n    if (this._data.root) {\n      return this._data.root.replace(/^(.+)\\/$/, \"$1\");\n    }\n    if (this.isDavRessource) {\n      const root = dirname(this.source);\n      return root.split(this._knownDavService).pop() || null;\n    }\n    return null;\n  }\n  /**\n   * Get the absolute path of this object relative to the root\n   */\n  get path() {\n    if (this.root) {\n      let source = this.source;\n      if (this.isDavRessource) {\n        source = source.split(this._knownDavService).pop();\n      }\n      const firstMatch = source.indexOf(this.root);\n      const root = this.root.replace(/\\/$/, \"\");\n      return source.slice(firstMatch + root.length) || \"/\";\n    }\n    return (this.dirname + \"/\" + this.basename).replace(/\\/\\//g, \"/\");\n  }\n  /**\n   * Get the node id if defined.\n   * There is no setter as the fileid is not meant to be changed\n   */\n  get fileid() {\n    return this._data?.id;\n  }\n  /**\n   * Get the node status.\n   */\n  get status() {\n    return this._data?.status;\n  }\n  /**\n   * Set the node status.\n   */\n  set status(status) {\n    this._data.status = status;\n  }\n  /**\n   * Move the node to a new destination\n   *\n   * @param {string} destination the new source.\n   * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n   */\n  move(destination) {\n    validateData({ ...this._data, source: destination }, this._knownDavService);\n    this._data.source = destination;\n    this.updateMtime();\n  }\n  /**\n   * Rename the node\n   * This aliases the move method for easier usage\n   *\n   * @param basename The new name of the node\n   */\n  rename(basename2) {\n    if (basename2.includes(\"/\")) {\n      throw new Error(\"Invalid basename\");\n    }\n    this.move(dirname(this.source) + \"/\" + basename2);\n  }\n  /**\n   * Update the mtime if exists.\n   */\n  updateMtime() {\n    if (this._data.mtime) {\n      this._data.mtime = /* @__PURE__ */ new Date();\n    }\n  }\n  /**\n   * Update the attributes of the node\n   *\n   * @param attributes The new attributes to update on the Node attributes\n   */\n  update(attributes) {\n    for (const [name, value] of Object.entries(attributes)) {\n      try {\n        if (value === void 0) {\n          delete this.attributes[name];\n        } else {\n          this.attributes[name] = value;\n        }\n      } catch (e) {\n        if (e instanceof TypeError) {\n          continue;\n        }\n        throw e;\n      }\n    }\n  }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass File extends Node {\n  get type() {\n    return FileType.File;\n  }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass Folder extends Node {\n  constructor(data) {\n    super({\n      ...data,\n      mime: \"httpd/unix-directory\"\n    });\n  }\n  get type() {\n    return FileType.Folder;\n  }\n  get extension() {\n    return null;\n  }\n  get mime() {\n    return \"httpd/unix-directory\";\n  }\n}\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst davRootPath = `/files/${getCurrentUser()?.uid}`;\nconst davRemoteURL = generateRemoteUrl(\"dav\");\nconst davGetClient = function(remoteURL = davRemoteURL, headers = {}) {\n  const client = createClient(remoteURL, { headers });\n  function setHeaders(token) {\n    client.setHeaders({\n      ...headers,\n      // Add this so the server knows it is an request from the browser\n      \"X-Requested-With\": \"XMLHttpRequest\",\n      // Inject user auth\n      requesttoken: token ?? \"\"\n    });\n  }\n  onRequestTokenUpdate(setHeaders);\n  setHeaders(getRequestToken());\n  const patcher = getPatcher();\n  patcher.patch(\"fetch\", (url, options) => {\n    const headers2 = options.headers;\n    if (headers2?.method) {\n      options.method = headers2.method;\n      delete headers2.method;\n    }\n    return fetch(url, options);\n  });\n  return client;\n};\nconst getFavoriteNodes = (davClient, path = \"/\", davRoot = davRootPath) => {\n  const controller = new AbortController();\n  return new CancelablePromise(async (resolve, reject, onCancel) => {\n    onCancel(() => controller.abort());\n    try {\n      const contentsResponse = await davClient.getDirectoryContents(`${davRoot}${path}`, {\n        signal: controller.signal,\n        details: true,\n        data: davGetFavoritesReport(),\n        headers: {\n          // see davGetClient for patched webdav client\n          method: \"REPORT\"\n        },\n        includeSelf: true\n      });\n      const nodes = contentsResponse.data.filter((node) => node.filename !== path).map((result) => davResultToNode(result, davRoot));\n      resolve(nodes);\n    } catch (error) {\n      reject(error);\n    }\n  });\n};\nconst davResultToNode = function(node, filesRoot = davRootPath, remoteURL = davRemoteURL) {\n  let userId = getCurrentUser()?.uid;\n  const isPublic = document.querySelector(\"input#isPublic\")?.value;\n  if (isPublic) {\n    userId = userId ?? document.querySelector(\"input#sharingUserId\")?.value;\n    userId = userId ?? \"anonymous\";\n  } else if (!userId) {\n    throw new Error(\"No user id found\");\n  }\n  const props = node.props;\n  const permissions = davParsePermissions(props?.permissions);\n  const owner = String(props?.[\"owner-id\"] || userId);\n  const nodeData = {\n    id: props?.fileid || 0,\n    source: `${remoteURL}${node.filename}`,\n    mtime: new Date(Date.parse(node.lastmod)),\n    mime: node.mime || \"application/octet-stream\",\n    size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n    permissions,\n    owner,\n    root: filesRoot,\n    attributes: {\n      ...node,\n      ...props,\n      hasPreview: props?.[\"has-preview\"]\n    }\n  };\n  delete nodeData.attributes?.props;\n  return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n};\nconst forbiddenCharacters = window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\nconst forbiddenFilenameRegex = window._oc_config?.blacklist_files_regex ? new RegExp(window._oc_config.blacklist_files_regex) : null;\nfunction isFilenameValid(filename) {\n  if (forbiddenCharacters.some((character) => filename.includes(character))) {\n    return false;\n  }\n  if (forbiddenFilenameRegex !== null && filename.match(forbiddenFilenameRegex)) {\n    return false;\n  }\n  return true;\n}\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n  binaryPrefixes = binaryPrefixes && !base1000;\n  if (typeof size === \"string\") {\n    size = Number(size);\n  }\n  let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n  order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n  const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n  let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n  if (skipSmallSizes === true && order === 0) {\n    return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n  }\n  if (order < 2) {\n    relativeSize = parseFloat(relativeSize).toFixed(0);\n  } else {\n    relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n  }\n  return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n  try {\n    value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n  } catch (e) {\n    return null;\n  }\n  const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n  if (match === null || match[1] === \".\" || match[1] === \"\") {\n    return null;\n  }\n  const bytesArray = {\n    \"\": 0,\n    k: 1,\n    m: 2,\n    g: 3,\n    t: 4,\n    p: 5,\n    e: 6\n  };\n  const decimalString = `${match[1]}`;\n  const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n  return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n  if (value instanceof Date) {\n    return value.toISOString();\n  }\n  return String(value);\n}\nfunction orderBy(collection, identifiers, orders) {\n  identifiers = identifiers ?? [(value) => value];\n  orders = orders ?? [];\n  const sorting = identifiers.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n  const collator = Intl.Collator(\n    [getLanguage(), getCanonicalLocale()],\n    {\n      // handle 10 as ten and not as one-zero\n      numeric: true,\n      usage: \"sort\"\n    }\n  );\n  return [...collection].sort((a, b) => {\n    for (const [index, identifier] of identifiers.entries()) {\n      const value = collator.compare(stringify(identifier(a)), stringify(identifier(b)));\n      if (value !== 0) {\n        return value * sorting[index];\n      }\n    }\n    return 0;\n  });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n  FilesSortingMode2[\"Name\"] = \"basename\";\n  FilesSortingMode2[\"Modified\"] = \"mtime\";\n  FilesSortingMode2[\"Size\"] = \"size\";\n  return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n  const sortingOptions = {\n    // Default to sort by name\n    sortingMode: \"basename\",\n    // Default to sort ascending\n    sortingOrder: \"asc\",\n    ...options\n  };\n  const identifiers = [\n    // 1: Sort favorites first if enabled\n    ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n    // 2: Sort folders first if sorting by name\n    ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n    // 3: Use sorting mode if NOT basename (to be able to use displayName too)\n    ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n    // 4: Use displayName if available, fallback to name\n    (v) => v.attributes?.displayName || v.basename,\n    // 5: Finally, use basename if all previous sorting methods failed\n    (v) => v.basename\n  ];\n  const orders = [\n    // (for 1): always sort favorites before normal files\n    ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n    // (for 2): always sort folders before files\n    ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n    // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n    ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n    // (also for 3 so make sure not to conflict with 2 and 3)\n    ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n    // for 4: use configured sorting direction\n    sortingOptions.sortingOrder,\n    // for 5: use configured sorting direction\n    sortingOptions.sortingOrder\n  ];\n  return orderBy(nodes, identifiers, orders);\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass Navigation {\n  _views = [];\n  _currentView = null;\n  register(view) {\n    if (this._views.find((search) => search.id === view.id)) {\n      throw new Error(`View id ${view.id} is already registered`);\n    }\n    this._views.push(view);\n  }\n  remove(id) {\n    const index = this._views.findIndex((view) => view.id === id);\n    if (index !== -1) {\n      this._views.splice(index, 1);\n    }\n  }\n  get views() {\n    return this._views;\n  }\n  setActive(view) {\n    this._currentView = view;\n  }\n  get active() {\n    return this._currentView;\n  }\n}\nconst getNavigation = function() {\n  if (typeof window._nc_navigation === \"undefined\") {\n    window._nc_navigation = new Navigation();\n    logger.debug(\"Navigation service initialized\");\n  }\n  return window._nc_navigation;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass Column {\n  _column;\n  constructor(column) {\n    isValidColumn(column);\n    this._column = column;\n  }\n  get id() {\n    return this._column.id;\n  }\n  get title() {\n    return this._column.title;\n  }\n  get render() {\n    return this._column.render;\n  }\n  get sort() {\n    return this._column.sort;\n  }\n  get summary() {\n    return this._column.summary;\n  }\n}\nconst isValidColumn = function(column) {\n  if (!column.id || typeof column.id !== \"string\") {\n    throw new Error(\"A column id is required\");\n  }\n  if (!column.title || typeof column.title !== \"string\") {\n    throw new Error(\"A column title is required\");\n  }\n  if (!column.render || typeof column.render !== \"function\") {\n    throw new Error(\"A render function is required\");\n  }\n  if (column.sort && typeof column.sort !== \"function\") {\n    throw new Error(\"Column sortFunction must be a function\");\n  }\n  if (column.summary && typeof column.summary !== \"function\") {\n    throw new Error(\"Column summary must be a function\");\n  }\n  return true;\n};\nvar validator$2 = {};\nvar util$3 = {};\n(function(exports) {\n  const nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n  const nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n  const nameRegexp = \"[\" + nameStartChar + \"][\" + nameChar + \"]*\";\n  const regexName = new RegExp(\"^\" + nameRegexp + \"$\");\n  const getAllMatches = function(string, regex) {\n    const matches = [];\n    let match = regex.exec(string);\n    while (match) {\n      const allmatches = [];\n      allmatches.startIndex = regex.lastIndex - match[0].length;\n      const len = match.length;\n      for (let index = 0; index < len; index++) {\n        allmatches.push(match[index]);\n      }\n      matches.push(allmatches);\n      match = regex.exec(string);\n    }\n    return matches;\n  };\n  const isName = function(string) {\n    const match = regexName.exec(string);\n    return !(match === null || typeof match === \"undefined\");\n  };\n  exports.isExist = function(v) {\n    return typeof v !== \"undefined\";\n  };\n  exports.isEmptyObject = function(obj) {\n    return Object.keys(obj).length === 0;\n  };\n  exports.merge = function(target, a, arrayMode) {\n    if (a) {\n      const keys = Object.keys(a);\n      const len = keys.length;\n      for (let i = 0; i < len; i++) {\n        if (arrayMode === \"strict\") {\n          target[keys[i]] = [a[keys[i]]];\n        } else {\n          target[keys[i]] = a[keys[i]];\n        }\n      }\n    }\n  };\n  exports.getValue = function(v) {\n    if (exports.isExist(v)) {\n      return v;\n    } else {\n      return \"\";\n    }\n  };\n  exports.isName = isName;\n  exports.getAllMatches = getAllMatches;\n  exports.nameRegexp = nameRegexp;\n})(util$3);\nconst util$2 = util$3;\nconst defaultOptions$2 = {\n  allowBooleanAttributes: false,\n  //A tag can have attributes without any value\n  unpairedTags: []\n};\nvalidator$2.validate = function(xmlData, options) {\n  options = Object.assign({}, defaultOptions$2, options);\n  const tags = [];\n  let tagFound = false;\n  let reachedRoot = false;\n  if (xmlData[0] === \"\\uFEFF\") {\n    xmlData = xmlData.substr(1);\n  }\n  for (let i = 0; i < xmlData.length; i++) {\n    if (xmlData[i] === \"<\" && xmlData[i + 1] === \"?\") {\n      i += 2;\n      i = readPI(xmlData, i);\n      if (i.err)\n        return i;\n    } else if (xmlData[i] === \"<\") {\n      let tagStartPos = i;\n      i++;\n      if (xmlData[i] === \"!\") {\n        i = readCommentAndCDATA(xmlData, i);\n        continue;\n      } else {\n        let closingTag = false;\n        if (xmlData[i] === \"/\") {\n          closingTag = true;\n          i++;\n        }\n        let tagName = \"\";\n        for (; i < xmlData.length && xmlData[i] !== \">\" && xmlData[i] !== \" \" && xmlData[i] !== \"\t\" && xmlData[i] !== \"\\n\" && xmlData[i] !== \"\\r\"; i++) {\n          tagName += xmlData[i];\n        }\n        tagName = tagName.trim();\n        if (tagName[tagName.length - 1] === \"/\") {\n          tagName = tagName.substring(0, tagName.length - 1);\n          i--;\n        }\n        if (!validateTagName(tagName)) {\n          let msg;\n          if (tagName.trim().length === 0) {\n            msg = \"Invalid space after '<'.\";\n          } else {\n            msg = \"Tag '\" + tagName + \"' is an invalid name.\";\n          }\n          return getErrorObject(\"InvalidTag\", msg, getLineNumberForPosition(xmlData, i));\n        }\n        const result = readAttributeStr(xmlData, i);\n        if (result === false) {\n          return getErrorObject(\"InvalidAttr\", \"Attributes for '\" + tagName + \"' have open quote.\", getLineNumberForPosition(xmlData, i));\n        }\n        let attrStr = result.value;\n        i = result.index;\n        if (attrStr[attrStr.length - 1] === \"/\") {\n          const attrStrStart = i - attrStr.length;\n          attrStr = attrStr.substring(0, attrStr.length - 1);\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid === true) {\n            tagFound = true;\n          } else {\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n          }\n        } else if (closingTag) {\n          if (!result.tagClosed) {\n            return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n          } else if (attrStr.trim().length > 0) {\n            return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else if (tags.length === 0) {\n            return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else {\n            const otg = tags.pop();\n            if (tagName !== otg.tagName) {\n              let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n              return getErrorObject(\n                \"InvalidTag\",\n                \"Expected closing tag '\" + otg.tagName + \"' (opened in line \" + openPos.line + \", col \" + openPos.col + \") instead of closing tag '\" + tagName + \"'.\",\n                getLineNumberForPosition(xmlData, tagStartPos)\n              );\n            }\n            if (tags.length == 0) {\n              reachedRoot = true;\n            }\n          }\n        } else {\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid !== true) {\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n          }\n          if (reachedRoot === true) {\n            return getErrorObject(\"InvalidXml\", \"Multiple possible root nodes found.\", getLineNumberForPosition(xmlData, i));\n          } else if (options.unpairedTags.indexOf(tagName) !== -1)\n            ;\n          else {\n            tags.push({ tagName, tagStartPos });\n          }\n          tagFound = true;\n        }\n        for (i++; i < xmlData.length; i++) {\n          if (xmlData[i] === \"<\") {\n            if (xmlData[i + 1] === \"!\") {\n              i++;\n              i = readCommentAndCDATA(xmlData, i);\n              continue;\n            } else if (xmlData[i + 1] === \"?\") {\n              i = readPI(xmlData, ++i);\n              if (i.err)\n                return i;\n            } else {\n              break;\n            }\n          } else if (xmlData[i] === \"&\") {\n            const afterAmp = validateAmpersand(xmlData, i);\n            if (afterAmp == -1)\n              return getErrorObject(\"InvalidChar\", \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n            i = afterAmp;\n          } else {\n            if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n              return getErrorObject(\"InvalidXml\", \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n            }\n          }\n        }\n        if (xmlData[i] === \"<\") {\n          i--;\n        }\n      }\n    } else {\n      if (isWhiteSpace(xmlData[i])) {\n        continue;\n      }\n      return getErrorObject(\"InvalidChar\", \"char '\" + xmlData[i] + \"' is not expected.\", getLineNumberForPosition(xmlData, i));\n    }\n  }\n  if (!tagFound) {\n    return getErrorObject(\"InvalidXml\", \"Start tag expected.\", 1);\n  } else if (tags.length == 1) {\n    return getErrorObject(\"InvalidTag\", \"Unclosed tag '\" + tags[0].tagName + \"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n  } else if (tags.length > 0) {\n    return getErrorObject(\"InvalidXml\", \"Invalid '\" + JSON.stringify(tags.map((t) => t.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n  }\n  return true;\n};\nfunction isWhiteSpace(char) {\n  return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n}\nfunction readPI(xmlData, i) {\n  const start = i;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] == \"?\" || xmlData[i] == \" \") {\n      const tagname = xmlData.substr(start, i - start);\n      if (i > 5 && tagname === \"xml\") {\n        return getErrorObject(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", getLineNumberForPosition(xmlData, i));\n      } else if (xmlData[i] == \"?\" && xmlData[i + 1] == \">\") {\n        i++;\n        break;\n      } else {\n        continue;\n      }\n    }\n  }\n  return i;\n}\nfunction readCommentAndCDATA(xmlData, i) {\n  if (xmlData.length > i + 5 && xmlData[i + 1] === \"-\" && xmlData[i + 2] === \"-\") {\n    for (i += 3; i < xmlData.length; i++) {\n      if (xmlData[i] === \"-\" && xmlData[i + 1] === \"-\" && xmlData[i + 2] === \">\") {\n        i += 2;\n        break;\n      }\n    }\n  } else if (xmlData.length > i + 8 && xmlData[i + 1] === \"D\" && xmlData[i + 2] === \"O\" && xmlData[i + 3] === \"C\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"Y\" && xmlData[i + 6] === \"P\" && xmlData[i + 7] === \"E\") {\n    let angleBracketsCount = 1;\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === \"<\") {\n        angleBracketsCount++;\n      } else if (xmlData[i] === \">\") {\n        angleBracketsCount--;\n        if (angleBracketsCount === 0) {\n          break;\n        }\n      }\n    }\n  } else if (xmlData.length > i + 9 && xmlData[i + 1] === \"[\" && xmlData[i + 2] === \"C\" && xmlData[i + 3] === \"D\" && xmlData[i + 4] === \"A\" && xmlData[i + 5] === \"T\" && xmlData[i + 6] === \"A\" && xmlData[i + 7] === \"[\") {\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === \"]\" && xmlData[i + 1] === \"]\" && xmlData[i + 2] === \">\") {\n        i += 2;\n        break;\n      }\n    }\n  }\n  return i;\n}\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\nfunction readAttributeStr(xmlData, i) {\n  let attrStr = \"\";\n  let startChar = \"\";\n  let tagClosed = false;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n      if (startChar === \"\") {\n        startChar = xmlData[i];\n      } else if (startChar !== xmlData[i])\n        ;\n      else {\n        startChar = \"\";\n      }\n    } else if (xmlData[i] === \">\") {\n      if (startChar === \"\") {\n        tagClosed = true;\n        break;\n      }\n    }\n    attrStr += xmlData[i];\n  }\n  if (startChar !== \"\") {\n    return false;\n  }\n  return {\n    value: attrStr,\n    index: i,\n    tagClosed\n  };\n}\nconst validAttrStrRegxp = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\nfunction validateAttributeString(attrStr, options) {\n  const matches = util$2.getAllMatches(attrStr, validAttrStrRegxp);\n  const attrNames = {};\n  for (let i = 0; i < matches.length; i++) {\n    if (matches[i][1].length === 0) {\n      return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i][2] + \"' has no space in starting.\", getPositionFromMatch(matches[i]));\n    } else if (matches[i][3] !== void 0 && matches[i][4] === void 0) {\n      return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i][2] + \"' is without value.\", getPositionFromMatch(matches[i]));\n    } else if (matches[i][3] === void 0 && !options.allowBooleanAttributes) {\n      return getErrorObject(\"InvalidAttr\", \"boolean attribute '\" + matches[i][2] + \"' is not allowed.\", getPositionFromMatch(matches[i]));\n    }\n    const attrName = matches[i][2];\n    if (!validateAttrName(attrName)) {\n      return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(matches[i]));\n    }\n    if (!attrNames.hasOwnProperty(attrName)) {\n      attrNames[attrName] = 1;\n    } else {\n      return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(matches[i]));\n    }\n  }\n  return true;\n}\nfunction validateNumberAmpersand(xmlData, i) {\n  let re = /\\d/;\n  if (xmlData[i] === \"x\") {\n    i++;\n    re = /[\\da-fA-F]/;\n  }\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === \";\")\n      return i;\n    if (!xmlData[i].match(re))\n      break;\n  }\n  return -1;\n}\nfunction validateAmpersand(xmlData, i) {\n  i++;\n  if (xmlData[i] === \";\")\n    return -1;\n  if (xmlData[i] === \"#\") {\n    i++;\n    return validateNumberAmpersand(xmlData, i);\n  }\n  let count = 0;\n  for (; i < xmlData.length; i++, count++) {\n    if (xmlData[i].match(/\\w/) && count < 20)\n      continue;\n    if (xmlData[i] === \";\")\n      break;\n    return -1;\n  }\n  return i;\n}\nfunction getErrorObject(code, message, lineNumber) {\n  return {\n    err: {\n      code,\n      msg: message,\n      line: lineNumber.line || lineNumber,\n      col: lineNumber.col\n    }\n  };\n}\nfunction validateAttrName(attrName) {\n  return util$2.isName(attrName);\n}\nfunction validateTagName(tagname) {\n  return util$2.isName(tagname);\n}\nfunction getLineNumberForPosition(xmlData, index) {\n  const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n  return {\n    line: lines.length,\n    // column number is last line's length + 1, because column numbering starts at 1:\n    col: lines[lines.length - 1].length + 1\n  };\n}\nfunction getPositionFromMatch(match) {\n  return match.startIndex + match[1].length;\n}\nvar OptionsBuilder = {};\nconst defaultOptions$1 = {\n  preserveOrder: false,\n  attributeNamePrefix: \"@_\",\n  attributesGroupName: false,\n  textNodeName: \"#text\",\n  ignoreAttributes: true,\n  removeNSPrefix: false,\n  // remove NS from tag name or attribute name if true\n  allowBooleanAttributes: false,\n  //a tag can have attributes without any value\n  //ignoreRootElement : false,\n  parseTagValue: true,\n  parseAttributeValue: false,\n  trimValues: true,\n  //Trim string values of tag and attributes\n  cdataPropName: false,\n  numberParseOptions: {\n    hex: true,\n    leadingZeros: true,\n    eNotation: true\n  },\n  tagValueProcessor: function(tagName, val2) {\n    return val2;\n  },\n  attributeValueProcessor: function(attrName, val2) {\n    return val2;\n  },\n  stopNodes: [],\n  //nested tags will not be parsed even for errors\n  alwaysCreateTextNode: false,\n  isArray: () => false,\n  commentPropName: false,\n  unpairedTags: [],\n  processEntities: true,\n  htmlEntities: false,\n  ignoreDeclaration: false,\n  ignorePiTags: false,\n  transformTagName: false,\n  transformAttributeName: false,\n  updateTag: function(tagName, jPath, attrs) {\n    return tagName;\n  }\n  // skipEmptyListItem: false\n};\nconst buildOptions$1 = function(options) {\n  return Object.assign({}, defaultOptions$1, options);\n};\nOptionsBuilder.buildOptions = buildOptions$1;\nOptionsBuilder.defaultOptions = defaultOptions$1;\nclass XmlNode {\n  constructor(tagname) {\n    this.tagname = tagname;\n    this.child = [];\n    this[\":@\"] = {};\n  }\n  add(key, val2) {\n    if (key === \"__proto__\")\n      key = \"#__proto__\";\n    this.child.push({ [key]: val2 });\n  }\n  addChild(node) {\n    if (node.tagname === \"__proto__\")\n      node.tagname = \"#__proto__\";\n    if (node[\":@\"] && Object.keys(node[\":@\"]).length > 0) {\n      this.child.push({ [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n    } else {\n      this.child.push({ [node.tagname]: node.child });\n    }\n  }\n}\nvar xmlNode$1 = XmlNode;\nconst util$1 = util$3;\nfunction readDocType$1(xmlData, i) {\n  const entities = {};\n  if (xmlData[i + 3] === \"O\" && xmlData[i + 4] === \"C\" && xmlData[i + 5] === \"T\" && xmlData[i + 6] === \"Y\" && xmlData[i + 7] === \"P\" && xmlData[i + 8] === \"E\") {\n    i = i + 9;\n    let angleBracketsCount = 1;\n    let hasBody = false, comment = false;\n    let exp = \"\";\n    for (; i < xmlData.length; i++) {\n      if (xmlData[i] === \"<\" && !comment) {\n        if (hasBody && isEntity(xmlData, i)) {\n          i += 7;\n          [entityName, val, i] = readEntityExp(xmlData, i + 1);\n          if (val.indexOf(\"&\") === -1)\n            entities[validateEntityName(entityName)] = {\n              regx: RegExp(`&${entityName};`, \"g\"),\n              val\n            };\n        } else if (hasBody && isElement(xmlData, i))\n          i += 8;\n        else if (hasBody && isAttlist(xmlData, i))\n          i += 8;\n        else if (hasBody && isNotation(xmlData, i))\n          i += 9;\n        else if (isComment)\n          comment = true;\n        else\n          throw new Error(\"Invalid DOCTYPE\");\n        angleBracketsCount++;\n        exp = \"\";\n      } else if (xmlData[i] === \">\") {\n        if (comment) {\n          if (xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\") {\n            comment = false;\n            angleBracketsCount--;\n          }\n        } else {\n          angleBracketsCount--;\n        }\n        if (angleBracketsCount === 0) {\n          break;\n        }\n      } else if (xmlData[i] === \"[\") {\n        hasBody = true;\n      } else {\n        exp += xmlData[i];\n      }\n    }\n    if (angleBracketsCount !== 0) {\n      throw new Error(`Unclosed DOCTYPE`);\n    }\n  } else {\n    throw new Error(`Invalid Tag instead of DOCTYPE`);\n  }\n  return { entities, i };\n}\nfunction readEntityExp(xmlData, i) {\n  let entityName2 = \"\";\n  for (; i < xmlData.length && (xmlData[i] !== \"'\" && xmlData[i] !== '\"'); i++) {\n    entityName2 += xmlData[i];\n  }\n  entityName2 = entityName2.trim();\n  if (entityName2.indexOf(\" \") !== -1)\n    throw new Error(\"External entites are not supported\");\n  const startChar = xmlData[i++];\n  let val2 = \"\";\n  for (; i < xmlData.length && xmlData[i] !== startChar; i++) {\n    val2 += xmlData[i];\n  }\n  return [entityName2, val2, i];\n}\nfunction isComment(xmlData, i) {\n  if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"-\" && xmlData[i + 3] === \"-\")\n    return true;\n  return false;\n}\nfunction isEntity(xmlData, i) {\n  if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"E\" && xmlData[i + 3] === \"N\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"I\" && xmlData[i + 6] === \"T\" && xmlData[i + 7] === \"Y\")\n    return true;\n  return false;\n}\nfunction isElement(xmlData, i) {\n  if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"E\" && xmlData[i + 3] === \"L\" && xmlData[i + 4] === \"E\" && xmlData[i + 5] === \"M\" && xmlData[i + 6] === \"E\" && xmlData[i + 7] === \"N\" && xmlData[i + 8] === \"T\")\n    return true;\n  return false;\n}\nfunction isAttlist(xmlData, i) {\n  if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"A\" && xmlData[i + 3] === \"T\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"L\" && xmlData[i + 6] === \"I\" && xmlData[i + 7] === \"S\" && xmlData[i + 8] === \"T\")\n    return true;\n  return false;\n}\nfunction isNotation(xmlData, i) {\n  if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"N\" && xmlData[i + 3] === \"O\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"A\" && xmlData[i + 6] === \"T\" && xmlData[i + 7] === \"I\" && xmlData[i + 8] === \"O\" && xmlData[i + 9] === \"N\")\n    return true;\n  return false;\n}\nfunction validateEntityName(name) {\n  if (util$1.isName(name))\n    return name;\n  else\n    throw new Error(`Invalid entity name ${name}`);\n}\nvar DocTypeReader = readDocType$1;\nconst hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\nif (!Number.parseInt && window.parseInt) {\n  Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n  Number.parseFloat = window.parseFloat;\n}\nconst consider = {\n  hex: true,\n  leadingZeros: true,\n  decimalPoint: \".\",\n  eNotation: true\n  //skipLike: /regex/\n};\nfunction toNumber$1(str, options = {}) {\n  options = Object.assign({}, consider, options);\n  if (!str || typeof str !== \"string\")\n    return str;\n  let trimmedStr = str.trim();\n  if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr))\n    return str;\n  else if (options.hex && hexRegex.test(trimmedStr)) {\n    return Number.parseInt(trimmedStr, 16);\n  } else {\n    const match = numRegex.exec(trimmedStr);\n    if (match) {\n      const sign = match[1];\n      const leadingZeros = match[2];\n      let numTrimmedByZeros = trimZeros(match[3]);\n      const eNotation = match[4] || match[6];\n      if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\")\n        return str;\n      else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\")\n        return str;\n      else {\n        const num = Number(trimmedStr);\n        const numStr = \"\" + num;\n        if (numStr.search(/[eE]/) !== -1) {\n          if (options.eNotation)\n            return num;\n          else\n            return str;\n        } else if (eNotation) {\n          if (options.eNotation)\n            return num;\n          else\n            return str;\n        } else if (trimmedStr.indexOf(\".\") !== -1) {\n          if (numStr === \"0\" && numTrimmedByZeros === \"\")\n            return num;\n          else if (numStr === numTrimmedByZeros)\n            return num;\n          else if (sign && numStr === \"-\" + numTrimmedByZeros)\n            return num;\n          else\n            return str;\n        }\n        if (leadingZeros) {\n          if (numTrimmedByZeros === numStr)\n            return num;\n          else if (sign + numTrimmedByZeros === numStr)\n            return num;\n          else\n            return str;\n        }\n        if (trimmedStr === numStr)\n          return num;\n        else if (trimmedStr === sign + numStr)\n          return num;\n        return str;\n      }\n    } else {\n      return str;\n    }\n  }\n}\nfunction trimZeros(numStr) {\n  if (numStr && numStr.indexOf(\".\") !== -1) {\n    numStr = numStr.replace(/0+$/, \"\");\n    if (numStr === \".\")\n      numStr = \"0\";\n    else if (numStr[0] === \".\")\n      numStr = \"0\" + numStr;\n    else if (numStr[numStr.length - 1] === \".\")\n      numStr = numStr.substr(0, numStr.length - 1);\n    return numStr;\n  }\n  return numStr;\n}\nvar strnum = toNumber$1;\nconst util = util$3;\nconst xmlNode = xmlNode$1;\nconst readDocType = DocTypeReader;\nconst toNumber = strnum;\nlet OrderedObjParser$1 = class OrderedObjParser {\n  constructor(options) {\n    this.options = options;\n    this.currentNode = null;\n    this.tagsNodeStack = [];\n    this.docTypeEntities = {};\n    this.lastEntities = {\n      \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n      \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n      \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n      \"quot\": { regex: /&(quot|#34|#x22);/g, val: '\"' }\n    };\n    this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n    this.htmlEntities = {\n      \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n      // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n      // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n      // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n      // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n      // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n      \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n      \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n      \"yen\": { regex: /&(yen|#165);/g, val: \"¥\" },\n      \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n      \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n      \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n      \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n      \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n      \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 16)) }\n    };\n    this.addExternalEntities = addExternalEntities;\n    this.parseXml = parseXml;\n    this.parseTextData = parseTextData;\n    this.resolveNameSpace = resolveNameSpace;\n    this.buildAttributesMap = buildAttributesMap;\n    this.isItStopNode = isItStopNode;\n    this.replaceEntitiesValue = replaceEntitiesValue$1;\n    this.readStopNodeData = readStopNodeData;\n    this.saveTextToParentTag = saveTextToParentTag;\n    this.addChild = addChild;\n  }\n};\nfunction addExternalEntities(externalEntities) {\n  const entKeys = Object.keys(externalEntities);\n  for (let i = 0; i < entKeys.length; i++) {\n    const ent = entKeys[i];\n    this.lastEntities[ent] = {\n      regex: new RegExp(\"&\" + ent + \";\", \"g\"),\n      val: externalEntities[ent]\n    };\n  }\n}\nfunction parseTextData(val2, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n  if (val2 !== void 0) {\n    if (this.options.trimValues && !dontTrim) {\n      val2 = val2.trim();\n    }\n    if (val2.length > 0) {\n      if (!escapeEntities)\n        val2 = this.replaceEntitiesValue(val2);\n      const newval = this.options.tagValueProcessor(tagName, val2, jPath, hasAttributes, isLeafNode);\n      if (newval === null || newval === void 0) {\n        return val2;\n      } else if (typeof newval !== typeof val2 || newval !== val2) {\n        return newval;\n      } else if (this.options.trimValues) {\n        return parseValue(val2, this.options.parseTagValue, this.options.numberParseOptions);\n      } else {\n        const trimmedVal = val2.trim();\n        if (trimmedVal === val2) {\n          return parseValue(val2, this.options.parseTagValue, this.options.numberParseOptions);\n        } else {\n          return val2;\n        }\n      }\n    }\n  }\n}\nfunction resolveNameSpace(tagname) {\n  if (this.options.removeNSPrefix) {\n    const tags = tagname.split(\":\");\n    const prefix = tagname.charAt(0) === \"/\" ? \"/\" : \"\";\n    if (tags[0] === \"xmlns\") {\n      return \"\";\n    }\n    if (tags.length === 2) {\n      tagname = prefix + tags[1];\n    }\n  }\n  return tagname;\n}\nconst attrsRegx = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n  if (!this.options.ignoreAttributes && typeof attrStr === \"string\") {\n    const matches = util.getAllMatches(attrStr, attrsRegx);\n    const len = matches.length;\n    const attrs = {};\n    for (let i = 0; i < len; i++) {\n      const attrName = this.resolveNameSpace(matches[i][1]);\n      let oldVal = matches[i][4];\n      let aName = this.options.attributeNamePrefix + attrName;\n      if (attrName.length) {\n        if (this.options.transformAttributeName) {\n          aName = this.options.transformAttributeName(aName);\n        }\n        if (aName === \"__proto__\")\n          aName = \"#__proto__\";\n        if (oldVal !== void 0) {\n          if (this.options.trimValues) {\n            oldVal = oldVal.trim();\n          }\n          oldVal = this.replaceEntitiesValue(oldVal);\n          const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n          if (newVal === null || newVal === void 0) {\n            attrs[aName] = oldVal;\n          } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n            attrs[aName] = newVal;\n          } else {\n            attrs[aName] = parseValue(\n              oldVal,\n              this.options.parseAttributeValue,\n              this.options.numberParseOptions\n            );\n          }\n        } else if (this.options.allowBooleanAttributes) {\n          attrs[aName] = true;\n        }\n      }\n    }\n    if (!Object.keys(attrs).length) {\n      return;\n    }\n    if (this.options.attributesGroupName) {\n      const attrCollection = {};\n      attrCollection[this.options.attributesGroupName] = attrs;\n      return attrCollection;\n    }\n    return attrs;\n  }\n}\nconst parseXml = function(xmlData) {\n  xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n  const xmlObj = new xmlNode(\"!xml\");\n  let currentNode = xmlObj;\n  let textData = \"\";\n  let jPath = \"\";\n  for (let i = 0; i < xmlData.length; i++) {\n    const ch = xmlData[i];\n    if (ch === \"<\") {\n      if (xmlData[i + 1] === \"/\") {\n        const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\");\n        let tagName = xmlData.substring(i + 2, closeIndex).trim();\n        if (this.options.removeNSPrefix) {\n          const colonIndex = tagName.indexOf(\":\");\n          if (colonIndex !== -1) {\n            tagName = tagName.substr(colonIndex + 1);\n          }\n        }\n        if (this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n        if (currentNode) {\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        }\n        const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n        if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n          throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n        }\n        let propIndex = 0;\n        if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n          propIndex = jPath.lastIndexOf(\".\", jPath.lastIndexOf(\".\") - 1);\n          this.tagsNodeStack.pop();\n        } else {\n          propIndex = jPath.lastIndexOf(\".\");\n        }\n        jPath = jPath.substring(0, propIndex);\n        currentNode = this.tagsNodeStack.pop();\n        textData = \"\";\n        i = closeIndex;\n      } else if (xmlData[i + 1] === \"?\") {\n        let tagData = readTagExp(xmlData, i, false, \"?>\");\n        if (!tagData)\n          throw new Error(\"Pi Tag is not closed.\");\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        if (this.options.ignoreDeclaration && tagData.tagName === \"?xml\" || this.options.ignorePiTags)\n          ;\n        else {\n          const childNode = new xmlNode(tagData.tagName);\n          childNode.add(this.options.textNodeName, \"\");\n          if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n            childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n          }\n          this.addChild(currentNode, childNode, jPath);\n        }\n        i = tagData.closeIndex + 1;\n      } else if (xmlData.substr(i + 1, 3) === \"!--\") {\n        const endIndex = findClosingIndex(xmlData, \"-->\", i + 4, \"Comment is not closed.\");\n        if (this.options.commentPropName) {\n          const comment = xmlData.substring(i + 4, endIndex - 2);\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n          currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n        }\n        i = endIndex;\n      } else if (xmlData.substr(i + 1, 2) === \"!D\") {\n        const result = readDocType(xmlData, i);\n        this.docTypeEntities = result.entities;\n        i = result.i;\n      } else if (xmlData.substr(i + 1, 2) === \"![\") {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n        const tagExp = xmlData.substring(i + 9, closeIndex);\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        let val2 = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n        if (val2 == void 0)\n          val2 = \"\";\n        if (this.options.cdataPropName) {\n          currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n        } else {\n          currentNode.add(this.options.textNodeName, val2);\n        }\n        i = closeIndex + 2;\n      } else {\n        let result = readTagExp(xmlData, i, this.options.removeNSPrefix);\n        let tagName = result.tagName;\n        const rawTagName = result.rawTagName;\n        let tagExp = result.tagExp;\n        let attrExpPresent = result.attrExpPresent;\n        let closeIndex = result.closeIndex;\n        if (this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n        if (currentNode && textData) {\n          if (currentNode.tagname !== \"!xml\") {\n            textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n          }\n        }\n        const lastTag = currentNode;\n        if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n          currentNode = this.tagsNodeStack.pop();\n          jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n        }\n        if (tagName !== xmlObj.tagname) {\n          jPath += jPath ? \".\" + tagName : tagName;\n        }\n        if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n          let tagContent = \"\";\n          if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n            if (tagName[tagName.length - 1] === \"/\") {\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            } else {\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            i = result.closeIndex;\n          } else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n            i = result.closeIndex;\n          } else {\n            const result2 = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n            if (!result2)\n              throw new Error(`Unexpected end of ${rawTagName}`);\n            i = result2.i;\n            tagContent = result2.tagContent;\n          }\n          const childNode = new xmlNode(tagName);\n          if (tagName !== tagExp && attrExpPresent) {\n            childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n          }\n          if (tagContent) {\n            tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n          }\n          jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          childNode.add(this.options.textNodeName, tagContent);\n          this.addChild(currentNode, childNode, jPath);\n        } else {\n          if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n            if (tagName[tagName.length - 1] === \"/\") {\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            } else {\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            if (this.options.transformTagName) {\n              tagName = this.options.transformTagName(tagName);\n            }\n            const childNode = new xmlNode(tagName);\n            if (tagName !== tagExp && attrExpPresent) {\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath);\n            jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          } else {\n            const childNode = new xmlNode(tagName);\n            this.tagsNodeStack.push(currentNode);\n            if (tagName !== tagExp && attrExpPresent) {\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath);\n            currentNode = childNode;\n          }\n          textData = \"\";\n          i = closeIndex;\n        }\n      }\n    } else {\n      textData += xmlData[i];\n    }\n  }\n  return xmlObj.child;\n};\nfunction addChild(currentNode, childNode, jPath) {\n  const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"]);\n  if (result === false)\n    ;\n  else if (typeof result === \"string\") {\n    childNode.tagname = result;\n    currentNode.addChild(childNode);\n  } else {\n    currentNode.addChild(childNode);\n  }\n}\nconst replaceEntitiesValue$1 = function(val2) {\n  if (this.options.processEntities) {\n    for (let entityName2 in this.docTypeEntities) {\n      const entity = this.docTypeEntities[entityName2];\n      val2 = val2.replace(entity.regx, entity.val);\n    }\n    for (let entityName2 in this.lastEntities) {\n      const entity = this.lastEntities[entityName2];\n      val2 = val2.replace(entity.regex, entity.val);\n    }\n    if (this.options.htmlEntities) {\n      for (let entityName2 in this.htmlEntities) {\n        const entity = this.htmlEntities[entityName2];\n        val2 = val2.replace(entity.regex, entity.val);\n      }\n    }\n    val2 = val2.replace(this.ampEntity.regex, this.ampEntity.val);\n  }\n  return val2;\n};\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n  if (textData) {\n    if (isLeafNode === void 0)\n      isLeafNode = Object.keys(currentNode.child).length === 0;\n    textData = this.parseTextData(\n      textData,\n      currentNode.tagname,\n      jPath,\n      false,\n      currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n      isLeafNode\n    );\n    if (textData !== void 0 && textData !== \"\")\n      currentNode.add(this.options.textNodeName, textData);\n    textData = \"\";\n  }\n  return textData;\n}\nfunction isItStopNode(stopNodes, jPath, currentTagName) {\n  const allNodesExp = \"*.\" + currentTagName;\n  for (const stopNodePath in stopNodes) {\n    const stopNodeExp = stopNodes[stopNodePath];\n    if (allNodesExp === stopNodeExp || jPath === stopNodeExp)\n      return true;\n  }\n  return false;\n}\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\") {\n  let attrBoundary;\n  let tagExp = \"\";\n  for (let index = i; index < xmlData.length; index++) {\n    let ch = xmlData[index];\n    if (attrBoundary) {\n      if (ch === attrBoundary)\n        attrBoundary = \"\";\n    } else if (ch === '\"' || ch === \"'\") {\n      attrBoundary = ch;\n    } else if (ch === closingChar[0]) {\n      if (closingChar[1]) {\n        if (xmlData[index + 1] === closingChar[1]) {\n          return {\n            data: tagExp,\n            index\n          };\n        }\n      } else {\n        return {\n          data: tagExp,\n          index\n        };\n      }\n    } else if (ch === \"\t\") {\n      ch = \" \";\n    }\n    tagExp += ch;\n  }\n}\nfunction findClosingIndex(xmlData, str, i, errMsg) {\n  const closingIndex = xmlData.indexOf(str, i);\n  if (closingIndex === -1) {\n    throw new Error(errMsg);\n  } else {\n    return closingIndex + str.length - 1;\n  }\n}\nfunction readTagExp(xmlData, i, removeNSPrefix, closingChar = \">\") {\n  const result = tagExpWithClosingIndex(xmlData, i + 1, closingChar);\n  if (!result)\n    return;\n  let tagExp = result.data;\n  const closeIndex = result.index;\n  const separatorIndex = tagExp.search(/\\s/);\n  let tagName = tagExp;\n  let attrExpPresent = true;\n  if (separatorIndex !== -1) {\n    tagName = tagExp.substring(0, separatorIndex);\n    tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n  }\n  const rawTagName = tagName;\n  if (removeNSPrefix) {\n    const colonIndex = tagName.indexOf(\":\");\n    if (colonIndex !== -1) {\n      tagName = tagName.substr(colonIndex + 1);\n      attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n    }\n  }\n  return {\n    tagName,\n    tagExp,\n    closeIndex,\n    attrExpPresent,\n    rawTagName\n  };\n}\nfunction readStopNodeData(xmlData, tagName, i) {\n  const startIndex = i;\n  let openTagCount = 1;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === \"<\") {\n      if (xmlData[i + 1] === \"/\") {\n        const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n        let closeTagName = xmlData.substring(i + 2, closeIndex).trim();\n        if (closeTagName === tagName) {\n          openTagCount--;\n          if (openTagCount === 0) {\n            return {\n              tagContent: xmlData.substring(startIndex, i),\n              i: closeIndex\n            };\n          }\n        }\n        i = closeIndex;\n      } else if (xmlData[i + 1] === \"?\") {\n        const closeIndex = findClosingIndex(xmlData, \"?>\", i + 1, \"StopNode is not closed.\");\n        i = closeIndex;\n      } else if (xmlData.substr(i + 1, 3) === \"!--\") {\n        const closeIndex = findClosingIndex(xmlData, \"-->\", i + 3, \"StopNode is not closed.\");\n        i = closeIndex;\n      } else if (xmlData.substr(i + 1, 2) === \"![\") {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n        i = closeIndex;\n      } else {\n        const tagData = readTagExp(xmlData, i, \">\");\n        if (tagData) {\n          const openTagName = tagData && tagData.tagName;\n          if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n            openTagCount++;\n          }\n          i = tagData.closeIndex;\n        }\n      }\n    }\n  }\n}\nfunction parseValue(val2, shouldParse, options) {\n  if (shouldParse && typeof val2 === \"string\") {\n    const newval = val2.trim();\n    if (newval === \"true\")\n      return true;\n    else if (newval === \"false\")\n      return false;\n    else\n      return toNumber(val2, options);\n  } else {\n    if (util.isExist(val2)) {\n      return val2;\n    } else {\n      return \"\";\n    }\n  }\n}\nvar OrderedObjParser_1 = OrderedObjParser$1;\nvar node2json = {};\nfunction prettify$1(node, options) {\n  return compress(node, options);\n}\nfunction compress(arr, options, jPath) {\n  let text;\n  const compressedObj = {};\n  for (let i = 0; i < arr.length; i++) {\n    const tagObj = arr[i];\n    const property = propName$1(tagObj);\n    let newJpath = \"\";\n    if (jPath === void 0)\n      newJpath = property;\n    else\n      newJpath = jPath + \".\" + property;\n    if (property === options.textNodeName) {\n      if (text === void 0)\n        text = tagObj[property];\n      else\n        text += \"\" + tagObj[property];\n    } else if (property === void 0) {\n      continue;\n    } else if (tagObj[property]) {\n      let val2 = compress(tagObj[property], options, newJpath);\n      const isLeaf = isLeafTag(val2, options);\n      if (tagObj[\":@\"]) {\n        assignAttributes(val2, tagObj[\":@\"], newJpath, options);\n      } else if (Object.keys(val2).length === 1 && val2[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) {\n        val2 = val2[options.textNodeName];\n      } else if (Object.keys(val2).length === 0) {\n        if (options.alwaysCreateTextNode)\n          val2[options.textNodeName] = \"\";\n        else\n          val2 = \"\";\n      }\n      if (compressedObj[property] !== void 0 && compressedObj.hasOwnProperty(property)) {\n        if (!Array.isArray(compressedObj[property])) {\n          compressedObj[property] = [compressedObj[property]];\n        }\n        compressedObj[property].push(val2);\n      } else {\n        if (options.isArray(property, newJpath, isLeaf)) {\n          compressedObj[property] = [val2];\n        } else {\n          compressedObj[property] = val2;\n        }\n      }\n    }\n  }\n  if (typeof text === \"string\") {\n    if (text.length > 0)\n      compressedObj[options.textNodeName] = text;\n  } else if (text !== void 0)\n    compressedObj[options.textNodeName] = text;\n  return compressedObj;\n}\nfunction propName$1(obj) {\n  const keys = Object.keys(obj);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if (key !== \":@\")\n      return key;\n  }\n}\nfunction assignAttributes(obj, attrMap, jpath, options) {\n  if (attrMap) {\n    const keys = Object.keys(attrMap);\n    const len = keys.length;\n    for (let i = 0; i < len; i++) {\n      const atrrName = keys[i];\n      if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n        obj[atrrName] = [attrMap[atrrName]];\n      } else {\n        obj[atrrName] = attrMap[atrrName];\n      }\n    }\n  }\n}\nfunction isLeafTag(obj, options) {\n  const { textNodeName } = options;\n  const propCount = Object.keys(obj).length;\n  if (propCount === 0) {\n    return true;\n  }\n  if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)) {\n    return true;\n  }\n  return false;\n}\nnode2json.prettify = prettify$1;\nconst { buildOptions } = OptionsBuilder;\nconst OrderedObjParser2 = OrderedObjParser_1;\nconst { prettify } = node2json;\nconst validator$1 = validator$2;\nlet XMLParser$1 = class XMLParser {\n  constructor(options) {\n    this.externalEntities = {};\n    this.options = buildOptions(options);\n  }\n  /**\n   * Parse XML dats to JS object \n   * @param {string|Buffer} xmlData \n   * @param {boolean|Object} validationOption \n   */\n  parse(xmlData, validationOption) {\n    if (typeof xmlData === \"string\")\n      ;\n    else if (xmlData.toString) {\n      xmlData = xmlData.toString();\n    } else {\n      throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n    }\n    if (validationOption) {\n      if (validationOption === true)\n        validationOption = {};\n      const result = validator$1.validate(xmlData, validationOption);\n      if (result !== true) {\n        throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);\n      }\n    }\n    const orderedObjParser = new OrderedObjParser2(this.options);\n    orderedObjParser.addExternalEntities(this.externalEntities);\n    const orderedResult = orderedObjParser.parseXml(xmlData);\n    if (this.options.preserveOrder || orderedResult === void 0)\n      return orderedResult;\n    else\n      return prettify(orderedResult, this.options);\n  }\n  /**\n   * Add Entity which is not by default supported by this library\n   * @param {string} key \n   * @param {string} value \n   */\n  addEntity(key, value) {\n    if (value.indexOf(\"&\") !== -1) {\n      throw new Error(\"Entity value can't have '&'\");\n    } else if (key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1) {\n      throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\");\n    } else if (value === \"&\") {\n      throw new Error(\"An entity with value '&' is not permitted\");\n    } else {\n      this.externalEntities[key] = value;\n    }\n  }\n};\nvar XMLParser_1 = XMLParser$1;\nconst EOL = \"\\n\";\nfunction toXml(jArray, options) {\n  let indentation = \"\";\n  if (options.format && options.indentBy.length > 0) {\n    indentation = EOL;\n  }\n  return arrToStr(jArray, options, \"\", indentation);\n}\nfunction arrToStr(arr, options, jPath, indentation) {\n  let xmlStr = \"\";\n  let isPreviousElementTag = false;\n  for (let i = 0; i < arr.length; i++) {\n    const tagObj = arr[i];\n    const tagName = propName(tagObj);\n    if (tagName === void 0)\n      continue;\n    let newJPath = \"\";\n    if (jPath.length === 0)\n      newJPath = tagName;\n    else\n      newJPath = `${jPath}.${tagName}`;\n    if (tagName === options.textNodeName) {\n      let tagText = tagObj[tagName];\n      if (!isStopNode(newJPath, options)) {\n        tagText = options.tagValueProcessor(tagName, tagText);\n        tagText = replaceEntitiesValue(tagText, options);\n      }\n      if (isPreviousElementTag) {\n        xmlStr += indentation;\n      }\n      xmlStr += tagText;\n      isPreviousElementTag = false;\n      continue;\n    } else if (tagName === options.cdataPropName) {\n      if (isPreviousElementTag) {\n        xmlStr += indentation;\n      }\n      xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n      isPreviousElementTag = false;\n      continue;\n    } else if (tagName === options.commentPropName) {\n      xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n      isPreviousElementTag = true;\n      continue;\n    } else if (tagName[0] === \"?\") {\n      const attStr2 = attr_to_str(tagObj[\":@\"], options);\n      const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n      let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n      piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\";\n      xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr2}?>`;\n      isPreviousElementTag = true;\n      continue;\n    }\n    let newIdentation = indentation;\n    if (newIdentation !== \"\") {\n      newIdentation += options.indentBy;\n    }\n    const attStr = attr_to_str(tagObj[\":@\"], options);\n    const tagStart = indentation + `<${tagName}${attStr}`;\n    const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n    if (options.unpairedTags.indexOf(tagName) !== -1) {\n      if (options.suppressUnpairedNode)\n        xmlStr += tagStart + \">\";\n      else\n        xmlStr += tagStart + \"/>\";\n    } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n      xmlStr += tagStart + \"/>\";\n    } else if (tagValue && tagValue.endsWith(\">\")) {\n      xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n    } else {\n      xmlStr += tagStart + \">\";\n      if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n        xmlStr += indentation + options.indentBy + tagValue + indentation;\n      } else {\n        xmlStr += tagValue;\n      }\n      xmlStr += `</${tagName}>`;\n    }\n    isPreviousElementTag = true;\n  }\n  return xmlStr;\n}\nfunction propName(obj) {\n  const keys = Object.keys(obj);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if (!obj.hasOwnProperty(key))\n      continue;\n    if (key !== \":@\")\n      return key;\n  }\n}\nfunction attr_to_str(attrMap, options) {\n  let attrStr = \"\";\n  if (attrMap && !options.ignoreAttributes) {\n    for (let attr in attrMap) {\n      if (!attrMap.hasOwnProperty(attr))\n        continue;\n      let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n      attrVal = replaceEntitiesValue(attrVal, options);\n      if (attrVal === true && options.suppressBooleanAttributes) {\n        attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n      } else {\n        attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n      }\n    }\n  }\n  return attrStr;\n}\nfunction isStopNode(jPath, options) {\n  jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n  let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n  for (let index in options.stopNodes) {\n    if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName)\n      return true;\n  }\n  return false;\n}\nfunction replaceEntitiesValue(textValue, options) {\n  if (textValue && textValue.length > 0 && options.processEntities) {\n    for (let i = 0; i < options.entities.length; i++) {\n      const entity = options.entities[i];\n      textValue = textValue.replace(entity.regex, entity.val);\n    }\n  }\n  return textValue;\n}\nvar orderedJs2Xml = toXml;\nconst buildFromOrderedJs = orderedJs2Xml;\nconst defaultOptions = {\n  attributeNamePrefix: \"@_\",\n  attributesGroupName: false,\n  textNodeName: \"#text\",\n  ignoreAttributes: true,\n  cdataPropName: false,\n  format: false,\n  indentBy: \"  \",\n  suppressEmptyNode: false,\n  suppressUnpairedNode: true,\n  suppressBooleanAttributes: true,\n  tagValueProcessor: function(key, a) {\n    return a;\n  },\n  attributeValueProcessor: function(attrName, a) {\n    return a;\n  },\n  preserveOrder: false,\n  commentPropName: false,\n  unpairedTags: [],\n  entities: [\n    { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },\n    //it must be on top\n    { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n    { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n    { regex: new RegExp(\"'\", \"g\"), val: \"&apos;\" },\n    { regex: new RegExp('\"', \"g\"), val: \"&quot;\" }\n  ],\n  processEntities: true,\n  stopNodes: [],\n  // transformTagName: false,\n  // transformAttributeName: false,\n  oneListGroup: false\n};\nfunction Builder(options) {\n  this.options = Object.assign({}, defaultOptions, options);\n  if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n    this.isAttribute = function() {\n      return false;\n    };\n  } else {\n    this.attrPrefixLen = this.options.attributeNamePrefix.length;\n    this.isAttribute = isAttribute;\n  }\n  this.processTextOrObjNode = processTextOrObjNode;\n  if (this.options.format) {\n    this.indentate = indentate;\n    this.tagEndChar = \">\\n\";\n    this.newLine = \"\\n\";\n  } else {\n    this.indentate = function() {\n      return \"\";\n    };\n    this.tagEndChar = \">\";\n    this.newLine = \"\";\n  }\n}\nBuilder.prototype.build = function(jObj) {\n  if (this.options.preserveOrder) {\n    return buildFromOrderedJs(jObj, this.options);\n  } else {\n    if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) {\n      jObj = {\n        [this.options.arrayNodeName]: jObj\n      };\n    }\n    return this.j2x(jObj, 0).val;\n  }\n};\nBuilder.prototype.j2x = function(jObj, level) {\n  let attrStr = \"\";\n  let val2 = \"\";\n  for (let key in jObj) {\n    if (!Object.prototype.hasOwnProperty.call(jObj, key))\n      continue;\n    if (typeof jObj[key] === \"undefined\") {\n      if (this.isAttribute(key)) {\n        val2 += \"\";\n      }\n    } else if (jObj[key] === null) {\n      if (this.isAttribute(key)) {\n        val2 += \"\";\n      } else if (key[0] === \"?\") {\n        val2 += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n      } else {\n        val2 += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n      }\n    } else if (jObj[key] instanceof Date) {\n      val2 += this.buildTextValNode(jObj[key], key, \"\", level);\n    } else if (typeof jObj[key] !== \"object\") {\n      const attr = this.isAttribute(key);\n      if (attr) {\n        attrStr += this.buildAttrPairStr(attr, \"\" + jObj[key]);\n      } else {\n        if (key === this.options.textNodeName) {\n          let newval = this.options.tagValueProcessor(key, \"\" + jObj[key]);\n          val2 += this.replaceEntitiesValue(newval);\n        } else {\n          val2 += this.buildTextValNode(jObj[key], key, \"\", level);\n        }\n      }\n    } else if (Array.isArray(jObj[key])) {\n      const arrLen = jObj[key].length;\n      let listTagVal = \"\";\n      for (let j = 0; j < arrLen; j++) {\n        const item = jObj[key][j];\n        if (typeof item === \"undefined\")\n          ;\n        else if (item === null) {\n          if (key[0] === \"?\")\n            val2 += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n          else\n            val2 += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n        } else if (typeof item === \"object\") {\n          if (this.options.oneListGroup) {\n            listTagVal += this.j2x(item, level + 1).val;\n          } else {\n            listTagVal += this.processTextOrObjNode(item, key, level);\n          }\n        } else {\n          listTagVal += this.buildTextValNode(item, key, \"\", level);\n        }\n      }\n      if (this.options.oneListGroup) {\n        listTagVal = this.buildObjectNode(listTagVal, key, \"\", level);\n      }\n      val2 += listTagVal;\n    } else {\n      if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n        const Ks = Object.keys(jObj[key]);\n        const L = Ks.length;\n        for (let j = 0; j < L; j++) {\n          attrStr += this.buildAttrPairStr(Ks[j], \"\" + jObj[key][Ks[j]]);\n        }\n      } else {\n        val2 += this.processTextOrObjNode(jObj[key], key, level);\n      }\n    }\n  }\n  return { attrStr, val: val2 };\n};\nBuilder.prototype.buildAttrPairStr = function(attrName, val2) {\n  val2 = this.options.attributeValueProcessor(attrName, \"\" + val2);\n  val2 = this.replaceEntitiesValue(val2);\n  if (this.options.suppressBooleanAttributes && val2 === \"true\") {\n    return \" \" + attrName;\n  } else\n    return \" \" + attrName + '=\"' + val2 + '\"';\n};\nfunction processTextOrObjNode(object, key, level) {\n  const result = this.j2x(object, level + 1);\n  if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) {\n    return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n  } else {\n    return this.buildObjectNode(result.val, key, result.attrStr, level);\n  }\n}\nBuilder.prototype.buildObjectNode = function(val2, key, attrStr, level) {\n  if (val2 === \"\") {\n    if (key[0] === \"?\")\n      return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n    else {\n      return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }\n  } else {\n    let tagEndExp = \"</\" + key + this.tagEndChar;\n    let piClosingChar = \"\";\n    if (key[0] === \"?\") {\n      piClosingChar = \"?\";\n      tagEndExp = \"\";\n    }\n    if ((attrStr || attrStr === \"\") && val2.indexOf(\"<\") === -1) {\n      return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + \">\" + val2 + tagEndExp;\n    } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n      return this.indentate(level) + `<!--${val2}-->` + this.newLine;\n    } else {\n      return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + this.tagEndChar + val2 + this.indentate(level) + tagEndExp;\n    }\n  }\n};\nBuilder.prototype.closeTag = function(key) {\n  let closeTag = \"\";\n  if (this.options.unpairedTags.indexOf(key) !== -1) {\n    if (!this.options.suppressUnpairedNode)\n      closeTag = \"/\";\n  } else if (this.options.suppressEmptyNode) {\n    closeTag = \"/\";\n  } else {\n    closeTag = `></${key}`;\n  }\n  return closeTag;\n};\nBuilder.prototype.buildTextValNode = function(val2, key, attrStr, level) {\n  if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n    return this.indentate(level) + `<![CDATA[${val2}]]>` + this.newLine;\n  } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n    return this.indentate(level) + `<!--${val2}-->` + this.newLine;\n  } else if (key[0] === \"?\") {\n    return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n  } else {\n    let textValue = this.options.tagValueProcessor(key, val2);\n    textValue = this.replaceEntitiesValue(textValue);\n    if (textValue === \"\") {\n      return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    } else {\n      return this.indentate(level) + \"<\" + key + attrStr + \">\" + textValue + \"</\" + key + this.tagEndChar;\n    }\n  }\n};\nBuilder.prototype.replaceEntitiesValue = function(textValue) {\n  if (textValue && textValue.length > 0 && this.options.processEntities) {\n    for (let i = 0; i < this.options.entities.length; i++) {\n      const entity = this.options.entities[i];\n      textValue = textValue.replace(entity.regex, entity.val);\n    }\n  }\n  return textValue;\n};\nfunction indentate(level) {\n  return this.options.indentBy.repeat(level);\n}\nfunction isAttribute(name) {\n  if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n    return name.substr(this.attrPrefixLen);\n  } else {\n    return false;\n  }\n}\nvar json2xml = Builder;\nconst validator = validator$2;\nconst XMLParser2 = XMLParser_1;\nconst XMLBuilder = json2xml;\nvar fxp = {\n  XMLParser: XMLParser2,\n  XMLValidator: validator,\n  XMLBuilder\n};\nfunction isSvg(string) {\n  if (typeof string !== \"string\") {\n    throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n  }\n  string = string.trim();\n  if (string.length === 0) {\n    return false;\n  }\n  if (fxp.XMLValidator.validate(string) !== true) {\n    return false;\n  }\n  let jsonObject;\n  const parser = new fxp.XMLParser();\n  try {\n    jsonObject = parser.parse(string);\n  } catch {\n    return false;\n  }\n  if (!jsonObject) {\n    return false;\n  }\n  if (!Object.keys(jsonObject).some((x) => x.toLowerCase() === \"svg\")) {\n    return false;\n  }\n  return true;\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass View {\n  _view;\n  constructor(view) {\n    isValidView(view);\n    this._view = view;\n  }\n  get id() {\n    return this._view.id;\n  }\n  get name() {\n    return this._view.name;\n  }\n  get caption() {\n    return this._view.caption;\n  }\n  get emptyTitle() {\n    return this._view.emptyTitle;\n  }\n  get emptyCaption() {\n    return this._view.emptyCaption;\n  }\n  get getContents() {\n    return this._view.getContents;\n  }\n  get icon() {\n    return this._view.icon;\n  }\n  set icon(icon) {\n    this._view.icon = icon;\n  }\n  get order() {\n    return this._view.order;\n  }\n  set order(order) {\n    this._view.order = order;\n  }\n  get params() {\n    return this._view.params;\n  }\n  set params(params) {\n    this._view.params = params;\n  }\n  get columns() {\n    return this._view.columns;\n  }\n  get emptyView() {\n    return this._view.emptyView;\n  }\n  get parent() {\n    return this._view.parent;\n  }\n  get sticky() {\n    return this._view.sticky;\n  }\n  get expanded() {\n    return this._view.expanded;\n  }\n  set expanded(expanded) {\n    this._view.expanded = expanded;\n  }\n  get defaultSortKey() {\n    return this._view.defaultSortKey;\n  }\n}\nconst isValidView = function(view) {\n  if (!view.id || typeof view.id !== \"string\") {\n    throw new Error(\"View id is required and must be a string\");\n  }\n  if (!view.name || typeof view.name !== \"string\") {\n    throw new Error(\"View name is required and must be a string\");\n  }\n  if (view.columns && view.columns.length > 0 && (!view.caption || typeof view.caption !== \"string\")) {\n    throw new Error(\"View caption is required for top-level views and must be a string\");\n  }\n  if (!view.getContents || typeof view.getContents !== \"function\") {\n    throw new Error(\"View getContents is required and must be a function\");\n  }\n  if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n    throw new Error(\"View icon is required and must be a valid svg string\");\n  }\n  if (!(\"order\" in view) || typeof view.order !== \"number\") {\n    throw new Error(\"View order is required and must be a number\");\n  }\n  if (view.columns) {\n    view.columns.forEach((column) => {\n      if (!(column instanceof Column)) {\n        throw new Error(\"View columns must be an array of Column. Invalid column found\");\n      }\n    });\n  }\n  if (view.emptyView && typeof view.emptyView !== \"function\") {\n    throw new Error(\"View emptyView must be a function\");\n  }\n  if (view.parent && typeof view.parent !== \"string\") {\n    throw new Error(\"View parent must be a string\");\n  }\n  if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n    throw new Error(\"View sticky must be a boolean\");\n  }\n  if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n    throw new Error(\"View expanded must be a boolean\");\n  }\n  if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n    throw new Error(\"View defaultSortKey must be a string\");\n  }\n  return true;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst addNewFileMenuEntry = function(entry) {\n  const newFileMenu = getNewFileMenu();\n  return newFileMenu.registerEntry(entry);\n};\nconst removeNewFileMenuEntry = function(entry) {\n  const newFileMenu = getNewFileMenu();\n  return newFileMenu.unregisterEntry(entry);\n};\nconst getNewFileMenuEntries = function(context) {\n  const newFileMenu = getNewFileMenu();\n  return newFileMenu.getEntries(context).sort((a, b) => {\n    if (a.order !== void 0 && b.order !== void 0 && a.order !== b.order) {\n      return a.order - b.order;\n    }\n    return a.displayName.localeCompare(b.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n  });\n};\nexport {\n  Column,\n  DefaultType,\n  File,\n  FileAction,\n  FileType,\n  FilesSortingMode,\n  Folder,\n  Header,\n  Navigation,\n  NewMenuEntryCategory,\n  Node,\n  NodeStatus,\n  Permission,\n  View,\n  addNewFileMenuEntry,\n  davGetClient,\n  davGetDefaultPropfind,\n  davGetFavoritesReport,\n  davGetRecentSearch,\n  davParsePermissions,\n  davRemoteURL,\n  davResultToNode,\n  davRootPath,\n  defaultDavNamespaces,\n  defaultDavProperties,\n  formatFileSize,\n  getDavNameSpaces,\n  getDavProperties,\n  getFavoriteNodes,\n  getFileActions,\n  getFileListHeaders,\n  getNavigation,\n  getNewFileMenuEntries,\n  isFilenameValid,\n  orderBy,\n  parseFileSize,\n  registerDavProperty,\n  registerFileAction,\n  registerFileListHeaders,\n  removeNewFileMenuEntry,\n  sortNodes\n};\n","\n      import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-Ussc_ol3.css\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-Ussc_ol3.css\";\n       export default content && content.locals ? content.locals : undefined;\n","export class CancelError extends Error {\n\tconstructor(reason) {\n\t\tsuper(reason || 'Promise was canceled');\n\t\tthis.name = 'CancelError';\n\t}\n\n\tget isCanceled() {\n\t\treturn true;\n\t}\n}\n\nconst promiseState = Object.freeze({\n\tpending: Symbol('pending'),\n\tcanceled: Symbol('canceled'),\n\tresolved: Symbol('resolved'),\n\trejected: Symbol('rejected'),\n});\n\nexport default class PCancelable {\n\tstatic fn(userFunction) {\n\t\treturn (...arguments_) => new PCancelable((resolve, reject, onCancel) => {\n\t\t\targuments_.push(onCancel);\n\t\t\tuserFunction(...arguments_).then(resolve, reject);\n\t\t});\n\t}\n\n\t#cancelHandlers = [];\n\t#rejectOnCancel = true;\n\t#state = promiseState.pending;\n\t#promise;\n\t#reject;\n\n\tconstructor(executor) {\n\t\tthis.#promise = new Promise((resolve, reject) => {\n\t\t\tthis.#reject = reject;\n\n\t\t\tconst onResolve = value => {\n\t\t\t\tif (this.#state !== promiseState.canceled || !onCancel.shouldReject) {\n\t\t\t\t\tresolve(value);\n\t\t\t\t\tthis.#setState(promiseState.resolved);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onReject = error => {\n\t\t\t\tif (this.#state !== promiseState.canceled || !onCancel.shouldReject) {\n\t\t\t\t\treject(error);\n\t\t\t\t\tthis.#setState(promiseState.rejected);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onCancel = handler => {\n\t\t\t\tif (this.#state !== promiseState.pending) {\n\t\t\t\t\tthrow new Error(`The \\`onCancel\\` handler was attached after the promise ${this.#state.description}.`);\n\t\t\t\t}\n\n\t\t\t\tthis.#cancelHandlers.push(handler);\n\t\t\t};\n\n\t\t\tObject.defineProperties(onCancel, {\n\t\t\t\tshouldReject: {\n\t\t\t\t\tget: () => this.#rejectOnCancel,\n\t\t\t\t\tset: boolean => {\n\t\t\t\t\t\tthis.#rejectOnCancel = boolean;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texecutor(onResolve, onReject, onCancel);\n\t\t});\n\t}\n\n\t// eslint-disable-next-line unicorn/no-thenable\n\tthen(onFulfilled, onRejected) {\n\t\treturn this.#promise.then(onFulfilled, onRejected);\n\t}\n\n\tcatch(onRejected) {\n\t\treturn this.#promise.catch(onRejected);\n\t}\n\n\tfinally(onFinally) {\n\t\treturn this.#promise.finally(onFinally);\n\t}\n\n\tcancel(reason) {\n\t\tif (this.#state !== promiseState.pending) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#setState(promiseState.canceled);\n\n\t\tif (this.#cancelHandlers.length > 0) {\n\t\t\ttry {\n\t\t\t\tfor (const handler of this.#cancelHandlers) {\n\t\t\t\t\thandler();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.#reject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.#rejectOnCancel) {\n\t\t\tthis.#reject(new CancelError(reason));\n\t\t}\n\t}\n\n\tget isCanceled() {\n\t\treturn this.#state === promiseState.canceled;\n\t}\n\n\t#setState(state) {\n\t\tif (this.#state === promiseState.pending) {\n\t\t\tthis.#state = state;\n\t\t}\n\t}\n}\n\nObject.setPrototypeOf(PCancelable.prototype, Promise.prototype);\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new AbortError(errorMessage)\n\t: new DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined\n\t\t? getDOMException('This operation was aborted.')\n\t\t: signal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t} = options;\n\n\tlet timer;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t});\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tpromise.then(resolve, reject);\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n    #queue = [];\n    enqueue(run, options) {\n        options = {\n            priority: 0,\n            ...options,\n        };\n        const element = {\n            priority: options.priority,\n            run,\n        };\n        if (this.size && this.#queue[this.size - 1].priority >= options.priority) {\n            this.#queue.push(element);\n            return;\n        }\n        const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n        this.#queue.splice(index, 0, element);\n    }\n    dequeue() {\n        const item = this.#queue.shift();\n        return item?.run;\n    }\n    filter(options) {\n        return this.#queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n    }\n    get size() {\n        return this.#queue.length;\n    }\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n    let first = 0;\n    let count = array.length;\n    while (count > 0) {\n        const step = Math.trunc(count / 2);\n        let it = first + step;\n        if (comparator(array[it], value) <= 0) {\n            first = ++it;\n            count -= step + 1;\n        }\n        else {\n            count = step;\n        }\n    }\n    return first;\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout, { TimeoutError } from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n    #carryoverConcurrencyCount;\n    #isIntervalIgnored;\n    #intervalCount = 0;\n    #intervalCap;\n    #interval;\n    #intervalEnd = 0;\n    #intervalId;\n    #timeoutId;\n    #queue;\n    #queueClass;\n    #pending = 0;\n    // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n    #concurrency;\n    #isPaused;\n    #throwOnTimeout;\n    /**\n    Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.\n\n    Applies to each future operation.\n    */\n    timeout;\n    // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`\n    constructor(options) {\n        super();\n        // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n        options = {\n            carryoverConcurrencyCount: false,\n            intervalCap: Number.POSITIVE_INFINITY,\n            interval: 0,\n            concurrency: Number.POSITIVE_INFINITY,\n            autoStart: true,\n            queueClass: PriorityQueue,\n            ...options,\n        };\n        if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n            throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n        }\n        if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n            throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n        }\n        this.#carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n        this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n        this.#intervalCap = options.intervalCap;\n        this.#interval = options.interval;\n        this.#queue = new options.queueClass();\n        this.#queueClass = options.queueClass;\n        this.concurrency = options.concurrency;\n        this.timeout = options.timeout;\n        this.#throwOnTimeout = options.throwOnTimeout === true;\n        this.#isPaused = options.autoStart === false;\n    }\n    get #doesIntervalAllowAnother() {\n        return this.#isIntervalIgnored || this.#intervalCount < this.#intervalCap;\n    }\n    get #doesConcurrentAllowAnother() {\n        return this.#pending < this.#concurrency;\n    }\n    #next() {\n        this.#pending--;\n        this.#tryToStartAnother();\n        this.emit('next');\n    }\n    #onResumeInterval() {\n        this.#onInterval();\n        this.#initializeIntervalIfNeeded();\n        this.#timeoutId = undefined;\n    }\n    get #isIntervalPaused() {\n        const now = Date.now();\n        if (this.#intervalId === undefined) {\n            const delay = this.#intervalEnd - now;\n            if (delay < 0) {\n                // Act as the interval was done\n                // We don't need to resume it here because it will be resumed on line 160\n                this.#intervalCount = (this.#carryoverConcurrencyCount) ? this.#pending : 0;\n            }\n            else {\n                // Act as the interval is pending\n                if (this.#timeoutId === undefined) {\n                    this.#timeoutId = setTimeout(() => {\n                        this.#onResumeInterval();\n                    }, delay);\n                }\n                return true;\n            }\n        }\n        return false;\n    }\n    #tryToStartAnother() {\n        if (this.#queue.size === 0) {\n            // We can clear the interval (\"pause\")\n            // Because we can redo it later (\"resume\")\n            if (this.#intervalId) {\n                clearInterval(this.#intervalId);\n            }\n            this.#intervalId = undefined;\n            this.emit('empty');\n            if (this.#pending === 0) {\n                this.emit('idle');\n            }\n            return false;\n        }\n        if (!this.#isPaused) {\n            const canInitializeInterval = !this.#isIntervalPaused;\n            if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n                const job = this.#queue.dequeue();\n                if (!job) {\n                    return false;\n                }\n                this.emit('active');\n                job();\n                if (canInitializeInterval) {\n                    this.#initializeIntervalIfNeeded();\n                }\n                return true;\n            }\n        }\n        return false;\n    }\n    #initializeIntervalIfNeeded() {\n        if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n            return;\n        }\n        this.#intervalId = setInterval(() => {\n            this.#onInterval();\n        }, this.#interval);\n        this.#intervalEnd = Date.now() + this.#interval;\n    }\n    #onInterval() {\n        if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n            clearInterval(this.#intervalId);\n            this.#intervalId = undefined;\n        }\n        this.#intervalCount = this.#carryoverConcurrencyCount ? this.#pending : 0;\n        this.#processQueue();\n    }\n    /**\n    Executes all queued functions until it reaches the limit.\n    */\n    #processQueue() {\n        // eslint-disable-next-line no-empty\n        while (this.#tryToStartAnother()) { }\n    }\n    get concurrency() {\n        return this.#concurrency;\n    }\n    set concurrency(newConcurrency) {\n        if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n            throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n        }\n        this.#concurrency = newConcurrency;\n        this.#processQueue();\n    }\n    async #throwOnAbort(signal) {\n        return new Promise((_resolve, reject) => {\n            signal.addEventListener('abort', () => {\n                reject(signal.reason);\n            }, { once: true });\n        });\n    }\n    async add(function_, options = {}) {\n        options = {\n            timeout: this.timeout,\n            throwOnTimeout: this.#throwOnTimeout,\n            ...options,\n        };\n        return new Promise((resolve, reject) => {\n            this.#queue.enqueue(async () => {\n                this.#pending++;\n                this.#intervalCount++;\n                try {\n                    options.signal?.throwIfAborted();\n                    let operation = function_({ signal: options.signal });\n                    if (options.timeout) {\n                        operation = pTimeout(Promise.resolve(operation), { milliseconds: options.timeout });\n                    }\n                    if (options.signal) {\n                        operation = Promise.race([operation, this.#throwOnAbort(options.signal)]);\n                    }\n                    const result = await operation;\n                    resolve(result);\n                    this.emit('completed', result);\n                }\n                catch (error) {\n                    if (error instanceof TimeoutError && !options.throwOnTimeout) {\n                        resolve();\n                        return;\n                    }\n                    reject(error);\n                    this.emit('error', error);\n                }\n                finally {\n                    this.#next();\n                }\n            }, options);\n            this.emit('add');\n            this.#tryToStartAnother();\n        });\n    }\n    async addAll(functions, options) {\n        return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n    }\n    /**\n    Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n    */\n    start() {\n        if (!this.#isPaused) {\n            return this;\n        }\n        this.#isPaused = false;\n        this.#processQueue();\n        return this;\n    }\n    /**\n    Put queue execution on hold.\n    */\n    pause() {\n        this.#isPaused = true;\n    }\n    /**\n    Clear the queue.\n    */\n    clear() {\n        this.#queue = new this.#queueClass();\n    }\n    /**\n    Can be called multiple times. Useful if you for example add additional items at a later time.\n\n    @returns A promise that settles when the queue becomes empty.\n    */\n    async onEmpty() {\n        // Instantly resolve if the queue is empty\n        if (this.#queue.size === 0) {\n            return;\n        }\n        await this.#onEvent('empty');\n    }\n    /**\n    @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n    If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n    Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n    */\n    async onSizeLessThan(limit) {\n        // Instantly resolve if the queue is empty.\n        if (this.#queue.size < limit) {\n            return;\n        }\n        await this.#onEvent('next', () => this.#queue.size < limit);\n    }\n    /**\n    The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n    @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n    */\n    async onIdle() {\n        // Instantly resolve if none pending and if nothing else is queued\n        if (this.#pending === 0 && this.#queue.size === 0) {\n            return;\n        }\n        await this.#onEvent('idle');\n    }\n    async #onEvent(event, filter) {\n        return new Promise(resolve => {\n            const listener = () => {\n                if (filter && !filter()) {\n                    return;\n                }\n                this.off(event, listener);\n                resolve();\n            };\n            this.on(event, listener);\n        });\n    }\n    /**\n    Size of the queue, the number of queued items waiting to run.\n    */\n    get size() {\n        return this.#queue.size;\n    }\n    /**\n    Size of the queue, filtered by the given options.\n\n    For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n    */\n    sizeBy(options) {\n        // eslint-disable-next-line unicorn/no-array-callback-reference\n        return this.#queue.filter(options).length;\n    }\n    /**\n    Number of running items (no longer in the queue).\n    */\n    get pending() {\n        return this.#pending;\n    }\n    /**\n    Whether the queue is currently paused.\n    */\n    get isPaused() {\n        return this.#isPaused;\n    }\n}\n","import '../assets/index-Ussc_ol3.css';\nimport { CanceledError as b } from \"axios\";\nimport { encodePath as q } from \"@nextcloud/paths\";\nimport { Folder as z, Permission as H, getNewFileMenuEntries as G } from \"@nextcloud/files\";\nimport { generateRemoteUrl as j } from \"@nextcloud/router\";\nimport { getCurrentUser as F } from \"@nextcloud/auth\";\nimport v from \"@nextcloud/axios\";\nimport Y from \"p-cancelable\";\nimport V from \"p-queue\";\nimport { getLoggerBuilder as _ } from \"@nextcloud/logger\";\nimport { showError as P } from \"@nextcloud/dialogs\";\nimport K from \"simple-eta\";\nimport E, { defineAsyncComponent as $ } from \"vue\";\nimport J from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport Q from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport Z from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport X from \"@nextcloud/vue/dist/Components/NcIconSvgWrapper.js\";\nimport ss from \"@nextcloud/vue/dist/Components/NcProgressBar.js\";\nimport { getGettextBuilder as es } from \"@nextcloud/l10n/gettext\";\nconst A = async function(e, s, t, n = () => {\n}, i = void 0, o = {}) {\n  let l;\n  return s instanceof Blob ? l = s : l = await s(), i && (o.Destination = i), o[\"Content-Type\"] || (o[\"Content-Type\"] = \"application/octet-stream\"), await v.request({\n    method: \"PUT\",\n    url: e,\n    data: l,\n    signal: t,\n    onUploadProgress: n,\n    headers: o\n  });\n}, B = function(e, s, t) {\n  return s === 0 && e.size <= t ? Promise.resolve(new Blob([e], { type: e.type || \"application/octet-stream\" })) : Promise.resolve(new Blob([e.slice(s, s + t)], { type: \"application/octet-stream\" }));\n}, ts = async function(e = void 0) {\n  const s = j(`dav/uploads/${F()?.uid}`), n = `web-file-upload-${[...Array(16)].map(() => Math.floor(Math.random() * 16).toString(16)).join(\"\")}`, i = `${s}/${n}`, o = e ? { Destination: e } : void 0;\n  return await v.request({\n    method: \"MKCOL\",\n    url: i,\n    headers: o\n  }), i;\n}, x = function(e = void 0) {\n  const s = window.OC?.appConfig?.files?.max_chunk_size;\n  if (s <= 0)\n    return 0;\n  if (!Number(s))\n    return 10 * 1024 * 1024;\n  const t = Math.max(Number(s), 5 * 1024 * 1024);\n  return e === void 0 ? t : Math.max(t, Math.ceil(e / 1e4));\n};\nvar c = /* @__PURE__ */ ((e) => (e[e.INITIALIZED = 0] = \"INITIALIZED\", e[e.UPLOADING = 1] = \"UPLOADING\", e[e.ASSEMBLING = 2] = \"ASSEMBLING\", e[e.FINISHED = 3] = \"FINISHED\", e[e.CANCELLED = 4] = \"CANCELLED\", e[e.FAILED = 5] = \"FAILED\", e))(c || {});\nlet ns = class {\n  _source;\n  _file;\n  _isChunked;\n  _chunks;\n  _size;\n  _uploaded = 0;\n  _startTime = 0;\n  _status = 0;\n  _controller;\n  _response = null;\n  constructor(s, t = !1, n, i) {\n    const o = Math.min(x() > 0 ? Math.ceil(n / x()) : 1, 1e4);\n    this._source = s, this._isChunked = t && x() > 0 && o > 1, this._chunks = this._isChunked ? o : 1, this._size = n, this._file = i, this._controller = new AbortController();\n  }\n  get source() {\n    return this._source;\n  }\n  get file() {\n    return this._file;\n  }\n  get isChunked() {\n    return this._isChunked;\n  }\n  get chunks() {\n    return this._chunks;\n  }\n  get size() {\n    return this._size;\n  }\n  get startTime() {\n    return this._startTime;\n  }\n  set response(s) {\n    this._response = s;\n  }\n  get response() {\n    return this._response;\n  }\n  get uploaded() {\n    return this._uploaded;\n  }\n  /**\n   * Update the uploaded bytes of this upload\n   */\n  set uploaded(s) {\n    if (s >= this._size) {\n      this._status = this._isChunked ? 2 : 3, this._uploaded = this._size;\n      return;\n    }\n    this._status = 1, this._uploaded = s, this._startTime === 0 && (this._startTime = (/* @__PURE__ */ new Date()).getTime());\n  }\n  get status() {\n    return this._status;\n  }\n  /**\n   * Update this upload status\n   */\n  set status(s) {\n    this._status = s;\n  }\n  /**\n   * Returns the axios cancel token source\n   */\n  get signal() {\n    return this._controller.signal;\n  }\n  /**\n   * Cancel any ongoing requests linked to this upload\n   */\n  cancel() {\n    this._controller.abort(), this._status = 4;\n  }\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst as = (e) => e === null ? _().setApp(\"uploader\").build() : _().setApp(\"uploader\").setUid(e.uid).build(), g = as(F());\nvar I = /* @__PURE__ */ ((e) => (e[e.IDLE = 0] = \"IDLE\", e[e.UPLOADING = 1] = \"UPLOADING\", e[e.PAUSED = 2] = \"PAUSED\", e))(I || {});\nclass N {\n  // Initialized via setter in the constructor\n  _destinationFolder;\n  _isPublic;\n  // Global upload queue\n  _uploadQueue = [];\n  _jobQueue = new V({ concurrency: 3 });\n  _queueSize = 0;\n  _queueProgress = 0;\n  _queueStatus = 0;\n  _notifiers = [];\n  /**\n   * Initialize uploader\n   *\n   * @param {boolean} isPublic are we in public mode ?\n   * @param {Folder} destinationFolder the context folder to operate, relative to the root folder\n   */\n  constructor(s = !1, t) {\n    if (this._isPublic = s, !t) {\n      const n = F()?.uid, i = j(`dav/files/${n}`);\n      if (!n)\n        throw new Error(\"User is not logged in\");\n      t = new z({\n        id: 0,\n        owner: n,\n        permissions: H.ALL,\n        root: `/files/${n}`,\n        source: i\n      });\n    }\n    this.destination = t, g.debug(\"Upload workspace initialized\", {\n      destination: this.destination,\n      root: this.root,\n      isPublic: s,\n      maxChunksSize: x()\n    });\n  }\n  /**\n   * Get the upload destination path relative to the root folder\n   */\n  get destination() {\n    return this._destinationFolder;\n  }\n  /**\n   * Set the upload destination path relative to the root folder\n   */\n  set destination(s) {\n    if (!s)\n      throw new Error(\"Invalid destination folder\");\n    g.debug(\"Destination set\", { folder: s }), this._destinationFolder = s;\n  }\n  /**\n   * Get the root folder\n   */\n  get root() {\n    return this._destinationFolder.source;\n  }\n  /**\n   * Get the upload queue\n   */\n  get queue() {\n    return this._uploadQueue;\n  }\n  reset() {\n    this._uploadQueue.splice(0, this._uploadQueue.length), this._jobQueue.clear(), this._queueSize = 0, this._queueProgress = 0, this._queueStatus = 0;\n  }\n  /**\n   * Pause any ongoing upload(s)\n   */\n  pause() {\n    this._jobQueue.pause(), this._queueStatus = 2;\n  }\n  /**\n   * Resume any pending upload(s)\n   */\n  start() {\n    this._jobQueue.start(), this._queueStatus = 1, this.updateStats();\n  }\n  /**\n   * Get the upload queue stats\n   */\n  get info() {\n    return {\n      size: this._queueSize,\n      progress: this._queueProgress,\n      status: this._queueStatus\n    };\n  }\n  updateStats() {\n    const s = this._uploadQueue.map((n) => n.size).reduce((n, i) => n + i, 0), t = this._uploadQueue.map((n) => n.uploaded).reduce((n, i) => n + i, 0);\n    this._queueSize = s, this._queueProgress = t, this._queueStatus !== 2 && (this._queueStatus = this._jobQueue.size > 0 ? 1 : 0);\n  }\n  addNotifier(s) {\n    this._notifiers.push(s);\n  }\n  /**\n   * Upload a file to the given path\n   * @param {string} destinationPath the destination path relative to the root folder. e.g. /foo/bar.txt\n   * @param {File} file the file to upload\n   * @param {string} root the root folder to upload to\n   */\n  upload(s, t, n) {\n    const i = `${n || this.root}/${s.replace(/^\\//, \"\")}`, { origin: o } = new URL(i), l = o + q(i.slice(o.length));\n    g.debug(`Uploading ${t.name} to ${l}`);\n    const f = x(t.size), r = f === 0 || t.size < f || this._isPublic, a = new ns(i, !r, t.size, t);\n    return this._uploadQueue.push(a), this.updateStats(), new Y(async (T, d, U) => {\n      if (U(a.cancel), r) {\n        g.debug(\"Initializing regular upload\", { file: t, upload: a });\n        const p = await B(t, 0, a.size), L = async () => {\n          try {\n            a.response = await A(\n              l,\n              p,\n              a.signal,\n              (m) => {\n                a.uploaded = a.uploaded + m.bytes, this.updateStats();\n              },\n              void 0,\n              {\n                \"X-OC-Mtime\": t.lastModified / 1e3,\n                \"Content-Type\": t.type\n              }\n            ), a.uploaded = a.size, this.updateStats(), g.debug(`Successfully uploaded ${t.name}`, { file: t, upload: a }), T(a);\n          } catch (m) {\n            if (m instanceof b) {\n              a.status = c.FAILED, d(\"Upload has been cancelled\");\n              return;\n            }\n            m?.response && (a.response = m.response), a.status = c.FAILED, g.error(`Failed uploading ${t.name}`, { error: m, file: t, upload: a }), d(\"Failed uploading the file\");\n          }\n          this._notifiers.forEach((m) => {\n            try {\n              m(a);\n            } catch {\n            }\n          });\n        };\n        this._jobQueue.add(L), this.updateStats();\n      } else {\n        g.debug(\"Initializing chunked upload\", { file: t, upload: a });\n        const p = await ts(l), L = [];\n        for (let m = 0; m < a.chunks; m++) {\n          const w = m * f, D = Math.min(w + f, a.size), W = () => B(t, w, f), O = () => A(\n            `${p}/${m + 1}`,\n            W,\n            a.signal,\n            () => this.updateStats(),\n            l,\n            {\n              \"X-OC-Mtime\": t.lastModified / 1e3,\n              \"OC-Total-Length\": t.size,\n              \"Content-Type\": \"application/octet-stream\"\n            }\n          ).then(() => {\n            a.uploaded = a.uploaded + f;\n          }).catch((h) => {\n            throw h?.response?.status === 507 ? (g.error(\"Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks\", { error: h, upload: a }), a.cancel(), a.status = c.FAILED, h) : (h instanceof b || (g.error(`Chunk ${m + 1} ${w} - ${D} uploading failed`, { error: h, upload: a }), a.cancel(), a.status = c.FAILED), h);\n          });\n          L.push(this._jobQueue.add(O));\n        }\n        try {\n          await Promise.all(L), this.updateStats(), a.response = await v.request({\n            method: \"MOVE\",\n            url: `${p}/.file`,\n            headers: {\n              \"X-OC-Mtime\": t.lastModified / 1e3,\n              \"OC-Total-Length\": t.size,\n              Destination: l\n            }\n          }), this.updateStats(), a.status = c.FINISHED, g.debug(`Successfully uploaded ${t.name}`, { file: t, upload: a }), T(a);\n        } catch (m) {\n          m instanceof b ? (a.status = c.FAILED, d(\"Upload has been cancelled\")) : (a.status = c.FAILED, d(\"Failed assembling the chunks together\")), v.request({\n            method: \"DELETE\",\n            url: `${p}`\n          });\n        }\n        this._notifiers.forEach((m) => {\n          try {\n            m(a);\n          } catch {\n          }\n        });\n      }\n      return this._jobQueue.onIdle().then(() => this.reset()), a;\n    });\n  }\n}\nfunction y(e, s, t, n, i, o, l, f) {\n  var r = typeof e == \"function\" ? e.options : e;\n  s && (r.render = s, r.staticRenderFns = t, r._compiled = !0), n && (r.functional = !0), o && (r._scopeId = \"data-v-\" + o);\n  var a;\n  if (l ? (a = function(d) {\n    d = d || // cached call\n    this.$vnode && this.$vnode.ssrContext || // stateful\n    this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !d && typeof __VUE_SSR_CONTEXT__ < \"u\" && (d = __VUE_SSR_CONTEXT__), i && i.call(this, d), d && d._registeredComponents && d._registeredComponents.add(l);\n  }, r._ssrRegister = a) : i && (a = f ? function() {\n    i.call(\n      this,\n      (r.functional ? this.parent : this).$root.$options.shadowRoot\n    );\n  } : i), a)\n    if (r.functional) {\n      r._injectStyles = a;\n      var S = r.render;\n      r.render = function(U, p) {\n        return a.call(p), S(U, p);\n      };\n    } else {\n      var T = r.beforeCreate;\n      r.beforeCreate = T ? [].concat(T, a) : [a];\n    }\n  return {\n    exports: e,\n    options: r\n  };\n}\nconst is = {\n  name: \"CancelIcon\",\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 ls = function() {\n  var s = this, t = s._self._c;\n  return t(\"span\", s._b({ staticClass: \"material-design-icon cancel-icon\", attrs: { \"aria-hidden\": s.title ? null : !0, \"aria-label\": s.title, role: \"img\" }, on: { click: function(n) {\n    return s.$emit(\"click\", n);\n  } } }, \"span\", s.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: s.fillColor, width: s.size, height: s.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z\" } }, [s.title ? t(\"title\", [s._v(s._s(s.title))]) : s._e()])])]);\n}, rs = [], os = /* @__PURE__ */ y(\n  is,\n  ls,\n  rs,\n  !1,\n  null,\n  null,\n  null,\n  null\n);\nconst ms = os.exports, ds = {\n  name: \"PlusIcon\",\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 gs = function() {\n  var s = this, t = s._self._c;\n  return t(\"span\", s._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": s.title ? null : !0, \"aria-label\": s.title, role: \"img\" }, on: { click: function(n) {\n    return s.$emit(\"click\", n);\n  } } }, \"span\", s.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: s.fillColor, width: s.size, height: s.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [s.title ? t(\"title\", [s._v(s._s(s.title))]) : s._e()])])]);\n}, us = [], cs = /* @__PURE__ */ y(\n  ds,\n  gs,\n  us,\n  !1,\n  null,\n  null,\n  null,\n  null\n);\nconst fs = cs.exports, ps = {\n  name: \"UploadIcon\",\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 hs = function() {\n  var s = this, t = s._self._c;\n  return t(\"span\", s._b({ staticClass: \"material-design-icon upload-icon\", attrs: { \"aria-hidden\": s.title ? null : !0, \"aria-label\": s.title, role: \"img\" }, on: { click: function(n) {\n    return s.$emit(\"click\", n);\n  } } }, \"span\", s.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: s.fillColor, width: s.size, height: s.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\" } }, [s.title ? t(\"title\", [s._v(s._s(s.title))]) : s._e()])])]);\n}, Ts = [], ws = /* @__PURE__ */ y(\n  ps,\n  hs,\n  Ts,\n  !1,\n  null,\n  null,\n  null,\n  null\n);\nconst xs = ws.exports;\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst R = es().detectLocale();\n[{ locale: \"af\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"af\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: af\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ar\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Ali <alimahwer@yahoo.com>, 2024\", \"Language-Team\": \"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ar\", \"Plural-Forms\": \"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nAli <alimahwer@yahoo.com>, 2024\n` }, msgstr: [`Last-Translator: Ali <alimahwer@yahoo.com>, 2024\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} ملف متعارض\", \"{count} ملف متعارض\", \"{count} ملفان متعارضان\", \"{count} ملف متعارض\", \"{count} ملفات متعارضة\", \"{count} ملفات متعارضة\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} ملف متعارض في n {dirname}\", \"{count} ملف متعارض في n {dirname}\", \"{count} ملفان متعارضان في n {dirname}\", \"{count} ملف متعارض في n {dirname}\", \"{count} ملفات متعارضة في n {dirname}\", \"{count} ملفات متعارضة في n {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} ثانية متبقية\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} متبقية\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"باقٍ بضعُ ثوانٍ\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"إلغاء\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"إلغِ العملية بالكامل\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"إلغاء عمليات رفع الملفات\"] }, Continue: { msgid: \"Continue\", msgstr: [\"إستمر\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"تقدير الوقت المتبقي\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"الإصدار الحالي\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"إذا اخترت الإبقاء على النسختين معاً، فإن الملف المنسوخ سيتم إلحاق رقم تسلسلي في نهاية اسمه.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"تاريخ آخر تعديل غير معلوم\"] }, New: { msgid: \"New\", msgstr: [\"جديد\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"نسخة جديدة\"] }, paused: { msgid: \"paused\", msgstr: [\"مُجمَّد\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"معاينة الصورة\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"حدِّد كل صناديق الخيارات\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"حدِّد كل الملفات الموجودة\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"حدِّد كل الملفات الجديدة\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"حجم غير معلوم\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"تمَّ إلغاء الرفع\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"رفع ملفات\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"تقدُّم الرفع \"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"أيُّ الملفات ترغب في الإبقاء عليها؟\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار.\"] } } } } }, { locale: \"ar_SA\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ar_SA\", \"Plural-Forms\": \"nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar_SA\nPlural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ast\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"enolp <enolp@softastur.org>, 2023\", \"Language-Team\": \"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ast\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nenolp <enolp@softastur.org>, 2023\n` }, msgstr: [`Last-Translator: enolp <enolp@softastur.org>, 2023\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ast\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} ficheru en coflictu\", \"{count} ficheros en coflictu\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} ficheru en coflictu en {dirname}\", \"{count} ficheros en coflictu en {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Queden {seconds} segundos\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Tiempu que queda: {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"queden unos segundos\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Encaboxar les xubes\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Siguir\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando'l tiempu que falta\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versión esistente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"La data de la última modificación ye desconocida\"] }, New: { msgid: \"New\", msgstr: [\"Nuevu\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Versión nueva\"] }, paused: { msgid: \"paused\", msgstr: [\"en posa\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Previsualizar la imaxe\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Marcar toles caxelles\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleicionar tolos ficheros esistentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleicionar tolos ficheros nuevos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Saltar esti ficheru\", \"Saltar {count} ficheros\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamañu desconocíu\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Encaboxóse la xuba\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Xubir ficheros\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Xuba en cursu\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"¿Qué ficheros quies caltener?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Tienes de seleicionar polo menos una versión de cada ficheru pa siguir.\"] } } } } }, { locale: \"az\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Rashad Aliyev <microphprashad@gmail.com>, 2023\", \"Language-Team\": \"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"az\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nRashad Aliyev <microphprashad@gmail.com>, 2023\n` }, msgstr: [`Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: az\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} saniyə qalıb\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} qalıb\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"bir neçə saniyə qalıb\"] }, Add: { msgid: \"Add\", msgstr: [\"Əlavə et\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Yükləməni imtina et\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Təxmini qalan vaxt\"] }, paused: { msgid: \"paused\", msgstr: [\"pauzadadır\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Faylları yüklə\"] } } } } }, { locale: \"be\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"be\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: be\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"bg_BG\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"bg_BG\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bg_BG\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"bn_BD\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"bn_BD\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bn_BD\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"br\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"br\", \"Plural-Forms\": \"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: br\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"bs\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"bs\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bs\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ca\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\", \"Language-Team\": \"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ca\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMarc Riera <marcriera@softcatala.org>, 2022\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\n` }, msgstr: [`Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ca\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Queden {seconds} segons\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"Queden {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Queden uns segons\"] }, Add: { msgid: \"Add\", msgstr: [\"Afegeix\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancel·la les pujades\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"S'està estimant el temps restant\"] }, paused: { msgid: \"paused\", msgstr: [\"En pausa\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Puja els fitxers\"] } } } } }, { locale: \"cs\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Pavel Borecki <pavel.borecki@gmail.com>, 2022\", \"Language-Team\": \"Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"cs\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nPavel Borecki <pavel.borecki@gmail.com>, 2022\n` }, msgstr: [`Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2022\nLanguage-Team: Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"zbývá {seconds}\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"zbývá {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"zbývá několik sekund\"] }, Add: { msgid: \"Add\", msgstr: [\"Přidat\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Zrušit nahrávání\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"odhadovaný zbývající čas\"] }, paused: { msgid: \"paused\", msgstr: [\"pozastaveno\"] } } } } }, { locale: \"cs_CZ\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Michal Šmahel <ceskyDJ@seznam.cz>, 2024\", \"Language-Team\": \"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"cs_CZ\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\n` }, msgstr: [`Last-Translator: Michal Šmahel <ceskyDJ@seznam.cz>, 2024\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs_CZ\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} kolize souborů\", \"{count} kolize souborů\", \"{count} kolizí souborů\", \"{count} kolize souborů\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} kolize souboru v {dirname}\", \"{count} kolize souboru v {dirname}\", \"{count} kolizí souborů v {dirname}\", \"{count} kolize souboru v {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"zbývá {seconds}\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"zbývá {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"zbývá několik sekund\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Zrušit\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Zrušit celou operaci\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Zrušit nahrávání\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Pokračovat\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"odhaduje se zbývající čas\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Existující verze\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Pokud vyberete obě verze, zkopírovaný soubor bude mít k názvu přidáno číslo.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Neznámé datum poslední úpravy\"] }, New: { msgid: \"New\", msgstr: [\"Nové\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nová verze\"] }, paused: { msgid: \"paused\", msgstr: [\"pozastaveno\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Náhled obrázku\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Označit všechny zaškrtávací kolonky\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Vybrat veškeré stávající soubory\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Vybrat veškeré nové soubory\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Přeskočit tento soubor\", \"Přeskočit {count} soubory\", \"Přeskočit {count} souborů\", \"Přeskočit {count} soubory\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Neznámá velikost\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Nahrávání zrušeno\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Nahrát soubory\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Postup v nahrávání\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Které soubory si přejete ponechat?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru.\"] } } } } }, { locale: \"cy_GB\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"cy_GB\", \"Plural-Forms\": \"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cy_GB\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"da\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Martin Bonde <Martin@maboni.dk>, 2024\", \"Language-Team\": \"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"da\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMartin Bonde <Martin@maboni.dk>, 2024\n` }, msgstr: [`Last-Translator: Martin Bonde <Martin@maboni.dk>, 2024\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: da\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} fil konflikt\", \"{count} filer i konflikt\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} fil konflikt i {dirname}\", \"{count} filer i konflikt i {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{sekunder} sekunder tilbage\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{tid} tilbage\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"et par sekunder tilbage\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Annuller\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Annuller hele handlingen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Annuller uploads\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsæt\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimering af resterende tid\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Eksisterende version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Hvis du vælger begge versioner vil den kopierede fil få et nummer tilføjet til sit navn.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Sidste modifikationsdato ukendt\"] }, New: { msgid: \"New\", msgstr: [\"Ny\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ny version\"] }, paused: { msgid: \"paused\", msgstr: [\"pauset\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Forhåndsvisning af billede\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Vælg alle felter\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Vælg alle eksisterende filer\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Vælg alle nye filer\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Spring denne fil over\", \"Spring {count} filer over\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Ukendt størrelse\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Upload annulleret\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Upload filer\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Upload fremskridt\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hvilke filer ønsker du at beholde?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du skal vælge mindst én version af hver fil for at fortsætte.\"] } } } } }, { locale: \"de\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Mario Siegmann <mario_siegmann@web.de>, 2024\", \"Language-Team\": \"German (https://app.transifex.com/nextcloud/teams/64236/de/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"de\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\n` }, msgstr: [`Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2024\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} Sekunden verbleibend\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} verbleibend\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"noch ein paar Sekunden\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Abbrechen\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Hochladen abbrechen\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsetzen\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Geschätzte verbleibende Zeit\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Vorhandene Version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Wenn du beide Versionen auswählst, wird der kopierten Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Datum der letzten Änderung unbekannt\"] }, New: { msgid: \"New\", msgstr: [\"Neu\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Neue Version\"] }, paused: { msgid: \"paused\", msgstr: [\"Pausiert\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Vorschaubild\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Alle neuen Dateien auswählen\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Diese Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Unbekannte Größe\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Hochladen abgebrochen\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Dateien hochladen\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Welche Dateien möchtest du behalten?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { locale: \"de_DE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Mario Siegmann <mario_siegmann@web.de>, 2024\", \"Language-Team\": \"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"de_DE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\n` }, msgstr: [`Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2024\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de_DE\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} Sekunden verbleiben\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} verbleibend\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"ein paar Sekunden verbleiben\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Abbrechen\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Hochladen abbrechen\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsetzen\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Geschätzte verbleibende Zeit\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Vorhandene Version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Wenn Sie beide Versionen auswählen, wird der kopierten Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Datum der letzten Änderung unbekannt\"] }, New: { msgid: \"New\", msgstr: [\"Neu\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Neue Version\"] }, paused: { msgid: \"paused\", msgstr: [\"Pausiert\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Vorschaubild\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Alle neuen Dateien auswählen\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Unbekannte Größe\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Hochladen abgebrochen\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Dateien hochladen\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Welche Dateien möchten Sie behalten?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { locale: \"el\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Nik Pap, 2022\", \"Language-Team\": \"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"el\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nNik Pap, 2022\n` }, msgstr: [`Last-Translator: Nik Pap, 2022\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"απομένουν {seconds} δευτερόλεπτα\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"απομένουν {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"απομένουν λίγα δευτερόλεπτα\"] }, Add: { msgid: \"Add\", msgstr: [\"Προσθήκη\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Ακύρωση μεταφορτώσεων\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"εκτίμηση του χρόνου που απομένει\"] }, paused: { msgid: \"paused\", msgstr: [\"σε παύση\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Μεταφόρτωση αρχείων\"] } } } } }, { locale: \"el_GR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"el_GR\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el_GR\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"en_GB\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Andi Chandler <andi@gowling.com>, 2023\", \"Language-Team\": \"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"en_GB\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nAndi Chandler <andi@gowling.com>, 2023\n` }, msgstr: [`Last-Translator: Andi Chandler <andi@gowling.com>, 2023\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: en_GB\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} file conflict\", \"{count} files conflict\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} file conflict in {dirname}\", \"{count} file conflicts in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} seconds left\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} left\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"a few seconds left\"] }, Add: { msgid: \"Add\", msgstr: [\"Add\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancel uploads\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continue\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimating time left\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Existing version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"If you select both versions, the copied file will have a number added to its name.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Last modified date unknown\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"New version\"] }, paused: { msgid: \"paused\", msgstr: [\"paused\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Preview image\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Select all checkboxes\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Select all existing files\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Select all new files\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Skip this file\", \"Skip {count} files\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Unknown size\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Upload cancelled\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Upload files\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Which files do you want to keep?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"You need to select at least one version of each file to continue.\"] } } } } }, { locale: \"eo\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"eo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eo\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Julio C. Ortega, 2024\", \"Language-Team\": \"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nFranciscoFJ <dev-ooo@satel-sa.com>, 2023\nNext Cloud <nextcloud.translator.es@cgj.es>, 2023\nJulio C. Ortega, 2024\n` }, msgstr: [`Last-Translator: Julio C. Ortega, 2024\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} archivo en conflicto\", \"{count} archivos en conflicto\", \"{count} archivos en conflicto\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} archivo en conflicto en {dirname}\", \"{count} archivos en conflicto en {dirname}\", \"{count} archivos en conflicto en {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan unos segundos\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar subidas\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuar\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versión existente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Si selecciona ambas versiones, al archivo copiado se le añadirá un número en el nombre.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Última fecha de modificación desconocida\"] }, New: { msgid: \"New\", msgstr: [\"Nuevo\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nueva versión\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Previsualizar imagen\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleccionar todos los archivos nuevos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Saltar este archivo\", \"Saltar {count} archivos\", \"Saltar {count} archivos\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamaño desconocido\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Subida cancelada\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Subir archivos\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Progreso de la subida\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"¿Qué archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { locale: \"es_419\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"ALEJANDRO CASTRO, 2022\", \"Language-Team\": \"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_419\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nALEJANDRO CASTRO, 2022\n` }, msgstr: [`Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_419\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{tiempo} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan pocos segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"agregar\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar subidas\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Subir archivos\"] } } } } }, { locale: \"es_AR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Matias Iglesias, 2022\", \"Language-Team\": \"Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_AR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMatias Iglesias, 2022\n` }, msgstr: [`Last-Translator: Matias Iglesias, 2022\nLanguage-Team: Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_AR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan unos segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"Añadir\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar subidas\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Subir archivos\"] } } } } }, { locale: \"es_CL\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_CL\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CL\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_CO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_CO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_CR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_CR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_DO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_DO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_DO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_EC\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_EC\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_EC\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_GT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_GT\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_GT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_HN\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_HN\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_HN\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_MX\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"ALEJANDRO CASTRO, 2022\", \"Language-Team\": \"Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_MX\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nLuis Francisco Castro, 2022\nALEJANDRO CASTRO, 2022\n` }, msgstr: [`Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_MX\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{tiempo} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan pocos segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"agregar\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"cancelar las cargas\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, paused: { msgid: \"paused\", msgstr: [\"en pausa\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"cargar archivos\"] } } } } }, { locale: \"es_NI\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_NI\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_NI\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PA\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PA\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PA\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PE\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PE\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PY\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_SV\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_SV\", \"Plural-Forms\": \"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_SV\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_UY\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_UY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_UY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"et_EE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Taavo Roos, 2023\", \"Language-Team\": \"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"et_EE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMait R, 2022\nTaavo Roos, 2023\n` }, msgstr: [`Last-Translator: Taavo Roos, 2023\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: et_EE\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} jäänud sekundid\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} aega jäänud\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"jäänud mõni sekund\"] }, Add: { msgid: \"Add\", msgstr: [\"Lisa\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Tühista üleslaadimine\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"hinnanguline järelejäänud aeg\"] }, paused: { msgid: \"paused\", msgstr: [\"pausil\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Lae failid üles\"] } } } } }, { locale: \"eu\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\", \"Language-Team\": \"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"eu\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\n` }, msgstr: [`Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eu\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundo geratzen dira\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} geratzen da\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"segundo batzuk geratzen dira\"] }, Add: { msgid: \"Add\", msgstr: [\"Gehitu\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Ezeztatu igoerak\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"kalkulatutako geratzen den denbora\"] }, paused: { msgid: \"paused\", msgstr: [\"geldituta\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Igo fitxategiak\"] } } } } }, { locale: \"fa\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Fatemeh Komeily, 2023\", \"Language-Team\": \"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fa\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nFatemeh Komeily, 2023\n` }, msgstr: [`Last-Translator: Fatemeh Komeily, 2023\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fa\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"ثانیه های باقی مانده\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"باقی مانده\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"چند ثانیه مانده\"] }, Add: { msgid: \"Add\", msgstr: [\"اضافه کردن\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"کنسل کردن فایل های اپلود شده\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"تخمین زمان باقی مانده\"] }, paused: { msgid: \"paused\", msgstr: [\"مکث کردن\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"بارگذاری فایل ها\"] } } } } }, { locale: \"fi_FI\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Jiri Grönroos <jiri.gronroos@iki.fi>, 2022\", \"Language-Team\": \"Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fi_FI\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJiri Grönroos <jiri.gronroos@iki.fi>, 2022\n` }, msgstr: [`Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>, 2022\nLanguage-Team: Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fi_FI\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekuntia jäljellä\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} jäljellä\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"muutama sekunti jäljellä\"] }, Add: { msgid: \"Add\", msgstr: [\"Lisää\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Peruuta lähetykset\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"arvioidaan jäljellä olevaa aikaa\"] }, paused: { msgid: \"paused\", msgstr: [\"keskeytetty\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Lähetä tiedostoja\"] } } } } }, { locale: \"fo\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fo\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"fr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"jed boulahya, 2024\", \"Language-Team\": \"French (https://app.transifex.com/nextcloud/teams/64236/fr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fr\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nBenoit Pruneau, 2024\njed boulahya, 2024\n` }, msgstr: [`Last-Translator: jed boulahya, 2024\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fr\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} fichier en conflit\", \"{count} fichiers en conflit\", \"{count} fichiers en conflit\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} fichier en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} secondes restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} restant\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quelques secondes restantes\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Annuler\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Annuler l'opération entière\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Annuler les envois\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuer\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimation du temps restant\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Version existante\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Si vous sélectionnez les deux versions, le fichier copié aura un numéro ajouté àname.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Date de la dernière modification est inconnue\"] }, New: { msgid: \"New\", msgstr: [\"Nouveau\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nouvelle version\"] }, paused: { msgid: \"paused\", msgstr: [\"en pause\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Aperçu de l'image\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Sélectionner toutes les cases à cocher\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Sélectionner tous les fichiers existants\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Sélectionner tous les nouveaux fichiers\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Ignorer ce fichier\", \"Ignorer {count} fichiers\", \"Ignorer {count} fichiers\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Taille inconnue\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\" annulé\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Téléchargement des fichiers\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Progression du téléchargement\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Quels fichiers souhaitez-vous conserver ?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Vous devez sélectionner au moins une version de chaque fichier pour continuer.\"] } } } } }, { locale: \"gd\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"gd\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gd\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"gl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2023\", \"Language-Team\": \"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"gl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nNacho <nacho.vfranco@gmail.com>, 2023\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2023\n` }, msgstr: [`Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2023\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gl\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} conflito de ficheiros\", \"{count} conflitos de ficheiros\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} conflito de ficheiros en {dirname}\", \"{count} conflitos de ficheiros en {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"faltan {seconds} segundos\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"falta {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"faltan uns segundos\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar envíos\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuar\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"calculando canto tempo falta\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versión existente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Se selecciona ambas as versións, o ficheiro copiado terá un número engadido ao seu nome.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Data da última modificación descoñecida\"] }, New: { msgid: \"New\", msgstr: [\"Nova\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nova versión\"] }, paused: { msgid: \"paused\", msgstr: [\"detido\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Vista previa da imaxe\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Marcar todas as caixas de selección\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleccionar todos os ficheiros existentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleccionar todos os ficheiros novos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Omita este ficheiro\", \"Omitir {count} ficheiros\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamaño descoñecido\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Envío cancelado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Enviar ficheiros\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Progreso do envío\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Que ficheiros quere conservar?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Debe seleccionar polo menos unha versión de cada ficheiro para continuar.\"] } } } } }, { locale: \"he\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"he\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: he\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hi_IN\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hi_IN\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hi_IN\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hr\", \"Plural-Forms\": \"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hr\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hsb\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hsb\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hsb\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hu\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hu\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hu_HU\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Balázs Úr, 2022\", \"Language-Team\": \"Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hu_HU\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nBalázs Meskó <meskobalazs@mailbox.org>, 2022\nBalázs Úr, 2022\n` }, msgstr: [`Last-Translator: Balázs Úr, 2022\nLanguage-Team: Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu_HU\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{} másodperc van hátra\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} van hátra\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"pár másodperc van hátra\"] }, Add: { msgid: \"Add\", msgstr: [\"Hozzáadás\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Feltöltések megszakítása\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"hátralévő idő becslése\"] }, paused: { msgid: \"paused\", msgstr: [\"szüneteltetve\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Fájlok feltöltése\"] } } } } }, { locale: \"hy\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hy\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hy\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ia\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ia\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ia\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"id\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Linerly <linerly@proton.me>, 2023\", \"Language-Team\": \"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"id\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nEmpty Slot Filler, 2023\nLinerly <linerly@proton.me>, 2023\n` }, msgstr: [`Last-Translator: Linerly <linerly@proton.me>, 2023\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: id\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} berkas berkonflik\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} berkas berkonflik dalam {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} detik tersisa\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} tersisa\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"tinggal sebentar lagi\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Batalkan unggahan\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Lanjutkan\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"memperkirakan waktu yang tersisa\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versi yang ada\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Tanggal perubahan terakhir tidak diketahui\"] }, New: { msgid: \"New\", msgstr: [\"Baru\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Versi baru\"] }, paused: { msgid: \"paused\", msgstr: [\"dijeda\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Gambar pratinjau\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Pilih semua kotak centang\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Pilih semua berkas yang ada\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Pilih semua berkas baru\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Lewati {count} berkas\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Ukuran tidak diketahui\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Unggahan dibatalkan\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Unggah berkas\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Berkas mana yang Anda ingin tetap simpan?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan.\"] } } } } }, { locale: \"ig\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ig\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ig\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"is\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Sveinn í Felli <sv1@fellsnet.is>, 2023\", \"Language-Team\": \"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"is\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nSveinn í Felli <sv1@fellsnet.is>, 2023\n` }, msgstr: [`Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2023\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: is\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} árekstur skráa\", \"{count} árekstrar skráa\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} árekstur skráa í {dirname}\", \"{count} árekstrar skráa í {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekúndur eftir\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} eftir\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"nokkrar sekúndur eftir\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Hætta við innsendingar\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Halda áfram\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"áætla tíma sem eftir er\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Fyrirliggjandi útgáfa\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti afrituðu skrárinnar.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Síðasta breytingadagsetning er óþekkt\"] }, New: { msgid: \"New\", msgstr: [\"Nýtt\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ný útgáfa\"] }, paused: { msgid: \"paused\", msgstr: [\"í bið\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Forskoðun myndar\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Velja gátreiti\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Velja allar fyrirliggjandi skrár\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Velja allar nýjar skrár\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Sleppa þessari skrá\", \"Sleppa {count} skrám\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Óþekkt stærð\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Hætt við innsendingu\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Senda inn skrár\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hvaða skrám vilt þú vilt halda eftir?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram.\"] } } } } }, { locale: \"it\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Random_R, 2023\", \"Language-Team\": \"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"it\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nLep Lep, 2023\nRandom_R, 2023\n` }, msgstr: [`Last-Translator: Random_R, 2023\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} file in conflitto\", \"{count} file in conflitto\", \"{count} file in conflitto\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} secondi rimanenti \"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} rimanente\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"alcuni secondi rimanenti\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Annulla i caricamenti\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continua\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"calcolo il tempo rimanente\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versione esistente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero \"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Ultima modifica sconosciuta\"] }, New: { msgid: \"New\", msgstr: [\"Nuovo\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nuova versione\"] }, paused: { msgid: \"paused\", msgstr: [\"pausa\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Anteprima immagine\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Seleziona tutte le caselle\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleziona tutti i file esistenti\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleziona tutti i nuovi file\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Salta questo file\", \"Salta {count} file\", \"Salta {count} file\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Dimensione sconosciuta\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Caricamento cancellato\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Carica i file\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Quali file vuoi mantenere?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Devi selezionare almeno una versione di ogni file per continuare\"] } } } } }, { locale: \"it_IT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"it_IT\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it_IT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ja_JP\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"かたかめ, 2022\", \"Language-Team\": \"Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ja_JP\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nT.S, 2022\nかたかめ, 2022\n` }, msgstr: [`Last-Translator: かたかめ, 2022\nLanguage-Team: Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ja_JP\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"残り {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"残り {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"残り数秒\"] }, Add: { msgid: \"Add\", msgstr: [\"追加\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"アップロードをキャンセル\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"概算残り時間\"] }, paused: { msgid: \"paused\", msgstr: [\"一時停止中\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"ファイルをアップデート\"] } } } } }, { locale: \"ka\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ka\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka\nPlural-Forms: nplurals=2; plural=(n!=1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ka_GE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ka_GE\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka_GE\nPlural-Forms: nplurals=2; plural=(n!=1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"kab\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"ZiriSut, 2023\", \"Language-Team\": \"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"kab\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nZiriSut, 2023\n` }, msgstr: [`Last-Translator: ZiriSut, 2023\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kab\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} tesdatin i d-yeqqimen\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} i d-yeqqimen\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"qqiment-d kra n tesdatin kan\"] }, Add: { msgid: \"Add\", msgstr: [\"Rnu\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Sefsex asali\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"asizel n wakud i d-yeqqimen\"] }, paused: { msgid: \"paused\", msgstr: [\"yeḥbes\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Sali-d ifuyla\"] } } } } }, { locale: \"kk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"kk\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kk\nPlural-Forms: nplurals=2; plural=(n!=1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"km\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"km\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: km\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"kn\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"kn\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kn\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ko\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Brandon Han, 2024\", \"Language-Team\": \"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ko\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nhosun Lee, 2023\nBrandon Han, 2024\n` }, msgstr: [`Last-Translator: Brandon Han, 2024\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ko\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count}개의 파일이 충돌함\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname}에서 {count}개의 파일이 충돌함\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} 남음\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} 남음\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"곧 완료\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"업로드 취소\"] }, Continue: { msgid: \"Continue\", msgstr: [\"확인\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"남은 시간 계산\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"현재 버전\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"두 버전을 모두 선택할 경우, 복제된 파일 이름에 숫자가 추가됩니다.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"최근 수정일 알 수 없음\"] }, New: { msgid: \"New\", msgstr: [\"새로 만들기\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"새 버전\"] }, paused: { msgid: \"paused\", msgstr: [\"일시정지됨\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"미리보기 이미지\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"모든 체크박스 선택\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"모든 파일 선택\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"모든 새 파일 선택\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"{count}개의 파일 넘기기\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"크기를 알 수 없음\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"업로드 취소됨\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"파일 업로드\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"업로드 진행도\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"어떤 파일을 보존하시겠습니까?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다.\"] } } } } }, { locale: \"la\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"la\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: la\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lb\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lb\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lb\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lo\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lo\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lo\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lt_LT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lt_LT\", \"Plural-Forms\": \"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lt_LT\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lv\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lv\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lv\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"mk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Сашко Тодоров <sasetodorov@gmail.com>, 2022\", \"Language-Team\": \"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"mk\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nСашко Тодоров <sasetodorov@gmail.com>, 2022\n` }, msgstr: [`Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mk\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"преостануваат {seconds} секунди\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"преостанува {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"уште неколку секунди\"] }, Add: { msgid: \"Add\", msgstr: [\"Додади\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Прекини прикачување\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"приближно преостанато време\"] }, paused: { msgid: \"paused\", msgstr: [\"паузирано\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Прикачување датотеки\"] } } } } }, { locale: \"mn\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"BATKHUYAG Ganbold, 2023\", \"Language-Team\": \"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"mn\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nBATKHUYAG Ganbold, 2023\n` }, msgstr: [`Last-Translator: BATKHUYAG Ganbold, 2023\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mn\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} секунд үлдсэн\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} үлдсэн\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"хэдхэн секунд үлдсэн\"] }, Add: { msgid: \"Add\", msgstr: [\"Нэмэх\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Илгээлтийг цуцлах\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Үлдсэн хугацааг тооцоолж байна\"] }, paused: { msgid: \"paused\", msgstr: [\"түр зогсоосон\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Файл илгээх\"] } } } } }, { locale: \"mr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"mr\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mr\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ms_MY\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ms_MY\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ms_MY\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"my\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"my\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: my\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"nb_NO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Syvert Fossdal, 2024\", \"Language-Team\": \"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nb_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nSyvert Fossdal, 2024\n` }, msgstr: [`Last-Translator: Syvert Fossdal, 2024\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nb_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} file conflict\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} file conflict in {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekunder igjen\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} igjen\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"noen få sekunder igjen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Avbryt opplastninger\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsett\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Estimerer tid igjen\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Gjeldende versjon\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Hvis du velger begge versjoner, vil den kopierte filen få et tall lagt til navnet.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Siste gang redigert ukjent\"] }, New: { msgid: \"New\", msgstr: [\"Ny\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ny versjon\"] }, paused: { msgid: \"paused\", msgstr: [\"pauset\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Forhåndsvis bilde\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Velg alle\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Velg alle eksisterende filer\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Velg alle nye filer\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Skip this file\", \"Hopp over {count} filer\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Ukjent størrelse\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Opplasting avbrutt\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Last opp filer\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Fremdrift, opplasting\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hvilke filer vil du beholde?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du må velge minst en versjon av hver fil for å fortsette.\"] } } } } }, { locale: \"ne\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ne\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ne\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"nl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Rico <rico-schwab@hotmail.com>, 2023\", \"Language-Team\": \"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nRico <rico-schwab@hotmail.com>, 2023\n` }, msgstr: [`Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nl\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Nog {seconds} seconden\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{seconds} over\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Nog een paar seconden\"] }, Add: { msgid: \"Add\", msgstr: [\"Voeg toe\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Uploads annuleren\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Schatting van de resterende tijd\"] }, paused: { msgid: \"paused\", msgstr: [\"Gepauzeerd\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Upload bestanden\"] } } } } }, { locale: \"nn\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nn\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"nn_NO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nn_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"oc\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"oc\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: oc\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"pl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Valdnet, 2024\", \"Language-Team\": \"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"pl\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nM H <haincu@o2.pl>, 2023\nValdnet, 2024\n` }, msgstr: [`Last-Translator: Valdnet, 2024\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pl\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"konflikt 1 pliku\", \"{count} konfliktów plików\", \"{count} konfliktów plików\", \"{count} konfliktów plików\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} konfliktowy plik w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Pozostało {seconds} sekund\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Pozostało {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Pozostało kilka sekund\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Anuluj wysyłanie\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Kontynuuj\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Szacowanie pozostałego czasu\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Istniejąca wersja\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Jeżeli wybierzesz obie wersje to do nazw skopiowanych plików zostanie dodany numer\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Nieznana data ostatniej modyfikacji\"] }, New: { msgid: \"New\", msgstr: [\"Nowy\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nowa wersja\"] }, paused: { msgid: \"paused\", msgstr: [\"Wstrzymane\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Podgląd obrazu\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Zaznacz wszystkie boxy\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Zaznacz wszystkie istniejące pliki\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Zaznacz wszystkie nowe pliki\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Pomiń 1 plik\", \"Pomiń {count} plików\", \"Pomiń {count} plików\", \"Pomiń {count} plików\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Nieznany rozmiar\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Anulowano wysyłanie\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Wyślij pliki\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Postęp wysyłania\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Które pliki chcesz zachować\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku.\"] } } } } }, { locale: \"ps\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ps\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ps\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"pt_BR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Leonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\", \"Language-Team\": \"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"pt_BR\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\n` }, msgstr: [`Last-Translator: Leonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_BR\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} arquivos em conflito\", \"{count} arquivos em conflito\", \"{count} arquivos em conflito\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"alguns segundos restantes\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Cancelar\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Cancelar a operação inteira\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar uploads\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuar\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tempo restante\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versão existente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Se você selecionar ambas as versões, o arquivo copiado terá um número adicionado ao seu nome.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Data da última modificação desconhecida\"] }, New: { msgid: \"New\", msgstr: [\"Novo\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nova versão\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Visualizar imagem\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Marque todas as caixas de seleção\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Selecione todos os arquivos existentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Selecione todos os novos arquivos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Ignorar {count} arquivos\", \"Ignorar {count} arquivos\", \"Ignorar {count} arquivos\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamanho desconhecido\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Envio cancelado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Enviar arquivos\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Envio em progresso\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Quando uma pasta é selecionada, quaisquer arquivos dentro dela também serão sobrescritos.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Quais arquivos você deseja manter?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Você precisa selecionar pelo menos uma versão de cada arquivo para continuar.\"] } } } } }, { locale: \"pt_PT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Manuela Silva <mmsrs@sky.com>, 2022\", \"Language-Team\": \"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"pt_PT\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nManuela Silva <mmsrs@sky.com>, 2022\n` }, msgstr: [`Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_PT\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"faltam {seconds} segundo(s)\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"faltam {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"faltam uns segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"Adicionar\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar envios\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"tempo em falta estimado\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Enviar ficheiros\"] } } } } }, { locale: \"ro\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\", \"Language-Team\": \"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ro\", \"Plural-Forms\": \"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\n` }, msgstr: [`Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ro\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} secunde rămase\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} rămas\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"câteva secunde rămase\"] }, Add: { msgid: \"Add\", msgstr: [\"Adaugă\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Anulați încărcările\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimarea timpului rămas\"] }, paused: { msgid: \"paused\", msgstr: [\"pus pe pauză\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Încarcă fișiere\"] } } } } }, { locale: \"ru\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Александр, 2023\", \"Language-Team\": \"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ru\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nMax Smith <sevinfolds@gmail.com>, 2023\nАлександр, 2023\n` }, msgstr: [`Last-Translator: Александр, 2023\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"конфликт {count} файла\", \"конфликт {count} файлов\", \"конфликт {count} файлов\", \"конфликт {count} файлов\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"конфликт {count} файла в {dirname}\", \"конфликт {count} файлов в {dirname}\", \"конфликт {count} файлов в {dirname}\", \"конфликт {count} файлов в {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"осталось {seconds} секунд\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"осталось {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"осталось несколько секунд\"] }, Add: { msgid: \"Add\", msgstr: [\"Добавить\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Отменить загрузки\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Продолжить\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"оценка оставшегося времени\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Текущая версия\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Если вы выберете обе версии, к имени скопированного файла будет добавлен номер.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Дата последнего изменения неизвестна\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Новая версия\"] }, paused: { msgid: \"paused\", msgstr: [\"приостановлено\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Предварительный просмотр\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Установить все флажки\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Выбрать все существующие файлы\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Выбрать все новые файлы\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Пропустить файл\", \"Пропустить {count} файла\", \"Пропустить {count} файлов\", \"Пропустить {count} файлов\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Неизвестный размер\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Загрузка отменена\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Загрузка файлов\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Какие файлы вы хотите сохранить?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла.\"] } } } } }, { locale: \"ru_RU\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ru_RU\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru_RU\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sc\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sc\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sc\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"si\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"si\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"si_LK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"si_LK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si_LK\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sk_SK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sk_SK\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sk_SK\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Matej Urbančič <>, 2022\", \"Language-Team\": \"Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sl\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMatej Urbančič <>, 2022\n` }, msgstr: [`Last-Translator: Matej Urbančič <>, 2022\nLanguage-Team: Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"še {seconds} sekund\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"še {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"še nekaj sekund\"] }, Add: { msgid: \"Add\", msgstr: [\"Dodaj\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Prekliči pošiljanje\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"ocenjen čas do konca\"] }, paused: { msgid: \"paused\", msgstr: [\"v premoru\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Pošlji datoteke\"] } } } } }, { locale: \"sl_SI\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sl_SI\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl_SI\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sq\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sq\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sq\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Иван Пешић, 2023\", \"Language-Team\": \"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sr\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nИван Пешић, 2023\n` }, msgstr: [`Last-Translator: Иван Пешић, 2023\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} фајл конфликт\", \"{count} фајл конфликта\", \"{count} фајл конфликта\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} фајл конфликт у {dirname}\", \"{count} фајл конфликта у {dirname}\", \"{count} фајл конфликта у {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"преостало је {seconds} секунди\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} преостало\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"преостало је неколико секунди\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Обустави отпремања\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Настави\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"процена преосталог времена\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Постојећа верзија\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Ако изаберете обе верзије, на име копираног фајла ће се додати број.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Није познат датум последње измене\"] }, New: { msgid: \"New\", msgstr: [\"Ново\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Нова верзија\"] }, paused: { msgid: \"paused\", msgstr: [\"паузирано\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Слика прегледа\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Штиклирај сва поља за штиклирање\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Изабери све постојеће фајлове\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Изабери све нове фајлове\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Прескочи овај фајл\", \"Прескочи {count} фајла\", \"Прескочи {count} фајлова\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Непозната величина\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Отпремање је отказано\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Отпреми фајлове\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Напредак отпремања\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Које фајлове желите да задржите?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Морате да изаберете барем једну верзију сваког фајла да наставите.\"] } } } } }, { locale: \"sr@latin\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sr@latin\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr@latin\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sv\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Magnus Höglund, 2024\", \"Language-Team\": \"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sv\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMagnus Höglund, 2024\n` }, msgstr: [`Last-Translator: Magnus Höglund, 2024\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sv\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} filkonflikt\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} filkonflikt i {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekunder kvarstår\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} kvarstår\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"några sekunder kvar\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Avbryt\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Avbryt hela operationen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Avbryt uppladdningar\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsätt\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"uppskattar kvarstående tid\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Nuvarande version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Om du väljer båda versionerna kommer den kopierade filen att få ett nummer tillagt  i namnet.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Senaste ändringsdatum okänt\"] }, New: { msgid: \"New\", msgstr: [\"Ny\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ny version\"] }, paused: { msgid: \"paused\", msgstr: [\"pausad\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Förhandsgranska bild\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Markera alla kryssrutor\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Välj alla befintliga filer\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Välj alla nya filer\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Hoppa över denna fil\", \"Hoppa över {count} filer\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Okänd storlek\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Uppladdningen avbröts\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Ladda upp filer\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Uppladdningsförlopp\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"När en inkommande mapp väljs skrivs även alla konfliktande filer i den över.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Vilka filer vill du behålla?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du måste välja minst en version av varje fil för att fortsätta.\"] } } } } }, { locale: \"sw\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sw\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sw\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ta\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ta\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ta_LK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ta_LK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta_LK\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"th\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Thai (https://www.transifex.com/nextcloud/teams/64236/th/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"th\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Thai (https://www.transifex.com/nextcloud/teams/64236/th/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"th_TH\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Phongpanot Phairat <ppnplus@protonmail.com>, 2022\", \"Language-Team\": \"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"th_TH\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\n` }, msgstr: [`Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th_TH\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"เหลืออีก {seconds} วินาที\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"เหลืออีก {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"เหลืออีกไม่กี่วินาที\"] }, Add: { msgid: \"Add\", msgstr: [\"เพิ่ม\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"ยกเลิกการอัปโหลด\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"กำลังคำนวณเวลาที่เหลือ\"] }, paused: { msgid: \"paused\", msgstr: [\"หยุดชั่วคราว\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"อัปโหลดไฟล์\"] } } } } }, { locale: \"tk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"tk\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tk\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"tr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Kaya Zeren <kayazeren@gmail.com>, 2024\", \"Language-Team\": \"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"tr\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nKaya Zeren <kayazeren@gmail.com>, 2024\n` }, msgstr: [`Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2024\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tr\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} dosya çakışması var\", \"{count} dosya çakışması var\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname} klasöründe {count} dosya çakışması var\", \"{dirname} klasöründe {count} dosya çakışması var\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} saniye kaldı\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} kaldı\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"bir kaç saniye kaldı\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"İptal\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Tüm işlemi iptal et\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Yüklemeleri iptal et\"] }, Continue: { msgid: \"Continue\", msgstr: [\"İlerle\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"öngörülen kalan süre\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Var olan sürüm\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"İki sürümü de seçerseniz, kopyalanan dosyanın adına bir sayı eklenir.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Son değiştirilme tarihi bilinmiyor\"] }, New: { msgid: \"New\", msgstr: [\"Yeni\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Yeni sürüm\"] }, paused: { msgid: \"paused\", msgstr: [\"duraklatıldı\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Görsel ön izlemesi\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Tüm kutuları işaretle\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Tüm var olan dosyaları seç\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Tüm yeni dosyaları seç\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Bu dosyayı atla\", \"{count} dosyayı atla\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Boyut bilinmiyor\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Yükleme iptal edildi\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Dosyaları yükle\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Yükleme ilerlemesi\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hangi dosyaları tutmak istiyorsunuz?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz.\"] } } } } }, { locale: \"ug\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ug\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ug\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"uk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"O St <oleksiy.stasevych@gmail.com>, 2024\", \"Language-Team\": \"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"uk\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nO St <oleksiy.stasevych@gmail.com>, 2024\n` }, msgstr: [`Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2024\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uk\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} конфліктний файл\", \"{count} конфліктних файли\", \"{count} конфліктних файлів\", \"{count} конфліктних файлів\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} конфліктний файл у каталозі {dirname}\", \"{count} конфліктних файли у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Залишилося {seconds} секунд\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Залишилося {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"залишилося кілька секунд\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Скасувати\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Скасувати операцію повністю\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Скасувати завантаження\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Продовжити\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"оцінка часу, що залишився\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Присутня версія\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Якщо ви виберете обидві версії, то буде створено копію файлу, до назви якої буде додано цифру.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Дата останньої зміни невідома\"] }, New: { msgid: \"New\", msgstr: [\"Нове\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Нова версія\"] }, paused: { msgid: \"paused\", msgstr: [\"призупинено\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Попередній перегляд\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Вибрати все\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Вибрати усі присутні файли\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Вибрати усі нові файли\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Пропустити файл\", \"Пропустити {count} файли\", \"Пропустити {count} файлів\", \"Пропустити {count} файлів\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Невідомий розмір\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Завантаження скасовано\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Завантажити файли\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Поступ завантаження\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Які файли залишити?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Для продовження потрібно вибрати принаймні одну версію для кожного файлу.\"] } } } } }, { locale: \"ur_PK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ur_PK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ur_PK\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"uz\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"uz\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uz\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"vi\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Tung DangQuang, 2023\", \"Language-Team\": \"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"vi\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nTung DangQuang, 2023\n` }, msgstr: [`Last-Translator: Tung DangQuang, 2023\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: vi\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} Tập tin xung đột\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} tập tin lỗi trong {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Còn {second} giây\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Còn lại {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Còn lại một vài giây\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Huỷ tải lên\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Tiếp Tục\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Thời gian còn lại dự kiến\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Phiên Bản Hiện Tại\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Ngày sửa dổi lần cuối không xác định\"] }, New: { msgid: \"New\", msgstr: [\"Tạo Mới\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Phiên Bản Mới\"] }, paused: { msgid: \"paused\", msgstr: [\"đã tạm dừng\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Xem Trước Ảnh\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Chọn tất cả hộp checkbox\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Chọn tất cả các tập tin có sẵn\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Chọn tất cả các tập tin mới\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Bỏ Qua {count} tập tin\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Không rõ dung lượng\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Dừng Tải Lên\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Tập tin tải lên\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Đang Tải Lên\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Bạn muốn giữ tập tin nào?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục\"] } } } } }, { locale: \"zh_CN\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Hongbo Chen, 2023\", \"Language-Team\": \"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"zh_CN\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nHongbo Chen, 2023\n` }, msgstr: [`Last-Translator: Hongbo Chen, 2023\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_CN\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count}文件冲突\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"在{dirname}目录下有{count}个文件冲突\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"剩余 {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"剩余 {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"还剩几秒\"] }, Add: { msgid: \"Add\", msgstr: [\"添加\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"取消上传\"] }, Continue: { msgid: \"Continue\", msgstr: [\"继续\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"估计剩余时间\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"版本已存在\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"如果选择所有的版本,新增版本的文件名为原文件名加数字\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"文件最后修改日期未知\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"新版本\"] }, paused: { msgid: \"paused\", msgstr: [\"已暂停\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"图片预览\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"选择所有的选择框\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"选择所有存在的文件\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"选择所有的新文件\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"跳过{count}个文件\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"文件大小未知\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"取消上传\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"上传文件\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"你要保留哪些文件?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"每个文件至少选择一个版本\"] } } } } }, { locale: \"zh_HK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Café Tango, 2023\", \"Language-Team\": \"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"zh_HK\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nCafé Tango, 2023\n` }, msgstr: [`Last-Translator: Café Tango, 2023\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_HK\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"剩餘 {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"還剩幾秒\"] }, Add: { msgid: \"Add\", msgstr: [\"添加\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"取消上傳\"] }, Continue: { msgid: \"Continue\", msgstr: [\"繼續\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"估計剩餘時間\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"既有版本\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"若您選取兩個版本,複製的檔案的名稱將會新增編號。\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"最後修改日期不詳\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"新版本 \"] }, paused: { msgid: \"paused\", msgstr: [\"已暫停\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"預覽圖片\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"選取所有核取方塊\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"選取所有既有檔案\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"選取所有新檔案\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"略過 {count} 個檔案\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"大小不詳\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"已取消上傳\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"上傳檔案\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"您想保留哪些檔案?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }, { locale: \"zh_TW\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"黃柏諺 <s8321414@gmail.com>, 2024\", \"Language-Team\": \"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"zh_TW\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\n黃柏諺 <s8321414@gmail.com>, 2024\n` }, msgstr: [`Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_TW\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"剩餘 {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"還剩幾秒\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"取消\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"取消整個操作\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"取消上傳\"] }, Continue: { msgid: \"Continue\", msgstr: [\"繼續\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"估計剩餘時間\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"既有版本\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"若您選取兩個版本,複製的檔案的名稱將會新增編號。\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"最後修改日期未知\"] }, New: { msgid: \"New\", msgstr: [\"新增\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"新版本\"] }, paused: { msgid: \"paused\", msgstr: [\"已暫停\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"預覽圖片\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"選取所有核取方塊\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"選取所有既有檔案\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"選取所有新檔案\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"略過 {count} 檔案\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"未知大小\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"已取消上傳\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"上傳檔案\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"上傳進度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"您想保留哪些檔案?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }].map((e) => R.addTranslation(e.locale, e.json));\nconst C = R.build(), Gs = C.ngettext.bind(C), u = C.gettext.bind(C), Ls = E.extend({\n  name: \"UploadPicker\",\n  components: {\n    Cancel: ms,\n    NcActionButton: J,\n    NcActions: Q,\n    NcButton: Z,\n    NcIconSvgWrapper: X,\n    NcProgressBar: ss,\n    Plus: fs,\n    Upload: xs\n  },\n  props: {\n    accept: {\n      type: Array,\n      default: null\n    },\n    disabled: {\n      type: Boolean,\n      default: !1\n    },\n    multiple: {\n      type: Boolean,\n      default: !1\n    },\n    destination: {\n      type: z,\n      default: void 0\n    },\n    /**\n     * List of file present in the destination folder\n     */\n    content: {\n      type: Array,\n      default: () => []\n    },\n    forbiddenCharacters: {\n      type: Array,\n      default: () => []\n    }\n  },\n  data() {\n    return {\n      addLabel: u(\"New\"),\n      cancelLabel: u(\"Cancel uploads\"),\n      uploadLabel: u(\"Upload files\"),\n      progressLabel: u(\"Upload progress\"),\n      progressTimeId: `nc-uploader-progress-${Math.random().toString(36).slice(7)}`,\n      eta: null,\n      timeLeft: \"\",\n      newFileMenuEntries: [],\n      uploadManager: M()\n    };\n  },\n  computed: {\n    totalQueueSize() {\n      return this.uploadManager.info?.size || 0;\n    },\n    uploadedQueueSize() {\n      return this.uploadManager.info?.progress || 0;\n    },\n    progress() {\n      return Math.round(this.uploadedQueueSize / this.totalQueueSize * 100) || 0;\n    },\n    queue() {\n      return this.uploadManager.queue;\n    },\n    hasFailure() {\n      return this.queue?.filter((e) => e.status === c.FAILED).length !== 0;\n    },\n    isUploading() {\n      return this.queue?.length > 0;\n    },\n    isAssembling() {\n      return this.queue?.filter((e) => e.status === c.ASSEMBLING).length !== 0;\n    },\n    isPaused() {\n      return this.uploadManager.info?.status === I.PAUSED;\n    },\n    // Hide the button text if we're uploading\n    buttonName() {\n      if (!this.isUploading)\n        return this.addLabel;\n    }\n  },\n  watch: {\n    destination(e) {\n      this.setDestination(e);\n    },\n    totalQueueSize(e) {\n      this.eta = K({ min: 0, max: e }), this.updateStatus();\n    },\n    uploadedQueueSize(e) {\n      this.eta?.report?.(e), this.updateStatus();\n    },\n    isPaused(e) {\n      e ? this.$emit(\"paused\", this.queue) : this.$emit(\"resumed\", this.queue);\n    }\n  },\n  beforeMount() {\n    this.destination && this.setDestination(this.destination), this.uploadManager.addNotifier(this.onUploadCompletion), g.debug(\"UploadPicker initialised\");\n  },\n  methods: {\n    /**\n     * Trigger file picker\n     */\n    onClick() {\n      this.$refs.input.click();\n    },\n    /**\n     * Start uploading\n     */\n    async onPick() {\n      let e = [...this.$refs.input.files];\n      if (Us(e, this.content)) {\n        const s = e.filter((n) => this.content.find((i) => i.basename === n.name)).filter(Boolean), t = e.filter((n) => !s.includes(n));\n        try {\n          const { selected: n, renamed: i } = await ys(this.destination.basename, s, this.content);\n          e = [...t, ...n, ...i];\n        } catch {\n          P(u(\"Upload cancelled\"));\n          return;\n        }\n      }\n      e.forEach((s) => {\n        const n = (this.forbiddenCharacters || []).find((i) => s.name.includes(i));\n        n ? P(u(`\"${n}\" is not allowed inside a file name.`)) : this.uploadManager.upload(s.name, s).catch(() => {\n        });\n      }), this.$refs.form.reset();\n    },\n    /**\n     * Cancel ongoing queue\n     */\n    onCancel() {\n      this.uploadManager.queue.forEach((e) => {\n        e.cancel();\n      }), this.$refs.form.reset();\n    },\n    updateStatus() {\n      if (this.isPaused) {\n        this.timeLeft = u(\"paused\");\n        return;\n      }\n      const e = Math.round(this.eta.estimate());\n      if (e === 1 / 0) {\n        this.timeLeft = u(\"estimating time left\");\n        return;\n      }\n      if (e < 10) {\n        this.timeLeft = u(\"a few seconds left\");\n        return;\n      }\n      if (e > 60) {\n        const s = /* @__PURE__ */ new Date(0);\n        s.setSeconds(e);\n        const t = s.toISOString().slice(11, 19);\n        this.timeLeft = u(\"{time} left\", { time: t });\n        return;\n      }\n      this.timeLeft = u(\"{seconds} seconds left\", { seconds: e });\n    },\n    setDestination(e) {\n      if (!this.destination) {\n        g.debug(\"Invalid destination\");\n        return;\n      }\n      this.uploadManager.destination = e, this.newFileMenuEntries = G(e);\n    },\n    onUploadCompletion(e) {\n      e.status === c.FAILED ? this.$emit(\"failed\", e) : this.$emit(\"uploaded\", e);\n    }\n  }\n});\nvar ks = function() {\n  var s = this, t = s._self._c;\n  return s._self._setupProxy, s.destination ? t(\"form\", { ref: \"form\", staticClass: \"upload-picker\", class: { \"upload-picker--uploading\": s.isUploading, \"upload-picker--paused\": s.isPaused }, attrs: { \"data-cy-upload-picker\": \"\" } }, [s.newFileMenuEntries && s.newFileMenuEntries.length === 0 ? t(\"NcButton\", { attrs: { disabled: s.disabled, \"data-cy-upload-picker-add\": \"\", type: \"secondary\" }, on: { click: s.onClick }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n    return [t(\"Plus\", { attrs: { title: \"\", size: 20, decorative: \"\" } })];\n  }, proxy: !0 }], null, !1, 2954875042) }, [s._v(\" \" + s._s(s.buttonName) + \" \")]) : t(\"NcActions\", { attrs: { \"menu-name\": s.buttonName, \"menu-title\": s.addLabel, type: \"secondary\" }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n    return [t(\"Plus\", { attrs: { title: \"\", size: 20, decorative: \"\" } })];\n  }, proxy: !0 }], null, !1, 2954875042) }, [t(\"NcActionButton\", { attrs: { \"data-cy-upload-picker-add\": \"\", \"close-after-click\": !0 }, on: { click: s.onClick }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n    return [t(\"Upload\", { attrs: { title: \"\", size: 20, decorative: \"\" } })];\n  }, proxy: !0 }], null, !1, 3606034491) }, [s._v(\" \" + s._s(s.uploadLabel) + \" \")]), s._l(s.newFileMenuEntries, function(n) {\n    return t(\"NcActionButton\", { key: n.id, staticClass: \"upload-picker__menu-entry\", attrs: { icon: n.iconClass, \"close-after-click\": !0 }, on: { click: function(i) {\n      return n.handler(s.destination, s.content);\n    } }, scopedSlots: s._u([n.iconSvgInline ? { key: \"icon\", fn: function() {\n      return [t(\"NcIconSvgWrapper\", { attrs: { svg: n.iconSvgInline } })];\n    }, proxy: !0 } : null], null, !0) }, [s._v(\" \" + s._s(n.displayName) + \" \")]);\n  })], 2), t(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: s.isUploading, expression: \"isUploading\" }], staticClass: \"upload-picker__progress\" }, [t(\"NcProgressBar\", { attrs: { \"aria-label\": s.progressLabel, \"aria-describedby\": s.progressTimeId, error: s.hasFailure, value: s.progress, size: \"medium\" } }), t(\"p\", { attrs: { id: s.progressTimeId } }, [s._v(\" \" + s._s(s.timeLeft) + \" \")])], 1), s.isUploading ? t(\"NcButton\", { staticClass: \"upload-picker__cancel\", attrs: { type: \"tertiary\", \"aria-label\": s.cancelLabel, \"data-cy-upload-picker-cancel\": \"\" }, on: { click: s.onCancel }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n    return [t(\"Cancel\", { attrs: { title: \"\", size: 20 } })];\n  }, proxy: !0 }], null, !1, 4076886712) }) : s._e(), t(\"input\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !1, expression: \"false\" }], ref: \"input\", attrs: { type: \"file\", accept: s.accept?.join?.(\", \"), multiple: s.multiple, \"data-cy-upload-picker-input\": \"\" }, on: { change: s.onPick } })], 1) : s._e();\n}, vs = [], Cs = /* @__PURE__ */ y(\n  Ls,\n  ks,\n  vs,\n  !1,\n  null,\n  \"eca9500a\",\n  null,\n  null\n);\nconst Ys = Cs.exports;\nlet k = null;\nfunction M() {\n  const e = document.querySelector('input[name=\"isPublic\"][value=\"1\"]') !== null;\n  return k instanceof N || (k = new N(e)), k;\n}\nfunction Vs(e, s) {\n  const t = M();\n  return t.upload(e, s), t;\n}\nasync function ys(e, s, t) {\n  const n = $(() => import(\"./ConflictPicker-Bif6rCp6.mjs\"));\n  return new Promise((i, o) => {\n    const l = new E({\n      name: \"ConflictPickerRoot\",\n      render: (f) => f(n, {\n        props: {\n          dirname: e,\n          conflicts: s,\n          content: t\n        },\n        on: {\n          submit(r) {\n            i(r), l.$destroy(), l.$el?.parentNode?.removeChild(l.$el);\n          },\n          cancel(r) {\n            o(r ?? new Error(\"Canceled\")), l.$destroy(), l.$el?.parentNode?.removeChild(l.$el);\n          }\n        }\n      })\n    });\n    l.$mount(), document.body.appendChild(l.$el);\n  });\n}\nfunction Us(e, s) {\n  const t = s.map((i) => i.basename);\n  return e.filter((i) => {\n    const o = i instanceof File ? i.name : i.basename;\n    return t.indexOf(o) !== -1;\n  }).length > 0;\n}\nexport {\n  I as S,\n  Ys as U,\n  Gs as a,\n  ns as b,\n  c,\n  M as g,\n  Us as h,\n  g as l,\n  y as n,\n  ys as o,\n  u as t,\n  Vs as u\n};\n","const R = (n, e) => u(n, \"\", e), g = (n) => \"/remote.php/\" + n, U = (n, e) => {\n  var o;\n  return ((o = e == null ? void 0 : e.baseURL) != null ? o : w()) + g(n);\n}, v = (n, e, o) => {\n  var c;\n  const i = Object.assign({\n    ocsVersion: 2\n  }, o || {}).ocsVersion === 1 ? 1 : 2;\n  return ((c = o == null ? void 0 : o.baseURL) != null ? c : w()) + \"/ocs/v\" + i + \".php\" + d(n, e, o);\n}, d = (n, e, o) => {\n  const c = Object.assign({\n    escape: !0\n  }, o || {}), s = function(i, r) {\n    return r = r || {}, i.replace(\n      /{([^{}]*)}/g,\n      function(l, t) {\n        const a = r[t];\n        return c.escape ? encodeURIComponent(typeof a == \"string\" || typeof a == \"number\" ? a.toString() : l) : typeof a == \"string\" || typeof a == \"number\" ? a.toString() : l;\n      }\n    );\n  };\n  return n.charAt(0) !== \"/\" && (n = \"/\" + n), s(n, e || {});\n}, _ = (n, e, o) => {\n  var c, s, i;\n  const r = Object.assign({\n    noRewrite: !1\n  }, o || {}), l = (c = o == null ? void 0 : o.baseURL) != null ? c : f();\n  return ((i = (s = window == null ? void 0 : window.OC) == null ? void 0 : s.config) == null ? void 0 : i.modRewriteWorking) === !0 && !r.noRewrite ? l + d(n, e, o) : l + \"/index.php\" + d(n, e, o);\n}, h = (n, e) => e.indexOf(\".\") === -1 ? u(n, \"img\", e + \".svg\") : u(n, \"img\", e), u = (n, e, o) => {\n  var c, s, i;\n  const r = (i = (s = (c = window == null ? void 0 : window.OC) == null ? void 0 : c.coreApps) == null ? void 0 : s.includes(n)) != null ? i : !1, l = o.slice(-3) === \"php\";\n  let t = f();\n  return l && !r ? (t += \"/index.php/apps/\".concat(n), e && (t += \"/\".concat(encodeURI(e))), o !== \"index.php\" && (t += \"/\".concat(o))) : !l && !r ? (t = b(n), e && (t += \"/\".concat(e, \"/\")), t.at(-1) !== \"/\" && (t += \"/\"), t += o) : ((n === \"settings\" || n === \"core\" || n === \"search\") && e === \"ajax\" && (t += \"/index.php\"), n && (t += \"/\".concat(n)), e && (t += \"/\".concat(e)), t += \"/\".concat(o)), t;\n}, w = () => window.location.protocol + \"//\" + window.location.host + f();\nfunction f() {\n  let n = window._oc_webroot;\n  if (typeof n > \"u\") {\n    n = location.pathname;\n    const e = n.indexOf(\"/index.php/\");\n    if (e !== -1)\n      n = n.slice(0, e);\n    else {\n      const o = n.indexOf(\"/\", 1);\n      n = n.slice(0, o > 0 ? o : void 0);\n    }\n  }\n  return n;\n}\nfunction b(n) {\n  var e, o;\n  return (o = ((e = window._oc_appswebroots) != null ? e : {})[n]) != null ? o : \"\";\n}\nexport {\n  u as generateFilePath,\n  v as generateOcsUrl,\n  U as generateRemoteUrl,\n  _ as generateUrl,\n  b as getAppRootUrl,\n  w as getBaseUrl,\n  f as getRootUrl,\n  h as imagePath,\n  R as linkTo\n};\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n} = axios;\n\nexport {\n  axios as default,\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1110\":\"2909496e7e35d6258214\",\"5929\":\"2e5e3b59f8a28f14168b\",\"6075\":\"f8e1d39004c19c13e598\",\"8902\":\"bb2f9be8a039f8db7e58\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1171;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1171: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(40586)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","has","Object","prototype","hasOwnProperty","prefix","Events","EE","fn","context","once","this","addListener","emitter","event","TypeError","listener","evt","_events","push","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","call","slice","getOwnPropertySymbols","concat","listeners","handlers","i","l","length","ee","Array","listenerCount","emit","a1","a2","a3","a4","a5","args","len","arguments","removeListener","undefined","apply","j","on","removeAllListeners","off","prefixed","module","exports","getLoggerBuilder","setApp","detectUser","build","canUnshareOnly","nodes","every","node","attributes","canDisconnectOnly","queue","PQueue","concurrency","action","FileAction","id","displayName","view","t","hasSharedItems","some","hasDeleteItems","isMixedUnshareAndDelete","type","FileType","File","isAllFiles","Folder","isAllFolders","iconSvgInline","enabled","map","permissions","permission","Permission","DELETE","exec","dir","axios","delete","encodedSource","error","logger","source","execBatch","promises","Promise","resolve","add","async","result","all","order","triggerDownload","url","hiddenElement","document","createElement","download","href","click","downloadNodes","secret","Math","random","toString","substring","generateUrl","files","JSON","stringify","basename","isDownloadable","READ","_node$attributes$shar","_shareAttributes$find","shareAttributes","parse","downloadAttribute","find","attribute","scope","key","_node$root","root","startsWith","fill","UPDATE","path","link","generateOcsUrl","_getCurrentUser","post","uid","getCurrentUser","window","location","host","encodePath","data","ocs","token","showError","openLocalClient","shouldFavorite","favorite","favoriteNode","willFavorite","tags","OC","TAG_FAVORITE","dirname","Vue","StarSvg","_node$root$startsWith","NONE","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","MoveCopyAction","canMove","reduce","min","ALL","canCopy","_node$attributes","canDownload","rootPath","defaultRootUrl","generateRemoteUrl","getClient","rootUrl","client","createClient","setHeaders","requesttoken","onRequestTokenUpdate","getRequestToken","getPatcher","patch","headers","method","fetch","hashCode","str","hash","charCodeAt","resultToNode","userId","Error","props","davParsePermissions","owner","String","filename","nodeData","fileid","mtime","Date","lastmod","mime","size","hasPreview","failed","getContents","controller","AbortController","propfindPayload","davGetDefaultPropfind","CancelablePromise","reject","onCancel","abort","contentsResponse","getDirectoryContents","details","includeSelf","signal","contents","folder","filter","Boolean","getActionForNodes","MOVE_OR_COPY","MOVE","COPY","handleCopyMoveNodeTo","destination","overwrite","NodeStatus","LOADING","copySuffix","index","davGetClient","currentPath","join","davRootPath","destinationPath","target","otherNodes","getUniqueName","n","suffix","ignoreFileExtension","copyFile","stat","davResultToNode","hasConflict","selected","renamed","openConflictPicker","deleteFile","moveFile","AxiosError","_error$response","_error$response2","_error$response3","response","status","message","debug","openFilePickerForAction","fileIDs","filePicker","getFilePickerBuilder","allowDirectories","setFilter","includes","setMimeTypeFilter","setMultiSelect","startAt","setButtonFactory","selection","buttons","dirnames","paths","label","escape","sanitize","icon","CopyIconSvg","callback","FolderMoveSvg","pick","catch","FilePickerClosed","e","FolderSvg","isDavRessource","OCP","Files","Router","goToRoute","default","DefaultType","HIDDEN","openfile","InformationSvg","_window","_ref","_nodes$0$root","OCA","Sidebar","open","query","defineComponent","components","NcButton","NcDialog","NcTextField","defaultName","otherNames","emits","close","localDefaultName","computed","errorMessage","isUniqueName","uniqueName","watch","$nextTick","focusInput","mounted","methods","_this$$refs$input","_this$$refs$input$foc","$refs","input","focus","onCreate","$emit","onClose","state","_vm","_c","_self","_setupProxy","attrs","scopedSlots","_u","_v","_s","proxy","$event","preventDefault","ref","newNodeName","folderContent","labels","contentNames","spawnDialog","NewNodeDialog","folderName","entry","CREATE","handler","content","_getCurrentUser2","_context$attributes","_context$attributes2","_context$attributes3","encodeURIComponent","Overwrite","parseInt","createNewFolder","showSuccess","templatesPath","loadState","directory","templatePath","copySystemTemplates","info","templates_path","initTemplatesFolder","removeNewFileMenuEntry","TemplatePickerVue","defineAsyncComponent","TemplatePicker","getTemplatePicker","mountingPoint","body","appendChild","render","h","parent","picker","el","_rootResponse","reportPayload","davGetFavoritesReport","rootResponse","generateFavoriteFolderView","View","generateIdFromPath","params","columns","activePinia","setActivePinia","pinia","piniaSymbol","Symbol","isPlainObject","o","toJSON","MutationType","IS_CLIENT","USE_DEVTOOLS","__VUE_PROD_DEVTOOLS__","_global","self","global","globalThis","HTMLElement","opts","xhr","XMLHttpRequest","responseType","onload","saveAs","onerror","console","send","corsEnabled","dispatchEvent","MouseEvent","createEvent","initMouseEvent","_navigator","navigator","userAgent","isMacOSWebView","test","HTMLAnchorElement","blob","a","rel","origin","URL","createObjectURL","setTimeout","revokeObjectURL","msSaveOrOpenBlob","autoBom","Blob","fromCharCode","bom","popup","title","innerText","force","isSafari","isChromeIOS","FileReader","reader","onloadend","replace","assign","readAsDataURL","toastMessage","piniaMessage","__VUE_DEVTOOLS_TOAST__","warn","log","isPinia","checkClipboardAccess","checkNotFocusedError","toLowerCase","fileInput","loadStoresState","storeState","value","formatDisplay","display","_custom","PINIA_ROOT_LABEL","PINIA_ROOT_ID","formatStoreForInspectorTree","store","$id","formatEventData","isArray","keys","operations","oldValue","newValue","operation","formatMutationType","direct","patchFunction","patchObject","isTimelineActive","componentStateTypes","MUTATIONS_LAYER_ID","INSPECTOR_ID","assign$1","getStoreType","registerPiniaDevtools","app","logo","packageName","homepage","api","now","addTimelineLayer","color","addInspector","treeFilterPlaceholder","actions","clipboard","writeText","actionGlobalCopyState","tooltip","readText","actionGlobalPasteState","sendInspectorTree","sendInspectorState","actionGlobalSaveState","accept","onchange","file","item","text","oncancel","actionGlobalOpenStateFile","nodeActions","nodeId","get","$reset","inspectComponent","payload","ctx","componentInstance","_pStores","piniaStores","values","forEach","instanceData","editable","_isOptionsAPI","$state","_getters","getters","getInspectorTree","inspectorId","stores","from","rootNodes","getInspectorState","inspectedStore","storeNames","storeMap","storeId","getterName","_customProperties","customProperties","formatStoreForInspectorState","editInspectorState","unshift","set","editComponentState","activeAction","runningActionId","patchActionForGrouping","actionNames","wrapWithProxy","storeActions","actionName","_actionId","trackedStore","Proxy","Reflect","retValue","devtoolsPlugin","originalHotUpdate","_hotUpdate","newStore","_hmrPayload","settings","logStoreChanges","defaultValue","bind","$onAction","after","onError","groupId","addTimelineEvent","layerId","time","subtitle","logType","notifyComponentUpdate","deep","$subscribe","eventData","detached","flush","hotUpdate","$dispose","getSettings","addStoreToDevtools","noop","addSubscription","subscriptions","onCleanup","removeSubscription","idx","indexOf","splice","triggerSubscriptions","fallbackRunWithContext","mergeReactiveObjects","patchToApply","Map","Set","subPatch","targetValue","skipHydrateSymbol","skipHydrateMap","WeakMap","createSetupStore","setup","hot","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","debuggerEvents","actionSubscriptions","initialState","hotState","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","then","newState","wrapAction","afterCallbackList","onErrorCallbackList","ret","partialStore","_p","stopWatcher","run","stop","_r","setupStore","_a","runWithContext","_e","prop","effect","obj","actionValue","defineProperty","nonEnumerable","writable","configurable","enumerable","p","extender","extensions","hydrate","userConfig","show_hidden","crop_image_previews","sort_favorites_first","sort_folders_first","grid_view","toBeInstalled","install","provide","config","globalProperties","$pinia","plugin","use","createPinia","lastTwoWeeksTimestamp","round","registerFileAction","deleteAction","downloadAction","editLocallyAction","favoriteAction","moveOrCopyAction","openFolderAction","openInFilesAction","renameAction","sidebarAction","viewInFolderAction","addNewFileMenuEntry","newFolderEntry","newTemplatesFolder","provider","iconClass","templatePicker","extension","favoriteFolders","favoriteFoldersViews","Navigation","getNavigation","register","caption","emptyTitle","emptyCaption","subscribe","addToFavorites","_node$root2","removePathFromFavorites","updateAndSortViews","sort","b","localeCompare","getLanguage","ignorePunctuation","newFavoriteFolder","findIndex","remove","registerFavoritesView","defaultSortKey","userConfigStore","idOrOptions","setupOptions","isSetupStore","useStore","hasContext","localState","computedGetters","createOptionsStore","defineStore","onUpdate","update","put","_initialized","useUserConfigStore","davGetRecentSearch","davRemoteURL","r","split","addEventListener","noRewrite","registration","serviceWorker","registerDavProperty","nc","newName","ext","extname","base","encodeFilePath","pathSections","relativePath","section","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","def","x","d","RC","max","autostart","ignoreSameProgress","rate","lastTimestamp","lastProgress","historyTimeConstant","previousOutput","dt","start","report","progress","timestamp","deltaTimestamp","currentRate","reset","estimate","Infinity","estimatedTime","user","setUid","NewFileMenu","_entries","registerEntry","validateEntry","category","unregisterEntry","entryIndex","getEntryIndex","entries","getEntries","getNewFileMenu","_nc_newfilemenu","DefaultType2","_action","constructor","validateAction","inline","renderInline","_nc_fileactions","search","Permission2","defaultDavProperties","defaultDavNamespaces","oc","namespace","_nc_dav_properties","_nc_dav_namespaces","namespaces","getDavProperties","getDavNameSpaces","ns","lastModified","permString","SHARE","FileType2","davService","match","validateData","crtime","service","NodeStatus2","Node","_data","_attributes","_knownDavService","readonlyAttributes","getOwnPropertyDescriptors","updateMtime","deleteProperty","receiver","pop","firstMatch","pathname","move","rename","basename2","super","remoteURL","headers2","getFavoriteNodes","davClient","davRoot","filesRoot","isPublic","querySelector","Number","getcontentlength","_oc_config","blacklist_files_regex","RegExp","humanList","humanListBinary","formatFileSize","skipSmallSizes","binaryPrefixes","base1000","floor","readableFormat","relativeSize","pow","toFixed","parseFloat","toLocaleString","_views","_currentView","views","setActive","active","_nc_navigation","Column","_column","column","isValidColumn","summary","validator$2","util$3","nameStartChar","nameRegexp","regexName","isExist","v","isEmptyObject","merge","arrayMode","getValue","isName","string","getAllMatches","regex","matches","allmatches","startIndex","lastIndex","util$2","defaultOptions$2","allowBooleanAttributes","unpairedTags","isWhiteSpace","char","readPI","xmlData","tagname","substr","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","trim","msg","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","openPos","col","afterAmp","validateAmpersand","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re","validateNumberAmpersand","count","lineNumber","lines","OptionsBuilder","defaultOptions$1","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","val2","attributeValueProcessor","stopNodes","alwaysCreateTextNode","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","jPath","buildOptions","defaultOptions","util$1","readEntityExp","entityName2","isComment","isEntity","isElement","isAttlist","isNotation","validateEntityName","hexRegex","numRegex","consider","decimalPoint","util","xmlNode","child","addChild","readDocType","entities","hasBody","comment","exp","entityName","val","regx","toNumber","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","num","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","charAt","attrsRegx","buildAttributesMap","oldVal","aName","newVal","attrCollection","parseXml","xmlObj","currentNode","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","lastIndexOf","propIndex","tagsNodeStack","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","docTypeEntities","rawTagName","lastTag","isItStopNode","tagContent","result2","readStopNodeData","replaceEntitiesValue$1","entity","ampEntity","currentTagName","allNodesExp","stopNodePath","stopNodeExp","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","node2json","compress","arr","compressedObj","tagObj","property","propName$1","newJpath","isLeaf","isLeafTag","assignAttributes","attrMap","jpath","atrrName","propCount","prettify","OrderedObjParser2","_","validator$1","arrToStr","indentation","xmlStr","isPreviousElementTag","propName","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","endsWith","attr","attrVal","suppressBooleanAttributes","textValue","buildFromOrderedJs","jArray","format","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","level","j2x","buildTextValNode","buildObjectNode","repeat","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","Ks","L","closeTag","tagEndExp","piClosingChar","fxp","XMLParser","validationOption","orderedObjParser","orderedResult","addEntity","XMLValidator","XMLBuilder","_view","isValidView","emptyView","sticky","expanded","jsonObject","parser","isSvg","getNewFileMenuEntries","numeric","sensitivity","CancelError","reason","isCanceled","promiseState","freeze","pending","canceled","resolved","rejected","PCancelable","userFunction","arguments_","executor","description","defineProperties","shouldReject","boolean","onFulfilled","onRejected","onFinally","finally","cancel","setPrototypeOf","TimeoutError","AbortError","getDOMException","DOMException","getAbortedReason","PriorityQueue","enqueue","element","priority","array","comparator","first","step","trunc","it","lowerBound","dequeue","shift","timeout","carryoverConcurrencyCount","intervalCap","POSITIVE_INFINITY","interval","autoStart","queueClass","isFinite","throwOnTimeout","delay","clearInterval","canInitializeInterval","job","setInterval","newConcurrency","_resolve","function_","throwIfAborted","promise","milliseconds","fallback","customTimers","clearTimeout","timer","cancelablePromise","aborted","timeoutError","clear","pTimeout","race","addAll","functions","pause","onEmpty","onSizeLessThan","limit","onIdle","sizeBy","isPaused","A","s","Destination","request","onUploadProgress","B","appConfig","max_chunk_size","ceil","c","INITIALIZED","UPLOADING","ASSEMBLING","FINISHED","CANCELLED","FAILED","_source","_file","_isChunked","_chunks","_size","_uploaded","_startTime","_status","_controller","_response","isChunked","chunks","startTime","uploaded","getTime","g","I","IDLE","PAUSED","N","_destinationFolder","_isPublic","_uploadQueue","_jobQueue","_queueSize","_queueProgress","_queueStatus","_notifiers","maxChunksSize","updateStats","addNotifier","upload","f","T","U","m","bytes","ts","w","D","W","O","y","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","S","beforeCreate","ms","fillColor","_b","staticClass","role","$attrs","width","height","viewBox","fs","xs","R","detectLocale","locale","json","charset","Language","translations","msgid","comments","translator","msgstr","Add","paused","msgid_plural","extracted","Cancel","Continue","New","addTranslation","C","Gs","ngettext","u","gettext","Ls","extend","NcActionButton","NcActions","NcIconSvgWrapper","NcProgressBar","Plus","Upload","disabled","multiple","forbiddenCharacters","addLabel","cancelLabel","uploadLabel","progressLabel","progressTimeId","eta","timeLeft","newFileMenuEntries","uploadManager","M","totalQueueSize","uploadedQueueSize","hasFailure","isUploading","isAssembling","buttonName","setDestination","updateStatus","beforeMount","onUploadCompletion","onClick","onPick","Us","ys","form","setSeconds","toISOString","seconds","class","decorative","_l","svg","directives","rawName","expression","change","k","conflicts","submit","$destroy","$el","parentNode","removeChild","$mount","baseURL","modRewriteWorking","protocol","_oc_webroot","Axios","CanceledError","isCancel","CancelToken","VERSION","isAxiosError","spread","toFormData","AxiosHeaders","HttpStatusCode","formToJSON","getAdapter","mergeConfig","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","notFulfilled","fulfilled","getter","__esModule","definition","chunkId","Function","done","script","needAttach","scripts","getElementsByTagName","getAttribute","setAttribute","src","onScriptComplete","prev","doneFns","head","toStringTag","nmd","children","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"files-init.js?v=14c3f9a7f1d7a01d1ba8","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/eventemitter3/index.js","webpack:///nextcloud/apps/files/src/logger.js","webpack:///nextcloud/apps/files/src/actions/deleteAction.ts","webpack:///nextcloud/apps/files/src/actions/downloadAction.ts","webpack:///nextcloud/apps/files/src/actions/editLocallyAction.ts","webpack:///nextcloud/apps/files/src/actions/favoriteAction.ts","webpack://nextcloud/./node_modules/@nextcloud/dialogs/dist/style.css?d87c","webpack:///nextcloud/apps/files/src/actions/moveOrCopyActionUtils.ts","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyAction.ts","webpack:///nextcloud/apps/files/src/actions/openFolderAction.ts","webpack:///nextcloud/apps/files/src/actions/openInFilesAction.ts","webpack:///nextcloud/apps/files/src/actions/renameAction.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/actions/viewInFolderAction.ts","webpack:///nextcloud/apps/files/src/components/NewNodeDialog.vue","webpack:///nextcloud/apps/files/src/components/NewNodeDialog.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/NewNodeDialog.vue?1a36","webpack:///nextcloud/apps/files/src/utils/newNodeDialog.ts","webpack:///nextcloud/apps/files/src/newMenu/newFolder.ts","webpack:///nextcloud/apps/files/src/newMenu/newTemplatesFolder.ts","webpack:///nextcloud/apps/files/src/newMenu/newFromTemplate.ts","webpack:///nextcloud/apps/files/src/services/Favorites.ts","webpack:///nextcloud/apps/files/src/views/favorites.ts","webpack:///nextcloud/node_modules/pinia/dist/pinia.mjs","webpack:///nextcloud/apps/files/src/store/userconfig.ts","webpack:///nextcloud/apps/files/src/store/index.ts","webpack:///nextcloud/apps/files/src/services/Recent.ts","webpack:///nextcloud/apps/files/src/init.ts","webpack:///nextcloud/apps/files/src/views/files.ts","webpack:///nextcloud/apps/files/src/views/recent.ts","webpack:///nextcloud/apps/files/src/services/ServiceWorker.js","webpack:///nextcloud/apps/files/src/services/LivePhotos.ts","webpack:///nextcloud/apps/files/src/utils/fileUtils.ts","webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/style.css","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/assets/index-Ussc_ol3.css","webpack:///nextcloud/node_modules/simple-eta/index.js","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack://nextcloud/./node_modules/@nextcloud/upload/dist/assets/index-Ussc_ol3.css?40cd","webpack:///nextcloud/node_modules/p-cancelable/index.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-timeout/index.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-queue/dist/priority-queue.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-queue/dist/lower-bound.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-queue/dist/index.js","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/index-DM2X1kc6.mjs","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/@nextcloud/router/dist/index.mjs","webpack:///nextcloud/node_modules/axios/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\n}\n","/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files')\n\t.detectUser()\n\t.build()\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, Node, View, FileAction, FileType } from '@nextcloud/files';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport CloseSvg from '@mdi/svg/svg/close.svg?raw';\nimport NetworkOffSvg from '@mdi/svg/svg/network-off.svg?raw';\nimport TrashCanSvg from '@mdi/svg/svg/trash-can.svg?raw';\nimport logger from '../logger.js';\nimport PQueue from 'p-queue';\nconst canUnshareOnly = (nodes) => {\n    return nodes.every(node => node.attributes['is-mount-root'] === true\n        && node.attributes['mount-type'] === 'shared');\n};\nconst canDisconnectOnly = (nodes) => {\n    return nodes.every(node => node.attributes['is-mount-root'] === true\n        && node.attributes['mount-type'] === 'external');\n};\nconst isMixedUnshareAndDelete = (nodes) => {\n    if (nodes.length === 1) {\n        return false;\n    }\n    const hasSharedItems = nodes.some(node => canUnshareOnly([node]));\n    const hasDeleteItems = nodes.some(node => !canUnshareOnly([node]));\n    return hasSharedItems && hasDeleteItems;\n};\nconst isAllFiles = (nodes) => {\n    return !nodes.some(node => node.type !== FileType.File);\n};\nconst isAllFolders = (nodes) => {\n    return !nodes.some(node => node.type !== FileType.Folder);\n};\nconst queue = new PQueue({ concurrency: 5 });\nexport const action = new FileAction({\n    id: 'delete',\n    displayName(nodes, view) {\n        /**\n         * If we're in the trashbin, we can only delete permanently\n         */\n        if (view.id === 'trashbin') {\n            return t('files', 'Delete permanently');\n        }\n        /**\n         * If we're in the sharing view, we can only unshare\n         */\n        if (isMixedUnshareAndDelete(nodes)) {\n            return t('files', 'Delete and unshare');\n        }\n        /**\n         * If those nodes are all the root node of a\n         * share, we can only unshare them.\n         */\n        if (canUnshareOnly(nodes)) {\n            if (nodes.length === 1) {\n                return t('files', 'Leave this share');\n            }\n            return t('files', 'Leave these shares');\n        }\n        /**\n         * If those nodes are all the root node of an\n         * external storage, we can only disconnect it.\n         */\n        if (canDisconnectOnly(nodes)) {\n            if (nodes.length === 1) {\n                return t('files', 'Disconnect storage');\n            }\n            return t('files', 'Disconnect storages');\n        }\n        /**\n         * If we're only selecting files, use proper wording\n         */\n        if (isAllFiles(nodes)) {\n            if (nodes.length === 1) {\n                return t('files', 'Delete file');\n            }\n            return t('files', 'Delete files');\n        }\n        /**\n         * If we're only selecting folders, use proper wording\n         */\n        if (isAllFolders(nodes)) {\n            if (nodes.length === 1) {\n                return t('files', 'Delete folder');\n            }\n            return t('files', 'Delete folders');\n        }\n        return t('files', 'Delete');\n    },\n    iconSvgInline: (nodes) => {\n        if (canUnshareOnly(nodes)) {\n            return CloseSvg;\n        }\n        if (canDisconnectOnly(nodes)) {\n            return NetworkOffSvg;\n        }\n        return TrashCanSvg;\n    },\n    enabled(nodes) {\n        return nodes.length > 0 && nodes\n            .map(node => node.permissions)\n            .every(permission => (permission & Permission.DELETE) !== 0);\n    },\n    async exec(node, view, dir) {\n        try {\n            await axios.delete(node.encodedSource);\n            // Let's delete even if it's moved to the trashbin\n            // since it has been removed from the current view\n            // and changing the view will trigger a reload anyway.\n            emit('files:node:deleted', node);\n            return true;\n        }\n        catch (error) {\n            logger.error('Error while deleting a file', { error, source: node.source, node });\n            return false;\n        }\n    },\n    async execBatch(nodes, view, dir) {\n        // Map each node to a promise that resolves with the result of exec(node)\n        const promises = nodes.map(node => {\n            // Create a promise that resolves with the result of exec(node)\n            const promise = new Promise(resolve => {\n                queue.add(async () => {\n                    const result = await this.exec(node, view, dir);\n                    resolve(result !== null ? result : false);\n                });\n            });\n            return promise;\n        });\n        return Promise.all(promises);\n    },\n    order: 100,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { generateUrl } from '@nextcloud/router';\nimport { FileAction, Permission, Node, FileType, View } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport ArrowDownSvg from '@mdi/svg/svg/arrow-down.svg?raw';\nconst triggerDownload = function (url) {\n    const hiddenElement = document.createElement('a');\n    hiddenElement.download = '';\n    hiddenElement.href = url;\n    hiddenElement.click();\n};\nconst downloadNodes = function (dir, nodes) {\n    const secret = Math.random().toString(36).substring(2);\n    const url = generateUrl('/apps/files/ajax/download.php?dir={dir}&files={files}&downloadStartSecret={secret}', {\n        dir,\n        secret,\n        files: JSON.stringify(nodes.map(node => node.basename)),\n    });\n    triggerDownload(url);\n};\nconst isDownloadable = function (node) {\n    if ((node.permissions & Permission.READ) === 0) {\n        return false;\n    }\n    // If the mount type is a share, ensure it got download permissions.\n    if (node.attributes['mount-type'] === 'shared') {\n        const shareAttributes = JSON.parse(node.attributes['share-attributes'] ?? 'null');\n        const downloadAttribute = shareAttributes?.find?.((attribute) => attribute.scope === 'permissions' && attribute.key === 'download');\n        if (downloadAttribute !== undefined && downloadAttribute.enabled === false) {\n            return false;\n        }\n    }\n    return true;\n};\nexport const action = new FileAction({\n    id: 'download',\n    displayName: () => t('files', 'Download'),\n    iconSvgInline: () => ArrowDownSvg,\n    enabled(nodes) {\n        if (nodes.length === 0) {\n            return false;\n        }\n        // We can download direct dav files. But if we have\n        // some folders, we need to use the /apps/files/ajax/download.php\n        // endpoint, which only supports user root folder.\n        if (nodes.some(node => node.type === FileType.Folder)\n            && nodes.some(node => !node.root?.startsWith('/files'))) {\n            return false;\n        }\n        return nodes.every(isDownloadable);\n    },\n    async exec(node, view, dir) {\n        if (node.type === FileType.Folder) {\n            downloadNodes(dir, [node]);\n            return null;\n        }\n        triggerDownload(node.encodedSource);\n        return null;\n    },\n    async execBatch(nodes, view, dir) {\n        if (nodes.length === 1) {\n            this.exec(nodes[0], view, dir);\n            return [null];\n        }\n        downloadNodes(dir, nodes);\n        return new Array(nodes.length).fill(null);\n    },\n    order: 30,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { encodePath } from '@nextcloud/paths';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { FileAction, Permission } from '@nextcloud/files';\nimport { showError } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport LaptopSvg from '@mdi/svg/svg/laptop.svg?raw';\nconst openLocalClient = async function (path) {\n    const link = generateOcsUrl('apps/files/api/v1') + '/openlocaleditor?format=json';\n    try {\n        const result = await axios.post(link, { path });\n        const uid = getCurrentUser()?.uid;\n        let url = `nc://open/${uid}@` + window.location.host + encodePath(path);\n        url += '?token=' + result.data.ocs.data.token;\n        window.location.href = url;\n    }\n    catch (error) {\n        showError(t('files', 'Failed to redirect to client'));\n    }\n};\nexport const action = new FileAction({\n    id: 'edit-locally',\n    displayName: () => t('files', 'Edit locally'),\n    iconSvgInline: () => LaptopSvg,\n    // Only works on single files\n    enabled(nodes) {\n        // Only works on single node\n        if (nodes.length !== 1) {\n            return false;\n        }\n        return (nodes[0].permissions & Permission.UPDATE) !== 0;\n    },\n    async exec(node) {\n        openLocalClient(node.path);\n        return null;\n    },\n    order: 25,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { Permission, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nimport StarOutlineSvg from '@mdi/svg/svg/star-outline.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport logger from '../logger.js';\nimport { encodePath } from '@nextcloud/paths';\n// If any of the nodes is not favorited, we display the favorite action.\nconst shouldFavorite = (nodes) => {\n    return nodes.some(node => node.attributes.favorite !== 1);\n};\nexport const favoriteNode = async (node, view, willFavorite) => {\n    try {\n        // TODO: migrate to webdav tags plugin\n        const url = generateUrl('/apps/files/api/v1/files') + encodePath(node.path);\n        await axios.post(url, {\n            tags: willFavorite\n                ? [window.OC.TAG_FAVORITE]\n                : [],\n        });\n        // Let's delete if we are in the favourites view\n        // AND if it is removed from the user favorites\n        // AND it's in the root of the favorites view\n        if (view.id === 'favorites' && !willFavorite && node.dirname === '/') {\n            emit('files:node:deleted', node);\n        }\n        // Update the node webdav attribute\n        Vue.set(node.attributes, 'favorite', willFavorite ? 1 : 0);\n        // Dispatch event to whoever is interested\n        if (willFavorite) {\n            emit('files:favorites:added', node);\n        }\n        else {\n            emit('files:favorites:removed', node);\n        }\n        return true;\n    }\n    catch (error) {\n        const action = willFavorite ? 'adding a file to favourites' : 'removing a file from favourites';\n        logger.error('Error while ' + action, { error, source: node.source, node });\n        return false;\n    }\n};\nexport const action = new FileAction({\n    id: 'favorite',\n    displayName(nodes) {\n        return shouldFavorite(nodes)\n            ? t('files', 'Add to favorites')\n            : t('files', 'Remove from favorites');\n    },\n    iconSvgInline: (nodes) => {\n        return shouldFavorite(nodes)\n            ? StarOutlineSvg\n            : StarSvg;\n    },\n    enabled(nodes) {\n        // We can only favorite nodes within files and with permissions\n        return !nodes.some(node => !node.root?.startsWith?.('/files'))\n            && nodes.every(node => node.permissions !== Permission.NONE);\n    },\n    async exec(node, view) {\n        const willFavorite = shouldFavorite([node]);\n        return await favoriteNode(node, view, willFavorite);\n    },\n    async execBatch(nodes, view) {\n        const willFavorite = shouldFavorite(nodes);\n        return Promise.all(nodes.map(async (node) => await favoriteNode(node, view, willFavorite)));\n    },\n    order: -50,\n});\n","\n      import API from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../css-loader/dist/cjs.js!./style.css\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!./style.css\";\n       export default content && content.locals ? content.locals : undefined;\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport '@nextcloud/dialogs/style.css';\nimport { Permission } from '@nextcloud/files';\nimport PQueue from 'p-queue';\n// This is the processing queue. We only want to allow 3 concurrent requests\nlet queue;\n/**\n * Get the processing queue\n */\nexport const getQueue = () => {\n    if (!queue) {\n        queue = new PQueue({ concurrency: 3 });\n    }\n    return queue;\n};\nexport var MoveCopyAction;\n(function (MoveCopyAction) {\n    MoveCopyAction[\"MOVE\"] = \"Move\";\n    MoveCopyAction[\"COPY\"] = \"Copy\";\n    MoveCopyAction[\"MOVE_OR_COPY\"] = \"move-or-copy\";\n})(MoveCopyAction || (MoveCopyAction = {}));\nexport const canMove = (nodes) => {\n    const minPermission = nodes.reduce((min, node) => Math.min(min, node.permissions), Permission.ALL);\n    return (minPermission & Permission.UPDATE) !== 0;\n};\nexport const canDownload = (nodes) => {\n    return nodes.every(node => {\n        const shareAttributes = JSON.parse(node.attributes?.['share-attributes'] ?? '[]');\n        return !shareAttributes.some(attribute => attribute.scope === 'permissions' && attribute.enabled === false && attribute.key === 'download');\n    });\n};\nexport const canCopy = (nodes) => {\n    // a shared file cannot be copied if the download is disabled\n    // it can be copied if the user has at least read permissions\n    return canDownload(nodes)\n        && !nodes.some(node => node.permissions === Permission.NONE);\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { createClient, getPatcher } from 'webdav';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser, getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth';\nexport const rootPath = `/files/${getCurrentUser()?.uid}`;\nexport const defaultRootUrl = generateRemoteUrl('dav' + rootPath);\nexport const getClient = (rootUrl = defaultRootUrl) => {\n    const client = createClient(rootUrl);\n    // set CSRF token header\n    const setHeaders = (token) => {\n        client?.setHeaders({\n            // Add this so the server knows it is an request from the browser\n            'X-Requested-With': 'XMLHttpRequest',\n            // Inject user auth\n            requesttoken: token ?? '',\n        });\n    };\n    // refresh headers when request token changes\n    onRequestTokenUpdate(setHeaders);\n    setHeaders(getRequestToken());\n    /**\n     * Allow to override the METHOD to support dav REPORT\n     *\n     * @see https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/request.ts\n     */\n    const patcher = getPatcher();\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore\n    // https://github.com/perry-mitchell/hot-patcher/issues/6\n    patcher.patch('fetch', (url, options) => {\n        const headers = options.headers;\n        if (headers?.method) {\n            options.method = headers.method;\n            delete headers.method;\n        }\n        return fetch(url, options);\n    });\n    return client;\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nexport const hashCode = function (str) {\n    let hash = 0;\n    for (let i = 0; i < str.length; i++) {\n        hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0;\n    }\n    return (hash >>> 0);\n};\n","import { CancelablePromise } from 'cancelable-promise';\nimport { File, Folder, davParsePermissions, davGetDefaultPropfind } from '@nextcloud/files';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getClient, rootPath } from './WebdavClient.ts';\nimport { hashCode } from '../utils/hashUtils';\nimport logger from '../logger';\nconst client = getClient();\nexport const resultToNode = function (node) {\n    const userId = getCurrentUser()?.uid;\n    if (!userId) {\n        throw new Error('No user id found');\n    }\n    const props = node.props;\n    const permissions = davParsePermissions(props?.permissions);\n    const owner = String(props['owner-id'] || userId);\n    const source = generateRemoteUrl('dav' + rootPath + node.filename);\n    const id = props?.fileid < 0\n        ? hashCode(source)\n        : props?.fileid || 0;\n    const nodeData = {\n        id,\n        source,\n        mtime: new Date(node.lastmod),\n        mime: node.mime || 'application/octet-stream',\n        size: props?.size || 0,\n        permissions,\n        owner,\n        root: rootPath,\n        attributes: {\n            ...node,\n            ...props,\n            'owner-id': owner,\n            'owner-display-name': String(props['owner-display-name']),\n            hasPreview: !!props?.['has-preview'],\n            failed: props?.fileid < 0,\n        },\n    };\n    delete nodeData.attributes.props;\n    return node.type === 'file'\n        ? new File(nodeData)\n        : new Folder(nodeData);\n};\nexport const getContents = (path = '/') => {\n    const controller = new AbortController();\n    const propfindPayload = davGetDefaultPropfind();\n    return new CancelablePromise(async (resolve, reject, onCancel) => {\n        onCancel(() => controller.abort());\n        try {\n            const contentsResponse = await client.getDirectoryContents(path, {\n                details: true,\n                data: propfindPayload,\n                includeSelf: true,\n                signal: controller.signal,\n            });\n            const root = contentsResponse.data[0];\n            const contents = contentsResponse.data.slice(1);\n            if (root.filename !== path) {\n                throw new Error('Root node does not match requested path');\n            }\n            resolve({\n                folder: resultToNode(root),\n                contents: contents.map(result => {\n                    try {\n                        return resultToNode(result);\n                    }\n                    catch (error) {\n                        logger.error(`Invalid node detected '${result.basename}'`, { error });\n                        return null;\n                    }\n                }).filter(Boolean),\n            });\n        }\n        catch (error) {\n            reject(error);\n        }\n    });\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport '@nextcloud/dialogs/style.css';\n// eslint-disable-next-line n/no-extraneous-import\nimport { AxiosError } from 'axios';\nimport { basename, join } from 'path';\nimport { emit } from '@nextcloud/event-bus';\nimport { FilePickerClosed, getFilePickerBuilder, showError } from '@nextcloud/dialogs';\nimport { Permission, FileAction, FileType, NodeStatus, davGetClient, davRootPath, davResultToNode, davGetDefaultPropfind } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { openConflictPicker, hasConflict } from '@nextcloud/upload';\nimport Vue from 'vue';\nimport CopyIconSvg from '@mdi/svg/svg/folder-multiple.svg?raw';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nimport { MoveCopyAction, canCopy, canMove, getQueue } from './moveOrCopyActionUtils';\nimport { getContents } from '../services/Files';\nimport logger from '../logger';\nimport { getUniqueName } from '../utils/fileUtils';\n/**\n * Return the action that is possible for the given nodes\n * @param {Node[]} nodes The nodes to check against\n * @return {MoveCopyAction} The action that is possible for the given nodes\n */\nconst getActionForNodes = (nodes) => {\n    if (canMove(nodes)) {\n        if (canCopy(nodes)) {\n            return MoveCopyAction.MOVE_OR_COPY;\n        }\n        return MoveCopyAction.MOVE;\n    }\n    // Assuming we can copy as the enabled checks for copy permissions\n    return MoveCopyAction.COPY;\n};\n/**\n * Handle the copy/move of a node to a destination\n * This can be imported and used by other scripts/components on server\n * @param {Node} node The node to copy/move\n * @param {Folder} destination The destination to copy/move the node to\n * @param {MoveCopyAction} method The method to use for the copy/move\n * @param {boolean} overwrite Whether to overwrite the destination if it exists\n * @return {Promise<void>} A promise that resolves when the copy/move is done\n */\nexport const handleCopyMoveNodeTo = async (node, destination, method, overwrite = false) => {\n    if (!destination) {\n        return;\n    }\n    if (destination.type !== FileType.Folder) {\n        throw new Error(t('files', 'Destination is not a folder'));\n    }\n    // Do not allow to MOVE a node to the same folder it is already located\n    if (method === MoveCopyAction.MOVE && node.dirname === destination.path) {\n        throw new Error(t('files', 'This file/folder is already in that directory'));\n    }\n    /**\n     * Example:\n     * - node: /foo/bar/file.txt -> path = /foo/bar/file.txt, destination: /foo\n     *   Allow move of /foo does not start with /foo/bar/file.txt so allow\n     * - node: /foo , destination: /foo/bar\n     *   Do not allow as it would copy foo within itself\n     * - node: /foo/bar.txt, destination: /foo\n     *   Allow copy a file to the same directory\n     * - node: \"/foo/bar\", destination: \"/foo/bar 1\"\n     *   Allow to move or copy but we need to check with trailing / otherwise it would report false positive\n     */\n    if (`${destination.path}/`.startsWith(`${node.path}/`)) {\n        throw new Error(t('files', 'You cannot move a file/folder onto itself or into a subfolder of itself'));\n    }\n    // Set loading state\n    Vue.set(node, 'status', NodeStatus.LOADING);\n    const queue = getQueue();\n    return await queue.add(async () => {\n        const copySuffix = (index) => {\n            if (index === 1) {\n                return t('files', '(copy)'); // TRANSLATORS: Mark a file as a copy of another file\n            }\n            return t('files', '(copy %n)', undefined, index); // TRANSLATORS: Meaning it is the n'th copy of a file\n        };\n        try {\n            const client = davGetClient();\n            const currentPath = join(davRootPath, node.path);\n            const destinationPath = join(davRootPath, destination.path);\n            if (method === MoveCopyAction.COPY) {\n                let target = node.basename;\n                // If we do not allow overwriting then find an unique name\n                if (!overwrite) {\n                    const otherNodes = await client.getDirectoryContents(destinationPath);\n                    target = getUniqueName(node.basename, otherNodes.map((n) => n.basename), {\n                        suffix: copySuffix,\n                        ignoreFileExtension: node.type === FileType.Folder,\n                    });\n                }\n                await client.copyFile(currentPath, join(destinationPath, target));\n                // If the node is copied into current directory the view needs to be updated\n                if (node.dirname === destination.path) {\n                    const { data } = await client.stat(join(destinationPath, target), {\n                        details: true,\n                        data: davGetDefaultPropfind(),\n                    });\n                    emit('files:node:created', davResultToNode(data));\n                }\n            }\n            else {\n                // show conflict file popup if we do not allow overwriting\n                const otherNodes = await getContents(destination.path);\n                if (hasConflict([node], otherNodes.contents)) {\n                    try {\n                        // Let the user choose what to do with the conflicting files\n                        const { selected, renamed } = await openConflictPicker(destination.path, [node], otherNodes.contents);\n                        // if the user selected to keep the old file, and did not select the new file\n                        // that means they opted to delete the current node\n                        if (!selected.length && !renamed.length) {\n                            await client.deleteFile(currentPath);\n                            emit('files:node:deleted', node);\n                            return;\n                        }\n                    }\n                    catch (error) {\n                        // User cancelled\n                        showError(t('files', 'Move cancelled'));\n                        return;\n                    }\n                }\n                // getting here means either no conflict, file was renamed to keep both files\n                // in a conflict, or the selected file was chosen to be kept during the conflict\n                await client.moveFile(currentPath, join(destinationPath, node.basename));\n                // Delete the node as it will be fetched again\n                // when navigating to the destination folder\n                emit('files:node:deleted', node);\n            }\n        }\n        catch (error) {\n            if (error instanceof AxiosError) {\n                if (error?.response?.status === 412) {\n                    throw new Error(t('files', 'A file or folder with that name already exists in this folder'));\n                }\n                else if (error?.response?.status === 423) {\n                    throw new Error(t('files', 'The files is locked'));\n                }\n                else if (error?.response?.status === 404) {\n                    throw new Error(t('files', 'The file does not exist anymore'));\n                }\n                else if (error.message) {\n                    throw new Error(error.message);\n                }\n            }\n            logger.debug(error);\n            throw new Error();\n        }\n        finally {\n            Vue.set(node, 'status', undefined);\n        }\n    });\n};\n/**\n * Open a file picker for the given action\n * @param {MoveCopyAction} action The action to open the file picker for\n * @param {string} dir The directory to start the file picker in\n * @param {Node[]} nodes The nodes to move/copy\n * @return {Promise<MoveCopyResult>} The picked destination\n */\nconst openFilePickerForAction = async (action, dir = '/', nodes) => {\n    const fileIDs = nodes.map(node => node.fileid).filter(Boolean);\n    const filePicker = getFilePickerBuilder(t('files', 'Choose destination'))\n        .allowDirectories(true)\n        .setFilter((n) => {\n        // We don't want to show the current nodes in the file picker\n        return !fileIDs.includes(n.fileid);\n    })\n        .setMimeTypeFilter([])\n        .setMultiSelect(false)\n        .startAt(dir);\n    return new Promise((resolve, reject) => {\n        filePicker.setButtonFactory((selection, path) => {\n            const buttons = [];\n            const target = basename(path);\n            const dirnames = nodes.map(node => node.dirname);\n            const paths = nodes.map(node => node.path);\n            if (action === MoveCopyAction.COPY || action === MoveCopyAction.MOVE_OR_COPY) {\n                buttons.push({\n                    label: target ? t('files', 'Copy to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Copy'),\n                    type: 'primary',\n                    icon: CopyIconSvg,\n                    async callback(destination) {\n                        resolve({\n                            destination: destination[0],\n                            action: MoveCopyAction.COPY,\n                        });\n                    },\n                });\n            }\n            // Invalid MOVE targets (but valid copy targets)\n            if (dirnames.includes(path)) {\n                // This file/folder is already in that directory\n                return buttons;\n            }\n            if (paths.includes(path)) {\n                // You cannot move a file/folder onto itself\n                return buttons;\n            }\n            if (action === MoveCopyAction.MOVE || action === MoveCopyAction.MOVE_OR_COPY) {\n                buttons.push({\n                    label: target ? t('files', 'Move to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Move'),\n                    type: action === MoveCopyAction.MOVE ? 'primary' : 'secondary',\n                    icon: FolderMoveSvg,\n                    async callback(destination) {\n                        resolve({\n                            destination: destination[0],\n                            action: MoveCopyAction.MOVE,\n                        });\n                    },\n                });\n            }\n            return buttons;\n        });\n        const picker = filePicker.build();\n        picker.pick().catch((error) => {\n            logger.debug(error);\n            if (error instanceof FilePickerClosed) {\n                reject(new Error(t('files', 'Cancelled move or copy operation')));\n            }\n            else {\n                reject(new Error(t('files', 'Move or copy operation failed')));\n            }\n        });\n    });\n};\nexport const action = new FileAction({\n    id: 'move-copy',\n    displayName(nodes) {\n        switch (getActionForNodes(nodes)) {\n            case MoveCopyAction.MOVE:\n                return t('files', 'Move');\n            case MoveCopyAction.COPY:\n                return t('files', 'Copy');\n            case MoveCopyAction.MOVE_OR_COPY:\n                return t('files', 'Move or copy');\n        }\n    },\n    iconSvgInline: () => FolderMoveSvg,\n    enabled(nodes) {\n        // We only support moving/copying files within the user folder\n        if (!nodes.every(node => node.root?.startsWith('/files/'))) {\n            return false;\n        }\n        return nodes.length > 0 && (canMove(nodes) || canCopy(nodes));\n    },\n    async exec(node, view, dir) {\n        const action = getActionForNodes([node]);\n        let result;\n        try {\n            result = await openFilePickerForAction(action, dir, [node]);\n        }\n        catch (e) {\n            logger.error(e);\n            return false;\n        }\n        try {\n            await handleCopyMoveNodeTo(node, result.destination, result.action);\n            return true;\n        }\n        catch (error) {\n            if (error instanceof Error && !!error.message) {\n                showError(error.message);\n                // Silent action as we handle the toast\n                return null;\n            }\n            return false;\n        }\n    },\n    async execBatch(nodes, view, dir) {\n        const action = getActionForNodes(nodes);\n        const result = await openFilePickerForAction(action, dir, nodes);\n        const promises = nodes.map(async (node) => {\n            try {\n                await handleCopyMoveNodeTo(node, result.destination, result.action);\n                return true;\n            }\n            catch (error) {\n                logger.error(`Failed to ${result.action} node`, { node, error });\n                return false;\n            }\n        });\n        // We need to keep the selection on error!\n        // So we do not return null, and for batch action\n        // we let the front handle the error.\n        return await Promise.all(promises);\n    },\n    order: 15,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { Permission, Node, FileType, View, FileAction, DefaultType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nexport const action = new FileAction({\n    id: 'open-folder',\n    displayName(files) {\n        // Only works on single node\n        const displayName = files[0].attributes.displayName || files[0].basename;\n        return t('files', 'Open folder {displayName}', { displayName });\n    },\n    iconSvgInline: () => FolderSvg,\n    enabled(nodes) {\n        // Only works on single node\n        if (nodes.length !== 1) {\n            return false;\n        }\n        const node = nodes[0];\n        if (!node.isDavRessource) {\n            return false;\n        }\n        return node.type === FileType.Folder\n            && (node.permissions & Permission.READ) !== 0;\n    },\n    async exec(node, view) {\n        if (!node || node.type !== FileType.Folder) {\n            return false;\n        }\n        window.OCP.Files.Router.goToRoute(null, { view: view.id, fileid: node.fileid }, { dir: node.path });\n        return null;\n    },\n    // Main action if enabled, meaning folders only\n    default: DefaultType.HIDDEN,\n    order: -100,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport { FileType, FileAction, DefaultType } from '@nextcloud/files';\n/**\n * TODO: Move away from a redirect and handle\n * navigation straight out of the recent view\n */\nexport const action = new FileAction({\n    id: 'open-in-files-recent',\n    displayName: () => t('files', 'Open in Files'),\n    iconSvgInline: () => '',\n    enabled: (nodes, view) => view.id === 'recent',\n    async exec(node) {\n        let dir = node.dirname;\n        if (node.type === FileType.Folder) {\n            dir = dir + '/' + node.basename;\n        }\n        window.OCP.Files.Router.goToRoute(null, // use default route\n        { view: 'files', fileid: node.fileid }, { dir, openfile: 'true' });\n        return null;\n    },\n    // Before openFolderAction\n    order: -1000,\n    default: DefaultType.HIDDEN,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport PencilSvg from '@mdi/svg/svg/pencil.svg?raw';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n    id: 'rename',\n    displayName: () => t('files', 'Rename'),\n    iconSvgInline: () => PencilSvg,\n    enabled: (nodes) => {\n        return nodes.length > 0 && nodes\n            .map(node => node.permissions)\n            .every(permission => (permission & Permission.UPDATE) !== 0);\n    },\n    async exec(node) {\n        // Renaming is a built-in feature of the files app\n        emit('files:node:rename', node);\n        return null;\n    },\n    order: 10,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { Permission, View, FileAction, FileType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport logger from '../logger.js';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n    id: ACTION_DETAILS,\n    displayName: () => t('files', 'Open details'),\n    iconSvgInline: () => InformationSvg,\n    // Sidebar currently supports user folder only, /files/USER\n    enabled: (nodes) => {\n        // Only works on single node\n        if (nodes.length !== 1) {\n            return false;\n        }\n        if (!nodes[0]) {\n            return false;\n        }\n        // Only work if the sidebar is available\n        if (!window?.OCA?.Files?.Sidebar) {\n            return false;\n        }\n        return (nodes[0].root?.startsWith('/files/') && nodes[0].permissions !== Permission.NONE) ?? false;\n    },\n    async exec(node, view, dir) {\n        try {\n            // TODO: migrate Sidebar to use a Node instead\n            await window.OCA.Files.Sidebar.open(node.path);\n            // Silently update current fileid\n            window.OCP.Files.Router.goToRoute(null, { view: view.id, fileid: node.fileid }, { ...window.OCP.Files.Router.query, dir }, true);\n            return null;\n        }\n        catch (error) {\n            logger.error('Error while opening sidebar', { error });\n            return false;\n        }\n    },\n    order: -50,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { Node, FileType, Permission, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nexport const action = new FileAction({\n    id: 'view-in-folder',\n    displayName() {\n        return t('files', 'View in folder');\n    },\n    iconSvgInline: () => FolderMoveSvg,\n    enabled(nodes, view) {\n        // Only works outside of the main files view\n        if (view.id === 'files') {\n            return false;\n        }\n        // Only works on single node\n        if (nodes.length !== 1) {\n            return false;\n        }\n        const node = nodes[0];\n        if (!node.isDavRessource) {\n            return false;\n        }\n        if (node.permissions === Permission.NONE) {\n            return false;\n        }\n        return node.type === FileType.File;\n    },\n    async exec(node) {\n        if (!node || node.type !== FileType.File) {\n            return false;\n        }\n        window.OCP.Files.Router.goToRoute(null, { view: 'files', fileid: node.fileid }, { dir: node.dirname });\n        return null;\n    },\n    order: 80,\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcDialog',{attrs:{\"name\":_vm.name,\"open\":_vm.open,\"close-on-click-outside\":\"\",\"out-transition\":\"\"},on:{\"update:open\":_vm.onClose},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{attrs:{\"type\":\"primary\",\"disabled\":!_vm.isUniqueName},on:{\"click\":_vm.onCreate}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Create'))+\"\\n\\t\\t\")])]},proxy:true}])},[_vm._v(\" \"),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onCreate.apply(null, arguments)}}},[_c('NcTextField',{ref:\"input\",attrs:{\"error\":!_vm.isUniqueName,\"helper-text\":_vm.errorMessage,\"label\":_vm.label,\"value\":_vm.localDefaultName},on:{\"update:value\":function($event){_vm.localDefaultName=$event}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewNodeDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewNodeDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NewNodeDialog.vue?vue&type=template&id=c63cee88\"\nimport script from \"./NewNodeDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./NewNodeDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2024 Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { spawnDialog } from '@nextcloud/dialogs';\nimport NewNodeDialog from '../components/NewNodeDialog.vue';\n/**\n * Ask user for file or folder name\n * @param defaultName Default name to use\n * @param folderContent Nodes with in the current folder to check for unique name\n * @param labels Labels to set on the dialog\n * @return string if successfull otherwise null if aborted\n */\nexport function newNodeName(defaultName, folderContent, labels = {}) {\n    const contentNames = folderContent.map((node) => node.basename);\n    return new Promise((resolve) => {\n        spawnDialog(NewNodeDialog, {\n            ...labels,\n            defaultName,\n            otherNames: contentNames,\n        }, (folderName) => {\n            resolve(folderName);\n        });\n    });\n}\n","import { basename } from 'path';\nimport { emit } from '@nextcloud/event-bus';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { Permission, Folder } from '@nextcloud/files';\nimport { showSuccess } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport FolderPlusSvg from '@mdi/svg/svg/folder-plus.svg?raw';\nimport { newNodeName } from '../utils/newNodeDialog';\nimport logger from '../logger';\nconst createNewFolder = async (root, name) => {\n    const source = root.source + '/' + name;\n    const encodedSource = root.encodedSource + '/' + encodeURIComponent(name);\n    const response = await axios({\n        method: 'MKCOL',\n        url: encodedSource,\n        headers: {\n            Overwrite: 'F',\n        },\n    });\n    return {\n        fileid: parseInt(response.headers['oc-fileid']),\n        source,\n    };\n};\nexport const entry = {\n    id: 'newFolder',\n    displayName: t('files', 'New folder'),\n    enabled: (context) => (context.permissions & Permission.CREATE) !== 0,\n    iconSvgInline: FolderPlusSvg,\n    order: 0,\n    async handler(context, content) {\n        const name = await newNodeName(t('files', 'New folder'), content);\n        if (name !== null) {\n            const { fileid, source } = await createNewFolder(context, name);\n            // Create the folder in the store\n            const folder = new Folder({\n                source,\n                id: fileid,\n                mtime: new Date(),\n                owner: getCurrentUser()?.uid || null,\n                permissions: Permission.ALL,\n                root: context?.root || '/files/' + getCurrentUser()?.uid,\n                // Include mount-type from parent folder as this is inherited\n                attributes: {\n                    'mount-type': context.attributes?.['mount-type'],\n                    'owner-id': context.attributes?.['owner-id'],\n                    'owner-display-name': context.attributes?.['owner-display-name'],\n                },\n            });\n            showSuccess(t('files', 'Created new folder \"{name}\"', { name: basename(source) }));\n            logger.debug('Created new folder', { folder, source });\n            emit('files:node:created', folder);\n            window.OCP.Files.Router.goToRoute(null, // use default route\n            { view: 'files', fileid: folder.fileid }, { dir: context.path });\n        }\n    },\n};\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { showError } from '@nextcloud/dialogs';\nimport { Permission, removeNewFileMenuEntry } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { translate as t } from '@nextcloud/l10n';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { join } from 'path';\nimport { newNodeName } from '../utils/newNodeDialog';\nimport PlusSvg from '@mdi/svg/svg/plus.svg?raw';\nimport axios from '@nextcloud/axios';\nimport logger from '../logger.js';\nlet templatesPath = loadState('files', 'templates_path', false);\nlogger.debug('Initial templates folder', { templatesPath });\n/**\n * Init template folder\n * @param directory Folder where to create the templates folder\n * @param name Name to use or the templates folder\n */\nconst initTemplatesFolder = async function (directory, name) {\n    const templatePath = join(directory.path, name);\n    try {\n        logger.debug('Initializing the templates directory', { templatePath });\n        const { data } = await axios.post(generateOcsUrl('apps/files/api/v1/templates/path'), {\n            templatePath,\n            copySystemTemplates: true,\n        });\n        // Go to template directory\n        window.OCP.Files.Router.goToRoute(null, // use default route\n        { view: 'files', fileid: undefined }, { dir: templatePath });\n        logger.info('Created new templates folder', {\n            ...data.ocs.data,\n        });\n        templatesPath = data.ocs.data.templates_path;\n    }\n    catch (error) {\n        logger.error('Unable to initialize the templates directory');\n        showError(t('files', 'Unable to initialize the templates directory'));\n    }\n};\nexport const entry = {\n    id: 'template-picker',\n    displayName: t('files', 'Create new templates folder'),\n    iconSvgInline: PlusSvg,\n    order: 10,\n    enabled(context) {\n        // Templates folder already initialized\n        if (templatesPath) {\n            return false;\n        }\n        // Allow creation on your own folders only\n        if (context.owner !== getCurrentUser()?.uid) {\n            return false;\n        }\n        return (context.permissions & Permission.CREATE) !== 0;\n    },\n    async handler(context, content) {\n        const name = await newNodeName(t('files', 'Templates'), content, { name: t('files', 'New template folder') });\n        if (name !== null) {\n            // Create the template folder\n            initTemplatesFolder(context, name);\n            // Remove the menu entry\n            removeNewFileMenuEntry('template-picker');\n        }\n    },\n};\n","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Julius Härtl <jus@bitgrid.net>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { Folder, Node, Permission, addNewFileMenuEntry } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { newNodeName } from '../utils/newNodeDialog';\nimport { translate as t } from '@nextcloud/l10n';\nimport Vue, { defineAsyncComponent } from 'vue';\n// async to reduce bundle size\nconst TemplatePickerVue = defineAsyncComponent(() => import('../views/TemplatePicker.vue'));\nlet TemplatePicker = null;\nconst getTemplatePicker = async (context) => {\n    if (TemplatePicker === null) {\n        // Create document root\n        const mountingPoint = document.createElement('div');\n        mountingPoint.id = 'template-picker';\n        document.body.appendChild(mountingPoint);\n        // Init vue app\n        TemplatePicker = new Vue({\n            render: (h) => h(TemplatePickerVue, {\n                ref: 'picker',\n                props: {\n                    parent: context,\n                },\n            }),\n            methods: { open(...args) { this.$refs.picker.open(...args); } },\n            el: mountingPoint,\n        });\n    }\n    return TemplatePicker;\n};\n/**\n * Register all new-file-menu entries for all template providers\n */\nexport function registerTemplateEntries() {\n    const templates = loadState('files', 'templates', []);\n    // Init template files menu\n    templates.forEach((provider, index) => {\n        addNewFileMenuEntry({\n            id: `template-new-${provider.app}-${index}`,\n            displayName: provider.label,\n            // TODO: migrate to inline svg\n            iconClass: provider.iconClass || 'icon-file',\n            enabled(context) {\n                return (context.permissions & Permission.CREATE) !== 0;\n            },\n            order: 11,\n            async handler(context, content) {\n                const templatePicker = getTemplatePicker(context);\n                const name = await newNodeName(`${provider.label}${provider.extension}`, content, {\n                    label: t('files', 'Filename'),\n                    name: provider.label,\n                });\n                if (name !== null) {\n                    // Create the file\n                    const picker = await templatePicker;\n                    picker.open(name, provider);\n                }\n            },\n        });\n    });\n}\n","import { Folder, davGetDefaultPropfind, davGetFavoritesReport } from '@nextcloud/files';\nimport { getClient } from './WebdavClient';\nimport { resultToNode } from './Files';\nconst client = getClient();\nexport const getContents = async (path = '/') => {\n    const propfindPayload = davGetDefaultPropfind();\n    const reportPayload = davGetFavoritesReport();\n    // Get root folder\n    let rootResponse;\n    if (path === '/') {\n        rootResponse = await client.stat(path, {\n            details: true,\n            data: propfindPayload,\n        });\n    }\n    const contentsResponse = await client.getDirectoryContents(path, {\n        details: true,\n        // Only filter favorites if we're at the root\n        data: path === '/' ? reportPayload : propfindPayload,\n        headers: {\n            // Patched in WebdavClient.ts\n            method: path === '/' ? 'REPORT' : 'PROPFIND',\n        },\n        includeSelf: true,\n    });\n    const root = rootResponse?.data || contentsResponse.data[0];\n    const contents = contentsResponse.data.filter(node => node.filename !== path);\n    return {\n        folder: resultToNode(root),\n        contents: contents.map(resultToNode),\n    };\n};\n","import { subscribe } from '@nextcloud/event-bus';\nimport { FileType, View, getNavigation } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { getLanguage, translate as t } from '@nextcloud/l10n';\nimport { basename } from 'path';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport { getContents } from '../services/Favorites';\nimport { hashCode } from '../utils/hashUtils';\nimport logger from '../logger';\nexport const generateFavoriteFolderView = function (folder, index = 0) {\n    return new View({\n        id: generateIdFromPath(folder.path),\n        name: basename(folder.path),\n        icon: FolderSvg,\n        order: index,\n        params: {\n            dir: folder.path,\n            fileid: folder.fileid.toString(),\n            view: 'favorites',\n        },\n        parent: 'favorites',\n        columns: [],\n        getContents,\n    });\n};\nexport const generateIdFromPath = function (path) {\n    return `favorite-${hashCode(path)}`;\n};\nexport default () => {\n    // Load state in function for mock testing purposes\n    const favoriteFolders = loadState('files', 'favoriteFolders', []);\n    const favoriteFoldersViews = favoriteFolders.map((folder, index) => generateFavoriteFolderView(folder, index));\n    logger.debug('Generating favorites view', { favoriteFolders });\n    const Navigation = getNavigation();\n    Navigation.register(new View({\n        id: 'favorites',\n        name: t('files', 'Favorites'),\n        caption: t('files', 'List of favorites files and folders.'),\n        emptyTitle: t('files', 'No favorites yet'),\n        emptyCaption: t('files', 'Files and folders you mark as favorite will show up here'),\n        icon: StarSvg,\n        order: 5,\n        columns: [],\n        getContents,\n    }));\n    favoriteFoldersViews.forEach(view => Navigation.register(view));\n    /**\n     * Update favourites navigation when a new folder is added\n     */\n    subscribe('files:favorites:added', (node) => {\n        if (node.type !== FileType.Folder) {\n            return;\n        }\n        // Sanity check\n        if (node.path === null || !node.root?.startsWith('/files')) {\n            logger.error('Favorite folder is not within user files root', { node });\n            return;\n        }\n        addToFavorites(node);\n    });\n    /**\n     * Remove favourites navigation when a folder is removed\n     */\n    subscribe('files:favorites:removed', (node) => {\n        if (node.type !== FileType.Folder) {\n            return;\n        }\n        // Sanity check\n        if (node.path === null || !node.root?.startsWith('/files')) {\n            logger.error('Favorite folder is not within user files root', { node });\n            return;\n        }\n        removePathFromFavorites(node.path);\n    });\n    /**\n     * Update favourites navigation when a folder is renamed\n     */\n    subscribe('files:node:renamed', (node) => {\n        if (node.type !== FileType.Folder) {\n            return;\n        }\n        if (node.attributes.favorite !== 1) {\n            return;\n        }\n        updateNodeFromFavorites(node);\n    });\n    /**\n     * Sort the favorites paths array and\n     * update the order property of the existing views\n     */\n    const updateAndSortViews = function () {\n        favoriteFolders.sort((a, b) => a.path.localeCompare(b.path, getLanguage(), { ignorePunctuation: true }));\n        favoriteFolders.forEach((folder, index) => {\n            const view = favoriteFoldersViews.find((view) => view.id === generateIdFromPath(folder.path));\n            if (view) {\n                view.order = index;\n            }\n        });\n    };\n    // Add a folder to the favorites paths array and update the views\n    const addToFavorites = function (node) {\n        const newFavoriteFolder = { path: node.path, fileid: node.fileid };\n        const view = generateFavoriteFolderView(newFavoriteFolder);\n        // Skip if already exists\n        if (favoriteFolders.find((folder) => folder.path === node.path)) {\n            return;\n        }\n        // Update arrays\n        favoriteFolders.push(newFavoriteFolder);\n        favoriteFoldersViews.push(view);\n        // Update and sort views\n        updateAndSortViews();\n        Navigation.register(view);\n    };\n    // Remove a folder from the favorites paths array and update the views\n    const removePathFromFavorites = function (path) {\n        const id = generateIdFromPath(path);\n        const index = favoriteFolders.findIndex((folder) => folder.path === path);\n        // Skip if not exists\n        if (index === -1) {\n            return;\n        }\n        // Update arrays\n        favoriteFolders.splice(index, 1);\n        favoriteFoldersViews.splice(index, 1);\n        // Update and sort views\n        Navigation.remove(id);\n        updateAndSortViews();\n    };\n    // Update a folder from the favorites paths array and update the views\n    const updateNodeFromFavorites = function (node) {\n        const favoriteFolder = favoriteFolders.find((folder) => folder.fileid === node.fileid);\n        // Skip if it does not exists\n        if (favoriteFolder === undefined) {\n            return;\n        }\n        removePathFromFavorites(favoriteFolder.path);\n        addToFavorites(node);\n    };\n};\n","/*!\n * pinia v2.1.7\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\nimport { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isVue2, isRef, isReactive, set, getCurrentScope, onScopeDispose, getCurrentInstance, reactive, toRef, del, nextTick, computed, toRefs } from 'vue-demi';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n    return (o &&\n        typeof o === 'object' &&\n        Object.prototype.toString.call(o) === '[object Object]' &&\n        typeof o.toJSON !== 'function');\n}\n// type DeepReadonly<T> = { readonly [P in keyof T]: DeepReadonly<T[P]> }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n    /**\n     * Direct mutation of the state:\n     *\n     * - `store.name = 'new name'`\n     * - `store.$state.name = 'new name'`\n     * - `store.list.push('new item')`\n     */\n    MutationType[\"direct\"] = \"direct\";\n    /**\n     * Mutated the state with `$patch` and an object\n     *\n     * - `store.$patch({ name: 'newName' })`\n     */\n    MutationType[\"patchObject\"] = \"patch object\";\n    /**\n     * Mutated the state with `$patch` and a function\n     *\n     * - `store.$patch(state => state.name = 'newName')`\n     */\n    MutationType[\"patchFunction\"] = \"patch function\";\n    // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\nconst IS_CLIENT = typeof window !== 'undefined';\n/**\n * Should we add the devtools plugins.\n * - only if dev mode or forced through the prod devtools flag\n * - not in test\n * - only if window exists (could change in the future)\n */\nconst USE_DEVTOOLS = ((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test') && IS_CLIENT;\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n    ? window\n    : typeof self === 'object' && self.self === self\n        ? self\n        : typeof global === 'object' && global.global === global\n            ? global\n            : typeof globalThis === 'object'\n                ? globalThis\n                : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n    // prepend BOM for UTF-8 XML and text/* types (including HTML)\n    // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n    if (autoBom &&\n        /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n        return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n    }\n    return blob;\n}\nfunction download(url, name, opts) {\n    const xhr = new XMLHttpRequest();\n    xhr.open('GET', url);\n    xhr.responseType = 'blob';\n    xhr.onload = function () {\n        saveAs(xhr.response, name, opts);\n    };\n    xhr.onerror = function () {\n        console.error('could not download file');\n    };\n    xhr.send();\n}\nfunction corsEnabled(url) {\n    const xhr = new XMLHttpRequest();\n    // use sync to avoid popup blocker\n    xhr.open('HEAD', url, false);\n    try {\n        xhr.send();\n    }\n    catch (e) { }\n    return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n    try {\n        node.dispatchEvent(new MouseEvent('click'));\n    }\n    catch (e) {\n        const evt = document.createEvent('MouseEvents');\n        evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n        node.dispatchEvent(evt);\n    }\n}\nconst _navigator = \n typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n    /AppleWebKit/.test(_navigator.userAgent) &&\n    !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n    ? () => { } // noop\n    : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n        typeof HTMLAnchorElement !== 'undefined' &&\n            'download' in HTMLAnchorElement.prototype &&\n            !isMacOSWebView\n            ? downloadSaveAs\n            : // Use msSaveOrOpenBlob as a second approach\n                'msSaveOrOpenBlob' in _navigator\n                    ? msSaveAs\n                    : // Fallback to using FileReader and a popup\n                        fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n    const a = document.createElement('a');\n    a.download = name;\n    a.rel = 'noopener'; // tabnabbing\n    // TODO: detect chrome extensions & packaged apps\n    // a.target = '_blank'\n    if (typeof blob === 'string') {\n        // Support regular links\n        a.href = blob;\n        if (a.origin !== location.origin) {\n            if (corsEnabled(a.href)) {\n                download(blob, name, opts);\n            }\n            else {\n                a.target = '_blank';\n                click(a);\n            }\n        }\n        else {\n            click(a);\n        }\n    }\n    else {\n        // Support blobs\n        a.href = URL.createObjectURL(blob);\n        setTimeout(function () {\n            URL.revokeObjectURL(a.href);\n        }, 4e4); // 40s\n        setTimeout(function () {\n            click(a);\n        }, 0);\n    }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n    if (typeof blob === 'string') {\n        if (corsEnabled(blob)) {\n            download(blob, name, opts);\n        }\n        else {\n            const a = document.createElement('a');\n            a.href = blob;\n            a.target = '_blank';\n            setTimeout(function () {\n                click(a);\n            });\n        }\n    }\n    else {\n        // @ts-ignore: works on windows\n        navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n    }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n    // Open a popup immediately do go around popup blocker\n    // Mostly only available on user interaction and the fileReader is async so...\n    popup = popup || open('', '_blank');\n    if (popup) {\n        popup.document.title = popup.document.body.innerText = 'downloading...';\n    }\n    if (typeof blob === 'string')\n        return download(blob, name, opts);\n    const force = blob.type === 'application/octet-stream';\n    const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n    const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n    if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n        typeof FileReader !== 'undefined') {\n        // Safari doesn't allow downloading of blob URLs\n        const reader = new FileReader();\n        reader.onloadend = function () {\n            let url = reader.result;\n            if (typeof url !== 'string') {\n                popup = null;\n                throw new Error('Wrong reader.result type');\n            }\n            url = isChromeIOS\n                ? url\n                : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n            if (popup) {\n                popup.location.href = url;\n            }\n            else {\n                location.assign(url);\n            }\n            popup = null; // reverse-tabnabbing #460\n        };\n        reader.readAsDataURL(blob);\n    }\n    else {\n        const url = URL.createObjectURL(blob);\n        if (popup)\n            popup.location.assign(url);\n        else\n            location.href = url;\n        popup = null; // reverse-tabnabbing #460\n        setTimeout(function () {\n            URL.revokeObjectURL(url);\n        }, 4e4); // 40s\n    }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n    const piniaMessage = '🍍 ' + message;\n    if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n        // No longer available :(\n        __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n    }\n    else if (type === 'error') {\n        console.error(piniaMessage);\n    }\n    else if (type === 'warn') {\n        console.warn(piniaMessage);\n    }\n    else {\n        console.log(piniaMessage);\n    }\n}\nfunction isPinia(o) {\n    return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\n// ---\nfunction checkClipboardAccess() {\n    if (!('clipboard' in navigator)) {\n        toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n        return true;\n    }\n}\nfunction checkNotFocusedError(error) {\n    if (error instanceof Error &&\n        error.message.toLowerCase().includes('document is not focused')) {\n        toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n        return true;\n    }\n    return false;\n}\nasync function actionGlobalCopyState(pinia) {\n    if (checkClipboardAccess())\n        return;\n    try {\n        await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n        toastMessage('Global state copied to clipboard.');\n    }\n    catch (error) {\n        if (checkNotFocusedError(error))\n            return;\n        toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n        console.error(error);\n    }\n}\nasync function actionGlobalPasteState(pinia) {\n    if (checkClipboardAccess())\n        return;\n    try {\n        loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n        toastMessage('Global state pasted from clipboard.');\n    }\n    catch (error) {\n        if (checkNotFocusedError(error))\n            return;\n        toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n        console.error(error);\n    }\n}\nasync function actionGlobalSaveState(pinia) {\n    try {\n        saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n            type: 'text/plain;charset=utf-8',\n        }), 'pinia-state.json');\n    }\n    catch (error) {\n        toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n        console.error(error);\n    }\n}\nlet fileInput;\nfunction getFileOpener() {\n    if (!fileInput) {\n        fileInput = document.createElement('input');\n        fileInput.type = 'file';\n        fileInput.accept = '.json';\n    }\n    function openFile() {\n        return new Promise((resolve, reject) => {\n            fileInput.onchange = async () => {\n                const files = fileInput.files;\n                if (!files)\n                    return resolve(null);\n                const file = files.item(0);\n                if (!file)\n                    return resolve(null);\n                return resolve({ text: await file.text(), file });\n            };\n            // @ts-ignore: TODO: changed from 4.3 to 4.4\n            fileInput.oncancel = () => resolve(null);\n            fileInput.onerror = reject;\n            fileInput.click();\n        });\n    }\n    return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n    try {\n        const open = getFileOpener();\n        const result = await open();\n        if (!result)\n            return;\n        const { text, file } = result;\n        loadStoresState(pinia, JSON.parse(text));\n        toastMessage(`Global state imported from \"${file.name}\".`);\n    }\n    catch (error) {\n        toastMessage(`Failed to import the state from JSON. Check the console for more details.`, 'error');\n        console.error(error);\n    }\n}\nfunction loadStoresState(pinia, state) {\n    for (const key in state) {\n        const storeState = pinia.state.value[key];\n        // store is already instantiated, patch it\n        if (storeState) {\n            Object.assign(storeState, state[key]);\n        }\n        else {\n            // store is not instantiated, set the initial state\n            pinia.state.value[key] = state[key];\n        }\n    }\n}\n\nfunction formatDisplay(display) {\n    return {\n        _custom: {\n            display,\n        },\n    };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n    return isPinia(store)\n        ? {\n            id: PINIA_ROOT_ID,\n            label: PINIA_ROOT_LABEL,\n        }\n        : {\n            id: store.$id,\n            label: store.$id,\n        };\n}\nfunction formatStoreForInspectorState(store) {\n    if (isPinia(store)) {\n        const storeNames = Array.from(store._s.keys());\n        const storeMap = store._s;\n        const state = {\n            state: storeNames.map((storeId) => ({\n                editable: true,\n                key: storeId,\n                value: store.state.value[storeId],\n            })),\n            getters: storeNames\n                .filter((id) => storeMap.get(id)._getters)\n                .map((id) => {\n                const store = storeMap.get(id);\n                return {\n                    editable: false,\n                    key: id,\n                    value: store._getters.reduce((getters, key) => {\n                        getters[key] = store[key];\n                        return getters;\n                    }, {}),\n                };\n            }),\n        };\n        return state;\n    }\n    const state = {\n        state: Object.keys(store.$state).map((key) => ({\n            editable: true,\n            key,\n            value: store.$state[key],\n        })),\n    };\n    // avoid adding empty getters\n    if (store._getters && store._getters.length) {\n        state.getters = store._getters.map((getterName) => ({\n            editable: false,\n            key: getterName,\n            value: store[getterName],\n        }));\n    }\n    if (store._customProperties.size) {\n        state.customProperties = Array.from(store._customProperties).map((key) => ({\n            editable: true,\n            key,\n            value: store[key],\n        }));\n    }\n    return state;\n}\nfunction formatEventData(events) {\n    if (!events)\n        return {};\n    if (Array.isArray(events)) {\n        // TODO: handle add and delete for arrays and objects\n        return events.reduce((data, event) => {\n            data.keys.push(event.key);\n            data.operations.push(event.type);\n            data.oldValue[event.key] = event.oldValue;\n            data.newValue[event.key] = event.newValue;\n            return data;\n        }, {\n            oldValue: {},\n            keys: [],\n            operations: [],\n            newValue: {},\n        });\n    }\n    else {\n        return {\n            operation: formatDisplay(events.type),\n            key: formatDisplay(events.key),\n            oldValue: events.oldValue,\n            newValue: events.newValue,\n        };\n    }\n}\nfunction formatMutationType(type) {\n    switch (type) {\n        case MutationType.direct:\n            return 'mutation';\n        case MutationType.patchFunction:\n            return '$patch';\n        case MutationType.patchObject:\n            return '$patch';\n        default:\n            return 'unknown';\n    }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n    setupDevtoolsPlugin({\n        id: 'dev.esm.pinia',\n        label: 'Pinia 🍍',\n        logo: 'https://pinia.vuejs.org/logo.svg',\n        packageName: 'pinia',\n        homepage: 'https://pinia.vuejs.org',\n        componentStateTypes,\n        app,\n    }, (api) => {\n        if (typeof api.now !== 'function') {\n            toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n        }\n        api.addTimelineLayer({\n            id: MUTATIONS_LAYER_ID,\n            label: `Pinia 🍍`,\n            color: 0xe5df88,\n        });\n        api.addInspector({\n            id: INSPECTOR_ID,\n            label: 'Pinia 🍍',\n            icon: 'storage',\n            treeFilterPlaceholder: 'Search stores',\n            actions: [\n                {\n                    icon: 'content_copy',\n                    action: () => {\n                        actionGlobalCopyState(pinia);\n                    },\n                    tooltip: 'Serialize and copy the state',\n                },\n                {\n                    icon: 'content_paste',\n                    action: async () => {\n                        await actionGlobalPasteState(pinia);\n                        api.sendInspectorTree(INSPECTOR_ID);\n                        api.sendInspectorState(INSPECTOR_ID);\n                    },\n                    tooltip: 'Replace the state with the content of your clipboard',\n                },\n                {\n                    icon: 'save',\n                    action: () => {\n                        actionGlobalSaveState(pinia);\n                    },\n                    tooltip: 'Save the state as a JSON file',\n                },\n                {\n                    icon: 'folder_open',\n                    action: async () => {\n                        await actionGlobalOpenStateFile(pinia);\n                        api.sendInspectorTree(INSPECTOR_ID);\n                        api.sendInspectorState(INSPECTOR_ID);\n                    },\n                    tooltip: 'Import the state from a JSON file',\n                },\n            ],\n            nodeActions: [\n                {\n                    icon: 'restore',\n                    tooltip: 'Reset the state (with \"$reset\")',\n                    action: (nodeId) => {\n                        const store = pinia._s.get(nodeId);\n                        if (!store) {\n                            toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n                        }\n                        else if (typeof store.$reset !== 'function') {\n                            toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n                        }\n                        else {\n                            store.$reset();\n                            toastMessage(`Store \"${nodeId}\" reset.`);\n                        }\n                    },\n                },\n            ],\n        });\n        api.on.inspectComponent((payload, ctx) => {\n            const proxy = (payload.componentInstance &&\n                payload.componentInstance.proxy);\n            if (proxy && proxy._pStores) {\n                const piniaStores = payload.componentInstance.proxy._pStores;\n                Object.values(piniaStores).forEach((store) => {\n                    payload.instanceData.state.push({\n                        type: getStoreType(store.$id),\n                        key: 'state',\n                        editable: true,\n                        value: store._isOptionsAPI\n                            ? {\n                                _custom: {\n                                    value: toRaw(store.$state),\n                                    actions: [\n                                        {\n                                            icon: 'restore',\n                                            tooltip: 'Reset the state of this store',\n                                            action: () => store.$reset(),\n                                        },\n                                    ],\n                                },\n                            }\n                            : // NOTE: workaround to unwrap transferred refs\n                                Object.keys(store.$state).reduce((state, key) => {\n                                    state[key] = store.$state[key];\n                                    return state;\n                                }, {}),\n                    });\n                    if (store._getters && store._getters.length) {\n                        payload.instanceData.state.push({\n                            type: getStoreType(store.$id),\n                            key: 'getters',\n                            editable: false,\n                            value: store._getters.reduce((getters, key) => {\n                                try {\n                                    getters[key] = store[key];\n                                }\n                                catch (error) {\n                                    // @ts-expect-error: we just want to show it in devtools\n                                    getters[key] = error;\n                                }\n                                return getters;\n                            }, {}),\n                        });\n                    }\n                });\n            }\n        });\n        api.on.getInspectorTree((payload) => {\n            if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n                let stores = [pinia];\n                stores = stores.concat(Array.from(pinia._s.values()));\n                payload.rootNodes = (payload.filter\n                    ? stores.filter((store) => '$id' in store\n                        ? store.$id\n                            .toLowerCase()\n                            .includes(payload.filter.toLowerCase())\n                        : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n                    : stores).map(formatStoreForInspectorTree);\n            }\n        });\n        api.on.getInspectorState((payload) => {\n            if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n                const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n                    ? pinia\n                    : pinia._s.get(payload.nodeId);\n                if (!inspectedStore) {\n                    // this could be the selected store restored for a different project\n                    // so it's better not to say anything here\n                    return;\n                }\n                if (inspectedStore) {\n                    payload.state = formatStoreForInspectorState(inspectedStore);\n                }\n            }\n        });\n        api.on.editInspectorState((payload, ctx) => {\n            if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n                const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n                    ? pinia\n                    : pinia._s.get(payload.nodeId);\n                if (!inspectedStore) {\n                    return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n                }\n                const { path } = payload;\n                if (!isPinia(inspectedStore)) {\n                    // access only the state\n                    if (path.length !== 1 ||\n                        !inspectedStore._customProperties.has(path[0]) ||\n                        path[0] in inspectedStore.$state) {\n                        path.unshift('$state');\n                    }\n                }\n                else {\n                    // Root access, we can omit the `.value` because the devtools API does it for us\n                    path.unshift('state');\n                }\n                isTimelineActive = false;\n                payload.set(inspectedStore, path, payload.state.value);\n                isTimelineActive = true;\n            }\n        });\n        api.on.editComponentState((payload) => {\n            if (payload.type.startsWith('🍍')) {\n                const storeId = payload.type.replace(/^🍍\\s*/, '');\n                const store = pinia._s.get(storeId);\n                if (!store) {\n                    return toastMessage(`store \"${storeId}\" not found`, 'error');\n                }\n                const { path } = payload;\n                if (path[0] !== 'state') {\n                    return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n                }\n                // rewrite the first entry to be able to directly set the state as\n                // well as any other path\n                path[0] = '$state';\n                isTimelineActive = false;\n                payload.set(store, path, payload.state.value);\n                isTimelineActive = true;\n            }\n        });\n    });\n}\nfunction addStoreToDevtools(app, store) {\n    if (!componentStateTypes.includes(getStoreType(store.$id))) {\n        componentStateTypes.push(getStoreType(store.$id));\n    }\n    setupDevtoolsPlugin({\n        id: 'dev.esm.pinia',\n        label: 'Pinia 🍍',\n        logo: 'https://pinia.vuejs.org/logo.svg',\n        packageName: 'pinia',\n        homepage: 'https://pinia.vuejs.org',\n        componentStateTypes,\n        app,\n        settings: {\n            logStoreChanges: {\n                label: 'Notify about new/deleted stores',\n                type: 'boolean',\n                defaultValue: true,\n            },\n            // useEmojis: {\n            //   label: 'Use emojis in messages ⚡️',\n            //   type: 'boolean',\n            //   defaultValue: true,\n            // },\n        },\n    }, (api) => {\n        // gracefully handle errors\n        const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n        store.$onAction(({ after, onError, name, args }) => {\n            const groupId = runningActionId++;\n            api.addTimelineEvent({\n                layerId: MUTATIONS_LAYER_ID,\n                event: {\n                    time: now(),\n                    title: '🛫 ' + name,\n                    subtitle: 'start',\n                    data: {\n                        store: formatDisplay(store.$id),\n                        action: formatDisplay(name),\n                        args,\n                    },\n                    groupId,\n                },\n            });\n            after((result) => {\n                activeAction = undefined;\n                api.addTimelineEvent({\n                    layerId: MUTATIONS_LAYER_ID,\n                    event: {\n                        time: now(),\n                        title: '🛬 ' + name,\n                        subtitle: 'end',\n                        data: {\n                            store: formatDisplay(store.$id),\n                            action: formatDisplay(name),\n                            args,\n                            result,\n                        },\n                        groupId,\n                    },\n                });\n            });\n            onError((error) => {\n                activeAction = undefined;\n                api.addTimelineEvent({\n                    layerId: MUTATIONS_LAYER_ID,\n                    event: {\n                        time: now(),\n                        logType: 'error',\n                        title: '💥 ' + name,\n                        subtitle: 'end',\n                        data: {\n                            store: formatDisplay(store.$id),\n                            action: formatDisplay(name),\n                            args,\n                            error,\n                        },\n                        groupId,\n                    },\n                });\n            });\n        }, true);\n        store._customProperties.forEach((name) => {\n            watch(() => unref(store[name]), (newValue, oldValue) => {\n                api.notifyComponentUpdate();\n                api.sendInspectorState(INSPECTOR_ID);\n                if (isTimelineActive) {\n                    api.addTimelineEvent({\n                        layerId: MUTATIONS_LAYER_ID,\n                        event: {\n                            time: now(),\n                            title: 'Change',\n                            subtitle: name,\n                            data: {\n                                newValue,\n                                oldValue,\n                            },\n                            groupId: activeAction,\n                        },\n                    });\n                }\n            }, { deep: true });\n        });\n        store.$subscribe(({ events, type }, state) => {\n            api.notifyComponentUpdate();\n            api.sendInspectorState(INSPECTOR_ID);\n            if (!isTimelineActive)\n                return;\n            // rootStore.state[store.id] = state\n            const eventData = {\n                time: now(),\n                title: formatMutationType(type),\n                data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n                groupId: activeAction,\n            };\n            if (type === MutationType.patchFunction) {\n                eventData.subtitle = '⤵️';\n            }\n            else if (type === MutationType.patchObject) {\n                eventData.subtitle = '🧩';\n            }\n            else if (events && !Array.isArray(events)) {\n                eventData.subtitle = events.type;\n            }\n            if (events) {\n                eventData.data['rawEvent(s)'] = {\n                    _custom: {\n                        display: 'DebuggerEvent',\n                        type: 'object',\n                        tooltip: 'raw DebuggerEvent[]',\n                        value: events,\n                    },\n                };\n            }\n            api.addTimelineEvent({\n                layerId: MUTATIONS_LAYER_ID,\n                event: eventData,\n            });\n        }, { detached: true, flush: 'sync' });\n        const hotUpdate = store._hotUpdate;\n        store._hotUpdate = markRaw((newStore) => {\n            hotUpdate(newStore);\n            api.addTimelineEvent({\n                layerId: MUTATIONS_LAYER_ID,\n                event: {\n                    time: now(),\n                    title: '🔥 ' + store.$id,\n                    subtitle: 'HMR update',\n                    data: {\n                        store: formatDisplay(store.$id),\n                        info: formatDisplay(`HMR update`),\n                    },\n                },\n            });\n            // update the devtools too\n            api.notifyComponentUpdate();\n            api.sendInspectorTree(INSPECTOR_ID);\n            api.sendInspectorState(INSPECTOR_ID);\n        });\n        const { $dispose } = store;\n        store.$dispose = () => {\n            $dispose();\n            api.notifyComponentUpdate();\n            api.sendInspectorTree(INSPECTOR_ID);\n            api.sendInspectorState(INSPECTOR_ID);\n            api.getSettings().logStoreChanges &&\n                toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n        };\n        // trigger an update so it can display new registered stores\n        api.notifyComponentUpdate();\n        api.sendInspectorTree(INSPECTOR_ID);\n        api.sendInspectorState(INSPECTOR_ID);\n        api.getSettings().logStoreChanges &&\n            toastMessage(`\"${store.$id}\" store installed 🆕`);\n    });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n    // original actions of the store as they are given by pinia. We are going to override them\n    const actions = actionNames.reduce((storeActions, actionName) => {\n        // use toRaw to avoid tracking #541\n        storeActions[actionName] = toRaw(store)[actionName];\n        return storeActions;\n    }, {});\n    for (const actionName in actions) {\n        store[actionName] = function () {\n            // the running action id is incremented in a before action hook\n            const _actionId = runningActionId;\n            const trackedStore = wrapWithProxy\n                ? new Proxy(store, {\n                    get(...args) {\n                        activeAction = _actionId;\n                        return Reflect.get(...args);\n                    },\n                    set(...args) {\n                        activeAction = _actionId;\n                        return Reflect.set(...args);\n                    },\n                })\n                : store;\n            // For Setup Stores we need https://github.com/tc39/proposal-async-context\n            activeAction = _actionId;\n            const retValue = actions[actionName].apply(trackedStore, arguments);\n            // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n            activeAction = undefined;\n            return retValue;\n        };\n    }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n    // HMR module\n    if (store.$id.startsWith('__hot:')) {\n        return;\n    }\n    // detect option api vs setup api\n    store._isOptionsAPI = !!options.state;\n    patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n    // Upgrade the HMR to also update the new actions\n    const originalHotUpdate = store._hotUpdate;\n    toRaw(store)._hotUpdate = function (newStore) {\n        originalHotUpdate.apply(this, arguments);\n        patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);\n    };\n    addStoreToDevtools(app, \n    // FIXME: is there a way to allow the assignment from Store<Id, S, G, A> to StoreGeneric?\n    store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n    const scope = effectScope(true);\n    // NOTE: here we could check the window object for a state and directly set it\n    // if there is anything like it with Vue 3 SSR\n    const state = scope.run(() => ref({}));\n    let _p = [];\n    // plugins added before calling app.use(pinia)\n    let toBeInstalled = [];\n    const pinia = markRaw({\n        install(app) {\n            // this allows calling useStore() outside of a component setup after\n            // installing pinia's plugin\n            setActivePinia(pinia);\n            if (!isVue2) {\n                pinia._a = app;\n                app.provide(piniaSymbol, pinia);\n                app.config.globalProperties.$pinia = pinia;\n                /* istanbul ignore else */\n                if (USE_DEVTOOLS) {\n                    registerPiniaDevtools(app, pinia);\n                }\n                toBeInstalled.forEach((plugin) => _p.push(plugin));\n                toBeInstalled = [];\n            }\n        },\n        use(plugin) {\n            if (!this._a && !isVue2) {\n                toBeInstalled.push(plugin);\n            }\n            else {\n                _p.push(plugin);\n            }\n            return this;\n        },\n        _p,\n        // it's actually undefined here\n        // @ts-expect-error\n        _a: null,\n        _e: scope,\n        _s: new Map(),\n        state,\n    });\n    // pinia devtools rely on dev only features so they cannot be forced unless\n    // the dev build of Vue is used. Avoid old browsers like IE11.\n    if (USE_DEVTOOLS && typeof Proxy !== 'undefined') {\n        pinia.use(devtoolsPlugin);\n    }\n    return pinia;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n    return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n    // no need to go through symbols because they cannot be serialized anyway\n    for (const key in oldState) {\n        const subPatch = oldState[key];\n        // skip the whole sub tree\n        if (!(key in newState)) {\n            continue;\n        }\n        const targetValue = newState[key];\n        if (isPlainObject(targetValue) &&\n            isPlainObject(subPatch) &&\n            !isRef(subPatch) &&\n            !isReactive(subPatch)) {\n            newState[key] = patchObject(targetValue, subPatch);\n        }\n        else {\n            // objects are either a bit more complex (e.g. refs) or primitives, so we\n            // just set the whole thing\n            if (isVue2) {\n                set(newState, key, subPatch);\n            }\n            else {\n                newState[key] = subPatch;\n            }\n        }\n    }\n    return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n *   import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n    // strip as much as possible from iife.prod\n    if (!(process.env.NODE_ENV !== 'production')) {\n        return () => { };\n    }\n    return (newModule) => {\n        const pinia = hot.data.pinia || initialUseStore._pinia;\n        if (!pinia) {\n            // this store is still not used\n            return;\n        }\n        // preserve the pinia instance across loads\n        hot.data.pinia = pinia;\n        // console.log('got data', newStore)\n        for (const exportName in newModule) {\n            const useStore = newModule[exportName];\n            // console.log('checking for', exportName)\n            if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n                // console.log('Accepting update for', useStore.$id)\n                const id = useStore.$id;\n                if (id !== initialUseStore.$id) {\n                    console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n                    // return import.meta.hot.invalidate()\n                    return hot.invalidate();\n                }\n                const existingStore = pinia._s.get(id);\n                if (!existingStore) {\n                    console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n                    return;\n                }\n                useStore(pinia, existingStore);\n            }\n        }\n    };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n    subscriptions.push(callback);\n    const removeSubscription = () => {\n        const idx = subscriptions.indexOf(callback);\n        if (idx > -1) {\n            subscriptions.splice(idx, 1);\n            onCleanup();\n        }\n    };\n    if (!detached && getCurrentScope()) {\n        onScopeDispose(removeSubscription);\n    }\n    return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n    subscriptions.slice().forEach((callback) => {\n        callback(...args);\n    });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\nfunction mergeReactiveObjects(target, patchToApply) {\n    // Handle Map instances\n    if (target instanceof Map && patchToApply instanceof Map) {\n        patchToApply.forEach((value, key) => target.set(key, value));\n    }\n    // Handle Set instances\n    if (target instanceof Set && patchToApply instanceof Set) {\n        patchToApply.forEach(target.add, target);\n    }\n    // no need to go through symbols because they cannot be serialized anyway\n    for (const key in patchToApply) {\n        if (!patchToApply.hasOwnProperty(key))\n            continue;\n        const subPatch = patchToApply[key];\n        const targetValue = target[key];\n        if (isPlainObject(targetValue) &&\n            isPlainObject(subPatch) &&\n            target.hasOwnProperty(key) &&\n            !isRef(subPatch) &&\n            !isReactive(subPatch)) {\n            // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n            // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n            // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n            target[key] = mergeReactiveObjects(targetValue, subPatch);\n        }\n        else {\n            // @ts-expect-error: subPatch is a valid value\n            target[key] = subPatch;\n        }\n    }\n    return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n    ? Symbol('pinia:skipHydration')\n    : /* istanbul ignore next */ Symbol();\nconst skipHydrateMap = /*#__PURE__*/ new WeakMap();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n    return isVue2\n        ? // in @vue/composition-api, the refs are sealed so defineProperty doesn't work...\n            /* istanbul ignore next */ skipHydrateMap.set(obj, 1) && obj\n        : Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n    return isVue2\n        ? /* istanbul ignore next */ !skipHydrateMap.has(obj)\n        : !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n    return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n    const { state, actions, getters } = options;\n    const initialState = pinia.state.value[id];\n    let store;\n    function setup() {\n        if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n            /* istanbul ignore if */\n            if (isVue2) {\n                set(pinia.state.value, id, state ? state() : {});\n            }\n            else {\n                pinia.state.value[id] = state ? state() : {};\n            }\n        }\n        // avoid creating a state in pinia.state.value\n        const localState = (process.env.NODE_ENV !== 'production') && hot\n            ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n                toRefs(ref(state ? state() : {}).value)\n            : toRefs(pinia.state.value[id]);\n        return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n            if ((process.env.NODE_ENV !== 'production') && name in localState) {\n                console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n            }\n            computedGetters[name] = markRaw(computed(() => {\n                setActivePinia(pinia);\n                // it was created just before\n                const store = pinia._s.get(id);\n                // allow cross using stores\n                /* istanbul ignore next */\n                if (isVue2 && !store._r)\n                    return;\n                // @ts-expect-error\n                // return getters![name].call(context, context)\n                // TODO: avoid reading the getter while assigning with a global variable\n                return getters[name].call(store, store);\n            }));\n            return computedGetters;\n        }, {}));\n    }\n    store = createSetupStore(id, setup, options, pinia, hot, true);\n    return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n    let scope;\n    const optionsForPlugin = assign({ actions: {} }, options);\n    /* istanbul ignore if */\n    if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n        throw new Error('Pinia destroyed');\n    }\n    // watcher options for $subscribe\n    const $subscribeOptions = {\n        deep: true,\n        // flush: 'post',\n    };\n    /* istanbul ignore else */\n    if ((process.env.NODE_ENV !== 'production') && !isVue2) {\n        $subscribeOptions.onTrigger = (event) => {\n            /* istanbul ignore else */\n            if (isListening) {\n                debuggerEvents = event;\n                // avoid triggering this while the store is being built and the state is being set in pinia\n            }\n            else if (isListening == false && !store._hotUpdating) {\n                // let patch send all the events together later\n                /* istanbul ignore else */\n                if (Array.isArray(debuggerEvents)) {\n                    debuggerEvents.push(event);\n                }\n                else {\n                    console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n                }\n            }\n        };\n    }\n    // internal state\n    let isListening; // set to true at the end\n    let isSyncListening; // set to true at the end\n    let subscriptions = [];\n    let actionSubscriptions = [];\n    let debuggerEvents;\n    const initialState = pinia.state.value[$id];\n    // avoid setting the state for option stores if it is set\n    // by the setup\n    if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n        /* istanbul ignore if */\n        if (isVue2) {\n            set(pinia.state.value, $id, {});\n        }\n        else {\n            pinia.state.value[$id] = {};\n        }\n    }\n    const hotState = ref({});\n    // avoid triggering too many listeners\n    // https://github.com/vuejs/pinia/issues/1129\n    let activeListener;\n    function $patch(partialStateOrMutator) {\n        let subscriptionMutation;\n        isListening = isSyncListening = false;\n        // reset the debugger events since patches are sync\n        /* istanbul ignore else */\n        if ((process.env.NODE_ENV !== 'production')) {\n            debuggerEvents = [];\n        }\n        if (typeof partialStateOrMutator === 'function') {\n            partialStateOrMutator(pinia.state.value[$id]);\n            subscriptionMutation = {\n                type: MutationType.patchFunction,\n                storeId: $id,\n                events: debuggerEvents,\n            };\n        }\n        else {\n            mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n            subscriptionMutation = {\n                type: MutationType.patchObject,\n                payload: partialStateOrMutator,\n                storeId: $id,\n                events: debuggerEvents,\n            };\n        }\n        const myListenerId = (activeListener = Symbol());\n        nextTick().then(() => {\n            if (activeListener === myListenerId) {\n                isListening = true;\n            }\n        });\n        isSyncListening = true;\n        // because we paused the watcher, we need to manually call the subscriptions\n        triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n    }\n    const $reset = isOptionsStore\n        ? function $reset() {\n            const { state } = options;\n            const newState = state ? state() : {};\n            // we use a patch to group all changes into one single subscription\n            this.$patch(($state) => {\n                assign($state, newState);\n            });\n        }\n        : /* istanbul ignore next */\n            (process.env.NODE_ENV !== 'production')\n                ? () => {\n                    throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n                }\n                : noop;\n    function $dispose() {\n        scope.stop();\n        subscriptions = [];\n        actionSubscriptions = [];\n        pinia._s.delete($id);\n    }\n    /**\n     * Wraps an action to handle subscriptions.\n     *\n     * @param name - name of the action\n     * @param action - action to wrap\n     * @returns a wrapped action to handle subscriptions\n     */\n    function wrapAction(name, action) {\n        return function () {\n            setActivePinia(pinia);\n            const args = Array.from(arguments);\n            const afterCallbackList = [];\n            const onErrorCallbackList = [];\n            function after(callback) {\n                afterCallbackList.push(callback);\n            }\n            function onError(callback) {\n                onErrorCallbackList.push(callback);\n            }\n            // @ts-expect-error\n            triggerSubscriptions(actionSubscriptions, {\n                args,\n                name,\n                store,\n                after,\n                onError,\n            });\n            let ret;\n            try {\n                ret = action.apply(this && this.$id === $id ? this : store, args);\n                // handle sync errors\n            }\n            catch (error) {\n                triggerSubscriptions(onErrorCallbackList, error);\n                throw error;\n            }\n            if (ret instanceof Promise) {\n                return ret\n                    .then((value) => {\n                    triggerSubscriptions(afterCallbackList, value);\n                    return value;\n                })\n                    .catch((error) => {\n                    triggerSubscriptions(onErrorCallbackList, error);\n                    return Promise.reject(error);\n                });\n            }\n            // trigger after callbacks\n            triggerSubscriptions(afterCallbackList, ret);\n            return ret;\n        };\n    }\n    const _hmrPayload = /*#__PURE__*/ markRaw({\n        actions: {},\n        getters: {},\n        state: [],\n        hotState,\n    });\n    const partialStore = {\n        _p: pinia,\n        // _s: scope,\n        $id,\n        $onAction: addSubscription.bind(null, actionSubscriptions),\n        $patch,\n        $reset,\n        $subscribe(callback, options = {}) {\n            const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n            const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n                if (options.flush === 'sync' ? isSyncListening : isListening) {\n                    callback({\n                        storeId: $id,\n                        type: MutationType.direct,\n                        events: debuggerEvents,\n                    }, state);\n                }\n            }, assign({}, $subscribeOptions, options)));\n            return removeSubscription;\n        },\n        $dispose,\n    };\n    /* istanbul ignore if */\n    if (isVue2) {\n        // start as non ready\n        partialStore._r = false;\n    }\n    const store = reactive((process.env.NODE_ENV !== 'production') || USE_DEVTOOLS\n        ? assign({\n            _hmrPayload,\n            _customProperties: markRaw(new Set()), // devtools custom properties\n        }, partialStore\n        // must be added later\n        // setupStore\n        )\n        : partialStore);\n    // store the partial store now so the setup of stores can instantiate each other before they are finished without\n    // creating infinite loops.\n    pinia._s.set($id, store);\n    const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n    // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n    const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(setup)));\n    // overwrite existing actions to support $onAction\n    for (const key in setupStore) {\n        const prop = setupStore[key];\n        if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n            // mark it as a piece of state to be serialized\n            if ((process.env.NODE_ENV !== 'production') && hot) {\n                set(hotState.value, key, toRef(setupStore, key));\n                // createOptionStore directly sets the state in pinia.state.value so we\n                // can just skip that\n            }\n            else if (!isOptionsStore) {\n                // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n                if (initialState && shouldHydrate(prop)) {\n                    if (isRef(prop)) {\n                        prop.value = initialState[key];\n                    }\n                    else {\n                        // probably a reactive object, lets recursively assign\n                        // @ts-expect-error: prop is unknown\n                        mergeReactiveObjects(prop, initialState[key]);\n                    }\n                }\n                // transfer the ref to the pinia state to keep everything in sync\n                /* istanbul ignore if */\n                if (isVue2) {\n                    set(pinia.state.value[$id], key, prop);\n                }\n                else {\n                    pinia.state.value[$id][key] = prop;\n                }\n            }\n            /* istanbul ignore else */\n            if ((process.env.NODE_ENV !== 'production')) {\n                _hmrPayload.state.push(key);\n            }\n            // action\n        }\n        else if (typeof prop === 'function') {\n            // @ts-expect-error: we are overriding the function we avoid wrapping if\n            const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : wrapAction(key, prop);\n            // this a hot module replacement store because the hotUpdate method needs\n            // to do it with the right context\n            /* istanbul ignore if */\n            if (isVue2) {\n                set(setupStore, key, actionValue);\n            }\n            else {\n                // @ts-expect-error\n                setupStore[key] = actionValue;\n            }\n            /* istanbul ignore else */\n            if ((process.env.NODE_ENV !== 'production')) {\n                _hmrPayload.actions[key] = prop;\n            }\n            // list actions so they can be used in plugins\n            // @ts-expect-error\n            optionsForPlugin.actions[key] = prop;\n        }\n        else if ((process.env.NODE_ENV !== 'production')) {\n            // add getters for devtools\n            if (isComputed(prop)) {\n                _hmrPayload.getters[key] = isOptionsStore\n                    ? // @ts-expect-error\n                        options.getters[key]\n                    : prop;\n                if (IS_CLIENT) {\n                    const getters = setupStore._getters ||\n                        // @ts-expect-error: same\n                        (setupStore._getters = markRaw([]));\n                    getters.push(key);\n                }\n            }\n        }\n    }\n    // add the state, getters, and action properties\n    /* istanbul ignore if */\n    if (isVue2) {\n        Object.keys(setupStore).forEach((key) => {\n            set(store, key, setupStore[key]);\n        });\n    }\n    else {\n        assign(store, setupStore);\n        // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n        // Make `storeToRefs()` work with `reactive()` #799\n        assign(toRaw(store), setupStore);\n    }\n    // use this instead of a computed with setter to be able to create it anywhere\n    // without linking the computed lifespan to wherever the store is first\n    // created.\n    Object.defineProperty(store, '$state', {\n        get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n        set: (state) => {\n            /* istanbul ignore if */\n            if ((process.env.NODE_ENV !== 'production') && hot) {\n                throw new Error('cannot set hotState');\n            }\n            $patch(($state) => {\n                assign($state, state);\n            });\n        },\n    });\n    // add the hotUpdate before plugins to allow them to override it\n    /* istanbul ignore else */\n    if ((process.env.NODE_ENV !== 'production')) {\n        store._hotUpdate = markRaw((newStore) => {\n            store._hotUpdating = true;\n            newStore._hmrPayload.state.forEach((stateKey) => {\n                if (stateKey in store.$state) {\n                    const newStateTarget = newStore.$state[stateKey];\n                    const oldStateSource = store.$state[stateKey];\n                    if (typeof newStateTarget === 'object' &&\n                        isPlainObject(newStateTarget) &&\n                        isPlainObject(oldStateSource)) {\n                        patchObject(newStateTarget, oldStateSource);\n                    }\n                    else {\n                        // transfer the ref\n                        newStore.$state[stateKey] = oldStateSource;\n                    }\n                }\n                // patch direct access properties to allow store.stateProperty to work as\n                // store.$state.stateProperty\n                set(store, stateKey, toRef(newStore.$state, stateKey));\n            });\n            // remove deleted state properties\n            Object.keys(store.$state).forEach((stateKey) => {\n                if (!(stateKey in newStore.$state)) {\n                    del(store, stateKey);\n                }\n            });\n            // avoid devtools logging this as a mutation\n            isListening = false;\n            isSyncListening = false;\n            pinia.state.value[$id] = toRef(newStore._hmrPayload, 'hotState');\n            isSyncListening = true;\n            nextTick().then(() => {\n                isListening = true;\n            });\n            for (const actionName in newStore._hmrPayload.actions) {\n                const action = newStore[actionName];\n                set(store, actionName, wrapAction(actionName, action));\n            }\n            // TODO: does this work in both setup and option store?\n            for (const getterName in newStore._hmrPayload.getters) {\n                const getter = newStore._hmrPayload.getters[getterName];\n                const getterValue = isOptionsStore\n                    ? // special handling of options api\n                        computed(() => {\n                            setActivePinia(pinia);\n                            return getter.call(store, store);\n                        })\n                    : getter;\n                set(store, getterName, getterValue);\n            }\n            // remove deleted getters\n            Object.keys(store._hmrPayload.getters).forEach((key) => {\n                if (!(key in newStore._hmrPayload.getters)) {\n                    del(store, key);\n                }\n            });\n            // remove old actions\n            Object.keys(store._hmrPayload.actions).forEach((key) => {\n                if (!(key in newStore._hmrPayload.actions)) {\n                    del(store, key);\n                }\n            });\n            // update the values used in devtools and to allow deleting new properties later on\n            store._hmrPayload = newStore._hmrPayload;\n            store._getters = newStore._getters;\n            store._hotUpdating = false;\n        });\n    }\n    if (USE_DEVTOOLS) {\n        const nonEnumerable = {\n            writable: true,\n            configurable: true,\n            // avoid warning on devtools trying to display this property\n            enumerable: false,\n        };\n        ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n            Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));\n        });\n    }\n    /* istanbul ignore if */\n    if (isVue2) {\n        // mark the store as ready before plugins\n        store._r = true;\n    }\n    // apply all plugins\n    pinia._p.forEach((extender) => {\n        /* istanbul ignore else */\n        if (USE_DEVTOOLS) {\n            const extensions = scope.run(() => extender({\n                store,\n                app: pinia._a,\n                pinia,\n                options: optionsForPlugin,\n            }));\n            Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n            assign(store, extensions);\n        }\n        else {\n            assign(store, scope.run(() => extender({\n                store,\n                app: pinia._a,\n                pinia,\n                options: optionsForPlugin,\n            })));\n        }\n    });\n    if ((process.env.NODE_ENV !== 'production') &&\n        store.$state &&\n        typeof store.$state === 'object' &&\n        typeof store.$state.constructor === 'function' &&\n        !store.$state.constructor.toString().includes('[native code]')) {\n        console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n            `\\tstate: () => new MyClass()\\n` +\n            `Found in store \"${store.$id}\".`);\n    }\n    // only apply hydrate to option stores with an initial state in pinia\n    if (initialState &&\n        isOptionsStore &&\n        options.hydrate) {\n        options.hydrate(store.$state, initialState);\n    }\n    isListening = true;\n    isSyncListening = true;\n    return store;\n}\nfunction defineStore(\n// TODO: add proper types from above\nidOrOptions, setup, setupOptions) {\n    let id;\n    let options;\n    const isSetupStore = typeof setup === 'function';\n    if (typeof idOrOptions === 'string') {\n        id = idOrOptions;\n        // the option store setup will contain the actual options in this case\n        options = isSetupStore ? setupOptions : setup;\n    }\n    else {\n        options = idOrOptions;\n        id = idOrOptions.id;\n        if ((process.env.NODE_ENV !== 'production') && typeof id !== 'string') {\n            throw new Error(`[🍍]: \"defineStore()\" must be passed a store id as its first argument.`);\n        }\n    }\n    function useStore(pinia, hot) {\n        const hasContext = hasInjectionContext();\n        pinia =\n            // in test mode, ignore the argument provided as we can always retrieve a\n            // pinia instance with getActivePinia()\n            ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\n                (hasContext ? inject(piniaSymbol, null) : null);\n        if (pinia)\n            setActivePinia(pinia);\n        if ((process.env.NODE_ENV !== 'production') && !activePinia) {\n            throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Are you trying to use a store before calling \"app.use(pinia)\"?\\n` +\n                `See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\\n` +\n                `This will fail in production.`);\n        }\n        pinia = activePinia;\n        if (!pinia._s.has(id)) {\n            // creating the store registers it in `pinia._s`\n            if (isSetupStore) {\n                createSetupStore(id, setup, options, pinia);\n            }\n            else {\n                createOptionsStore(id, options, pinia);\n            }\n            /* istanbul ignore else */\n            if ((process.env.NODE_ENV !== 'production')) {\n                // @ts-expect-error: not the right inferred type\n                useStore._pinia = pinia;\n            }\n        }\n        const store = pinia._s.get(id);\n        if ((process.env.NODE_ENV !== 'production') && hot) {\n            const hotId = '__hot:' + id;\n            const newStore = isSetupStore\n                ? createSetupStore(hotId, setup, options, pinia, true)\n                : createOptionsStore(hotId, assign({}, options), pinia, true);\n            hot._hotUpdate(newStore);\n            // cleanup the state properties and the store from the cache\n            delete pinia.state.value[hotId];\n            pinia._s.delete(hotId);\n        }\n        if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\n            const currentInstance = getCurrentInstance();\n            // save stores in instances to access them devtools\n            if (currentInstance &&\n                currentInstance.proxy &&\n                // avoid adding stores that are just built for hot module replacement\n                !hot) {\n                const vm = currentInstance.proxy;\n                const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\n                cache[id] = store;\n            }\n        }\n        // StoreGeneric cannot be casted towards Store\n        return store;\n    }\n    useStore.$id = id;\n    return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n    mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n *   computed: {\n *     // other computed properties\n *     ...mapStores(useUserStore, useCartStore)\n *   },\n *\n *   created() {\n *     this.userStore // store with id \"user\"\n *     this.cartStore // store with id \"cart\"\n *   }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n    if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n        console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n            `Replace\\n` +\n            `\\tmapStores([useAuthStore, useCartStore])\\n` +\n            `with\\n` +\n            `\\tmapStores(useAuthStore, useCartStore)\\n` +\n            `This will fail in production if not fixed.`);\n        stores = stores[0];\n    }\n    return stores.reduce((reduced, useStore) => {\n        // @ts-expect-error: $id is added by defineStore\n        reduced[useStore.$id + mapStoreSuffix] = function () {\n            return useStore(this.$pinia);\n        };\n        return reduced;\n    }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n    return Array.isArray(keysOrMapper)\n        ? keysOrMapper.reduce((reduced, key) => {\n            reduced[key] = function () {\n                return useStore(this.$pinia)[key];\n            };\n            return reduced;\n        }, {})\n        : Object.keys(keysOrMapper).reduce((reduced, key) => {\n            // @ts-expect-error\n            reduced[key] = function () {\n                const store = useStore(this.$pinia);\n                const storeKey = keysOrMapper[key];\n                // for some reason TS is unable to infer the type of storeKey to be a\n                // function\n                return typeof storeKey === 'function'\n                    ? storeKey.call(this, store)\n                    : store[storeKey];\n            };\n            return reduced;\n        }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n    return Array.isArray(keysOrMapper)\n        ? keysOrMapper.reduce((reduced, key) => {\n            // @ts-expect-error\n            reduced[key] = function (...args) {\n                return useStore(this.$pinia)[key](...args);\n            };\n            return reduced;\n        }, {})\n        : Object.keys(keysOrMapper).reduce((reduced, key) => {\n            // @ts-expect-error\n            reduced[key] = function (...args) {\n                return useStore(this.$pinia)[keysOrMapper[key]](...args);\n            };\n            return reduced;\n        }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n    return Array.isArray(keysOrMapper)\n        ? keysOrMapper.reduce((reduced, key) => {\n            // @ts-ignore\n            reduced[key] = {\n                get() {\n                    return useStore(this.$pinia)[key];\n                },\n                set(value) {\n                    // it's easier to type it here as any\n                    return (useStore(this.$pinia)[key] = value);\n                },\n            };\n            return reduced;\n        }, {})\n        : Object.keys(keysOrMapper).reduce((reduced, key) => {\n            // @ts-ignore\n            reduced[key] = {\n                get() {\n                    return useStore(this.$pinia)[keysOrMapper[key]];\n                },\n                set(value) {\n                    // it's easier to type it here as any\n                    return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n                },\n            };\n            return reduced;\n        }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n    // See https://github.com/vuejs/pinia/issues/852\n    // It's easier to just use toRefs() even if it includes more stuff\n    if (isVue2) {\n        // @ts-expect-error: toRefs include methods and others\n        return toRefs(store);\n    }\n    else {\n        store = toRaw(store);\n        const refs = {};\n        for (const key in store) {\n            const value = store[key];\n            if (isRef(value) || isReactive(value)) {\n                // @ts-expect-error: the key is state or getter\n                refs[key] =\n                    // ---\n                    toRef(store, key);\n            }\n        }\n        return refs;\n    }\n}\n\n/**\n * Vue 2 Plugin that must be installed for pinia to work. Note **you don't need\n * this plugin if you are using Nuxt.js**. Use the `buildModule` instead:\n * https://pinia.vuejs.org/ssr/nuxt.html.\n *\n * @example\n * ```js\n * import Vue from 'vue'\n * import { PiniaVuePlugin, createPinia } from 'pinia'\n *\n * Vue.use(PiniaVuePlugin)\n * const pinia = createPinia()\n *\n * new Vue({\n *   el: '#app',\n *   // ...\n *   pinia,\n * })\n * ```\n *\n * @param _Vue - `Vue` imported from 'vue'.\n */\nconst PiniaVuePlugin = function (_Vue) {\n    // Equivalent of\n    // app.config.globalProperties.$pinia = pinia\n    _Vue.mixin({\n        beforeCreate() {\n            const options = this.$options;\n            if (options.pinia) {\n                const pinia = options.pinia;\n                // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/main/src/apis/inject.ts#L31\n                /* istanbul ignore else */\n                if (!this._provided) {\n                    const provideCache = {};\n                    Object.defineProperty(this, '_provided', {\n                        get: () => provideCache,\n                        set: (v) => Object.assign(provideCache, v),\n                    });\n                }\n                this._provided[piniaSymbol] = pinia;\n                // propagate the pinia instance in an SSR friendly way\n                // avoid adding it to nuxt twice\n                /* istanbul ignore else */\n                if (!this.$pinia) {\n                    this.$pinia = pinia;\n                }\n                pinia._a = this;\n                if (IS_CLIENT) {\n                    // this allows calling useStore() outside of a component setup after\n                    // installing pinia's plugin\n                    setActivePinia(pinia);\n                }\n                if (USE_DEVTOOLS) {\n                    registerPiniaDevtools(pinia._a, pinia);\n                }\n            }\n            else if (!this.$pinia && options.parent && options.parent.$pinia) {\n                this.$pinia = options.parent.$pinia;\n            }\n        },\n        destroyed() {\n            delete this._pStores;\n        },\n    });\n};\n\nexport { MutationType, PiniaVuePlugin, acceptHMRUpdate, createPinia, defineStore, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, skipHydrate, storeToRefs };\n","import { defineStore } from 'pinia';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { loadState } from '@nextcloud/initial-state';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nconst userConfig = loadState('files', 'config', {\n    show_hidden: false,\n    crop_image_previews: true,\n    sort_favorites_first: true,\n    sort_folders_first: true,\n    grid_view: false,\n});\nexport const useUserConfigStore = function (...args) {\n    const store = defineStore('userconfig', {\n        state: () => ({\n            userConfig,\n        }),\n        actions: {\n            /**\n             * Update the user config local store\n             */\n            onUpdate(key, value) {\n                Vue.set(this.userConfig, key, value);\n            },\n            /**\n             * Update the user config local store AND on server side\n             */\n            async update(key, value) {\n                await axios.put(generateUrl('/apps/files/api/v1/config/' + key), {\n                    value,\n                });\n                emit('files:config:updated', { key, value });\n            },\n        },\n    });\n    const userConfigStore = store(...args);\n    // Make sure we only register the listeners once\n    if (!userConfigStore._initialized) {\n        subscribe('files:config:updated', function ({ key, value }) {\n            userConfigStore.onUpdate(key, value);\n        });\n        userConfigStore._initialized = true;\n    }\n    return userConfigStore;\n};\n","/**\n * @copyright Copyright (c) 2024 Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { createPinia } from 'pinia';\nexport const pinia = createPinia();\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { Folder, Permission, davGetRecentSearch, davGetClient, davResultToNode, davRootPath, davRemoteURL } from '@nextcloud/files';\nimport { useUserConfigStore } from '../store/userconfig.ts';\nimport { pinia } from '../store/index.ts';\nconst client = davGetClient();\nconst lastTwoWeeksTimestamp = Math.round((Date.now() / 1000) - (60 * 60 * 24 * 14));\n/**\n * Get recently changed nodes\n *\n * This takes the users preference about hidden files into account.\n * If hidden files are not shown, then also recently changed files *in* hidden directories are filtered.\n *\n * @param path Path to search for recent changes\n */\nexport const getContents = async (path = '/') => {\n    const store = useUserConfigStore(pinia);\n    /**\n     * Filter function that returns only the visible nodes - or hidden if explicitly configured\n     * @param node The node to check\n     */\n    const filterHidden = (node) => path !== '/' // We need to hide files from hidden directories in the root if not configured to show\n        || store.userConfig.show_hidden // If configured to show hidden files we can early return\n        || !node.dirname.split('/').some((dir) => dir.startsWith('.')); // otherwise only include the file if non of the parent directories is hidden\n    const contentsResponse = await client.getDirectoryContents(path, {\n        details: true,\n        data: davGetRecentSearch(lastTwoWeeksTimestamp),\n        headers: {\n            // Patched in WebdavClient.ts\n            method: 'SEARCH',\n            // Somehow it's needed to get the correct response\n            'Content-Type': 'application/xml; charset=utf-8',\n        },\n        deep: true,\n    });\n    const contents = contentsResponse.data;\n    return {\n        folder: new Folder({\n            id: 0,\n            source: `${davRemoteURL}${davRootPath}`,\n            root: davRootPath,\n            owner: getCurrentUser()?.uid || null,\n            permissions: Permission.READ,\n        }),\n        contents: contents.map((r) => davResultToNode(r)).filter(filterHidden),\n    };\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { addNewFileMenuEntry, registerDavProperty, registerFileAction } from '@nextcloud/files';\nimport { action as deleteAction } from './actions/deleteAction';\nimport { action as downloadAction } from './actions/downloadAction';\nimport { action as editLocallyAction } from './actions/editLocallyAction';\nimport { action as favoriteAction } from './actions/favoriteAction';\nimport { action as moveOrCopyAction } from './actions/moveOrCopyAction';\nimport { action as openFolderAction } from './actions/openFolderAction';\nimport { action as openInFilesAction } from './actions/openInFilesAction';\nimport { action as renameAction } from './actions/renameAction';\nimport { action as sidebarAction } from './actions/sidebarAction';\nimport { action as viewInFolderAction } from './actions/viewInFolderAction';\nimport { entry as newFolderEntry } from './newMenu/newFolder.ts';\nimport { entry as newTemplatesFolder } from './newMenu/newTemplatesFolder.ts';\nimport { registerTemplateEntries } from './newMenu/newFromTemplate.ts';\nimport registerFavoritesView from './views/favorites';\nimport registerRecentView from './views/recent';\nimport registerFilesView from './views/files';\nimport registerPreviewServiceWorker from './services/ServiceWorker.js';\nimport { initLivePhotos } from './services/LivePhotos';\n// Register file actions\nregisterFileAction(deleteAction);\nregisterFileAction(downloadAction);\nregisterFileAction(editLocallyAction);\nregisterFileAction(favoriteAction);\nregisterFileAction(moveOrCopyAction);\nregisterFileAction(openFolderAction);\nregisterFileAction(openInFilesAction);\nregisterFileAction(renameAction);\nregisterFileAction(sidebarAction);\nregisterFileAction(viewInFolderAction);\n// Register new menu entry\naddNewFileMenuEntry(newFolderEntry);\naddNewFileMenuEntry(newTemplatesFolder);\nregisterTemplateEntries();\n// Register files views\nregisterFavoritesView();\nregisterFilesView();\nregisterRecentView();\n// Register preview service worker\nregisterPreviewServiceWorker();\nregisterDavProperty('nc:hidden', { nc: 'http://nextcloud.org/ns' });\nregisterDavProperty('nc:is-mount-root', { nc: 'http://nextcloud.org/ns' });\ninitLivePhotos();\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nimport { getContents } from '../services/Files';\nimport { View, getNavigation } from '@nextcloud/files';\nexport default () => {\n    const Navigation = getNavigation();\n    Navigation.register(new View({\n        id: 'files',\n        name: t('files', 'All files'),\n        caption: t('files', 'List of your files and folders.'),\n        icon: FolderSvg,\n        order: 0,\n        getContents,\n    }));\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { View, getNavigation } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport HistorySvg from '@mdi/svg/svg/history.svg?raw';\nimport { getContents } from '../services/Recent';\nexport default () => {\n    const Navigation = getNavigation();\n    Navigation.register(new View({\n        id: 'recent',\n        name: t('files', 'Recent'),\n        caption: t('files', 'List of recently modified files and folders.'),\n        emptyTitle: t('files', 'No recently modified files'),\n        emptyCaption: t('files', 'Files and folders you recently modified will show up here.'),\n        icon: HistorySvg,\n        order: 2,\n        defaultSortKey: 'mtime',\n        getContents,\n    }));\n};\n","/**\n * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { generateUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\nexport default () => {\n\tif ('serviceWorker' in navigator) {\n\t\t// Use the window load event to keep the page load performant\n\t\twindow.addEventListener('load', async () => {\n\t\t\ttry {\n\t\t\t\tconst url = generateUrl('/apps/files/preview-service-worker.js', {}, { noRewrite: true })\n\t\t\t\tconst registration = await navigator.serviceWorker.register(url, { scope: '/' })\n\t\t\t\tlogger.debug('SW registered: ', { registration })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('SW registration failed: ', { error })\n\t\t\t}\n\t\t})\n\t} else {\n\t\tlogger.debug('Service Worker is not enabled on this browser.')\n\t}\n}\n","/**\n * @copyright Copyright (c) 2023 Louis Chmn <louis@chmn.me>\n *\n * @author Louis Chmn <louis@chmn.me>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { Node, registerDavProperty } from '@nextcloud/files';\nexport function initLivePhotos() {\n    registerDavProperty('nc:metadata-files-live-photo', { nc: 'http://nextcloud.org/ns' });\n}\n/**\n * @param {Node} node - The node\n */\nexport function isLivePhoto(node) {\n    return node.attributes['metadata-files-live-photo'] !== undefined;\n}\n","/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nimport { FileType } from '@nextcloud/files';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\nimport { basename, extname } from 'path';\n// TODO: move to @nextcloud/files\n/**\n * Create an unique file name\n * @param name The initial name to use\n * @param otherNames Other names that are already used\n * @param options Optional parameters for tuning the behavior\n * @param options.suffix A function that takes an index and returns a suffix to add to the file name, defaults to '(index)'\n * @param options.ignoreFileExtension Set to true to ignore the file extension when adding the suffix (when getting a unique directory name)\n * @return Either the initial name, if unique, or the name with the suffix so that the name is unique\n */\nexport const getUniqueName = (name, otherNames, options = {}) => {\n    const opts = {\n        suffix: (n) => `(${n})`,\n        ignoreFileExtension: false,\n        ...options,\n    };\n    let newName = name;\n    let i = 1;\n    while (otherNames.includes(newName)) {\n        const ext = opts.ignoreFileExtension ? '' : extname(name);\n        const base = basename(name, ext);\n        newName = `${base} ${opts.suffix(i++)}${ext}`;\n    }\n    return newName;\n};\nexport const encodeFilePath = function (path) {\n    const pathSections = (path.startsWith('/') ? path : `/${path}`).split('/');\n    let relativePath = '';\n    pathSections.forEach((section) => {\n        if (section !== '') {\n            relativePath += '/' + encodeURIComponent(section);\n        }\n    });\n    return relativePath;\n};\n/**\n * Extract dir and name from file path\n *\n * @param {string} path the full path\n * @return {string[]} [dirPath, fileName]\n */\nexport const extractFilePaths = function (path) {\n    const pathSections = path.split('/');\n    const fileName = pathSections[pathSections.length - 1];\n    const dirPath = pathSections.slice(0, pathSections.length - 1).join('/');\n    return [dirPath, fileName];\n};\n/**\n * Generate a translated summary of an array of nodes\n * @param {Node[]} nodes the nodes to summarize\n * @return {string}\n */\nexport const getSummaryFor = (nodes) => {\n    const fileCount = nodes.filter(node => node.type === FileType.File).length;\n    const folderCount = nodes.filter(node => node.type === FileType.Folder).length;\n    if (fileCount === 0) {\n        return n('files', '{folderCount} folder', '{folderCount} folders', folderCount, { folderCount });\n    }\n    else if (folderCount === 0) {\n        return n('files', '{fileCount} file', '{fileCount} files', fileCount, { fileCount });\n    }\n    if (fileCount === 1) {\n        return n('files', '1 file and {folderCount} folder', '1 file and {folderCount} folders', folderCount, { folderCount });\n    }\n    if (folderCount === 1) {\n        return n('files', '{fileCount} file and 1 folder', '{fileCount} files and 1 folder', fileCount, { fileCount });\n    }\n    return t('files', '{fileCount} files and {folderCount} folders', { fileCount, folderCount });\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20height=%2716%27%20width=%2716%27%3e%3cpath%20d=%27M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z%27/%3e%3c/svg%3e\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20height=%2716%27%20width=%2716%27%3e%3cpath%20d=%27M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z%27%20style=%27fill-opacity:1;fill:%23ffffff%27/%3e%3c/svg%3e\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\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 <http://www.gnu.org/licenses/>.\n */\n.toastify.dialogs {\n  min-width: 200px;\n  background: none;\n  background-color: var(--color-main-background);\n  color: var(--color-main-text);\n  box-shadow: 0 0 6px 0 var(--color-box-shadow);\n  padding: 0 12px;\n  margin-top: 45px;\n  position: fixed;\n  z-index: 10100;\n  border-radius: var(--border-radius);\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-container {\n  display: flex;\n  align-items: center;\n}\n.toastify.dialogs .toast-undo-button,\n.toastify.dialogs .toast-close {\n  position: static;\n  overflow: hidden;\n  box-sizing: border-box;\n  min-width: 44px;\n  height: 100%;\n  padding: 12px;\n  white-space: nowrap;\n  background-repeat: no-repeat;\n  background-position: center;\n  background-color: transparent;\n  min-height: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close,\n.toastify.dialogs .toast-close.toast-close {\n  text-indent: 0;\n  opacity: .4;\n  border: none;\n  min-height: 44px;\n  margin-left: 10px;\n  font-size: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close:before,\n.toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n  content: \" \";\n  filter: var(--background-invert-if-dark);\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n}\n.toastify.dialogs .toast-undo-button.toast-undo-button,\n.toastify.dialogs .toast-close.toast-undo-button {\n  height: calc(100% - 6px);\n  margin: 3px 3px 3px 12px;\n}\n.toastify.dialogs .toast-undo-button:hover,\n.toastify.dialogs .toast-undo-button:focus,\n.toastify.dialogs .toast-undo-button:active,\n.toastify.dialogs .toast-close:hover,\n.toastify.dialogs .toast-close:focus,\n.toastify.dialogs .toast-close:active {\n  cursor: pointer;\n  opacity: 1;\n}\n.toastify.dialogs.toastify-top {\n  right: 10px;\n}\n.toastify.dialogs.toast-with-click {\n  cursor: pointer;\n}\n.toastify.dialogs.toast-error {\n  border-left: 3px solid var(--color-error);\n}\n.toastify.dialogs.toast-info {\n  border-left: 3px solid var(--color-primary);\n}\n.toastify.dialogs.toast-warning {\n  border-left: 3px solid var(--color-warning);\n}\n.toastify.dialogs.toast-success,\n.toastify.dialogs.toast-undo {\n  border-left: 3px solid var(--color-success);\n}\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\n  background-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\n}\n.nc-generic-dialog .dialog__actions {\n  justify-content: space-between;\n  min-width: calc(100% - 12px);\n}\n._file-picker__file-icon_1vgv4_5 {\n  width: 32px;\n  height: 32px;\n  min-width: 32px;\n  min-height: 32px;\n  background-repeat: no-repeat;\n  background-size: contain;\n  display: flex;\n  justify-content: center;\n}\ntr.file-picker__row[data-v-6aded0d9] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-6aded0d9] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-6aded0d9] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\n  padding-inline: 2px 0;\n}\n@keyframes gradient-6aded0d9 {\n  0% {\n    background-position: 0% 50%;\n  }\n  50% {\n    background-position: 100% 50%;\n  }\n  to {\n    background-position: 0% 50%;\n  }\n}\n.loading-row .row-checkbox[data-v-6aded0d9] {\n  text-align: center !important;\n}\n.loading-row span[data-v-6aded0d9] {\n  display: inline-block;\n  height: 24px;\n  background:\n    linear-gradient(\n      to right,\n      var(--color-background-darker),\n      var(--color-text-maxcontrast),\n      var(--color-background-darker));\n  background-size: 600px 100%;\n  border-radius: var(--border-radius);\n  animation: gradient-6aded0d9 12s ease infinite;\n}\n.loading-row .row-wrapper[data-v-6aded0d9] {\n  display: inline-flex;\n  align-items: center;\n}\n.loading-row .row-checkbox span[data-v-6aded0d9] {\n  width: 24px;\n}\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\n  margin-inline-start: 6px;\n  width: 130px;\n}\n.loading-row .row-size span[data-v-6aded0d9] {\n  width: 80px;\n}\n.loading-row .row-modified span[data-v-6aded0d9] {\n  width: 90px;\n}\ntr.file-picker__row[data-v-48df4f27] {\n  height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-48df4f27] {\n  cursor: pointer;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-bottom: none;\n}\ntr.file-picker__row td.row-checkbox[data-v-48df4f27] {\n  padding: 0 2px;\n}\ntr.file-picker__row td[data-v-48df4f27]:not(.row-checkbox) {\n  padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-48df4f27] {\n  text-align: end;\n  padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-48df4f27] {\n  padding-inline: 2px 0;\n}\n.file-picker__row--selected[data-v-48df4f27] {\n  background-color: var(--color-background-dark);\n}\n.file-picker__row[data-v-48df4f27]:hover {\n  background-color: var(--color-background-hover);\n}\n.file-picker__name-container[data-v-48df4f27] {\n  display: flex;\n  justify-content: start;\n  align-items: center;\n  height: 100%;\n}\n.file-picker__file-name[data-v-48df4f27] {\n  padding-inline-start: 6px;\n  min-width: 0;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.file-picker__file-extension[data-v-48df4f27] {\n  color: var(--color-text-maxcontrast);\n  min-width: fit-content;\n}\n.file-picker__header-preview[data-v-d3c94818] {\n  width: 22px;\n  height: 32px;\n  flex: 0 0 auto;\n}\n.file-picker__files[data-v-d3c94818] {\n  margin: 2px;\n  margin-inline-start: 12px;\n  overflow: scroll auto;\n}\n.file-picker__files table[data-v-d3c94818] {\n  width: 100%;\n  max-height: 100%;\n  table-layout: fixed;\n}\n.file-picker__files th[data-v-d3c94818] {\n  position: sticky;\n  z-index: 1;\n  top: 0;\n  background-color: var(--color-main-background);\n  padding: 2px;\n}\n.file-picker__files th .header-wrapper[data-v-d3c94818] {\n  display: flex;\n}\n.file-picker__files th.row-checkbox[data-v-d3c94818] {\n  width: 44px;\n}\n.file-picker__files th.row-name[data-v-d3c94818] {\n  width: 230px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] {\n  width: 100px;\n}\n.file-picker__files th.row-modified[data-v-d3c94818] {\n  width: 120px;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue__wrapper {\n  justify-content: start;\n  flex-direction: row-reverse;\n}\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue {\n  padding-inline: 16px 4px;\n}\n.file-picker__files th.row-size[data-v-d3c94818] .button-vue__wrapper {\n  justify-content: end;\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper {\n  color: var(--color-text-maxcontrast);\n}\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper .button-vue__text {\n  font-weight: 400;\n}\n.file-picker__breadcrumbs[data-v-22cbb5df] {\n  flex-grow: 0 !important;\n}\n.file-picker__side[data-v-a06474d4] {\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n  gap: .5rem;\n  min-width: 200px;\n  padding: 2px;\n  margin-block-start: 7px;\n  overflow: auto;\n}\n.file-picker__side[data-v-a06474d4] .button-vue__wrapper {\n  justify-content: start;\n}\n.file-picker__filter-input[data-v-a06474d4] {\n  margin-block: 7px;\n  max-width: 260px;\n}\n@media (max-width: 736px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__side[data-v-a06474d4] {\n    flex-direction: row;\n    min-width: unset;\n  }\n  .file-picker__filter-input[data-v-a06474d4] {\n    max-width: unset;\n  }\n}\n.file-picker__navigation {\n  padding-inline: 8px 2px;\n}\n.file-picker__navigation,\n.file-picker__navigation * {\n  box-sizing: border-box;\n}\n.file-picker__navigation .v-select.select {\n  min-width: 220px;\n}\n@media (min-width: 513px) and (max-width: 736px) {\n  .file-picker__navigation {\n    gap: 11px;\n  }\n}\n@media (max-width: 512px) {\n  .file-picker__navigation {\n    flex-direction: column-reverse !important;\n  }\n}\n.file-picker__view[data-v-6ff1b36b] {\n  height: 50px;\n  display: flex;\n  justify-content: start;\n  align-items: center;\n}\n.file-picker__view h3[data-v-6ff1b36b] {\n  font-weight: 700;\n  height: fit-content;\n  margin: 0;\n}\n.file-picker__main[data-v-6ff1b36b] {\n  box-sizing: border-box;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  min-height: 0;\n  flex: 1;\n  padding-inline: 2px;\n}\n.file-picker__main *[data-v-6ff1b36b] {\n  box-sizing: border-box;\n}\n[data-v-6ff1b36b] .file-picker {\n  height: min(80vh, 800px) !important;\n}\n@media (max-width: 512px) {\n  [data-v-6ff1b36b] .file-picker {\n    height: calc(100% - 16px - var(--default-clickable-area)) !important;\n  }\n}\n[data-v-6ff1b36b] .file-picker__content {\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/dialogs/dist/style.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,gBAAgB;EAChB,gBAAgB;EAChB,8CAA8C;EAC9C,6BAA6B;EAC7B,6CAA6C;EAC7C,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,cAAc;EACd,mCAAmC;EACnC,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,mBAAmB;AACrB;AACA;;EAEE,gBAAgB;EAChB,gBAAgB;EAChB,sBAAsB;EACtB,eAAe;EACf,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,4BAA4B;EAC5B,2BAA2B;EAC3B,6BAA6B;EAC7B,aAAa;AACf;AACA;;EAEE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;AACd;AACA;;EAEE,yDAA8Q;EAC9Q,YAAY;EACZ,wCAAwC;EACxC,qBAAqB;EACrB,WAAW;EACX,YAAY;AACd;AACA;;EAEE,wBAAwB;EACxB,wBAAwB;AAC1B;AACA;;;;;;EAME,eAAe;EACf,UAAU;AACZ;AACA;EACE,WAAW;AACb;AACA;EACE,eAAe;AACjB;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,2CAA2C;AAC7C;AACA;;EAEE,2CAA2C;AAC7C;AACA;EACE,yDAAsT;AACxT;AACA;EACE,8BAA8B;EAC9B,4BAA4B;AAC9B;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,4BAA4B;EAC5B,wBAAwB;EACxB,aAAa;EACb,uBAAuB;AACzB;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE;IACE,2BAA2B;EAC7B;EACA;IACE,6BAA6B;EAC/B;EACA;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,qBAAqB;EACrB,YAAY;EACZ;;;;;qCAKmC;EACnC,2BAA2B;EAC3B,mCAAmC;EACnC,8CAA8C;AAChD;AACA;EACE,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,WAAW;AACb;AACA;EACE,wBAAwB;EACxB,YAAY;AACd;AACA;EACE,WAAW;AACb;AACA;EACE,WAAW;AACb;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,yBAAyB;EACzB,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,oCAAoC;EACpC,sBAAsB;AACxB;AACA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;AACA;EACE,WAAW;EACX,yBAAyB;EACzB,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,UAAU;EACV,MAAM;EACN,8CAA8C;EAC9C,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,WAAW;AACb;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,2BAA2B;AAC7B;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,oBAAoB;AACtB;AACA;EACE,oCAAoC;AACtC;AACA;EACE,gBAAgB;AAClB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,oBAAoB;EACpB,UAAU;EACV,gBAAgB;EAChB,YAAY;EACZ,uBAAuB;EACvB,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;AACF;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;EACA;IACE,gBAAgB;EAClB;AACF;AACA;EACE,uBAAuB;AACzB;AACA;;EAEE,sBAAsB;AACxB;AACA;EACE,gBAAgB;AAClB;AACA;EACE;IACE,SAAS;EACX;AACF;AACA;EACE;IACE,yCAAyC;EAC3C;AACF;AACA;EACE,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,SAAS;AACX;AACA;EACE,sBAAsB;EACtB,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,aAAa;EACb,OAAO;EACP,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,mCAAmC;AACrC;AACA;EACE;IACE,oEAAoE;EACtE;AACF;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\\n *\\n * @author Julius Härtl <jus@bitgrid.net>\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\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 <http://www.gnu.org/licenses/>.\\n */\\n.toastify.dialogs {\\n  min-width: 200px;\\n  background: none;\\n  background-color: var(--color-main-background);\\n  color: var(--color-main-text);\\n  box-shadow: 0 0 6px 0 var(--color-box-shadow);\\n  padding: 0 12px;\\n  margin-top: 45px;\\n  position: fixed;\\n  z-index: 10100;\\n  border-radius: var(--border-radius);\\n  display: flex;\\n  align-items: center;\\n}\\n.toastify.dialogs .toast-undo-container {\\n  display: flex;\\n  align-items: center;\\n}\\n.toastify.dialogs .toast-undo-button,\\n.toastify.dialogs .toast-close {\\n  position: static;\\n  overflow: hidden;\\n  box-sizing: border-box;\\n  min-width: 44px;\\n  height: 100%;\\n  padding: 12px;\\n  white-space: nowrap;\\n  background-repeat: no-repeat;\\n  background-position: center;\\n  background-color: transparent;\\n  min-height: 0;\\n}\\n.toastify.dialogs .toast-undo-button.toast-close,\\n.toastify.dialogs .toast-close.toast-close {\\n  text-indent: 0;\\n  opacity: .4;\\n  border: none;\\n  min-height: 44px;\\n  margin-left: 10px;\\n  font-size: 0;\\n}\\n.toastify.dialogs .toast-undo-button.toast-close:before,\\n.toastify.dialogs .toast-close.toast-close:before {\\n  background-image: url(\\\"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='16'%20width='16'%3e%3cpath%20d='M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z'/%3e%3c/svg%3e\\\");\\n  content: \\\" \\\";\\n  filter: var(--background-invert-if-dark);\\n  display: inline-block;\\n  width: 16px;\\n  height: 16px;\\n}\\n.toastify.dialogs .toast-undo-button.toast-undo-button,\\n.toastify.dialogs .toast-close.toast-undo-button {\\n  height: calc(100% - 6px);\\n  margin: 3px 3px 3px 12px;\\n}\\n.toastify.dialogs .toast-undo-button:hover,\\n.toastify.dialogs .toast-undo-button:focus,\\n.toastify.dialogs .toast-undo-button:active,\\n.toastify.dialogs .toast-close:hover,\\n.toastify.dialogs .toast-close:focus,\\n.toastify.dialogs .toast-close:active {\\n  cursor: pointer;\\n  opacity: 1;\\n}\\n.toastify.dialogs.toastify-top {\\n  right: 10px;\\n}\\n.toastify.dialogs.toast-with-click {\\n  cursor: pointer;\\n}\\n.toastify.dialogs.toast-error {\\n  border-left: 3px solid var(--color-error);\\n}\\n.toastify.dialogs.toast-info {\\n  border-left: 3px solid var(--color-primary);\\n}\\n.toastify.dialogs.toast-warning {\\n  border-left: 3px solid var(--color-warning);\\n}\\n.toastify.dialogs.toast-success,\\n.toastify.dialogs.toast-undo {\\n  border-left: 3px solid var(--color-success);\\n}\\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\\n  background-image: url(\\\"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='16'%20width='16'%3e%3cpath%20d='M14%2012.3L12.3%2014%208%209.7%203.7%2014%202%2012.3%206.3%208%202%203.7%203.7%202%208%206.3%2012.3%202%2014%203.7%209.7%208z'%20style='fill-opacity:1;fill:%23ffffff'/%3e%3c/svg%3e\\\");\\n}\\n.nc-generic-dialog .dialog__actions {\\n  justify-content: space-between;\\n  min-width: calc(100% - 12px);\\n}\\n._file-picker__file-icon_1vgv4_5 {\\n  width: 32px;\\n  height: 32px;\\n  min-width: 32px;\\n  min-height: 32px;\\n  background-repeat: no-repeat;\\n  background-size: contain;\\n  display: flex;\\n  justify-content: center;\\n}\\ntr.file-picker__row[data-v-6aded0d9] {\\n  height: var(--row-height, 50px);\\n}\\ntr.file-picker__row td[data-v-6aded0d9] {\\n  cursor: pointer;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n  border-bottom: none;\\n}\\ntr.file-picker__row td.row-checkbox[data-v-6aded0d9] {\\n  padding: 0 2px;\\n}\\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\\n  padding-inline: 14px 0;\\n}\\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\\n  text-align: end;\\n  padding-inline: 0 14px;\\n}\\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\\n  padding-inline: 2px 0;\\n}\\n@keyframes gradient-6aded0d9 {\\n  0% {\\n    background-position: 0% 50%;\\n  }\\n  50% {\\n    background-position: 100% 50%;\\n  }\\n  to {\\n    background-position: 0% 50%;\\n  }\\n}\\n.loading-row .row-checkbox[data-v-6aded0d9] {\\n  text-align: center !important;\\n}\\n.loading-row span[data-v-6aded0d9] {\\n  display: inline-block;\\n  height: 24px;\\n  background:\\n    linear-gradient(\\n      to right,\\n      var(--color-background-darker),\\n      var(--color-text-maxcontrast),\\n      var(--color-background-darker));\\n  background-size: 600px 100%;\\n  border-radius: var(--border-radius);\\n  animation: gradient-6aded0d9 12s ease infinite;\\n}\\n.loading-row .row-wrapper[data-v-6aded0d9] {\\n  display: inline-flex;\\n  align-items: center;\\n}\\n.loading-row .row-checkbox span[data-v-6aded0d9] {\\n  width: 24px;\\n}\\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\\n  margin-inline-start: 6px;\\n  width: 130px;\\n}\\n.loading-row .row-size span[data-v-6aded0d9] {\\n  width: 80px;\\n}\\n.loading-row .row-modified span[data-v-6aded0d9] {\\n  width: 90px;\\n}\\ntr.file-picker__row[data-v-48df4f27] {\\n  height: var(--row-height, 50px);\\n}\\ntr.file-picker__row td[data-v-48df4f27] {\\n  cursor: pointer;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n  border-bottom: none;\\n}\\ntr.file-picker__row td.row-checkbox[data-v-48df4f27] {\\n  padding: 0 2px;\\n}\\ntr.file-picker__row td[data-v-48df4f27]:not(.row-checkbox) {\\n  padding-inline: 14px 0;\\n}\\ntr.file-picker__row td.row-size[data-v-48df4f27] {\\n  text-align: end;\\n  padding-inline: 0 14px;\\n}\\ntr.file-picker__row td.row-name[data-v-48df4f27] {\\n  padding-inline: 2px 0;\\n}\\n.file-picker__row--selected[data-v-48df4f27] {\\n  background-color: var(--color-background-dark);\\n}\\n.file-picker__row[data-v-48df4f27]:hover {\\n  background-color: var(--color-background-hover);\\n}\\n.file-picker__name-container[data-v-48df4f27] {\\n  display: flex;\\n  justify-content: start;\\n  align-items: center;\\n  height: 100%;\\n}\\n.file-picker__file-name[data-v-48df4f27] {\\n  padding-inline-start: 6px;\\n  min-width: 0;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n}\\n.file-picker__file-extension[data-v-48df4f27] {\\n  color: var(--color-text-maxcontrast);\\n  min-width: fit-content;\\n}\\n.file-picker__header-preview[data-v-d3c94818] {\\n  width: 22px;\\n  height: 32px;\\n  flex: 0 0 auto;\\n}\\n.file-picker__files[data-v-d3c94818] {\\n  margin: 2px;\\n  margin-inline-start: 12px;\\n  overflow: scroll auto;\\n}\\n.file-picker__files table[data-v-d3c94818] {\\n  width: 100%;\\n  max-height: 100%;\\n  table-layout: fixed;\\n}\\n.file-picker__files th[data-v-d3c94818] {\\n  position: sticky;\\n  z-index: 1;\\n  top: 0;\\n  background-color: var(--color-main-background);\\n  padding: 2px;\\n}\\n.file-picker__files th .header-wrapper[data-v-d3c94818] {\\n  display: flex;\\n}\\n.file-picker__files th.row-checkbox[data-v-d3c94818] {\\n  width: 44px;\\n}\\n.file-picker__files th.row-name[data-v-d3c94818] {\\n  width: 230px;\\n}\\n.file-picker__files th.row-size[data-v-d3c94818] {\\n  width: 100px;\\n}\\n.file-picker__files th.row-modified[data-v-d3c94818] {\\n  width: 120px;\\n}\\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue__wrapper {\\n  justify-content: start;\\n  flex-direction: row-reverse;\\n}\\n.file-picker__files th[data-v-d3c94818]:not(.row-size) .button-vue {\\n  padding-inline: 16px 4px;\\n}\\n.file-picker__files th.row-size[data-v-d3c94818] .button-vue__wrapper {\\n  justify-content: end;\\n}\\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper {\\n  color: var(--color-text-maxcontrast);\\n}\\n.file-picker__files th[data-v-d3c94818] .button-vue__wrapper .button-vue__text {\\n  font-weight: 400;\\n}\\n.file-picker__breadcrumbs[data-v-22cbb5df] {\\n  flex-grow: 0 !important;\\n}\\n.file-picker__side[data-v-a06474d4] {\\n  display: flex;\\n  flex-direction: column;\\n  align-items: stretch;\\n  gap: .5rem;\\n  min-width: 200px;\\n  padding: 2px;\\n  margin-block-start: 7px;\\n  overflow: auto;\\n}\\n.file-picker__side[data-v-a06474d4] .button-vue__wrapper {\\n  justify-content: start;\\n}\\n.file-picker__filter-input[data-v-a06474d4] {\\n  margin-block: 7px;\\n  max-width: 260px;\\n}\\n@media (max-width: 736px) {\\n  .file-picker__side[data-v-a06474d4] {\\n    flex-direction: row;\\n    min-width: unset;\\n  }\\n}\\n@media (max-width: 512px) {\\n  .file-picker__side[data-v-a06474d4] {\\n    flex-direction: row;\\n    min-width: unset;\\n  }\\n  .file-picker__filter-input[data-v-a06474d4] {\\n    max-width: unset;\\n  }\\n}\\n.file-picker__navigation {\\n  padding-inline: 8px 2px;\\n}\\n.file-picker__navigation,\\n.file-picker__navigation * {\\n  box-sizing: border-box;\\n}\\n.file-picker__navigation .v-select.select {\\n  min-width: 220px;\\n}\\n@media (min-width: 513px) and (max-width: 736px) {\\n  .file-picker__navigation {\\n    gap: 11px;\\n  }\\n}\\n@media (max-width: 512px) {\\n  .file-picker__navigation {\\n    flex-direction: column-reverse !important;\\n  }\\n}\\n.file-picker__view[data-v-6ff1b36b] {\\n  height: 50px;\\n  display: flex;\\n  justify-content: start;\\n  align-items: center;\\n}\\n.file-picker__view h3[data-v-6ff1b36b] {\\n  font-weight: 700;\\n  height: fit-content;\\n  margin: 0;\\n}\\n.file-picker__main[data-v-6ff1b36b] {\\n  box-sizing: border-box;\\n  width: 100%;\\n  display: flex;\\n  flex-direction: column;\\n  min-height: 0;\\n  flex: 1;\\n  padding-inline: 2px;\\n}\\n.file-picker__main *[data-v-6ff1b36b] {\\n  box-sizing: border-box;\\n}\\n[data-v-6ff1b36b] .file-picker {\\n  height: min(80vh, 800px) !important;\\n}\\n@media (max-width: 512px) {\\n  [data-v-6ff1b36b] .file-picker {\\n    height: calc(100% - 16px - var(--default-clickable-area)) !important;\\n  }\\n}\\n[data-v-6ff1b36b] .file-picker__content {\\n  display: flex;\\n  flex-direction: column;\\n  overflow: hidden;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.upload-picker[data-v-eca9500a] {\n  display: inline-flex;\n  align-items: center;\n  height: 44px;\n}\n.upload-picker__progress[data-v-eca9500a] {\n  width: 200px;\n  max-width: 0;\n  transition: max-width var(--animation-quick) ease-in-out;\n  margin-top: 8px;\n}\n.upload-picker__progress p[data-v-eca9500a] {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.upload-picker--uploading .upload-picker__progress[data-v-eca9500a] {\n  max-width: 200px;\n  margin-right: 20px;\n  margin-left: 8px;\n}\n.upload-picker--paused .upload-picker__progress[data-v-eca9500a] {\n  animation: breathing-eca9500a 3s ease-out infinite normal;\n}\n@keyframes breathing-eca9500a {\n  0% {\n    opacity: .5;\n  }\n  25% {\n    opacity: 1;\n  }\n  60% {\n    opacity: .5;\n  }\n  to {\n    opacity: .5;\n  }\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/upload/dist/assets/index-Ussc_ol3.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,YAAY;EACZ,YAAY;EACZ,wDAAwD;EACxD,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,yDAAyD;AAC3D;AACA;EACE;IACE,WAAW;EACb;EACA;IACE,UAAU;EACZ;EACA;IACE,WAAW;EACb;EACA;IACE,WAAW;EACb;AACF\",\"sourcesContent\":[\".upload-picker[data-v-eca9500a] {\\n  display: inline-flex;\\n  align-items: center;\\n  height: 44px;\\n}\\n.upload-picker__progress[data-v-eca9500a] {\\n  width: 200px;\\n  max-width: 0;\\n  transition: max-width var(--animation-quick) ease-in-out;\\n  margin-top: 8px;\\n}\\n.upload-picker__progress p[data-v-eca9500a] {\\n  overflow: hidden;\\n  white-space: nowrap;\\n  text-overflow: ellipsis;\\n}\\n.upload-picker--uploading .upload-picker__progress[data-v-eca9500a] {\\n  max-width: 200px;\\n  margin-right: 20px;\\n  margin-left: 8px;\\n}\\n.upload-picker--paused .upload-picker__progress[data-v-eca9500a] {\\n  animation: breathing-eca9500a 3s ease-out infinite normal;\\n}\\n@keyframes breathing-eca9500a {\\n  0% {\\n    opacity: .5;\\n  }\\n  25% {\\n    opacity: 1;\\n  }\\n  60% {\\n    opacity: .5;\\n  }\\n  to {\\n    opacity: .5;\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// @flow\n\n/*::\ntype Options = {\n  max?: number,\n  min?: number,\n  historyTimeConstant?: number,\n  autostart?: boolean,\n  ignoreSameProgress?: boolean,\n}\n*/\n\nfunction makeLowPassFilter(RC/*: number*/) {\n  return function (previousOutput, input, dt) {\n    const alpha = dt / (dt + RC);\n    return previousOutput + alpha * (input - previousOutput);\n  }\n}\n\nfunction def/*:: <T>*/(x/*: ?T*/, d/*: T*/)/*: T*/ {\n  return (x === undefined || x === null) ? d : x;\n}\n\nfunction makeEta(options/*::?: Options */) {\n  options = options || {};\n  var max = def(options.max, 1);\n  var min = def(options.min, 0);\n  var autostart = def(options.autostart, true);\n  var ignoreSameProgress = def(options.ignoreSameProgress, false);\n\n  var rate/*: number | null */ = null;\n  var lastTimestamp/*: number | null */ = null;\n  var lastProgress/*: number | null */ = null;\n\n  var filter = makeLowPassFilter(def(options.historyTimeConstant, 2.5));\n\n  function start() {\n    report(min);\n  }\n\n  function reset() {\n    rate = null;\n    lastTimestamp = null;\n    lastProgress = null;\n    if (autostart) {\n      start();\n    }\n  }\n\n  function report(progress /*: number */, timestamp/*::?: number */) {\n    if (typeof timestamp !== 'number') {\n      timestamp = Date.now();\n    }\n\n    if (lastTimestamp === timestamp) { return; }\n    if (ignoreSameProgress && lastProgress === progress) { return; }\n\n    if (lastTimestamp === null || lastProgress === null) {\n      lastProgress = progress;\n      lastTimestamp = timestamp;\n      return;\n    }\n\n    var deltaProgress = progress - lastProgress;\n    var deltaTimestamp = 0.001 * (timestamp - lastTimestamp);\n    var currentRate = deltaProgress / deltaTimestamp;\n\n    rate = rate === null\n      ? currentRate\n      : filter(rate, currentRate, deltaTimestamp);\n    lastProgress = progress;\n    lastTimestamp = timestamp;\n  }\n\n  function estimate(timestamp/*::?: number*/) {\n    if (lastProgress === null) { return Infinity; }\n    if (lastProgress >= max) { return 0; }\n    if (rate === null) { return Infinity; }\n\n    var estimatedTime = (max - lastProgress) / rate;\n    if (typeof timestamp === 'number' && typeof lastTimestamp === 'number') {\n      estimatedTime -= (timestamp - lastTimestamp) * 0.001;\n    }\n    return Math.max(0, estimatedTime);\n  }\n\n  function getRate() {\n    return rate === null ? 0 : rate;\n  }\n\n  return {\n    start: start,\n    reset: reset,\n    report: report,\n    estimate: estimate,\n    rate: getRate,\n  }\n}\n\nmodule.exports = makeEta;\n","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { join, basename, extname, dirname } from \"path\";\nimport { encodePath } from \"@nextcloud/paths\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { CancelablePromise } from \"cancelable-promise\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst getLogger = (user) => {\n  if (user === null) {\n    return getLoggerBuilder().setApp(\"files\").build();\n  }\n  return getLoggerBuilder().setApp(\"files\").setUid(user.uid).build();\n};\nconst logger = getLogger(getCurrentUser());\n/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n  NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n  NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n  NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n  return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewFileMenu {\n  _entries = [];\n  registerEntry(entry) {\n    this.validateEntry(entry);\n    entry.category = entry.category ?? 1;\n    this._entries.push(entry);\n  }\n  unregisterEntry(entry) {\n    const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n    if (entryIndex === -1) {\n      logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n      return;\n    }\n    this._entries.splice(entryIndex, 1);\n  }\n  /**\n   * Get the list of registered entries\n   *\n   * @param {Folder} context the creation context. Usually the current folder\n   */\n  getEntries(context) {\n    if (context) {\n      return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n    }\n    return this._entries;\n  }\n  getEntryIndex(id) {\n    return this._entries.findIndex((entry) => entry.id === id);\n  }\n  validateEntry(entry) {\n    if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n      throw new Error(\"Invalid entry\");\n    }\n    if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n      throw new Error(\"Invalid id or displayName property\");\n    }\n    if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n      throw new Error(\"Invalid icon provided\");\n    }\n    if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n      throw new Error(\"Invalid enabled property\");\n    }\n    if (typeof entry.handler !== \"function\") {\n      throw new Error(\"Invalid handler property\");\n    }\n    if (\"order\" in entry && typeof entry.order !== \"number\") {\n      throw new Error(\"Invalid order property\");\n    }\n    if (this.getEntryIndex(entry.id) !== -1) {\n      throw new Error(\"Duplicate entry\");\n    }\n  }\n}\nconst getNewFileMenu = function() {\n  if (typeof window._nc_newfilemenu === \"undefined\") {\n    window._nc_newfilemenu = new NewFileMenu();\n    logger.debug(\"NewFileMenu initialized\");\n  }\n  return window._nc_newfilemenu;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n  DefaultType2[\"DEFAULT\"] = \"default\";\n  DefaultType2[\"HIDDEN\"] = \"hidden\";\n  return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n  _action;\n  constructor(action) {\n    this.validateAction(action);\n    this._action = action;\n  }\n  get id() {\n    return this._action.id;\n  }\n  get displayName() {\n    return this._action.displayName;\n  }\n  get title() {\n    return this._action.title;\n  }\n  get iconSvgInline() {\n    return this._action.iconSvgInline;\n  }\n  get enabled() {\n    return this._action.enabled;\n  }\n  get exec() {\n    return this._action.exec;\n  }\n  get execBatch() {\n    return this._action.execBatch;\n  }\n  get order() {\n    return this._action.order;\n  }\n  get parent() {\n    return this._action.parent;\n  }\n  get default() {\n    return this._action.default;\n  }\n  get inline() {\n    return this._action.inline;\n  }\n  get renderInline() {\n    return this._action.renderInline;\n  }\n  validateAction(action) {\n    if (!action.id || typeof action.id !== \"string\") {\n      throw new Error(\"Invalid id\");\n    }\n    if (!action.displayName || typeof action.displayName !== \"function\") {\n      throw new Error(\"Invalid displayName function\");\n    }\n    if (\"title\" in action && typeof action.title !== \"function\") {\n      throw new Error(\"Invalid title function\");\n    }\n    if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n      throw new Error(\"Invalid iconSvgInline function\");\n    }\n    if (!action.exec || typeof action.exec !== \"function\") {\n      throw new Error(\"Invalid exec function\");\n    }\n    if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n      throw new Error(\"Invalid enabled function\");\n    }\n    if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n      throw new Error(\"Invalid execBatch function\");\n    }\n    if (\"order\" in action && typeof action.order !== \"number\") {\n      throw new Error(\"Invalid order\");\n    }\n    if (\"parent\" in action && typeof action.parent !== \"string\") {\n      throw new Error(\"Invalid parent\");\n    }\n    if (action.default && !Object.values(DefaultType).includes(action.default)) {\n      throw new Error(\"Invalid default\");\n    }\n    if (\"inline\" in action && typeof action.inline !== \"function\") {\n      throw new Error(\"Invalid inline function\");\n    }\n    if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n      throw new Error(\"Invalid renderInline function\");\n    }\n  }\n}\nconst registerFileAction = function(action) {\n  if (typeof window._nc_fileactions === \"undefined\") {\n    window._nc_fileactions = [];\n    logger.debug(\"FileActions initialized\");\n  }\n  if (window._nc_fileactions.find((search) => search.id === action.id)) {\n    logger.error(`FileAction ${action.id} already registered`, { action });\n    return;\n  }\n  window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n  if (typeof window._nc_fileactions === \"undefined\") {\n    window._nc_fileactions = [];\n    logger.debug(\"FileActions initialized\");\n  }\n  return window._nc_fileactions;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass Header {\n  _header;\n  constructor(header) {\n    this.validateHeader(header);\n    this._header = header;\n  }\n  get id() {\n    return this._header.id;\n  }\n  get order() {\n    return this._header.order;\n  }\n  get enabled() {\n    return this._header.enabled;\n  }\n  get render() {\n    return this._header.render;\n  }\n  get updated() {\n    return this._header.updated;\n  }\n  validateHeader(header) {\n    if (!header.id || !header.render || !header.updated) {\n      throw new Error(\"Invalid header: id, render and updated are required\");\n    }\n    if (typeof header.id !== \"string\") {\n      throw new Error(\"Invalid id property\");\n    }\n    if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n      throw new Error(\"Invalid enabled property\");\n    }\n    if (header.render && typeof header.render !== \"function\") {\n      throw new Error(\"Invalid render property\");\n    }\n    if (header.updated && typeof header.updated !== \"function\") {\n      throw new Error(\"Invalid updated property\");\n    }\n  }\n}\nconst registerFileListHeaders = function(header) {\n  if (typeof window._nc_filelistheader === \"undefined\") {\n    window._nc_filelistheader = [];\n    logger.debug(\"FileListHeaders initialized\");\n  }\n  if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n    logger.error(`Header ${header.id} already registered`, { header });\n    return;\n  }\n  window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n  if (typeof window._nc_filelistheader === \"undefined\") {\n    window._nc_filelistheader = [];\n    logger.debug(\"FileListHeaders initialized\");\n  }\n  return window._nc_filelistheader;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nvar Permission = /* @__PURE__ */ ((Permission2) => {\n  Permission2[Permission2[\"NONE\"] = 0] = \"NONE\";\n  Permission2[Permission2[\"CREATE\"] = 4] = \"CREATE\";\n  Permission2[Permission2[\"READ\"] = 1] = \"READ\";\n  Permission2[Permission2[\"UPDATE\"] = 2] = \"UPDATE\";\n  Permission2[Permission2[\"DELETE\"] = 8] = \"DELETE\";\n  Permission2[Permission2[\"SHARE\"] = 16] = \"SHARE\";\n  Permission2[Permission2[\"ALL\"] = 31] = \"ALL\";\n  return Permission2;\n})(Permission || {});\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst defaultDavProperties = [\n  \"d:getcontentlength\",\n  \"d:getcontenttype\",\n  \"d:getetag\",\n  \"d:getlastmodified\",\n  \"d:quota-available-bytes\",\n  \"d:resourcetype\",\n  \"nc:has-preview\",\n  \"nc:is-encrypted\",\n  \"nc:mount-type\",\n  \"oc:comments-unread\",\n  \"oc:favorite\",\n  \"oc:fileid\",\n  \"oc:owner-display-name\",\n  \"oc:owner-id\",\n  \"oc:permissions\",\n  \"oc:size\"\n];\nconst defaultDavNamespaces = {\n  d: \"DAV:\",\n  nc: \"http://nextcloud.org/ns\",\n  oc: \"http://owncloud.org/ns\",\n  ocs: \"http://open-collaboration-services.org/ns\"\n};\nconst registerDavProperty = function(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n  if (typeof window._nc_dav_properties === \"undefined\") {\n    window._nc_dav_properties = [...defaultDavProperties];\n    window._nc_dav_namespaces = { ...defaultDavNamespaces };\n  }\n  const namespaces = { ...window._nc_dav_namespaces, ...namespace };\n  if (window._nc_dav_properties.find((search) => search === prop)) {\n    logger.warn(`${prop} already registered`, { prop });\n    return false;\n  }\n  if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n    logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n    return false;\n  }\n  const ns = prop.split(\":\")[0];\n  if (!namespaces[ns]) {\n    logger.error(`${prop} namespace unknown`, { prop, namespaces });\n    return false;\n  }\n  window._nc_dav_properties.push(prop);\n  window._nc_dav_namespaces = namespaces;\n  return true;\n};\nconst getDavProperties = function() {\n  if (typeof window._nc_dav_properties === \"undefined\") {\n    window._nc_dav_properties = [...defaultDavProperties];\n  }\n  return window._nc_dav_properties.map((prop) => `<${prop} />`).join(\" \");\n};\nconst getDavNameSpaces = function() {\n  if (typeof window._nc_dav_namespaces === \"undefined\") {\n    window._nc_dav_namespaces = { ...defaultDavNamespaces };\n  }\n  return Object.keys(window._nc_dav_namespaces).map((ns) => `xmlns:${ns}=\"${window._nc_dav_namespaces?.[ns]}\"`).join(\" \");\n};\nconst davGetDefaultPropfind = function() {\n  return `<?xml version=\"1.0\"?>\n\t\t<d:propfind ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;\n};\nconst davGetFavoritesReport = function() {\n  return `<?xml version=\"1.0\"?>\n\t\t<oc:filter-files ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`;\n};\nconst davGetRecentSearch = function(lastModified) {\n  return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<d:searchrequest ${getDavNameSpaces()}\n\txmlns:ns=\"https://github.com/icewind1991/SearchDAV/ns\">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${getCurrentUser()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${lastModified}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst davParsePermissions = function(permString = \"\") {\n  let permissions = Permission.NONE;\n  if (!permString) {\n    return permissions;\n  }\n  if (permString.includes(\"C\") || permString.includes(\"K\")) {\n    permissions |= Permission.CREATE;\n  }\n  if (permString.includes(\"G\")) {\n    permissions |= Permission.READ;\n  }\n  if (permString.includes(\"W\") || permString.includes(\"N\") || permString.includes(\"V\")) {\n    permissions |= Permission.UPDATE;\n  }\n  if (permString.includes(\"D\")) {\n    permissions |= Permission.DELETE;\n  }\n  if (permString.includes(\"R\")) {\n    permissions |= Permission.SHARE;\n  }\n  return permissions;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nvar FileType = /* @__PURE__ */ ((FileType2) => {\n  FileType2[\"Folder\"] = \"folder\";\n  FileType2[\"File\"] = \"file\";\n  return FileType2;\n})(FileType || {});\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst isDavRessource = function(source, davService) {\n  return source.match(davService) !== null;\n};\nconst validateData = (data, davService) => {\n  if (data.id && typeof data.id !== \"number\") {\n    throw new Error(\"Invalid id type of value\");\n  }\n  if (!data.source) {\n    throw new Error(\"Missing mandatory source\");\n  }\n  try {\n    new URL(data.source);\n  } catch (e) {\n    throw new Error(\"Invalid source format, source must be a valid URL\");\n  }\n  if (!data.source.startsWith(\"http\")) {\n    throw new Error(\"Invalid source format, only http(s) is supported\");\n  }\n  if (data.mtime && !(data.mtime instanceof Date)) {\n    throw new Error(\"Invalid mtime type\");\n  }\n  if (data.crtime && !(data.crtime instanceof Date)) {\n    throw new Error(\"Invalid crtime type\");\n  }\n  if (!data.mime || typeof data.mime !== \"string\" || !data.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi)) {\n    throw new Error(\"Missing or invalid mandatory mime\");\n  }\n  if (\"size\" in data && typeof data.size !== \"number\" && data.size !== void 0) {\n    throw new Error(\"Invalid size type\");\n  }\n  if (\"permissions\" in data && data.permissions !== void 0 && !(typeof data.permissions === \"number\" && data.permissions >= Permission.NONE && data.permissions <= Permission.ALL)) {\n    throw new Error(\"Invalid permissions\");\n  }\n  if (data.owner && data.owner !== null && typeof data.owner !== \"string\") {\n    throw new Error(\"Invalid owner type\");\n  }\n  if (data.attributes && typeof data.attributes !== \"object\") {\n    throw new Error(\"Invalid attributes type\");\n  }\n  if (data.root && typeof data.root !== \"string\") {\n    throw new Error(\"Invalid root type\");\n  }\n  if (data.root && !data.root.startsWith(\"/\")) {\n    throw new Error(\"Root must start with a leading slash\");\n  }\n  if (data.root && !data.source.includes(data.root)) {\n    throw new Error(\"Root must be part of the source\");\n  }\n  if (data.root && isDavRessource(data.source, davService)) {\n    const service = data.source.match(davService)[0];\n    if (!data.source.includes(join(service, data.root))) {\n      throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n    }\n  }\n  if (data.status && !Object.values(NodeStatus).includes(data.status)) {\n    throw new Error(\"Status must be a valid NodeStatus\");\n  }\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nvar NodeStatus = /* @__PURE__ */ ((NodeStatus2) => {\n  NodeStatus2[\"NEW\"] = \"new\";\n  NodeStatus2[\"FAILED\"] = \"failed\";\n  NodeStatus2[\"LOADING\"] = \"loading\";\n  NodeStatus2[\"LOCKED\"] = \"locked\";\n  return NodeStatus2;\n})(NodeStatus || {});\nclass Node {\n  _data;\n  _attributes;\n  _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n  readonlyAttributes = Object.entries(Object.getOwnPropertyDescriptors(Node.prototype)).filter((e) => typeof e[1].get === \"function\" && e[0] !== \"__proto__\").map((e) => e[0]);\n  handler = {\n    set: (target, prop, value) => {\n      if (this.readonlyAttributes.includes(prop)) {\n        return false;\n      }\n      this.updateMtime();\n      return Reflect.set(target, prop, value);\n    },\n    deleteProperty: (target, prop) => {\n      if (this.readonlyAttributes.includes(prop)) {\n        return false;\n      }\n      this.updateMtime();\n      return Reflect.deleteProperty(target, prop);\n    },\n    // TODO: This is deprecated and only needed for files v3\n    get: (target, prop, receiver) => {\n      if (this.readonlyAttributes.includes(prop)) {\n        logger.warn(`Accessing \"Node.attributes.${prop}\" is deprecated, access it directly on the Node instance.`);\n        return Reflect.get(this, prop);\n      }\n      return Reflect.get(target, prop, receiver);\n    }\n  };\n  constructor(data, davService) {\n    validateData(data, davService || this._knownDavService);\n    this._data = { ...data, attributes: {} };\n    this._attributes = new Proxy(this._data.attributes, this.handler);\n    this.update(data.attributes ?? {});\n    this._data.mtime = data.mtime;\n    if (davService) {\n      this._knownDavService = davService;\n    }\n  }\n  /**\n   * Get the source url to this object\n   * There is no setter as the source is not meant to be changed manually.\n   * You can use the rename or move method to change the source.\n   */\n  get source() {\n    return this._data.source.replace(/\\/$/i, \"\");\n  }\n  /**\n   * Get the encoded source url to this object for requests purposes\n   */\n  get encodedSource() {\n    const { origin } = new URL(this.source);\n    return origin + encodePath(this.source.slice(origin.length));\n  }\n  /**\n   * Get this object name\n   * There is no setter as the source is not meant to be changed manually.\n   * You can use the rename or move method to change the source.\n   */\n  get basename() {\n    return basename(this.source);\n  }\n  /**\n   * Get this object's extension\n   * There is no setter as the source is not meant to be changed manually.\n   * You can use the rename or move method to change the source.\n   */\n  get extension() {\n    return extname(this.source);\n  }\n  /**\n   * Get the directory path leading to this object\n   * Will use the relative path to root if available\n   *\n   * There is no setter as the source is not meant to be changed manually.\n   * You can use the rename or move method to change the source.\n   */\n  get dirname() {\n    if (this.root) {\n      let source = this.source;\n      if (this.isDavRessource) {\n        source = source.split(this._knownDavService).pop();\n      }\n      const firstMatch = source.indexOf(this.root);\n      const root = this.root.replace(/\\/$/, \"\");\n      return dirname(source.slice(firstMatch + root.length) || \"/\");\n    }\n    const url = new URL(this.source);\n    return dirname(url.pathname);\n  }\n  /**\n   * Get the file mime\n   * There is no setter as the mime is not meant to be changed\n   */\n  get mime() {\n    return this._data.mime;\n  }\n  /**\n   * Get the file modification time\n   * There is no setter as the modification time is not meant to be changed manually.\n   * It will be automatically updated when the attributes are changed.\n   */\n  get mtime() {\n    return this._data.mtime;\n  }\n  /**\n   * Get the file creation time\n   * There is no setter as the creation time is not meant to be changed\n   */\n  get crtime() {\n    return this._data.crtime;\n  }\n  /**\n   * Get the file size\n   */\n  get size() {\n    return this._data.size;\n  }\n  /**\n   * Set the file size\n   */\n  set size(size) {\n    this.updateMtime();\n    this._data.size = size;\n  }\n  /**\n   * Get the file attribute\n   * This contains all additional attributes not provided by the Node class\n   */\n  get attributes() {\n    return this._attributes;\n  }\n  /**\n   * Get the file permissions\n   */\n  get permissions() {\n    if (this.owner === null && !this.isDavRessource) {\n      return Permission.READ;\n    }\n    return this._data.permissions !== void 0 ? this._data.permissions : Permission.NONE;\n  }\n  /**\n   * Set the file permissions\n   */\n  set permissions(permissions) {\n    this.updateMtime();\n    this._data.permissions = permissions;\n  }\n  /**\n   * Get the file owner\n   * There is no setter as the owner is not meant to be changed\n   */\n  get owner() {\n    if (!this.isDavRessource) {\n      return null;\n    }\n    return this._data.owner;\n  }\n  /**\n   * Is this a dav-related ressource ?\n   */\n  get isDavRessource() {\n    return isDavRessource(this.source, this._knownDavService);\n  }\n  /**\n   * Get the dav root of this object\n   * There is no setter as the root is not meant to be changed\n   */\n  get root() {\n    if (this._data.root) {\n      return this._data.root.replace(/^(.+)\\/$/, \"$1\");\n    }\n    if (this.isDavRessource) {\n      const root = dirname(this.source);\n      return root.split(this._knownDavService).pop() || null;\n    }\n    return null;\n  }\n  /**\n   * Get the absolute path of this object relative to the root\n   */\n  get path() {\n    if (this.root) {\n      let source = this.source;\n      if (this.isDavRessource) {\n        source = source.split(this._knownDavService).pop();\n      }\n      const firstMatch = source.indexOf(this.root);\n      const root = this.root.replace(/\\/$/, \"\");\n      return source.slice(firstMatch + root.length) || \"/\";\n    }\n    return (this.dirname + \"/\" + this.basename).replace(/\\/\\//g, \"/\");\n  }\n  /**\n   * Get the node id if defined.\n   * There is no setter as the fileid is not meant to be changed\n   */\n  get fileid() {\n    return this._data?.id;\n  }\n  /**\n   * Get the node status.\n   */\n  get status() {\n    return this._data?.status;\n  }\n  /**\n   * Set the node status.\n   */\n  set status(status) {\n    this._data.status = status;\n  }\n  /**\n   * Move the node to a new destination\n   *\n   * @param {string} destination the new source.\n   * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n   */\n  move(destination) {\n    validateData({ ...this._data, source: destination }, this._knownDavService);\n    this._data.source = destination;\n    this.updateMtime();\n  }\n  /**\n   * Rename the node\n   * This aliases the move method for easier usage\n   *\n   * @param basename The new name of the node\n   */\n  rename(basename2) {\n    if (basename2.includes(\"/\")) {\n      throw new Error(\"Invalid basename\");\n    }\n    this.move(dirname(this.source) + \"/\" + basename2);\n  }\n  /**\n   * Update the mtime if exists.\n   */\n  updateMtime() {\n    if (this._data.mtime) {\n      this._data.mtime = /* @__PURE__ */ new Date();\n    }\n  }\n  /**\n   * Update the attributes of the node\n   *\n   * @param attributes The new attributes to update on the Node attributes\n   */\n  update(attributes) {\n    for (const [name, value] of Object.entries(attributes)) {\n      try {\n        if (value === void 0) {\n          delete this.attributes[name];\n        } else {\n          this.attributes[name] = value;\n        }\n      } catch (e) {\n        if (e instanceof TypeError) {\n          continue;\n        }\n        throw e;\n      }\n    }\n  }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass File extends Node {\n  get type() {\n    return FileType.File;\n  }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass Folder extends Node {\n  constructor(data) {\n    super({\n      ...data,\n      mime: \"httpd/unix-directory\"\n    });\n  }\n  get type() {\n    return FileType.Folder;\n  }\n  get extension() {\n    return null;\n  }\n  get mime() {\n    return \"httpd/unix-directory\";\n  }\n}\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst davRootPath = `/files/${getCurrentUser()?.uid}`;\nconst davRemoteURL = generateRemoteUrl(\"dav\");\nconst davGetClient = function(remoteURL = davRemoteURL, headers = {}) {\n  const client = createClient(remoteURL, { headers });\n  function setHeaders(token) {\n    client.setHeaders({\n      ...headers,\n      // Add this so the server knows it is an request from the browser\n      \"X-Requested-With\": \"XMLHttpRequest\",\n      // Inject user auth\n      requesttoken: token ?? \"\"\n    });\n  }\n  onRequestTokenUpdate(setHeaders);\n  setHeaders(getRequestToken());\n  const patcher = getPatcher();\n  patcher.patch(\"fetch\", (url, options) => {\n    const headers2 = options.headers;\n    if (headers2?.method) {\n      options.method = headers2.method;\n      delete headers2.method;\n    }\n    return fetch(url, options);\n  });\n  return client;\n};\nconst getFavoriteNodes = (davClient, path = \"/\", davRoot = davRootPath) => {\n  const controller = new AbortController();\n  return new CancelablePromise(async (resolve, reject, onCancel) => {\n    onCancel(() => controller.abort());\n    try {\n      const contentsResponse = await davClient.getDirectoryContents(`${davRoot}${path}`, {\n        signal: controller.signal,\n        details: true,\n        data: davGetFavoritesReport(),\n        headers: {\n          // see davGetClient for patched webdav client\n          method: \"REPORT\"\n        },\n        includeSelf: true\n      });\n      const nodes = contentsResponse.data.filter((node) => node.filename !== path).map((result) => davResultToNode(result, davRoot));\n      resolve(nodes);\n    } catch (error) {\n      reject(error);\n    }\n  });\n};\nconst davResultToNode = function(node, filesRoot = davRootPath, remoteURL = davRemoteURL) {\n  let userId = getCurrentUser()?.uid;\n  const isPublic = document.querySelector(\"input#isPublic\")?.value;\n  if (isPublic) {\n    userId = userId ?? document.querySelector(\"input#sharingUserId\")?.value;\n    userId = userId ?? \"anonymous\";\n  } else if (!userId) {\n    throw new Error(\"No user id found\");\n  }\n  const props = node.props;\n  const permissions = davParsePermissions(props?.permissions);\n  const owner = String(props?.[\"owner-id\"] || userId);\n  const nodeData = {\n    id: props?.fileid || 0,\n    source: `${remoteURL}${node.filename}`,\n    mtime: new Date(Date.parse(node.lastmod)),\n    mime: node.mime || \"application/octet-stream\",\n    size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n    permissions,\n    owner,\n    root: filesRoot,\n    attributes: {\n      ...node,\n      ...props,\n      hasPreview: props?.[\"has-preview\"]\n    }\n  };\n  delete nodeData.attributes?.props;\n  return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n};\nconst forbiddenCharacters = window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\nconst forbiddenFilenameRegex = window._oc_config?.blacklist_files_regex ? new RegExp(window._oc_config.blacklist_files_regex) : null;\nfunction isFilenameValid(filename) {\n  if (forbiddenCharacters.some((character) => filename.includes(character))) {\n    return false;\n  }\n  if (forbiddenFilenameRegex !== null && filename.match(forbiddenFilenameRegex)) {\n    return false;\n  }\n  return true;\n}\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n  binaryPrefixes = binaryPrefixes && !base1000;\n  if (typeof size === \"string\") {\n    size = Number(size);\n  }\n  let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n  order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n  const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n  let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n  if (skipSmallSizes === true && order === 0) {\n    return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n  }\n  if (order < 2) {\n    relativeSize = parseFloat(relativeSize).toFixed(0);\n  } else {\n    relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n  }\n  return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n  try {\n    value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n  } catch (e) {\n    return null;\n  }\n  const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n  if (match === null || match[1] === \".\" || match[1] === \"\") {\n    return null;\n  }\n  const bytesArray = {\n    \"\": 0,\n    k: 1,\n    m: 2,\n    g: 3,\n    t: 4,\n    p: 5,\n    e: 6\n  };\n  const decimalString = `${match[1]}`;\n  const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n  return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n  if (value instanceof Date) {\n    return value.toISOString();\n  }\n  return String(value);\n}\nfunction orderBy(collection, identifiers, orders) {\n  identifiers = identifiers ?? [(value) => value];\n  orders = orders ?? [];\n  const sorting = identifiers.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n  const collator = Intl.Collator(\n    [getLanguage(), getCanonicalLocale()],\n    {\n      // handle 10 as ten and not as one-zero\n      numeric: true,\n      usage: \"sort\"\n    }\n  );\n  return [...collection].sort((a, b) => {\n    for (const [index, identifier] of identifiers.entries()) {\n      const value = collator.compare(stringify(identifier(a)), stringify(identifier(b)));\n      if (value !== 0) {\n        return value * sorting[index];\n      }\n    }\n    return 0;\n  });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n  FilesSortingMode2[\"Name\"] = \"basename\";\n  FilesSortingMode2[\"Modified\"] = \"mtime\";\n  FilesSortingMode2[\"Size\"] = \"size\";\n  return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n  const sortingOptions = {\n    // Default to sort by name\n    sortingMode: \"basename\",\n    // Default to sort ascending\n    sortingOrder: \"asc\",\n    ...options\n  };\n  const identifiers = [\n    // 1: Sort favorites first if enabled\n    ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n    // 2: Sort folders first if sorting by name\n    ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n    // 3: Use sorting mode if NOT basename (to be able to use displayName too)\n    ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n    // 4: Use displayName if available, fallback to name\n    (v) => v.attributes?.displayName || v.basename,\n    // 5: Finally, use basename if all previous sorting methods failed\n    (v) => v.basename\n  ];\n  const orders = [\n    // (for 1): always sort favorites before normal files\n    ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n    // (for 2): always sort folders before files\n    ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n    // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n    ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n    // (also for 3 so make sure not to conflict with 2 and 3)\n    ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n    // for 4: use configured sorting direction\n    sortingOptions.sortingOrder,\n    // for 5: use configured sorting direction\n    sortingOptions.sortingOrder\n  ];\n  return orderBy(nodes, identifiers, orders);\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass Navigation {\n  _views = [];\n  _currentView = null;\n  register(view) {\n    if (this._views.find((search) => search.id === view.id)) {\n      throw new Error(`View id ${view.id} is already registered`);\n    }\n    this._views.push(view);\n  }\n  remove(id) {\n    const index = this._views.findIndex((view) => view.id === id);\n    if (index !== -1) {\n      this._views.splice(index, 1);\n    }\n  }\n  get views() {\n    return this._views;\n  }\n  setActive(view) {\n    this._currentView = view;\n  }\n  get active() {\n    return this._currentView;\n  }\n}\nconst getNavigation = function() {\n  if (typeof window._nc_navigation === \"undefined\") {\n    window._nc_navigation = new Navigation();\n    logger.debug(\"Navigation service initialized\");\n  }\n  return window._nc_navigation;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass Column {\n  _column;\n  constructor(column) {\n    isValidColumn(column);\n    this._column = column;\n  }\n  get id() {\n    return this._column.id;\n  }\n  get title() {\n    return this._column.title;\n  }\n  get render() {\n    return this._column.render;\n  }\n  get sort() {\n    return this._column.sort;\n  }\n  get summary() {\n    return this._column.summary;\n  }\n}\nconst isValidColumn = function(column) {\n  if (!column.id || typeof column.id !== \"string\") {\n    throw new Error(\"A column id is required\");\n  }\n  if (!column.title || typeof column.title !== \"string\") {\n    throw new Error(\"A column title is required\");\n  }\n  if (!column.render || typeof column.render !== \"function\") {\n    throw new Error(\"A render function is required\");\n  }\n  if (column.sort && typeof column.sort !== \"function\") {\n    throw new Error(\"Column sortFunction must be a function\");\n  }\n  if (column.summary && typeof column.summary !== \"function\") {\n    throw new Error(\"Column summary must be a function\");\n  }\n  return true;\n};\nvar validator$2 = {};\nvar util$3 = {};\n(function(exports) {\n  const nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n  const nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n  const nameRegexp = \"[\" + nameStartChar + \"][\" + nameChar + \"]*\";\n  const regexName = new RegExp(\"^\" + nameRegexp + \"$\");\n  const getAllMatches = function(string, regex) {\n    const matches = [];\n    let match = regex.exec(string);\n    while (match) {\n      const allmatches = [];\n      allmatches.startIndex = regex.lastIndex - match[0].length;\n      const len = match.length;\n      for (let index = 0; index < len; index++) {\n        allmatches.push(match[index]);\n      }\n      matches.push(allmatches);\n      match = regex.exec(string);\n    }\n    return matches;\n  };\n  const isName = function(string) {\n    const match = regexName.exec(string);\n    return !(match === null || typeof match === \"undefined\");\n  };\n  exports.isExist = function(v) {\n    return typeof v !== \"undefined\";\n  };\n  exports.isEmptyObject = function(obj) {\n    return Object.keys(obj).length === 0;\n  };\n  exports.merge = function(target, a, arrayMode) {\n    if (a) {\n      const keys = Object.keys(a);\n      const len = keys.length;\n      for (let i = 0; i < len; i++) {\n        if (arrayMode === \"strict\") {\n          target[keys[i]] = [a[keys[i]]];\n        } else {\n          target[keys[i]] = a[keys[i]];\n        }\n      }\n    }\n  };\n  exports.getValue = function(v) {\n    if (exports.isExist(v)) {\n      return v;\n    } else {\n      return \"\";\n    }\n  };\n  exports.isName = isName;\n  exports.getAllMatches = getAllMatches;\n  exports.nameRegexp = nameRegexp;\n})(util$3);\nconst util$2 = util$3;\nconst defaultOptions$2 = {\n  allowBooleanAttributes: false,\n  //A tag can have attributes without any value\n  unpairedTags: []\n};\nvalidator$2.validate = function(xmlData, options) {\n  options = Object.assign({}, defaultOptions$2, options);\n  const tags = [];\n  let tagFound = false;\n  let reachedRoot = false;\n  if (xmlData[0] === \"\\uFEFF\") {\n    xmlData = xmlData.substr(1);\n  }\n  for (let i = 0; i < xmlData.length; i++) {\n    if (xmlData[i] === \"<\" && xmlData[i + 1] === \"?\") {\n      i += 2;\n      i = readPI(xmlData, i);\n      if (i.err)\n        return i;\n    } else if (xmlData[i] === \"<\") {\n      let tagStartPos = i;\n      i++;\n      if (xmlData[i] === \"!\") {\n        i = readCommentAndCDATA(xmlData, i);\n        continue;\n      } else {\n        let closingTag = false;\n        if (xmlData[i] === \"/\") {\n          closingTag = true;\n          i++;\n        }\n        let tagName = \"\";\n        for (; i < xmlData.length && xmlData[i] !== \">\" && xmlData[i] !== \" \" && xmlData[i] !== \"\t\" && xmlData[i] !== \"\\n\" && xmlData[i] !== \"\\r\"; i++) {\n          tagName += xmlData[i];\n        }\n        tagName = tagName.trim();\n        if (tagName[tagName.length - 1] === \"/\") {\n          tagName = tagName.substring(0, tagName.length - 1);\n          i--;\n        }\n        if (!validateTagName(tagName)) {\n          let msg;\n          if (tagName.trim().length === 0) {\n            msg = \"Invalid space after '<'.\";\n          } else {\n            msg = \"Tag '\" + tagName + \"' is an invalid name.\";\n          }\n          return getErrorObject(\"InvalidTag\", msg, getLineNumberForPosition(xmlData, i));\n        }\n        const result = readAttributeStr(xmlData, i);\n        if (result === false) {\n          return getErrorObject(\"InvalidAttr\", \"Attributes for '\" + tagName + \"' have open quote.\", getLineNumberForPosition(xmlData, i));\n        }\n        let attrStr = result.value;\n        i = result.index;\n        if (attrStr[attrStr.length - 1] === \"/\") {\n          const attrStrStart = i - attrStr.length;\n          attrStr = attrStr.substring(0, attrStr.length - 1);\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid === true) {\n            tagFound = true;\n          } else {\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n          }\n        } else if (closingTag) {\n          if (!result.tagClosed) {\n            return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n          } else if (attrStr.trim().length > 0) {\n            return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else if (tags.length === 0) {\n            return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else {\n            const otg = tags.pop();\n            if (tagName !== otg.tagName) {\n              let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n              return getErrorObject(\n                \"InvalidTag\",\n                \"Expected closing tag '\" + otg.tagName + \"' (opened in line \" + openPos.line + \", col \" + openPos.col + \") instead of closing tag '\" + tagName + \"'.\",\n                getLineNumberForPosition(xmlData, tagStartPos)\n              );\n            }\n            if (tags.length == 0) {\n              reachedRoot = true;\n            }\n          }\n        } else {\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid !== true) {\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n          }\n          if (reachedRoot === true) {\n            return getErrorObject(\"InvalidXml\", \"Multiple possible root nodes found.\", getLineNumberForPosition(xmlData, i));\n          } else if (options.unpairedTags.indexOf(tagName) !== -1)\n            ;\n          else {\n            tags.push({ tagName, tagStartPos });\n          }\n          tagFound = true;\n        }\n        for (i++; i < xmlData.length; i++) {\n          if (xmlData[i] === \"<\") {\n            if (xmlData[i + 1] === \"!\") {\n              i++;\n              i = readCommentAndCDATA(xmlData, i);\n              continue;\n            } else if (xmlData[i + 1] === \"?\") {\n              i = readPI(xmlData, ++i);\n              if (i.err)\n                return i;\n            } else {\n              break;\n            }\n          } else if (xmlData[i] === \"&\") {\n            const afterAmp = validateAmpersand(xmlData, i);\n            if (afterAmp == -1)\n              return getErrorObject(\"InvalidChar\", \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n            i = afterAmp;\n          } else {\n            if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n              return getErrorObject(\"InvalidXml\", \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n            }\n          }\n        }\n        if (xmlData[i] === \"<\") {\n          i--;\n        }\n      }\n    } else {\n      if (isWhiteSpace(xmlData[i])) {\n        continue;\n      }\n      return getErrorObject(\"InvalidChar\", \"char '\" + xmlData[i] + \"' is not expected.\", getLineNumberForPosition(xmlData, i));\n    }\n  }\n  if (!tagFound) {\n    return getErrorObject(\"InvalidXml\", \"Start tag expected.\", 1);\n  } else if (tags.length == 1) {\n    return getErrorObject(\"InvalidTag\", \"Unclosed tag '\" + tags[0].tagName + \"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n  } else if (tags.length > 0) {\n    return getErrorObject(\"InvalidXml\", \"Invalid '\" + JSON.stringify(tags.map((t) => t.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n  }\n  return true;\n};\nfunction isWhiteSpace(char) {\n  return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n}\nfunction readPI(xmlData, i) {\n  const start = i;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] == \"?\" || xmlData[i] == \" \") {\n      const tagname = xmlData.substr(start, i - start);\n      if (i > 5 && tagname === \"xml\") {\n        return getErrorObject(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", getLineNumberForPosition(xmlData, i));\n      } else if (xmlData[i] == \"?\" && xmlData[i + 1] == \">\") {\n        i++;\n        break;\n      } else {\n        continue;\n      }\n    }\n  }\n  return i;\n}\nfunction readCommentAndCDATA(xmlData, i) {\n  if (xmlData.length > i + 5 && xmlData[i + 1] === \"-\" && xmlData[i + 2] === \"-\") {\n    for (i += 3; i < xmlData.length; i++) {\n      if (xmlData[i] === \"-\" && xmlData[i + 1] === \"-\" && xmlData[i + 2] === \">\") {\n        i += 2;\n        break;\n      }\n    }\n  } else if (xmlData.length > i + 8 && xmlData[i + 1] === \"D\" && xmlData[i + 2] === \"O\" && xmlData[i + 3] === \"C\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"Y\" && xmlData[i + 6] === \"P\" && xmlData[i + 7] === \"E\") {\n    let angleBracketsCount = 1;\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === \"<\") {\n        angleBracketsCount++;\n      } else if (xmlData[i] === \">\") {\n        angleBracketsCount--;\n        if (angleBracketsCount === 0) {\n          break;\n        }\n      }\n    }\n  } else if (xmlData.length > i + 9 && xmlData[i + 1] === \"[\" && xmlData[i + 2] === \"C\" && xmlData[i + 3] === \"D\" && xmlData[i + 4] === \"A\" && xmlData[i + 5] === \"T\" && xmlData[i + 6] === \"A\" && xmlData[i + 7] === \"[\") {\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === \"]\" && xmlData[i + 1] === \"]\" && xmlData[i + 2] === \">\") {\n        i += 2;\n        break;\n      }\n    }\n  }\n  return i;\n}\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\nfunction readAttributeStr(xmlData, i) {\n  let attrStr = \"\";\n  let startChar = \"\";\n  let tagClosed = false;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n      if (startChar === \"\") {\n        startChar = xmlData[i];\n      } else if (startChar !== xmlData[i])\n        ;\n      else {\n        startChar = \"\";\n      }\n    } else if (xmlData[i] === \">\") {\n      if (startChar === \"\") {\n        tagClosed = true;\n        break;\n      }\n    }\n    attrStr += xmlData[i];\n  }\n  if (startChar !== \"\") {\n    return false;\n  }\n  return {\n    value: attrStr,\n    index: i,\n    tagClosed\n  };\n}\nconst validAttrStrRegxp = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\nfunction validateAttributeString(attrStr, options) {\n  const matches = util$2.getAllMatches(attrStr, validAttrStrRegxp);\n  const attrNames = {};\n  for (let i = 0; i < matches.length; i++) {\n    if (matches[i][1].length === 0) {\n      return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i][2] + \"' has no space in starting.\", getPositionFromMatch(matches[i]));\n    } else if (matches[i][3] !== void 0 && matches[i][4] === void 0) {\n      return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i][2] + \"' is without value.\", getPositionFromMatch(matches[i]));\n    } else if (matches[i][3] === void 0 && !options.allowBooleanAttributes) {\n      return getErrorObject(\"InvalidAttr\", \"boolean attribute '\" + matches[i][2] + \"' is not allowed.\", getPositionFromMatch(matches[i]));\n    }\n    const attrName = matches[i][2];\n    if (!validateAttrName(attrName)) {\n      return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(matches[i]));\n    }\n    if (!attrNames.hasOwnProperty(attrName)) {\n      attrNames[attrName] = 1;\n    } else {\n      return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(matches[i]));\n    }\n  }\n  return true;\n}\nfunction validateNumberAmpersand(xmlData, i) {\n  let re = /\\d/;\n  if (xmlData[i] === \"x\") {\n    i++;\n    re = /[\\da-fA-F]/;\n  }\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === \";\")\n      return i;\n    if (!xmlData[i].match(re))\n      break;\n  }\n  return -1;\n}\nfunction validateAmpersand(xmlData, i) {\n  i++;\n  if (xmlData[i] === \";\")\n    return -1;\n  if (xmlData[i] === \"#\") {\n    i++;\n    return validateNumberAmpersand(xmlData, i);\n  }\n  let count = 0;\n  for (; i < xmlData.length; i++, count++) {\n    if (xmlData[i].match(/\\w/) && count < 20)\n      continue;\n    if (xmlData[i] === \";\")\n      break;\n    return -1;\n  }\n  return i;\n}\nfunction getErrorObject(code, message, lineNumber) {\n  return {\n    err: {\n      code,\n      msg: message,\n      line: lineNumber.line || lineNumber,\n      col: lineNumber.col\n    }\n  };\n}\nfunction validateAttrName(attrName) {\n  return util$2.isName(attrName);\n}\nfunction validateTagName(tagname) {\n  return util$2.isName(tagname);\n}\nfunction getLineNumberForPosition(xmlData, index) {\n  const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n  return {\n    line: lines.length,\n    // column number is last line's length + 1, because column numbering starts at 1:\n    col: lines[lines.length - 1].length + 1\n  };\n}\nfunction getPositionFromMatch(match) {\n  return match.startIndex + match[1].length;\n}\nvar OptionsBuilder = {};\nconst defaultOptions$1 = {\n  preserveOrder: false,\n  attributeNamePrefix: \"@_\",\n  attributesGroupName: false,\n  textNodeName: \"#text\",\n  ignoreAttributes: true,\n  removeNSPrefix: false,\n  // remove NS from tag name or attribute name if true\n  allowBooleanAttributes: false,\n  //a tag can have attributes without any value\n  //ignoreRootElement : false,\n  parseTagValue: true,\n  parseAttributeValue: false,\n  trimValues: true,\n  //Trim string values of tag and attributes\n  cdataPropName: false,\n  numberParseOptions: {\n    hex: true,\n    leadingZeros: true,\n    eNotation: true\n  },\n  tagValueProcessor: function(tagName, val2) {\n    return val2;\n  },\n  attributeValueProcessor: function(attrName, val2) {\n    return val2;\n  },\n  stopNodes: [],\n  //nested tags will not be parsed even for errors\n  alwaysCreateTextNode: false,\n  isArray: () => false,\n  commentPropName: false,\n  unpairedTags: [],\n  processEntities: true,\n  htmlEntities: false,\n  ignoreDeclaration: false,\n  ignorePiTags: false,\n  transformTagName: false,\n  transformAttributeName: false,\n  updateTag: function(tagName, jPath, attrs) {\n    return tagName;\n  }\n  // skipEmptyListItem: false\n};\nconst buildOptions$1 = function(options) {\n  return Object.assign({}, defaultOptions$1, options);\n};\nOptionsBuilder.buildOptions = buildOptions$1;\nOptionsBuilder.defaultOptions = defaultOptions$1;\nclass XmlNode {\n  constructor(tagname) {\n    this.tagname = tagname;\n    this.child = [];\n    this[\":@\"] = {};\n  }\n  add(key, val2) {\n    if (key === \"__proto__\")\n      key = \"#__proto__\";\n    this.child.push({ [key]: val2 });\n  }\n  addChild(node) {\n    if (node.tagname === \"__proto__\")\n      node.tagname = \"#__proto__\";\n    if (node[\":@\"] && Object.keys(node[\":@\"]).length > 0) {\n      this.child.push({ [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n    } else {\n      this.child.push({ [node.tagname]: node.child });\n    }\n  }\n}\nvar xmlNode$1 = XmlNode;\nconst util$1 = util$3;\nfunction readDocType$1(xmlData, i) {\n  const entities = {};\n  if (xmlData[i + 3] === \"O\" && xmlData[i + 4] === \"C\" && xmlData[i + 5] === \"T\" && xmlData[i + 6] === \"Y\" && xmlData[i + 7] === \"P\" && xmlData[i + 8] === \"E\") {\n    i = i + 9;\n    let angleBracketsCount = 1;\n    let hasBody = false, comment = false;\n    let exp = \"\";\n    for (; i < xmlData.length; i++) {\n      if (xmlData[i] === \"<\" && !comment) {\n        if (hasBody && isEntity(xmlData, i)) {\n          i += 7;\n          [entityName, val, i] = readEntityExp(xmlData, i + 1);\n          if (val.indexOf(\"&\") === -1)\n            entities[validateEntityName(entityName)] = {\n              regx: RegExp(`&${entityName};`, \"g\"),\n              val\n            };\n        } else if (hasBody && isElement(xmlData, i))\n          i += 8;\n        else if (hasBody && isAttlist(xmlData, i))\n          i += 8;\n        else if (hasBody && isNotation(xmlData, i))\n          i += 9;\n        else if (isComment)\n          comment = true;\n        else\n          throw new Error(\"Invalid DOCTYPE\");\n        angleBracketsCount++;\n        exp = \"\";\n      } else if (xmlData[i] === \">\") {\n        if (comment) {\n          if (xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\") {\n            comment = false;\n            angleBracketsCount--;\n          }\n        } else {\n          angleBracketsCount--;\n        }\n        if (angleBracketsCount === 0) {\n          break;\n        }\n      } else if (xmlData[i] === \"[\") {\n        hasBody = true;\n      } else {\n        exp += xmlData[i];\n      }\n    }\n    if (angleBracketsCount !== 0) {\n      throw new Error(`Unclosed DOCTYPE`);\n    }\n  } else {\n    throw new Error(`Invalid Tag instead of DOCTYPE`);\n  }\n  return { entities, i };\n}\nfunction readEntityExp(xmlData, i) {\n  let entityName2 = \"\";\n  for (; i < xmlData.length && (xmlData[i] !== \"'\" && xmlData[i] !== '\"'); i++) {\n    entityName2 += xmlData[i];\n  }\n  entityName2 = entityName2.trim();\n  if (entityName2.indexOf(\" \") !== -1)\n    throw new Error(\"External entites are not supported\");\n  const startChar = xmlData[i++];\n  let val2 = \"\";\n  for (; i < xmlData.length && xmlData[i] !== startChar; i++) {\n    val2 += xmlData[i];\n  }\n  return [entityName2, val2, i];\n}\nfunction isComment(xmlData, i) {\n  if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"-\" && xmlData[i + 3] === \"-\")\n    return true;\n  return false;\n}\nfunction isEntity(xmlData, i) {\n  if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"E\" && xmlData[i + 3] === \"N\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"I\" && xmlData[i + 6] === \"T\" && xmlData[i + 7] === \"Y\")\n    return true;\n  return false;\n}\nfunction isElement(xmlData, i) {\n  if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"E\" && xmlData[i + 3] === \"L\" && xmlData[i + 4] === \"E\" && xmlData[i + 5] === \"M\" && xmlData[i + 6] === \"E\" && xmlData[i + 7] === \"N\" && xmlData[i + 8] === \"T\")\n    return true;\n  return false;\n}\nfunction isAttlist(xmlData, i) {\n  if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"A\" && xmlData[i + 3] === \"T\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"L\" && xmlData[i + 6] === \"I\" && xmlData[i + 7] === \"S\" && xmlData[i + 8] === \"T\")\n    return true;\n  return false;\n}\nfunction isNotation(xmlData, i) {\n  if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"N\" && xmlData[i + 3] === \"O\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"A\" && xmlData[i + 6] === \"T\" && xmlData[i + 7] === \"I\" && xmlData[i + 8] === \"O\" && xmlData[i + 9] === \"N\")\n    return true;\n  return false;\n}\nfunction validateEntityName(name) {\n  if (util$1.isName(name))\n    return name;\n  else\n    throw new Error(`Invalid entity name ${name}`);\n}\nvar DocTypeReader = readDocType$1;\nconst hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\nif (!Number.parseInt && window.parseInt) {\n  Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n  Number.parseFloat = window.parseFloat;\n}\nconst consider = {\n  hex: true,\n  leadingZeros: true,\n  decimalPoint: \".\",\n  eNotation: true\n  //skipLike: /regex/\n};\nfunction toNumber$1(str, options = {}) {\n  options = Object.assign({}, consider, options);\n  if (!str || typeof str !== \"string\")\n    return str;\n  let trimmedStr = str.trim();\n  if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr))\n    return str;\n  else if (options.hex && hexRegex.test(trimmedStr)) {\n    return Number.parseInt(trimmedStr, 16);\n  } else {\n    const match = numRegex.exec(trimmedStr);\n    if (match) {\n      const sign = match[1];\n      const leadingZeros = match[2];\n      let numTrimmedByZeros = trimZeros(match[3]);\n      const eNotation = match[4] || match[6];\n      if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\")\n        return str;\n      else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\")\n        return str;\n      else {\n        const num = Number(trimmedStr);\n        const numStr = \"\" + num;\n        if (numStr.search(/[eE]/) !== -1) {\n          if (options.eNotation)\n            return num;\n          else\n            return str;\n        } else if (eNotation) {\n          if (options.eNotation)\n            return num;\n          else\n            return str;\n        } else if (trimmedStr.indexOf(\".\") !== -1) {\n          if (numStr === \"0\" && numTrimmedByZeros === \"\")\n            return num;\n          else if (numStr === numTrimmedByZeros)\n            return num;\n          else if (sign && numStr === \"-\" + numTrimmedByZeros)\n            return num;\n          else\n            return str;\n        }\n        if (leadingZeros) {\n          if (numTrimmedByZeros === numStr)\n            return num;\n          else if (sign + numTrimmedByZeros === numStr)\n            return num;\n          else\n            return str;\n        }\n        if (trimmedStr === numStr)\n          return num;\n        else if (trimmedStr === sign + numStr)\n          return num;\n        return str;\n      }\n    } else {\n      return str;\n    }\n  }\n}\nfunction trimZeros(numStr) {\n  if (numStr && numStr.indexOf(\".\") !== -1) {\n    numStr = numStr.replace(/0+$/, \"\");\n    if (numStr === \".\")\n      numStr = \"0\";\n    else if (numStr[0] === \".\")\n      numStr = \"0\" + numStr;\n    else if (numStr[numStr.length - 1] === \".\")\n      numStr = numStr.substr(0, numStr.length - 1);\n    return numStr;\n  }\n  return numStr;\n}\nvar strnum = toNumber$1;\nconst util = util$3;\nconst xmlNode = xmlNode$1;\nconst readDocType = DocTypeReader;\nconst toNumber = strnum;\nlet OrderedObjParser$1 = class OrderedObjParser {\n  constructor(options) {\n    this.options = options;\n    this.currentNode = null;\n    this.tagsNodeStack = [];\n    this.docTypeEntities = {};\n    this.lastEntities = {\n      \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n      \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n      \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n      \"quot\": { regex: /&(quot|#34|#x22);/g, val: '\"' }\n    };\n    this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n    this.htmlEntities = {\n      \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n      // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n      // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n      // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n      // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n      // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n      \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n      \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n      \"yen\": { regex: /&(yen|#165);/g, val: \"¥\" },\n      \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n      \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n      \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n      \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n      \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n      \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 16)) }\n    };\n    this.addExternalEntities = addExternalEntities;\n    this.parseXml = parseXml;\n    this.parseTextData = parseTextData;\n    this.resolveNameSpace = resolveNameSpace;\n    this.buildAttributesMap = buildAttributesMap;\n    this.isItStopNode = isItStopNode;\n    this.replaceEntitiesValue = replaceEntitiesValue$1;\n    this.readStopNodeData = readStopNodeData;\n    this.saveTextToParentTag = saveTextToParentTag;\n    this.addChild = addChild;\n  }\n};\nfunction addExternalEntities(externalEntities) {\n  const entKeys = Object.keys(externalEntities);\n  for (let i = 0; i < entKeys.length; i++) {\n    const ent = entKeys[i];\n    this.lastEntities[ent] = {\n      regex: new RegExp(\"&\" + ent + \";\", \"g\"),\n      val: externalEntities[ent]\n    };\n  }\n}\nfunction parseTextData(val2, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n  if (val2 !== void 0) {\n    if (this.options.trimValues && !dontTrim) {\n      val2 = val2.trim();\n    }\n    if (val2.length > 0) {\n      if (!escapeEntities)\n        val2 = this.replaceEntitiesValue(val2);\n      const newval = this.options.tagValueProcessor(tagName, val2, jPath, hasAttributes, isLeafNode);\n      if (newval === null || newval === void 0) {\n        return val2;\n      } else if (typeof newval !== typeof val2 || newval !== val2) {\n        return newval;\n      } else if (this.options.trimValues) {\n        return parseValue(val2, this.options.parseTagValue, this.options.numberParseOptions);\n      } else {\n        const trimmedVal = val2.trim();\n        if (trimmedVal === val2) {\n          return parseValue(val2, this.options.parseTagValue, this.options.numberParseOptions);\n        } else {\n          return val2;\n        }\n      }\n    }\n  }\n}\nfunction resolveNameSpace(tagname) {\n  if (this.options.removeNSPrefix) {\n    const tags = tagname.split(\":\");\n    const prefix = tagname.charAt(0) === \"/\" ? \"/\" : \"\";\n    if (tags[0] === \"xmlns\") {\n      return \"\";\n    }\n    if (tags.length === 2) {\n      tagname = prefix + tags[1];\n    }\n  }\n  return tagname;\n}\nconst attrsRegx = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n  if (!this.options.ignoreAttributes && typeof attrStr === \"string\") {\n    const matches = util.getAllMatches(attrStr, attrsRegx);\n    const len = matches.length;\n    const attrs = {};\n    for (let i = 0; i < len; i++) {\n      const attrName = this.resolveNameSpace(matches[i][1]);\n      let oldVal = matches[i][4];\n      let aName = this.options.attributeNamePrefix + attrName;\n      if (attrName.length) {\n        if (this.options.transformAttributeName) {\n          aName = this.options.transformAttributeName(aName);\n        }\n        if (aName === \"__proto__\")\n          aName = \"#__proto__\";\n        if (oldVal !== void 0) {\n          if (this.options.trimValues) {\n            oldVal = oldVal.trim();\n          }\n          oldVal = this.replaceEntitiesValue(oldVal);\n          const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n          if (newVal === null || newVal === void 0) {\n            attrs[aName] = oldVal;\n          } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n            attrs[aName] = newVal;\n          } else {\n            attrs[aName] = parseValue(\n              oldVal,\n              this.options.parseAttributeValue,\n              this.options.numberParseOptions\n            );\n          }\n        } else if (this.options.allowBooleanAttributes) {\n          attrs[aName] = true;\n        }\n      }\n    }\n    if (!Object.keys(attrs).length) {\n      return;\n    }\n    if (this.options.attributesGroupName) {\n      const attrCollection = {};\n      attrCollection[this.options.attributesGroupName] = attrs;\n      return attrCollection;\n    }\n    return attrs;\n  }\n}\nconst parseXml = function(xmlData) {\n  xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n  const xmlObj = new xmlNode(\"!xml\");\n  let currentNode = xmlObj;\n  let textData = \"\";\n  let jPath = \"\";\n  for (let i = 0; i < xmlData.length; i++) {\n    const ch = xmlData[i];\n    if (ch === \"<\") {\n      if (xmlData[i + 1] === \"/\") {\n        const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\");\n        let tagName = xmlData.substring(i + 2, closeIndex).trim();\n        if (this.options.removeNSPrefix) {\n          const colonIndex = tagName.indexOf(\":\");\n          if (colonIndex !== -1) {\n            tagName = tagName.substr(colonIndex + 1);\n          }\n        }\n        if (this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n        if (currentNode) {\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        }\n        const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n        if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n          throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n        }\n        let propIndex = 0;\n        if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n          propIndex = jPath.lastIndexOf(\".\", jPath.lastIndexOf(\".\") - 1);\n          this.tagsNodeStack.pop();\n        } else {\n          propIndex = jPath.lastIndexOf(\".\");\n        }\n        jPath = jPath.substring(0, propIndex);\n        currentNode = this.tagsNodeStack.pop();\n        textData = \"\";\n        i = closeIndex;\n      } else if (xmlData[i + 1] === \"?\") {\n        let tagData = readTagExp(xmlData, i, false, \"?>\");\n        if (!tagData)\n          throw new Error(\"Pi Tag is not closed.\");\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        if (this.options.ignoreDeclaration && tagData.tagName === \"?xml\" || this.options.ignorePiTags)\n          ;\n        else {\n          const childNode = new xmlNode(tagData.tagName);\n          childNode.add(this.options.textNodeName, \"\");\n          if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n            childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n          }\n          this.addChild(currentNode, childNode, jPath);\n        }\n        i = tagData.closeIndex + 1;\n      } else if (xmlData.substr(i + 1, 3) === \"!--\") {\n        const endIndex = findClosingIndex(xmlData, \"-->\", i + 4, \"Comment is not closed.\");\n        if (this.options.commentPropName) {\n          const comment = xmlData.substring(i + 4, endIndex - 2);\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n          currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n        }\n        i = endIndex;\n      } else if (xmlData.substr(i + 1, 2) === \"!D\") {\n        const result = readDocType(xmlData, i);\n        this.docTypeEntities = result.entities;\n        i = result.i;\n      } else if (xmlData.substr(i + 1, 2) === \"![\") {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n        const tagExp = xmlData.substring(i + 9, closeIndex);\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        let val2 = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n        if (val2 == void 0)\n          val2 = \"\";\n        if (this.options.cdataPropName) {\n          currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n        } else {\n          currentNode.add(this.options.textNodeName, val2);\n        }\n        i = closeIndex + 2;\n      } else {\n        let result = readTagExp(xmlData, i, this.options.removeNSPrefix);\n        let tagName = result.tagName;\n        const rawTagName = result.rawTagName;\n        let tagExp = result.tagExp;\n        let attrExpPresent = result.attrExpPresent;\n        let closeIndex = result.closeIndex;\n        if (this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n        if (currentNode && textData) {\n          if (currentNode.tagname !== \"!xml\") {\n            textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n          }\n        }\n        const lastTag = currentNode;\n        if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n          currentNode = this.tagsNodeStack.pop();\n          jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n        }\n        if (tagName !== xmlObj.tagname) {\n          jPath += jPath ? \".\" + tagName : tagName;\n        }\n        if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n          let tagContent = \"\";\n          if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n            if (tagName[tagName.length - 1] === \"/\") {\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            } else {\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            i = result.closeIndex;\n          } else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n            i = result.closeIndex;\n          } else {\n            const result2 = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n            if (!result2)\n              throw new Error(`Unexpected end of ${rawTagName}`);\n            i = result2.i;\n            tagContent = result2.tagContent;\n          }\n          const childNode = new xmlNode(tagName);\n          if (tagName !== tagExp && attrExpPresent) {\n            childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n          }\n          if (tagContent) {\n            tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n          }\n          jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          childNode.add(this.options.textNodeName, tagContent);\n          this.addChild(currentNode, childNode, jPath);\n        } else {\n          if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n            if (tagName[tagName.length - 1] === \"/\") {\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            } else {\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            if (this.options.transformTagName) {\n              tagName = this.options.transformTagName(tagName);\n            }\n            const childNode = new xmlNode(tagName);\n            if (tagName !== tagExp && attrExpPresent) {\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath);\n            jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          } else {\n            const childNode = new xmlNode(tagName);\n            this.tagsNodeStack.push(currentNode);\n            if (tagName !== tagExp && attrExpPresent) {\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath);\n            currentNode = childNode;\n          }\n          textData = \"\";\n          i = closeIndex;\n        }\n      }\n    } else {\n      textData += xmlData[i];\n    }\n  }\n  return xmlObj.child;\n};\nfunction addChild(currentNode, childNode, jPath) {\n  const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"]);\n  if (result === false)\n    ;\n  else if (typeof result === \"string\") {\n    childNode.tagname = result;\n    currentNode.addChild(childNode);\n  } else {\n    currentNode.addChild(childNode);\n  }\n}\nconst replaceEntitiesValue$1 = function(val2) {\n  if (this.options.processEntities) {\n    for (let entityName2 in this.docTypeEntities) {\n      const entity = this.docTypeEntities[entityName2];\n      val2 = val2.replace(entity.regx, entity.val);\n    }\n    for (let entityName2 in this.lastEntities) {\n      const entity = this.lastEntities[entityName2];\n      val2 = val2.replace(entity.regex, entity.val);\n    }\n    if (this.options.htmlEntities) {\n      for (let entityName2 in this.htmlEntities) {\n        const entity = this.htmlEntities[entityName2];\n        val2 = val2.replace(entity.regex, entity.val);\n      }\n    }\n    val2 = val2.replace(this.ampEntity.regex, this.ampEntity.val);\n  }\n  return val2;\n};\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n  if (textData) {\n    if (isLeafNode === void 0)\n      isLeafNode = Object.keys(currentNode.child).length === 0;\n    textData = this.parseTextData(\n      textData,\n      currentNode.tagname,\n      jPath,\n      false,\n      currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n      isLeafNode\n    );\n    if (textData !== void 0 && textData !== \"\")\n      currentNode.add(this.options.textNodeName, textData);\n    textData = \"\";\n  }\n  return textData;\n}\nfunction isItStopNode(stopNodes, jPath, currentTagName) {\n  const allNodesExp = \"*.\" + currentTagName;\n  for (const stopNodePath in stopNodes) {\n    const stopNodeExp = stopNodes[stopNodePath];\n    if (allNodesExp === stopNodeExp || jPath === stopNodeExp)\n      return true;\n  }\n  return false;\n}\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\") {\n  let attrBoundary;\n  let tagExp = \"\";\n  for (let index = i; index < xmlData.length; index++) {\n    let ch = xmlData[index];\n    if (attrBoundary) {\n      if (ch === attrBoundary)\n        attrBoundary = \"\";\n    } else if (ch === '\"' || ch === \"'\") {\n      attrBoundary = ch;\n    } else if (ch === closingChar[0]) {\n      if (closingChar[1]) {\n        if (xmlData[index + 1] === closingChar[1]) {\n          return {\n            data: tagExp,\n            index\n          };\n        }\n      } else {\n        return {\n          data: tagExp,\n          index\n        };\n      }\n    } else if (ch === \"\t\") {\n      ch = \" \";\n    }\n    tagExp += ch;\n  }\n}\nfunction findClosingIndex(xmlData, str, i, errMsg) {\n  const closingIndex = xmlData.indexOf(str, i);\n  if (closingIndex === -1) {\n    throw new Error(errMsg);\n  } else {\n    return closingIndex + str.length - 1;\n  }\n}\nfunction readTagExp(xmlData, i, removeNSPrefix, closingChar = \">\") {\n  const result = tagExpWithClosingIndex(xmlData, i + 1, closingChar);\n  if (!result)\n    return;\n  let tagExp = result.data;\n  const closeIndex = result.index;\n  const separatorIndex = tagExp.search(/\\s/);\n  let tagName = tagExp;\n  let attrExpPresent = true;\n  if (separatorIndex !== -1) {\n    tagName = tagExp.substring(0, separatorIndex);\n    tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n  }\n  const rawTagName = tagName;\n  if (removeNSPrefix) {\n    const colonIndex = tagName.indexOf(\":\");\n    if (colonIndex !== -1) {\n      tagName = tagName.substr(colonIndex + 1);\n      attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n    }\n  }\n  return {\n    tagName,\n    tagExp,\n    closeIndex,\n    attrExpPresent,\n    rawTagName\n  };\n}\nfunction readStopNodeData(xmlData, tagName, i) {\n  const startIndex = i;\n  let openTagCount = 1;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === \"<\") {\n      if (xmlData[i + 1] === \"/\") {\n        const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n        let closeTagName = xmlData.substring(i + 2, closeIndex).trim();\n        if (closeTagName === tagName) {\n          openTagCount--;\n          if (openTagCount === 0) {\n            return {\n              tagContent: xmlData.substring(startIndex, i),\n              i: closeIndex\n            };\n          }\n        }\n        i = closeIndex;\n      } else if (xmlData[i + 1] === \"?\") {\n        const closeIndex = findClosingIndex(xmlData, \"?>\", i + 1, \"StopNode is not closed.\");\n        i = closeIndex;\n      } else if (xmlData.substr(i + 1, 3) === \"!--\") {\n        const closeIndex = findClosingIndex(xmlData, \"-->\", i + 3, \"StopNode is not closed.\");\n        i = closeIndex;\n      } else if (xmlData.substr(i + 1, 2) === \"![\") {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n        i = closeIndex;\n      } else {\n        const tagData = readTagExp(xmlData, i, \">\");\n        if (tagData) {\n          const openTagName = tagData && tagData.tagName;\n          if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n            openTagCount++;\n          }\n          i = tagData.closeIndex;\n        }\n      }\n    }\n  }\n}\nfunction parseValue(val2, shouldParse, options) {\n  if (shouldParse && typeof val2 === \"string\") {\n    const newval = val2.trim();\n    if (newval === \"true\")\n      return true;\n    else if (newval === \"false\")\n      return false;\n    else\n      return toNumber(val2, options);\n  } else {\n    if (util.isExist(val2)) {\n      return val2;\n    } else {\n      return \"\";\n    }\n  }\n}\nvar OrderedObjParser_1 = OrderedObjParser$1;\nvar node2json = {};\nfunction prettify$1(node, options) {\n  return compress(node, options);\n}\nfunction compress(arr, options, jPath) {\n  let text;\n  const compressedObj = {};\n  for (let i = 0; i < arr.length; i++) {\n    const tagObj = arr[i];\n    const property = propName$1(tagObj);\n    let newJpath = \"\";\n    if (jPath === void 0)\n      newJpath = property;\n    else\n      newJpath = jPath + \".\" + property;\n    if (property === options.textNodeName) {\n      if (text === void 0)\n        text = tagObj[property];\n      else\n        text += \"\" + tagObj[property];\n    } else if (property === void 0) {\n      continue;\n    } else if (tagObj[property]) {\n      let val2 = compress(tagObj[property], options, newJpath);\n      const isLeaf = isLeafTag(val2, options);\n      if (tagObj[\":@\"]) {\n        assignAttributes(val2, tagObj[\":@\"], newJpath, options);\n      } else if (Object.keys(val2).length === 1 && val2[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) {\n        val2 = val2[options.textNodeName];\n      } else if (Object.keys(val2).length === 0) {\n        if (options.alwaysCreateTextNode)\n          val2[options.textNodeName] = \"\";\n        else\n          val2 = \"\";\n      }\n      if (compressedObj[property] !== void 0 && compressedObj.hasOwnProperty(property)) {\n        if (!Array.isArray(compressedObj[property])) {\n          compressedObj[property] = [compressedObj[property]];\n        }\n        compressedObj[property].push(val2);\n      } else {\n        if (options.isArray(property, newJpath, isLeaf)) {\n          compressedObj[property] = [val2];\n        } else {\n          compressedObj[property] = val2;\n        }\n      }\n    }\n  }\n  if (typeof text === \"string\") {\n    if (text.length > 0)\n      compressedObj[options.textNodeName] = text;\n  } else if (text !== void 0)\n    compressedObj[options.textNodeName] = text;\n  return compressedObj;\n}\nfunction propName$1(obj) {\n  const keys = Object.keys(obj);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if (key !== \":@\")\n      return key;\n  }\n}\nfunction assignAttributes(obj, attrMap, jpath, options) {\n  if (attrMap) {\n    const keys = Object.keys(attrMap);\n    const len = keys.length;\n    for (let i = 0; i < len; i++) {\n      const atrrName = keys[i];\n      if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n        obj[atrrName] = [attrMap[atrrName]];\n      } else {\n        obj[atrrName] = attrMap[atrrName];\n      }\n    }\n  }\n}\nfunction isLeafTag(obj, options) {\n  const { textNodeName } = options;\n  const propCount = Object.keys(obj).length;\n  if (propCount === 0) {\n    return true;\n  }\n  if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)) {\n    return true;\n  }\n  return false;\n}\nnode2json.prettify = prettify$1;\nconst { buildOptions } = OptionsBuilder;\nconst OrderedObjParser2 = OrderedObjParser_1;\nconst { prettify } = node2json;\nconst validator$1 = validator$2;\nlet XMLParser$1 = class XMLParser {\n  constructor(options) {\n    this.externalEntities = {};\n    this.options = buildOptions(options);\n  }\n  /**\n   * Parse XML dats to JS object \n   * @param {string|Buffer} xmlData \n   * @param {boolean|Object} validationOption \n   */\n  parse(xmlData, validationOption) {\n    if (typeof xmlData === \"string\")\n      ;\n    else if (xmlData.toString) {\n      xmlData = xmlData.toString();\n    } else {\n      throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n    }\n    if (validationOption) {\n      if (validationOption === true)\n        validationOption = {};\n      const result = validator$1.validate(xmlData, validationOption);\n      if (result !== true) {\n        throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);\n      }\n    }\n    const orderedObjParser = new OrderedObjParser2(this.options);\n    orderedObjParser.addExternalEntities(this.externalEntities);\n    const orderedResult = orderedObjParser.parseXml(xmlData);\n    if (this.options.preserveOrder || orderedResult === void 0)\n      return orderedResult;\n    else\n      return prettify(orderedResult, this.options);\n  }\n  /**\n   * Add Entity which is not by default supported by this library\n   * @param {string} key \n   * @param {string} value \n   */\n  addEntity(key, value) {\n    if (value.indexOf(\"&\") !== -1) {\n      throw new Error(\"Entity value can't have '&'\");\n    } else if (key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1) {\n      throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\");\n    } else if (value === \"&\") {\n      throw new Error(\"An entity with value '&' is not permitted\");\n    } else {\n      this.externalEntities[key] = value;\n    }\n  }\n};\nvar XMLParser_1 = XMLParser$1;\nconst EOL = \"\\n\";\nfunction toXml(jArray, options) {\n  let indentation = \"\";\n  if (options.format && options.indentBy.length > 0) {\n    indentation = EOL;\n  }\n  return arrToStr(jArray, options, \"\", indentation);\n}\nfunction arrToStr(arr, options, jPath, indentation) {\n  let xmlStr = \"\";\n  let isPreviousElementTag = false;\n  for (let i = 0; i < arr.length; i++) {\n    const tagObj = arr[i];\n    const tagName = propName(tagObj);\n    if (tagName === void 0)\n      continue;\n    let newJPath = \"\";\n    if (jPath.length === 0)\n      newJPath = tagName;\n    else\n      newJPath = `${jPath}.${tagName}`;\n    if (tagName === options.textNodeName) {\n      let tagText = tagObj[tagName];\n      if (!isStopNode(newJPath, options)) {\n        tagText = options.tagValueProcessor(tagName, tagText);\n        tagText = replaceEntitiesValue(tagText, options);\n      }\n      if (isPreviousElementTag) {\n        xmlStr += indentation;\n      }\n      xmlStr += tagText;\n      isPreviousElementTag = false;\n      continue;\n    } else if (tagName === options.cdataPropName) {\n      if (isPreviousElementTag) {\n        xmlStr += indentation;\n      }\n      xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n      isPreviousElementTag = false;\n      continue;\n    } else if (tagName === options.commentPropName) {\n      xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n      isPreviousElementTag = true;\n      continue;\n    } else if (tagName[0] === \"?\") {\n      const attStr2 = attr_to_str(tagObj[\":@\"], options);\n      const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n      let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n      piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\";\n      xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr2}?>`;\n      isPreviousElementTag = true;\n      continue;\n    }\n    let newIdentation = indentation;\n    if (newIdentation !== \"\") {\n      newIdentation += options.indentBy;\n    }\n    const attStr = attr_to_str(tagObj[\":@\"], options);\n    const tagStart = indentation + `<${tagName}${attStr}`;\n    const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n    if (options.unpairedTags.indexOf(tagName) !== -1) {\n      if (options.suppressUnpairedNode)\n        xmlStr += tagStart + \">\";\n      else\n        xmlStr += tagStart + \"/>\";\n    } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n      xmlStr += tagStart + \"/>\";\n    } else if (tagValue && tagValue.endsWith(\">\")) {\n      xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n    } else {\n      xmlStr += tagStart + \">\";\n      if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n        xmlStr += indentation + options.indentBy + tagValue + indentation;\n      } else {\n        xmlStr += tagValue;\n      }\n      xmlStr += `</${tagName}>`;\n    }\n    isPreviousElementTag = true;\n  }\n  return xmlStr;\n}\nfunction propName(obj) {\n  const keys = Object.keys(obj);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if (!obj.hasOwnProperty(key))\n      continue;\n    if (key !== \":@\")\n      return key;\n  }\n}\nfunction attr_to_str(attrMap, options) {\n  let attrStr = \"\";\n  if (attrMap && !options.ignoreAttributes) {\n    for (let attr in attrMap) {\n      if (!attrMap.hasOwnProperty(attr))\n        continue;\n      let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n      attrVal = replaceEntitiesValue(attrVal, options);\n      if (attrVal === true && options.suppressBooleanAttributes) {\n        attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n      } else {\n        attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n      }\n    }\n  }\n  return attrStr;\n}\nfunction isStopNode(jPath, options) {\n  jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n  let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n  for (let index in options.stopNodes) {\n    if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName)\n      return true;\n  }\n  return false;\n}\nfunction replaceEntitiesValue(textValue, options) {\n  if (textValue && textValue.length > 0 && options.processEntities) {\n    for (let i = 0; i < options.entities.length; i++) {\n      const entity = options.entities[i];\n      textValue = textValue.replace(entity.regex, entity.val);\n    }\n  }\n  return textValue;\n}\nvar orderedJs2Xml = toXml;\nconst buildFromOrderedJs = orderedJs2Xml;\nconst defaultOptions = {\n  attributeNamePrefix: \"@_\",\n  attributesGroupName: false,\n  textNodeName: \"#text\",\n  ignoreAttributes: true,\n  cdataPropName: false,\n  format: false,\n  indentBy: \"  \",\n  suppressEmptyNode: false,\n  suppressUnpairedNode: true,\n  suppressBooleanAttributes: true,\n  tagValueProcessor: function(key, a) {\n    return a;\n  },\n  attributeValueProcessor: function(attrName, a) {\n    return a;\n  },\n  preserveOrder: false,\n  commentPropName: false,\n  unpairedTags: [],\n  entities: [\n    { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },\n    //it must be on top\n    { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n    { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n    { regex: new RegExp(\"'\", \"g\"), val: \"&apos;\" },\n    { regex: new RegExp('\"', \"g\"), val: \"&quot;\" }\n  ],\n  processEntities: true,\n  stopNodes: [],\n  // transformTagName: false,\n  // transformAttributeName: false,\n  oneListGroup: false\n};\nfunction Builder(options) {\n  this.options = Object.assign({}, defaultOptions, options);\n  if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n    this.isAttribute = function() {\n      return false;\n    };\n  } else {\n    this.attrPrefixLen = this.options.attributeNamePrefix.length;\n    this.isAttribute = isAttribute;\n  }\n  this.processTextOrObjNode = processTextOrObjNode;\n  if (this.options.format) {\n    this.indentate = indentate;\n    this.tagEndChar = \">\\n\";\n    this.newLine = \"\\n\";\n  } else {\n    this.indentate = function() {\n      return \"\";\n    };\n    this.tagEndChar = \">\";\n    this.newLine = \"\";\n  }\n}\nBuilder.prototype.build = function(jObj) {\n  if (this.options.preserveOrder) {\n    return buildFromOrderedJs(jObj, this.options);\n  } else {\n    if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) {\n      jObj = {\n        [this.options.arrayNodeName]: jObj\n      };\n    }\n    return this.j2x(jObj, 0).val;\n  }\n};\nBuilder.prototype.j2x = function(jObj, level) {\n  let attrStr = \"\";\n  let val2 = \"\";\n  for (let key in jObj) {\n    if (!Object.prototype.hasOwnProperty.call(jObj, key))\n      continue;\n    if (typeof jObj[key] === \"undefined\") {\n      if (this.isAttribute(key)) {\n        val2 += \"\";\n      }\n    } else if (jObj[key] === null) {\n      if (this.isAttribute(key)) {\n        val2 += \"\";\n      } else if (key[0] === \"?\") {\n        val2 += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n      } else {\n        val2 += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n      }\n    } else if (jObj[key] instanceof Date) {\n      val2 += this.buildTextValNode(jObj[key], key, \"\", level);\n    } else if (typeof jObj[key] !== \"object\") {\n      const attr = this.isAttribute(key);\n      if (attr) {\n        attrStr += this.buildAttrPairStr(attr, \"\" + jObj[key]);\n      } else {\n        if (key === this.options.textNodeName) {\n          let newval = this.options.tagValueProcessor(key, \"\" + jObj[key]);\n          val2 += this.replaceEntitiesValue(newval);\n        } else {\n          val2 += this.buildTextValNode(jObj[key], key, \"\", level);\n        }\n      }\n    } else if (Array.isArray(jObj[key])) {\n      const arrLen = jObj[key].length;\n      let listTagVal = \"\";\n      for (let j = 0; j < arrLen; j++) {\n        const item = jObj[key][j];\n        if (typeof item === \"undefined\")\n          ;\n        else if (item === null) {\n          if (key[0] === \"?\")\n            val2 += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n          else\n            val2 += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n        } else if (typeof item === \"object\") {\n          if (this.options.oneListGroup) {\n            listTagVal += this.j2x(item, level + 1).val;\n          } else {\n            listTagVal += this.processTextOrObjNode(item, key, level);\n          }\n        } else {\n          listTagVal += this.buildTextValNode(item, key, \"\", level);\n        }\n      }\n      if (this.options.oneListGroup) {\n        listTagVal = this.buildObjectNode(listTagVal, key, \"\", level);\n      }\n      val2 += listTagVal;\n    } else {\n      if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n        const Ks = Object.keys(jObj[key]);\n        const L = Ks.length;\n        for (let j = 0; j < L; j++) {\n          attrStr += this.buildAttrPairStr(Ks[j], \"\" + jObj[key][Ks[j]]);\n        }\n      } else {\n        val2 += this.processTextOrObjNode(jObj[key], key, level);\n      }\n    }\n  }\n  return { attrStr, val: val2 };\n};\nBuilder.prototype.buildAttrPairStr = function(attrName, val2) {\n  val2 = this.options.attributeValueProcessor(attrName, \"\" + val2);\n  val2 = this.replaceEntitiesValue(val2);\n  if (this.options.suppressBooleanAttributes && val2 === \"true\") {\n    return \" \" + attrName;\n  } else\n    return \" \" + attrName + '=\"' + val2 + '\"';\n};\nfunction processTextOrObjNode(object, key, level) {\n  const result = this.j2x(object, level + 1);\n  if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) {\n    return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n  } else {\n    return this.buildObjectNode(result.val, key, result.attrStr, level);\n  }\n}\nBuilder.prototype.buildObjectNode = function(val2, key, attrStr, level) {\n  if (val2 === \"\") {\n    if (key[0] === \"?\")\n      return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n    else {\n      return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }\n  } else {\n    let tagEndExp = \"</\" + key + this.tagEndChar;\n    let piClosingChar = \"\";\n    if (key[0] === \"?\") {\n      piClosingChar = \"?\";\n      tagEndExp = \"\";\n    }\n    if ((attrStr || attrStr === \"\") && val2.indexOf(\"<\") === -1) {\n      return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + \">\" + val2 + tagEndExp;\n    } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n      return this.indentate(level) + `<!--${val2}-->` + this.newLine;\n    } else {\n      return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + this.tagEndChar + val2 + this.indentate(level) + tagEndExp;\n    }\n  }\n};\nBuilder.prototype.closeTag = function(key) {\n  let closeTag = \"\";\n  if (this.options.unpairedTags.indexOf(key) !== -1) {\n    if (!this.options.suppressUnpairedNode)\n      closeTag = \"/\";\n  } else if (this.options.suppressEmptyNode) {\n    closeTag = \"/\";\n  } else {\n    closeTag = `></${key}`;\n  }\n  return closeTag;\n};\nBuilder.prototype.buildTextValNode = function(val2, key, attrStr, level) {\n  if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n    return this.indentate(level) + `<![CDATA[${val2}]]>` + this.newLine;\n  } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n    return this.indentate(level) + `<!--${val2}-->` + this.newLine;\n  } else if (key[0] === \"?\") {\n    return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n  } else {\n    let textValue = this.options.tagValueProcessor(key, val2);\n    textValue = this.replaceEntitiesValue(textValue);\n    if (textValue === \"\") {\n      return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    } else {\n      return this.indentate(level) + \"<\" + key + attrStr + \">\" + textValue + \"</\" + key + this.tagEndChar;\n    }\n  }\n};\nBuilder.prototype.replaceEntitiesValue = function(textValue) {\n  if (textValue && textValue.length > 0 && this.options.processEntities) {\n    for (let i = 0; i < this.options.entities.length; i++) {\n      const entity = this.options.entities[i];\n      textValue = textValue.replace(entity.regex, entity.val);\n    }\n  }\n  return textValue;\n};\nfunction indentate(level) {\n  return this.options.indentBy.repeat(level);\n}\nfunction isAttribute(name) {\n  if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n    return name.substr(this.attrPrefixLen);\n  } else {\n    return false;\n  }\n}\nvar json2xml = Builder;\nconst validator = validator$2;\nconst XMLParser2 = XMLParser_1;\nconst XMLBuilder = json2xml;\nvar fxp = {\n  XMLParser: XMLParser2,\n  XMLValidator: validator,\n  XMLBuilder\n};\nfunction isSvg(string) {\n  if (typeof string !== \"string\") {\n    throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n  }\n  string = string.trim();\n  if (string.length === 0) {\n    return false;\n  }\n  if (fxp.XMLValidator.validate(string) !== true) {\n    return false;\n  }\n  let jsonObject;\n  const parser = new fxp.XMLParser();\n  try {\n    jsonObject = parser.parse(string);\n  } catch {\n    return false;\n  }\n  if (!jsonObject) {\n    return false;\n  }\n  if (!Object.keys(jsonObject).some((x) => x.toLowerCase() === \"svg\")) {\n    return false;\n  }\n  return true;\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nclass View {\n  _view;\n  constructor(view) {\n    isValidView(view);\n    this._view = view;\n  }\n  get id() {\n    return this._view.id;\n  }\n  get name() {\n    return this._view.name;\n  }\n  get caption() {\n    return this._view.caption;\n  }\n  get emptyTitle() {\n    return this._view.emptyTitle;\n  }\n  get emptyCaption() {\n    return this._view.emptyCaption;\n  }\n  get getContents() {\n    return this._view.getContents;\n  }\n  get icon() {\n    return this._view.icon;\n  }\n  set icon(icon) {\n    this._view.icon = icon;\n  }\n  get order() {\n    return this._view.order;\n  }\n  set order(order) {\n    this._view.order = order;\n  }\n  get params() {\n    return this._view.params;\n  }\n  set params(params) {\n    this._view.params = params;\n  }\n  get columns() {\n    return this._view.columns;\n  }\n  get emptyView() {\n    return this._view.emptyView;\n  }\n  get parent() {\n    return this._view.parent;\n  }\n  get sticky() {\n    return this._view.sticky;\n  }\n  get expanded() {\n    return this._view.expanded;\n  }\n  set expanded(expanded) {\n    this._view.expanded = expanded;\n  }\n  get defaultSortKey() {\n    return this._view.defaultSortKey;\n  }\n}\nconst isValidView = function(view) {\n  if (!view.id || typeof view.id !== \"string\") {\n    throw new Error(\"View id is required and must be a string\");\n  }\n  if (!view.name || typeof view.name !== \"string\") {\n    throw new Error(\"View name is required and must be a string\");\n  }\n  if (view.columns && view.columns.length > 0 && (!view.caption || typeof view.caption !== \"string\")) {\n    throw new Error(\"View caption is required for top-level views and must be a string\");\n  }\n  if (!view.getContents || typeof view.getContents !== \"function\") {\n    throw new Error(\"View getContents is required and must be a function\");\n  }\n  if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n    throw new Error(\"View icon is required and must be a valid svg string\");\n  }\n  if (!(\"order\" in view) || typeof view.order !== \"number\") {\n    throw new Error(\"View order is required and must be a number\");\n  }\n  if (view.columns) {\n    view.columns.forEach((column) => {\n      if (!(column instanceof Column)) {\n        throw new Error(\"View columns must be an array of Column. Invalid column found\");\n      }\n    });\n  }\n  if (view.emptyView && typeof view.emptyView !== \"function\") {\n    throw new Error(\"View emptyView must be a function\");\n  }\n  if (view.parent && typeof view.parent !== \"string\") {\n    throw new Error(\"View parent must be a string\");\n  }\n  if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n    throw new Error(\"View sticky must be a boolean\");\n  }\n  if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n    throw new Error(\"View expanded must be a boolean\");\n  }\n  if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n    throw new Error(\"View defaultSortKey must be a string\");\n  }\n  return true;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst addNewFileMenuEntry = function(entry) {\n  const newFileMenu = getNewFileMenu();\n  return newFileMenu.registerEntry(entry);\n};\nconst removeNewFileMenuEntry = function(entry) {\n  const newFileMenu = getNewFileMenu();\n  return newFileMenu.unregisterEntry(entry);\n};\nconst getNewFileMenuEntries = function(context) {\n  const newFileMenu = getNewFileMenu();\n  return newFileMenu.getEntries(context).sort((a, b) => {\n    if (a.order !== void 0 && b.order !== void 0 && a.order !== b.order) {\n      return a.order - b.order;\n    }\n    return a.displayName.localeCompare(b.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n  });\n};\nexport {\n  Column,\n  DefaultType,\n  File,\n  FileAction,\n  FileType,\n  FilesSortingMode,\n  Folder,\n  Header,\n  Navigation,\n  NewMenuEntryCategory,\n  Node,\n  NodeStatus,\n  Permission,\n  View,\n  addNewFileMenuEntry,\n  davGetClient,\n  davGetDefaultPropfind,\n  davGetFavoritesReport,\n  davGetRecentSearch,\n  davParsePermissions,\n  davRemoteURL,\n  davResultToNode,\n  davRootPath,\n  defaultDavNamespaces,\n  defaultDavProperties,\n  formatFileSize,\n  getDavNameSpaces,\n  getDavProperties,\n  getFavoriteNodes,\n  getFileActions,\n  getFileListHeaders,\n  getNavigation,\n  getNewFileMenuEntries,\n  isFilenameValid,\n  orderBy,\n  parseFileSize,\n  registerDavProperty,\n  registerFileAction,\n  registerFileListHeaders,\n  removeNewFileMenuEntry,\n  sortNodes\n};\n","\n      import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-Ussc_ol3.css\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-Ussc_ol3.css\";\n       export default content && content.locals ? content.locals : undefined;\n","export class CancelError extends Error {\n\tconstructor(reason) {\n\t\tsuper(reason || 'Promise was canceled');\n\t\tthis.name = 'CancelError';\n\t}\n\n\tget isCanceled() {\n\t\treturn true;\n\t}\n}\n\nconst promiseState = Object.freeze({\n\tpending: Symbol('pending'),\n\tcanceled: Symbol('canceled'),\n\tresolved: Symbol('resolved'),\n\trejected: Symbol('rejected'),\n});\n\nexport default class PCancelable {\n\tstatic fn(userFunction) {\n\t\treturn (...arguments_) => new PCancelable((resolve, reject, onCancel) => {\n\t\t\targuments_.push(onCancel);\n\t\t\tuserFunction(...arguments_).then(resolve, reject);\n\t\t});\n\t}\n\n\t#cancelHandlers = [];\n\t#rejectOnCancel = true;\n\t#state = promiseState.pending;\n\t#promise;\n\t#reject;\n\n\tconstructor(executor) {\n\t\tthis.#promise = new Promise((resolve, reject) => {\n\t\t\tthis.#reject = reject;\n\n\t\t\tconst onResolve = value => {\n\t\t\t\tif (this.#state !== promiseState.canceled || !onCancel.shouldReject) {\n\t\t\t\t\tresolve(value);\n\t\t\t\t\tthis.#setState(promiseState.resolved);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onReject = error => {\n\t\t\t\tif (this.#state !== promiseState.canceled || !onCancel.shouldReject) {\n\t\t\t\t\treject(error);\n\t\t\t\t\tthis.#setState(promiseState.rejected);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onCancel = handler => {\n\t\t\t\tif (this.#state !== promiseState.pending) {\n\t\t\t\t\tthrow new Error(`The \\`onCancel\\` handler was attached after the promise ${this.#state.description}.`);\n\t\t\t\t}\n\n\t\t\t\tthis.#cancelHandlers.push(handler);\n\t\t\t};\n\n\t\t\tObject.defineProperties(onCancel, {\n\t\t\t\tshouldReject: {\n\t\t\t\t\tget: () => this.#rejectOnCancel,\n\t\t\t\t\tset: boolean => {\n\t\t\t\t\t\tthis.#rejectOnCancel = boolean;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texecutor(onResolve, onReject, onCancel);\n\t\t});\n\t}\n\n\t// eslint-disable-next-line unicorn/no-thenable\n\tthen(onFulfilled, onRejected) {\n\t\treturn this.#promise.then(onFulfilled, onRejected);\n\t}\n\n\tcatch(onRejected) {\n\t\treturn this.#promise.catch(onRejected);\n\t}\n\n\tfinally(onFinally) {\n\t\treturn this.#promise.finally(onFinally);\n\t}\n\n\tcancel(reason) {\n\t\tif (this.#state !== promiseState.pending) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#setState(promiseState.canceled);\n\n\t\tif (this.#cancelHandlers.length > 0) {\n\t\t\ttry {\n\t\t\t\tfor (const handler of this.#cancelHandlers) {\n\t\t\t\t\thandler();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.#reject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.#rejectOnCancel) {\n\t\t\tthis.#reject(new CancelError(reason));\n\t\t}\n\t}\n\n\tget isCanceled() {\n\t\treturn this.#state === promiseState.canceled;\n\t}\n\n\t#setState(state) {\n\t\tif (this.#state === promiseState.pending) {\n\t\t\tthis.#state = state;\n\t\t}\n\t}\n}\n\nObject.setPrototypeOf(PCancelable.prototype, Promise.prototype);\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new AbortError(errorMessage)\n\t: new DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined\n\t\t? getDOMException('This operation was aborted.')\n\t\t: signal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t} = options;\n\n\tlet timer;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t});\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tpromise.then(resolve, reject);\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n    #queue = [];\n    enqueue(run, options) {\n        options = {\n            priority: 0,\n            ...options,\n        };\n        const element = {\n            priority: options.priority,\n            run,\n        };\n        if (this.size && this.#queue[this.size - 1].priority >= options.priority) {\n            this.#queue.push(element);\n            return;\n        }\n        const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n        this.#queue.splice(index, 0, element);\n    }\n    dequeue() {\n        const item = this.#queue.shift();\n        return item?.run;\n    }\n    filter(options) {\n        return this.#queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n    }\n    get size() {\n        return this.#queue.length;\n    }\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n    let first = 0;\n    let count = array.length;\n    while (count > 0) {\n        const step = Math.trunc(count / 2);\n        let it = first + step;\n        if (comparator(array[it], value) <= 0) {\n            first = ++it;\n            count -= step + 1;\n        }\n        else {\n            count = step;\n        }\n    }\n    return first;\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout, { TimeoutError } from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n    #carryoverConcurrencyCount;\n    #isIntervalIgnored;\n    #intervalCount = 0;\n    #intervalCap;\n    #interval;\n    #intervalEnd = 0;\n    #intervalId;\n    #timeoutId;\n    #queue;\n    #queueClass;\n    #pending = 0;\n    // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n    #concurrency;\n    #isPaused;\n    #throwOnTimeout;\n    /**\n    Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.\n\n    Applies to each future operation.\n    */\n    timeout;\n    // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`\n    constructor(options) {\n        super();\n        // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n        options = {\n            carryoverConcurrencyCount: false,\n            intervalCap: Number.POSITIVE_INFINITY,\n            interval: 0,\n            concurrency: Number.POSITIVE_INFINITY,\n            autoStart: true,\n            queueClass: PriorityQueue,\n            ...options,\n        };\n        if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n            throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n        }\n        if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n            throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n        }\n        this.#carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n        this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n        this.#intervalCap = options.intervalCap;\n        this.#interval = options.interval;\n        this.#queue = new options.queueClass();\n        this.#queueClass = options.queueClass;\n        this.concurrency = options.concurrency;\n        this.timeout = options.timeout;\n        this.#throwOnTimeout = options.throwOnTimeout === true;\n        this.#isPaused = options.autoStart === false;\n    }\n    get #doesIntervalAllowAnother() {\n        return this.#isIntervalIgnored || this.#intervalCount < this.#intervalCap;\n    }\n    get #doesConcurrentAllowAnother() {\n        return this.#pending < this.#concurrency;\n    }\n    #next() {\n        this.#pending--;\n        this.#tryToStartAnother();\n        this.emit('next');\n    }\n    #onResumeInterval() {\n        this.#onInterval();\n        this.#initializeIntervalIfNeeded();\n        this.#timeoutId = undefined;\n    }\n    get #isIntervalPaused() {\n        const now = Date.now();\n        if (this.#intervalId === undefined) {\n            const delay = this.#intervalEnd - now;\n            if (delay < 0) {\n                // Act as the interval was done\n                // We don't need to resume it here because it will be resumed on line 160\n                this.#intervalCount = (this.#carryoverConcurrencyCount) ? this.#pending : 0;\n            }\n            else {\n                // Act as the interval is pending\n                if (this.#timeoutId === undefined) {\n                    this.#timeoutId = setTimeout(() => {\n                        this.#onResumeInterval();\n                    }, delay);\n                }\n                return true;\n            }\n        }\n        return false;\n    }\n    #tryToStartAnother() {\n        if (this.#queue.size === 0) {\n            // We can clear the interval (\"pause\")\n            // Because we can redo it later (\"resume\")\n            if (this.#intervalId) {\n                clearInterval(this.#intervalId);\n            }\n            this.#intervalId = undefined;\n            this.emit('empty');\n            if (this.#pending === 0) {\n                this.emit('idle');\n            }\n            return false;\n        }\n        if (!this.#isPaused) {\n            const canInitializeInterval = !this.#isIntervalPaused;\n            if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n                const job = this.#queue.dequeue();\n                if (!job) {\n                    return false;\n                }\n                this.emit('active');\n                job();\n                if (canInitializeInterval) {\n                    this.#initializeIntervalIfNeeded();\n                }\n                return true;\n            }\n        }\n        return false;\n    }\n    #initializeIntervalIfNeeded() {\n        if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n            return;\n        }\n        this.#intervalId = setInterval(() => {\n            this.#onInterval();\n        }, this.#interval);\n        this.#intervalEnd = Date.now() + this.#interval;\n    }\n    #onInterval() {\n        if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n            clearInterval(this.#intervalId);\n            this.#intervalId = undefined;\n        }\n        this.#intervalCount = this.#carryoverConcurrencyCount ? this.#pending : 0;\n        this.#processQueue();\n    }\n    /**\n    Executes all queued functions until it reaches the limit.\n    */\n    #processQueue() {\n        // eslint-disable-next-line no-empty\n        while (this.#tryToStartAnother()) { }\n    }\n    get concurrency() {\n        return this.#concurrency;\n    }\n    set concurrency(newConcurrency) {\n        if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n            throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n        }\n        this.#concurrency = newConcurrency;\n        this.#processQueue();\n    }\n    async #throwOnAbort(signal) {\n        return new Promise((_resolve, reject) => {\n            signal.addEventListener('abort', () => {\n                reject(signal.reason);\n            }, { once: true });\n        });\n    }\n    async add(function_, options = {}) {\n        options = {\n            timeout: this.timeout,\n            throwOnTimeout: this.#throwOnTimeout,\n            ...options,\n        };\n        return new Promise((resolve, reject) => {\n            this.#queue.enqueue(async () => {\n                this.#pending++;\n                this.#intervalCount++;\n                try {\n                    options.signal?.throwIfAborted();\n                    let operation = function_({ signal: options.signal });\n                    if (options.timeout) {\n                        operation = pTimeout(Promise.resolve(operation), { milliseconds: options.timeout });\n                    }\n                    if (options.signal) {\n                        operation = Promise.race([operation, this.#throwOnAbort(options.signal)]);\n                    }\n                    const result = await operation;\n                    resolve(result);\n                    this.emit('completed', result);\n                }\n                catch (error) {\n                    if (error instanceof TimeoutError && !options.throwOnTimeout) {\n                        resolve();\n                        return;\n                    }\n                    reject(error);\n                    this.emit('error', error);\n                }\n                finally {\n                    this.#next();\n                }\n            }, options);\n            this.emit('add');\n            this.#tryToStartAnother();\n        });\n    }\n    async addAll(functions, options) {\n        return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n    }\n    /**\n    Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n    */\n    start() {\n        if (!this.#isPaused) {\n            return this;\n        }\n        this.#isPaused = false;\n        this.#processQueue();\n        return this;\n    }\n    /**\n    Put queue execution on hold.\n    */\n    pause() {\n        this.#isPaused = true;\n    }\n    /**\n    Clear the queue.\n    */\n    clear() {\n        this.#queue = new this.#queueClass();\n    }\n    /**\n    Can be called multiple times. Useful if you for example add additional items at a later time.\n\n    @returns A promise that settles when the queue becomes empty.\n    */\n    async onEmpty() {\n        // Instantly resolve if the queue is empty\n        if (this.#queue.size === 0) {\n            return;\n        }\n        await this.#onEvent('empty');\n    }\n    /**\n    @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n    If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n    Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n    */\n    async onSizeLessThan(limit) {\n        // Instantly resolve if the queue is empty.\n        if (this.#queue.size < limit) {\n            return;\n        }\n        await this.#onEvent('next', () => this.#queue.size < limit);\n    }\n    /**\n    The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n    @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n    */\n    async onIdle() {\n        // Instantly resolve if none pending and if nothing else is queued\n        if (this.#pending === 0 && this.#queue.size === 0) {\n            return;\n        }\n        await this.#onEvent('idle');\n    }\n    async #onEvent(event, filter) {\n        return new Promise(resolve => {\n            const listener = () => {\n                if (filter && !filter()) {\n                    return;\n                }\n                this.off(event, listener);\n                resolve();\n            };\n            this.on(event, listener);\n        });\n    }\n    /**\n    Size of the queue, the number of queued items waiting to run.\n    */\n    get size() {\n        return this.#queue.size;\n    }\n    /**\n    Size of the queue, filtered by the given options.\n\n    For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n    */\n    sizeBy(options) {\n        // eslint-disable-next-line unicorn/no-array-callback-reference\n        return this.#queue.filter(options).length;\n    }\n    /**\n    Number of running items (no longer in the queue).\n    */\n    get pending() {\n        return this.#pending;\n    }\n    /**\n    Whether the queue is currently paused.\n    */\n    get isPaused() {\n        return this.#isPaused;\n    }\n}\n","import '../assets/index-Ussc_ol3.css';\nimport { CanceledError as b } from \"axios\";\nimport { encodePath as q } from \"@nextcloud/paths\";\nimport { Folder as z, Permission as H, getNewFileMenuEntries as G } from \"@nextcloud/files\";\nimport { generateRemoteUrl as j } from \"@nextcloud/router\";\nimport { getCurrentUser as F } from \"@nextcloud/auth\";\nimport v from \"@nextcloud/axios\";\nimport Y from \"p-cancelable\";\nimport V from \"p-queue\";\nimport { getLoggerBuilder as _ } from \"@nextcloud/logger\";\nimport { showError as P } from \"@nextcloud/dialogs\";\nimport K from \"simple-eta\";\nimport E, { defineAsyncComponent as $ } from \"vue\";\nimport J from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport Q from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport Z from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport X from \"@nextcloud/vue/dist/Components/NcIconSvgWrapper.js\";\nimport ss from \"@nextcloud/vue/dist/Components/NcProgressBar.js\";\nimport { getGettextBuilder as es } from \"@nextcloud/l10n/gettext\";\nconst A = async function(e, s, t, n = () => {\n}, i = void 0, o = {}) {\n  let l;\n  return s instanceof Blob ? l = s : l = await s(), i && (o.Destination = i), o[\"Content-Type\"] || (o[\"Content-Type\"] = \"application/octet-stream\"), await v.request({\n    method: \"PUT\",\n    url: e,\n    data: l,\n    signal: t,\n    onUploadProgress: n,\n    headers: o\n  });\n}, B = function(e, s, t) {\n  return s === 0 && e.size <= t ? Promise.resolve(new Blob([e], { type: e.type || \"application/octet-stream\" })) : Promise.resolve(new Blob([e.slice(s, s + t)], { type: \"application/octet-stream\" }));\n}, ts = async function(e = void 0) {\n  const s = j(`dav/uploads/${F()?.uid}`), n = `web-file-upload-${[...Array(16)].map(() => Math.floor(Math.random() * 16).toString(16)).join(\"\")}`, i = `${s}/${n}`, o = e ? { Destination: e } : void 0;\n  return await v.request({\n    method: \"MKCOL\",\n    url: i,\n    headers: o\n  }), i;\n}, x = function(e = void 0) {\n  const s = window.OC?.appConfig?.files?.max_chunk_size;\n  if (s <= 0)\n    return 0;\n  if (!Number(s))\n    return 10 * 1024 * 1024;\n  const t = Math.max(Number(s), 5 * 1024 * 1024);\n  return e === void 0 ? t : Math.max(t, Math.ceil(e / 1e4));\n};\nvar c = /* @__PURE__ */ ((e) => (e[e.INITIALIZED = 0] = \"INITIALIZED\", e[e.UPLOADING = 1] = \"UPLOADING\", e[e.ASSEMBLING = 2] = \"ASSEMBLING\", e[e.FINISHED = 3] = \"FINISHED\", e[e.CANCELLED = 4] = \"CANCELLED\", e[e.FAILED = 5] = \"FAILED\", e))(c || {});\nlet ns = class {\n  _source;\n  _file;\n  _isChunked;\n  _chunks;\n  _size;\n  _uploaded = 0;\n  _startTime = 0;\n  _status = 0;\n  _controller;\n  _response = null;\n  constructor(s, t = !1, n, i) {\n    const o = Math.min(x() > 0 ? Math.ceil(n / x()) : 1, 1e4);\n    this._source = s, this._isChunked = t && x() > 0 && o > 1, this._chunks = this._isChunked ? o : 1, this._size = n, this._file = i, this._controller = new AbortController();\n  }\n  get source() {\n    return this._source;\n  }\n  get file() {\n    return this._file;\n  }\n  get isChunked() {\n    return this._isChunked;\n  }\n  get chunks() {\n    return this._chunks;\n  }\n  get size() {\n    return this._size;\n  }\n  get startTime() {\n    return this._startTime;\n  }\n  set response(s) {\n    this._response = s;\n  }\n  get response() {\n    return this._response;\n  }\n  get uploaded() {\n    return this._uploaded;\n  }\n  /**\n   * Update the uploaded bytes of this upload\n   */\n  set uploaded(s) {\n    if (s >= this._size) {\n      this._status = this._isChunked ? 2 : 3, this._uploaded = this._size;\n      return;\n    }\n    this._status = 1, this._uploaded = s, this._startTime === 0 && (this._startTime = (/* @__PURE__ */ new Date()).getTime());\n  }\n  get status() {\n    return this._status;\n  }\n  /**\n   * Update this upload status\n   */\n  set status(s) {\n    this._status = s;\n  }\n  /**\n   * Returns the axios cancel token source\n   */\n  get signal() {\n    return this._controller.signal;\n  }\n  /**\n   * Cancel any ongoing requests linked to this upload\n   */\n  cancel() {\n    this._controller.abort(), this._status = 4;\n  }\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst as = (e) => e === null ? _().setApp(\"uploader\").build() : _().setApp(\"uploader\").setUid(e.uid).build(), g = as(F());\nvar I = /* @__PURE__ */ ((e) => (e[e.IDLE = 0] = \"IDLE\", e[e.UPLOADING = 1] = \"UPLOADING\", e[e.PAUSED = 2] = \"PAUSED\", e))(I || {});\nclass N {\n  // Initialized via setter in the constructor\n  _destinationFolder;\n  _isPublic;\n  // Global upload queue\n  _uploadQueue = [];\n  _jobQueue = new V({ concurrency: 3 });\n  _queueSize = 0;\n  _queueProgress = 0;\n  _queueStatus = 0;\n  _notifiers = [];\n  /**\n   * Initialize uploader\n   *\n   * @param {boolean} isPublic are we in public mode ?\n   * @param {Folder} destinationFolder the context folder to operate, relative to the root folder\n   */\n  constructor(s = !1, t) {\n    if (this._isPublic = s, !t) {\n      const n = F()?.uid, i = j(`dav/files/${n}`);\n      if (!n)\n        throw new Error(\"User is not logged in\");\n      t = new z({\n        id: 0,\n        owner: n,\n        permissions: H.ALL,\n        root: `/files/${n}`,\n        source: i\n      });\n    }\n    this.destination = t, g.debug(\"Upload workspace initialized\", {\n      destination: this.destination,\n      root: this.root,\n      isPublic: s,\n      maxChunksSize: x()\n    });\n  }\n  /**\n   * Get the upload destination path relative to the root folder\n   */\n  get destination() {\n    return this._destinationFolder;\n  }\n  /**\n   * Set the upload destination path relative to the root folder\n   */\n  set destination(s) {\n    if (!s)\n      throw new Error(\"Invalid destination folder\");\n    g.debug(\"Destination set\", { folder: s }), this._destinationFolder = s;\n  }\n  /**\n   * Get the root folder\n   */\n  get root() {\n    return this._destinationFolder.source;\n  }\n  /**\n   * Get the upload queue\n   */\n  get queue() {\n    return this._uploadQueue;\n  }\n  reset() {\n    this._uploadQueue.splice(0, this._uploadQueue.length), this._jobQueue.clear(), this._queueSize = 0, this._queueProgress = 0, this._queueStatus = 0;\n  }\n  /**\n   * Pause any ongoing upload(s)\n   */\n  pause() {\n    this._jobQueue.pause(), this._queueStatus = 2;\n  }\n  /**\n   * Resume any pending upload(s)\n   */\n  start() {\n    this._jobQueue.start(), this._queueStatus = 1, this.updateStats();\n  }\n  /**\n   * Get the upload queue stats\n   */\n  get info() {\n    return {\n      size: this._queueSize,\n      progress: this._queueProgress,\n      status: this._queueStatus\n    };\n  }\n  updateStats() {\n    const s = this._uploadQueue.map((n) => n.size).reduce((n, i) => n + i, 0), t = this._uploadQueue.map((n) => n.uploaded).reduce((n, i) => n + i, 0);\n    this._queueSize = s, this._queueProgress = t, this._queueStatus !== 2 && (this._queueStatus = this._jobQueue.size > 0 ? 1 : 0);\n  }\n  addNotifier(s) {\n    this._notifiers.push(s);\n  }\n  /**\n   * Upload a file to the given path\n   * @param {string} destinationPath the destination path relative to the root folder. e.g. /foo/bar.txt\n   * @param {File} file the file to upload\n   * @param {string} root the root folder to upload to\n   */\n  upload(s, t, n) {\n    const i = `${n || this.root}/${s.replace(/^\\//, \"\")}`, { origin: o } = new URL(i), l = o + q(i.slice(o.length));\n    g.debug(`Uploading ${t.name} to ${l}`);\n    const f = x(t.size), r = f === 0 || t.size < f || this._isPublic, a = new ns(i, !r, t.size, t);\n    return this._uploadQueue.push(a), this.updateStats(), new Y(async (T, d, U) => {\n      if (U(a.cancel), r) {\n        g.debug(\"Initializing regular upload\", { file: t, upload: a });\n        const p = await B(t, 0, a.size), L = async () => {\n          try {\n            a.response = await A(\n              l,\n              p,\n              a.signal,\n              (m) => {\n                a.uploaded = a.uploaded + m.bytes, this.updateStats();\n              },\n              void 0,\n              {\n                \"X-OC-Mtime\": t.lastModified / 1e3,\n                \"Content-Type\": t.type\n              }\n            ), a.uploaded = a.size, this.updateStats(), g.debug(`Successfully uploaded ${t.name}`, { file: t, upload: a }), T(a);\n          } catch (m) {\n            if (m instanceof b) {\n              a.status = c.FAILED, d(\"Upload has been cancelled\");\n              return;\n            }\n            m?.response && (a.response = m.response), a.status = c.FAILED, g.error(`Failed uploading ${t.name}`, { error: m, file: t, upload: a }), d(\"Failed uploading the file\");\n          }\n          this._notifiers.forEach((m) => {\n            try {\n              m(a);\n            } catch {\n            }\n          });\n        };\n        this._jobQueue.add(L), this.updateStats();\n      } else {\n        g.debug(\"Initializing chunked upload\", { file: t, upload: a });\n        const p = await ts(l), L = [];\n        for (let m = 0; m < a.chunks; m++) {\n          const w = m * f, D = Math.min(w + f, a.size), W = () => B(t, w, f), O = () => A(\n            `${p}/${m + 1}`,\n            W,\n            a.signal,\n            () => this.updateStats(),\n            l,\n            {\n              \"X-OC-Mtime\": t.lastModified / 1e3,\n              \"OC-Total-Length\": t.size,\n              \"Content-Type\": \"application/octet-stream\"\n            }\n          ).then(() => {\n            a.uploaded = a.uploaded + f;\n          }).catch((h) => {\n            throw h?.response?.status === 507 ? (g.error(\"Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks\", { error: h, upload: a }), a.cancel(), a.status = c.FAILED, h) : (h instanceof b || (g.error(`Chunk ${m + 1} ${w} - ${D} uploading failed`, { error: h, upload: a }), a.cancel(), a.status = c.FAILED), h);\n          });\n          L.push(this._jobQueue.add(O));\n        }\n        try {\n          await Promise.all(L), this.updateStats(), a.response = await v.request({\n            method: \"MOVE\",\n            url: `${p}/.file`,\n            headers: {\n              \"X-OC-Mtime\": t.lastModified / 1e3,\n              \"OC-Total-Length\": t.size,\n              Destination: l\n            }\n          }), this.updateStats(), a.status = c.FINISHED, g.debug(`Successfully uploaded ${t.name}`, { file: t, upload: a }), T(a);\n        } catch (m) {\n          m instanceof b ? (a.status = c.FAILED, d(\"Upload has been cancelled\")) : (a.status = c.FAILED, d(\"Failed assembling the chunks together\")), v.request({\n            method: \"DELETE\",\n            url: `${p}`\n          });\n        }\n        this._notifiers.forEach((m) => {\n          try {\n            m(a);\n          } catch {\n          }\n        });\n      }\n      return this._jobQueue.onIdle().then(() => this.reset()), a;\n    });\n  }\n}\nfunction y(e, s, t, n, i, o, l, f) {\n  var r = typeof e == \"function\" ? e.options : e;\n  s && (r.render = s, r.staticRenderFns = t, r._compiled = !0), n && (r.functional = !0), o && (r._scopeId = \"data-v-\" + o);\n  var a;\n  if (l ? (a = function(d) {\n    d = d || // cached call\n    this.$vnode && this.$vnode.ssrContext || // stateful\n    this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !d && typeof __VUE_SSR_CONTEXT__ < \"u\" && (d = __VUE_SSR_CONTEXT__), i && i.call(this, d), d && d._registeredComponents && d._registeredComponents.add(l);\n  }, r._ssrRegister = a) : i && (a = f ? function() {\n    i.call(\n      this,\n      (r.functional ? this.parent : this).$root.$options.shadowRoot\n    );\n  } : i), a)\n    if (r.functional) {\n      r._injectStyles = a;\n      var S = r.render;\n      r.render = function(U, p) {\n        return a.call(p), S(U, p);\n      };\n    } else {\n      var T = r.beforeCreate;\n      r.beforeCreate = T ? [].concat(T, a) : [a];\n    }\n  return {\n    exports: e,\n    options: r\n  };\n}\nconst is = {\n  name: \"CancelIcon\",\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 ls = function() {\n  var s = this, t = s._self._c;\n  return t(\"span\", s._b({ staticClass: \"material-design-icon cancel-icon\", attrs: { \"aria-hidden\": s.title ? null : !0, \"aria-label\": s.title, role: \"img\" }, on: { click: function(n) {\n    return s.$emit(\"click\", n);\n  } } }, \"span\", s.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: s.fillColor, width: s.size, height: s.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z\" } }, [s.title ? t(\"title\", [s._v(s._s(s.title))]) : s._e()])])]);\n}, rs = [], os = /* @__PURE__ */ y(\n  is,\n  ls,\n  rs,\n  !1,\n  null,\n  null,\n  null,\n  null\n);\nconst ms = os.exports, ds = {\n  name: \"PlusIcon\",\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 gs = function() {\n  var s = this, t = s._self._c;\n  return t(\"span\", s._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": s.title ? null : !0, \"aria-label\": s.title, role: \"img\" }, on: { click: function(n) {\n    return s.$emit(\"click\", n);\n  } } }, \"span\", s.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: s.fillColor, width: s.size, height: s.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [s.title ? t(\"title\", [s._v(s._s(s.title))]) : s._e()])])]);\n}, us = [], cs = /* @__PURE__ */ y(\n  ds,\n  gs,\n  us,\n  !1,\n  null,\n  null,\n  null,\n  null\n);\nconst fs = cs.exports, ps = {\n  name: \"UploadIcon\",\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 hs = function() {\n  var s = this, t = s._self._c;\n  return t(\"span\", s._b({ staticClass: \"material-design-icon upload-icon\", attrs: { \"aria-hidden\": s.title ? null : !0, \"aria-label\": s.title, role: \"img\" }, on: { click: function(n) {\n    return s.$emit(\"click\", n);\n  } } }, \"span\", s.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: s.fillColor, width: s.size, height: s.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\" } }, [s.title ? t(\"title\", [s._v(s._s(s.title))]) : s._e()])])]);\n}, Ts = [], ws = /* @__PURE__ */ y(\n  ps,\n  hs,\n  Ts,\n  !1,\n  null,\n  null,\n  null,\n  null\n);\nconst xs = ws.exports;\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\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 <http://www.gnu.org/licenses/>.\n *\n */\nconst R = es().detectLocale();\n[{ locale: \"af\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"af\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: af\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ar\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Ali <alimahwer@yahoo.com>, 2024\", \"Language-Team\": \"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ar\", \"Plural-Forms\": \"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nAli <alimahwer@yahoo.com>, 2024\n` }, msgstr: [`Last-Translator: Ali <alimahwer@yahoo.com>, 2024\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} ملف متعارض\", \"{count} ملف متعارض\", \"{count} ملفان متعارضان\", \"{count} ملف متعارض\", \"{count} ملفات متعارضة\", \"{count} ملفات متعارضة\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} ملف متعارض في n {dirname}\", \"{count} ملف متعارض في n {dirname}\", \"{count} ملفان متعارضان في n {dirname}\", \"{count} ملف متعارض في n {dirname}\", \"{count} ملفات متعارضة في n {dirname}\", \"{count} ملفات متعارضة في n {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} ثانية متبقية\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} متبقية\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"باقٍ بضعُ ثوانٍ\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"إلغاء\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"إلغِ العملية بالكامل\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"إلغاء عمليات رفع الملفات\"] }, Continue: { msgid: \"Continue\", msgstr: [\"إستمر\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"تقدير الوقت المتبقي\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"الإصدار الحالي\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"إذا اخترت الإبقاء على النسختين معاً، فإن الملف المنسوخ سيتم إلحاق رقم تسلسلي في نهاية اسمه.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"تاريخ آخر تعديل غير معلوم\"] }, New: { msgid: \"New\", msgstr: [\"جديد\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"نسخة جديدة\"] }, paused: { msgid: \"paused\", msgstr: [\"مُجمَّد\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"معاينة الصورة\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"حدِّد كل صناديق الخيارات\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"حدِّد كل الملفات الموجودة\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"حدِّد كل الملفات الجديدة\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"حجم غير معلوم\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"تمَّ إلغاء الرفع\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"رفع ملفات\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"تقدُّم الرفع \"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"أيُّ الملفات ترغب في الإبقاء عليها؟\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار.\"] } } } } }, { locale: \"ar_SA\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ar_SA\", \"Plural-Forms\": \"nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar_SA\nPlural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ast\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"enolp <enolp@softastur.org>, 2023\", \"Language-Team\": \"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ast\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nenolp <enolp@softastur.org>, 2023\n` }, msgstr: [`Last-Translator: enolp <enolp@softastur.org>, 2023\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ast\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} ficheru en coflictu\", \"{count} ficheros en coflictu\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} ficheru en coflictu en {dirname}\", \"{count} ficheros en coflictu en {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Queden {seconds} segundos\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Tiempu que queda: {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"queden unos segundos\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Encaboxar les xubes\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Siguir\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando'l tiempu que falta\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versión esistente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"La data de la última modificación ye desconocida\"] }, New: { msgid: \"New\", msgstr: [\"Nuevu\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Versión nueva\"] }, paused: { msgid: \"paused\", msgstr: [\"en posa\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Previsualizar la imaxe\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Marcar toles caxelles\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleicionar tolos ficheros esistentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleicionar tolos ficheros nuevos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Saltar esti ficheru\", \"Saltar {count} ficheros\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamañu desconocíu\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Encaboxóse la xuba\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Xubir ficheros\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Xuba en cursu\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"¿Qué ficheros quies caltener?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Tienes de seleicionar polo menos una versión de cada ficheru pa siguir.\"] } } } } }, { locale: \"az\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Rashad Aliyev <microphprashad@gmail.com>, 2023\", \"Language-Team\": \"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"az\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nRashad Aliyev <microphprashad@gmail.com>, 2023\n` }, msgstr: [`Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: az\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} saniyə qalıb\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} qalıb\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"bir neçə saniyə qalıb\"] }, Add: { msgid: \"Add\", msgstr: [\"Əlavə et\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Yükləməni imtina et\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Təxmini qalan vaxt\"] }, paused: { msgid: \"paused\", msgstr: [\"pauzadadır\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Faylları yüklə\"] } } } } }, { locale: \"be\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"be\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: be\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"bg_BG\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"bg_BG\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bg_BG\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"bn_BD\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"bn_BD\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bn_BD\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"br\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"br\", \"Plural-Forms\": \"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: br\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"bs\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"bs\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bs\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ca\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\", \"Language-Team\": \"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ca\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMarc Riera <marcriera@softcatala.org>, 2022\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\n` }, msgstr: [`Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ca\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Queden {seconds} segons\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"Queden {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Queden uns segons\"] }, Add: { msgid: \"Add\", msgstr: [\"Afegeix\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancel·la les pujades\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"S'està estimant el temps restant\"] }, paused: { msgid: \"paused\", msgstr: [\"En pausa\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Puja els fitxers\"] } } } } }, { locale: \"cs\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Pavel Borecki <pavel.borecki@gmail.com>, 2022\", \"Language-Team\": \"Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"cs\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nPavel Borecki <pavel.borecki@gmail.com>, 2022\n` }, msgstr: [`Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2022\nLanguage-Team: Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"zbývá {seconds}\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"zbývá {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"zbývá několik sekund\"] }, Add: { msgid: \"Add\", msgstr: [\"Přidat\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Zrušit nahrávání\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"odhadovaný zbývající čas\"] }, paused: { msgid: \"paused\", msgstr: [\"pozastaveno\"] } } } } }, { locale: \"cs_CZ\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Michal Šmahel <ceskyDJ@seznam.cz>, 2024\", \"Language-Team\": \"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"cs_CZ\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\n` }, msgstr: [`Last-Translator: Michal Šmahel <ceskyDJ@seznam.cz>, 2024\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs_CZ\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} kolize souborů\", \"{count} kolize souborů\", \"{count} kolizí souborů\", \"{count} kolize souborů\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} kolize souboru v {dirname}\", \"{count} kolize souboru v {dirname}\", \"{count} kolizí souborů v {dirname}\", \"{count} kolize souboru v {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"zbývá {seconds}\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"zbývá {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"zbývá několik sekund\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Zrušit\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Zrušit celou operaci\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Zrušit nahrávání\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Pokračovat\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"odhaduje se zbývající čas\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Existující verze\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Pokud vyberete obě verze, zkopírovaný soubor bude mít k názvu přidáno číslo.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Neznámé datum poslední úpravy\"] }, New: { msgid: \"New\", msgstr: [\"Nové\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nová verze\"] }, paused: { msgid: \"paused\", msgstr: [\"pozastaveno\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Náhled obrázku\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Označit všechny zaškrtávací kolonky\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Vybrat veškeré stávající soubory\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Vybrat veškeré nové soubory\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Přeskočit tento soubor\", \"Přeskočit {count} soubory\", \"Přeskočit {count} souborů\", \"Přeskočit {count} soubory\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Neznámá velikost\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Nahrávání zrušeno\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Nahrát soubory\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Postup v nahrávání\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Které soubory si přejete ponechat?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru.\"] } } } } }, { locale: \"cy_GB\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"cy_GB\", \"Plural-Forms\": \"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cy_GB\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"da\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Martin Bonde <Martin@maboni.dk>, 2024\", \"Language-Team\": \"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"da\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMartin Bonde <Martin@maboni.dk>, 2024\n` }, msgstr: [`Last-Translator: Martin Bonde <Martin@maboni.dk>, 2024\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: da\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} fil konflikt\", \"{count} filer i konflikt\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} fil konflikt i {dirname}\", \"{count} filer i konflikt i {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{sekunder} sekunder tilbage\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{tid} tilbage\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"et par sekunder tilbage\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Annuller\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Annuller hele handlingen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Annuller uploads\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsæt\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimering af resterende tid\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Eksisterende version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Hvis du vælger begge versioner vil den kopierede fil få et nummer tilføjet til sit navn.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Sidste modifikationsdato ukendt\"] }, New: { msgid: \"New\", msgstr: [\"Ny\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ny version\"] }, paused: { msgid: \"paused\", msgstr: [\"pauset\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Forhåndsvisning af billede\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Vælg alle felter\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Vælg alle eksisterende filer\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Vælg alle nye filer\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Spring denne fil over\", \"Spring {count} filer over\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Ukendt størrelse\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Upload annulleret\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Upload filer\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Upload fremskridt\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hvilke filer ønsker du at beholde?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du skal vælge mindst én version af hver fil for at fortsætte.\"] } } } } }, { locale: \"de\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Mario Siegmann <mario_siegmann@web.de>, 2024\", \"Language-Team\": \"German (https://app.transifex.com/nextcloud/teams/64236/de/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"de\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\n` }, msgstr: [`Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2024\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} Sekunden verbleibend\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} verbleibend\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"noch ein paar Sekunden\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Abbrechen\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Hochladen abbrechen\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsetzen\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Geschätzte verbleibende Zeit\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Vorhandene Version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Wenn du beide Versionen auswählst, wird der kopierten Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Datum der letzten Änderung unbekannt\"] }, New: { msgid: \"New\", msgstr: [\"Neu\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Neue Version\"] }, paused: { msgid: \"paused\", msgstr: [\"Pausiert\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Vorschaubild\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Alle neuen Dateien auswählen\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Diese Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Unbekannte Größe\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Hochladen abgebrochen\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Dateien hochladen\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Welche Dateien möchtest du behalten?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { locale: \"de_DE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Mario Siegmann <mario_siegmann@web.de>, 2024\", \"Language-Team\": \"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"de_DE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\n` }, msgstr: [`Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2024\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de_DE\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} Sekunden verbleiben\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} verbleibend\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"ein paar Sekunden verbleiben\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Abbrechen\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Hochladen abbrechen\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsetzen\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Geschätzte verbleibende Zeit\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Vorhandene Version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Wenn Sie beide Versionen auswählen, wird der kopierten Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Datum der letzten Änderung unbekannt\"] }, New: { msgid: \"New\", msgstr: [\"Neu\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Neue Version\"] }, paused: { msgid: \"paused\", msgstr: [\"Pausiert\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Vorschaubild\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Alle neuen Dateien auswählen\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Unbekannte Größe\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Hochladen abgebrochen\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Dateien hochladen\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Welche Dateien möchten Sie behalten?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { locale: \"el\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Nik Pap, 2022\", \"Language-Team\": \"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"el\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nNik Pap, 2022\n` }, msgstr: [`Last-Translator: Nik Pap, 2022\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"απομένουν {seconds} δευτερόλεπτα\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"απομένουν {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"απομένουν λίγα δευτερόλεπτα\"] }, Add: { msgid: \"Add\", msgstr: [\"Προσθήκη\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Ακύρωση μεταφορτώσεων\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"εκτίμηση του χρόνου που απομένει\"] }, paused: { msgid: \"paused\", msgstr: [\"σε παύση\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Μεταφόρτωση αρχείων\"] } } } } }, { locale: \"el_GR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"el_GR\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el_GR\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"en_GB\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Andi Chandler <andi@gowling.com>, 2023\", \"Language-Team\": \"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"en_GB\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nAndi Chandler <andi@gowling.com>, 2023\n` }, msgstr: [`Last-Translator: Andi Chandler <andi@gowling.com>, 2023\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: en_GB\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} file conflict\", \"{count} files conflict\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} file conflict in {dirname}\", \"{count} file conflicts in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} seconds left\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} left\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"a few seconds left\"] }, Add: { msgid: \"Add\", msgstr: [\"Add\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancel uploads\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continue\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimating time left\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Existing version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"If you select both versions, the copied file will have a number added to its name.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Last modified date unknown\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"New version\"] }, paused: { msgid: \"paused\", msgstr: [\"paused\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Preview image\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Select all checkboxes\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Select all existing files\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Select all new files\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Skip this file\", \"Skip {count} files\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Unknown size\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Upload cancelled\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Upload files\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Which files do you want to keep?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"You need to select at least one version of each file to continue.\"] } } } } }, { locale: \"eo\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"eo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eo\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Julio C. Ortega, 2024\", \"Language-Team\": \"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nFranciscoFJ <dev-ooo@satel-sa.com>, 2023\nNext Cloud <nextcloud.translator.es@cgj.es>, 2023\nJulio C. Ortega, 2024\n` }, msgstr: [`Last-Translator: Julio C. Ortega, 2024\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} archivo en conflicto\", \"{count} archivos en conflicto\", \"{count} archivos en conflicto\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} archivo en conflicto en {dirname}\", \"{count} archivos en conflicto en {dirname}\", \"{count} archivos en conflicto en {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan unos segundos\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar subidas\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuar\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versión existente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Si selecciona ambas versiones, al archivo copiado se le añadirá un número en el nombre.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Última fecha de modificación desconocida\"] }, New: { msgid: \"New\", msgstr: [\"Nuevo\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nueva versión\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Previsualizar imagen\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleccionar todos los archivos nuevos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Saltar este archivo\", \"Saltar {count} archivos\", \"Saltar {count} archivos\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamaño desconocido\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Subida cancelada\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Subir archivos\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Progreso de la subida\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"¿Qué archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { locale: \"es_419\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"ALEJANDRO CASTRO, 2022\", \"Language-Team\": \"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_419\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nALEJANDRO CASTRO, 2022\n` }, msgstr: [`Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_419\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{tiempo} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan pocos segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"agregar\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar subidas\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Subir archivos\"] } } } } }, { locale: \"es_AR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Matias Iglesias, 2022\", \"Language-Team\": \"Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_AR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMatias Iglesias, 2022\n` }, msgstr: [`Last-Translator: Matias Iglesias, 2022\nLanguage-Team: Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_AR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan unos segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"Añadir\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar subidas\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Subir archivos\"] } } } } }, { locale: \"es_CL\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_CL\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CL\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_CO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_CO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_CR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_CR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_DO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_DO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_DO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_EC\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_EC\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_EC\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_GT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_GT\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_GT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_HN\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_HN\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_HN\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_MX\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"ALEJANDRO CASTRO, 2022\", \"Language-Team\": \"Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_MX\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nLuis Francisco Castro, 2022\nALEJANDRO CASTRO, 2022\n` }, msgstr: [`Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_MX\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{tiempo} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan pocos segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"agregar\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"cancelar las cargas\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, paused: { msgid: \"paused\", msgstr: [\"en pausa\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"cargar archivos\"] } } } } }, { locale: \"es_NI\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_NI\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_NI\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PA\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PA\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PA\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PE\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PE\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PY\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_SV\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_SV\", \"Plural-Forms\": \"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_SV\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_UY\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_UY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_UY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"et_EE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Taavo Roos, 2023\", \"Language-Team\": \"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"et_EE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMait R, 2022\nTaavo Roos, 2023\n` }, msgstr: [`Last-Translator: Taavo Roos, 2023\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: et_EE\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} jäänud sekundid\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} aega jäänud\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"jäänud mõni sekund\"] }, Add: { msgid: \"Add\", msgstr: [\"Lisa\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Tühista üleslaadimine\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"hinnanguline järelejäänud aeg\"] }, paused: { msgid: \"paused\", msgstr: [\"pausil\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Lae failid üles\"] } } } } }, { locale: \"eu\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\", \"Language-Team\": \"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"eu\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\n` }, msgstr: [`Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eu\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundo geratzen dira\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} geratzen da\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"segundo batzuk geratzen dira\"] }, Add: { msgid: \"Add\", msgstr: [\"Gehitu\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Ezeztatu igoerak\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"kalkulatutako geratzen den denbora\"] }, paused: { msgid: \"paused\", msgstr: [\"geldituta\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Igo fitxategiak\"] } } } } }, { locale: \"fa\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Fatemeh Komeily, 2023\", \"Language-Team\": \"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fa\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nFatemeh Komeily, 2023\n` }, msgstr: [`Last-Translator: Fatemeh Komeily, 2023\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fa\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"ثانیه های باقی مانده\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"باقی مانده\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"چند ثانیه مانده\"] }, Add: { msgid: \"Add\", msgstr: [\"اضافه کردن\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"کنسل کردن فایل های اپلود شده\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"تخمین زمان باقی مانده\"] }, paused: { msgid: \"paused\", msgstr: [\"مکث کردن\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"بارگذاری فایل ها\"] } } } } }, { locale: \"fi_FI\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Jiri Grönroos <jiri.gronroos@iki.fi>, 2022\", \"Language-Team\": \"Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fi_FI\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJiri Grönroos <jiri.gronroos@iki.fi>, 2022\n` }, msgstr: [`Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>, 2022\nLanguage-Team: Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fi_FI\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekuntia jäljellä\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} jäljellä\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"muutama sekunti jäljellä\"] }, Add: { msgid: \"Add\", msgstr: [\"Lisää\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Peruuta lähetykset\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"arvioidaan jäljellä olevaa aikaa\"] }, paused: { msgid: \"paused\", msgstr: [\"keskeytetty\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Lähetä tiedostoja\"] } } } } }, { locale: \"fo\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fo\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"fr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"jed boulahya, 2024\", \"Language-Team\": \"French (https://app.transifex.com/nextcloud/teams/64236/fr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fr\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nBenoit Pruneau, 2024\njed boulahya, 2024\n` }, msgstr: [`Last-Translator: jed boulahya, 2024\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fr\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} fichier en conflit\", \"{count} fichiers en conflit\", \"{count} fichiers en conflit\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} fichier en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} secondes restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} restant\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quelques secondes restantes\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Annuler\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Annuler l'opération entière\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Annuler les envois\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuer\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimation du temps restant\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Version existante\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Si vous sélectionnez les deux versions, le fichier copié aura un numéro ajouté àname.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Date de la dernière modification est inconnue\"] }, New: { msgid: \"New\", msgstr: [\"Nouveau\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nouvelle version\"] }, paused: { msgid: \"paused\", msgstr: [\"en pause\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Aperçu de l'image\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Sélectionner toutes les cases à cocher\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Sélectionner tous les fichiers existants\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Sélectionner tous les nouveaux fichiers\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Ignorer ce fichier\", \"Ignorer {count} fichiers\", \"Ignorer {count} fichiers\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Taille inconnue\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\" annulé\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Téléchargement des fichiers\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Progression du téléchargement\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Quels fichiers souhaitez-vous conserver ?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Vous devez sélectionner au moins une version de chaque fichier pour continuer.\"] } } } } }, { locale: \"gd\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"gd\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gd\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"gl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2023\", \"Language-Team\": \"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"gl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nNacho <nacho.vfranco@gmail.com>, 2023\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2023\n` }, msgstr: [`Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2023\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gl\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} conflito de ficheiros\", \"{count} conflitos de ficheiros\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} conflito de ficheiros en {dirname}\", \"{count} conflitos de ficheiros en {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"faltan {seconds} segundos\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"falta {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"faltan uns segundos\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar envíos\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuar\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"calculando canto tempo falta\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versión existente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Se selecciona ambas as versións, o ficheiro copiado terá un número engadido ao seu nome.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Data da última modificación descoñecida\"] }, New: { msgid: \"New\", msgstr: [\"Nova\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nova versión\"] }, paused: { msgid: \"paused\", msgstr: [\"detido\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Vista previa da imaxe\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Marcar todas as caixas de selección\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleccionar todos os ficheiros existentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleccionar todos os ficheiros novos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Omita este ficheiro\", \"Omitir {count} ficheiros\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamaño descoñecido\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Envío cancelado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Enviar ficheiros\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Progreso do envío\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Que ficheiros quere conservar?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Debe seleccionar polo menos unha versión de cada ficheiro para continuar.\"] } } } } }, { locale: \"he\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"he\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: he\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hi_IN\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hi_IN\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hi_IN\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hr\", \"Plural-Forms\": \"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hr\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hsb\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hsb\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hsb\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hu\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hu\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hu_HU\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Balázs Úr, 2022\", \"Language-Team\": \"Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hu_HU\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nBalázs Meskó <meskobalazs@mailbox.org>, 2022\nBalázs Úr, 2022\n` }, msgstr: [`Last-Translator: Balázs Úr, 2022\nLanguage-Team: Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu_HU\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{} másodperc van hátra\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} van hátra\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"pár másodperc van hátra\"] }, Add: { msgid: \"Add\", msgstr: [\"Hozzáadás\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Feltöltések megszakítása\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"hátralévő idő becslése\"] }, paused: { msgid: \"paused\", msgstr: [\"szüneteltetve\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Fájlok feltöltése\"] } } } } }, { locale: \"hy\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hy\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hy\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ia\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ia\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ia\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"id\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Linerly <linerly@proton.me>, 2023\", \"Language-Team\": \"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"id\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nEmpty Slot Filler, 2023\nLinerly <linerly@proton.me>, 2023\n` }, msgstr: [`Last-Translator: Linerly <linerly@proton.me>, 2023\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: id\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} berkas berkonflik\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} berkas berkonflik dalam {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} detik tersisa\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} tersisa\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"tinggal sebentar lagi\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Batalkan unggahan\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Lanjutkan\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"memperkirakan waktu yang tersisa\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versi yang ada\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Tanggal perubahan terakhir tidak diketahui\"] }, New: { msgid: \"New\", msgstr: [\"Baru\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Versi baru\"] }, paused: { msgid: \"paused\", msgstr: [\"dijeda\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Gambar pratinjau\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Pilih semua kotak centang\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Pilih semua berkas yang ada\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Pilih semua berkas baru\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Lewati {count} berkas\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Ukuran tidak diketahui\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Unggahan dibatalkan\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Unggah berkas\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Berkas mana yang Anda ingin tetap simpan?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan.\"] } } } } }, { locale: \"ig\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ig\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ig\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"is\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Sveinn í Felli <sv1@fellsnet.is>, 2023\", \"Language-Team\": \"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"is\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nSveinn í Felli <sv1@fellsnet.is>, 2023\n` }, msgstr: [`Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2023\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: is\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} árekstur skráa\", \"{count} árekstrar skráa\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} árekstur skráa í {dirname}\", \"{count} árekstrar skráa í {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekúndur eftir\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} eftir\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"nokkrar sekúndur eftir\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Hætta við innsendingar\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Halda áfram\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"áætla tíma sem eftir er\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Fyrirliggjandi útgáfa\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti afrituðu skrárinnar.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Síðasta breytingadagsetning er óþekkt\"] }, New: { msgid: \"New\", msgstr: [\"Nýtt\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ný útgáfa\"] }, paused: { msgid: \"paused\", msgstr: [\"í bið\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Forskoðun myndar\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Velja gátreiti\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Velja allar fyrirliggjandi skrár\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Velja allar nýjar skrár\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Sleppa þessari skrá\", \"Sleppa {count} skrám\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Óþekkt stærð\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Hætt við innsendingu\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Senda inn skrár\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hvaða skrám vilt þú vilt halda eftir?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram.\"] } } } } }, { locale: \"it\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Random_R, 2023\", \"Language-Team\": \"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"it\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nLep Lep, 2023\nRandom_R, 2023\n` }, msgstr: [`Last-Translator: Random_R, 2023\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} file in conflitto\", \"{count} file in conflitto\", \"{count} file in conflitto\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} secondi rimanenti \"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} rimanente\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"alcuni secondi rimanenti\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Annulla i caricamenti\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continua\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"calcolo il tempo rimanente\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versione esistente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero \"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Ultima modifica sconosciuta\"] }, New: { msgid: \"New\", msgstr: [\"Nuovo\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nuova versione\"] }, paused: { msgid: \"paused\", msgstr: [\"pausa\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Anteprima immagine\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Seleziona tutte le caselle\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleziona tutti i file esistenti\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleziona tutti i nuovi file\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Salta questo file\", \"Salta {count} file\", \"Salta {count} file\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Dimensione sconosciuta\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Caricamento cancellato\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Carica i file\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Quali file vuoi mantenere?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Devi selezionare almeno una versione di ogni file per continuare\"] } } } } }, { locale: \"it_IT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"it_IT\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it_IT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ja_JP\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"かたかめ, 2022\", \"Language-Team\": \"Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ja_JP\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nT.S, 2022\nかたかめ, 2022\n` }, msgstr: [`Last-Translator: かたかめ, 2022\nLanguage-Team: Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ja_JP\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"残り {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"残り {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"残り数秒\"] }, Add: { msgid: \"Add\", msgstr: [\"追加\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"アップロードをキャンセル\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"概算残り時間\"] }, paused: { msgid: \"paused\", msgstr: [\"一時停止中\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"ファイルをアップデート\"] } } } } }, { locale: \"ka\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ka\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka\nPlural-Forms: nplurals=2; plural=(n!=1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ka_GE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ka_GE\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka_GE\nPlural-Forms: nplurals=2; plural=(n!=1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"kab\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"ZiriSut, 2023\", \"Language-Team\": \"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"kab\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nZiriSut, 2023\n` }, msgstr: [`Last-Translator: ZiriSut, 2023\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kab\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} tesdatin i d-yeqqimen\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} i d-yeqqimen\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"qqiment-d kra n tesdatin kan\"] }, Add: { msgid: \"Add\", msgstr: [\"Rnu\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Sefsex asali\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"asizel n wakud i d-yeqqimen\"] }, paused: { msgid: \"paused\", msgstr: [\"yeḥbes\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Sali-d ifuyla\"] } } } } }, { locale: \"kk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"kk\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kk\nPlural-Forms: nplurals=2; plural=(n!=1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"km\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"km\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: km\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"kn\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"kn\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kn\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ko\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Brandon Han, 2024\", \"Language-Team\": \"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ko\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nhosun Lee, 2023\nBrandon Han, 2024\n` }, msgstr: [`Last-Translator: Brandon Han, 2024\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ko\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count}개의 파일이 충돌함\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname}에서 {count}개의 파일이 충돌함\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} 남음\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} 남음\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"곧 완료\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"업로드 취소\"] }, Continue: { msgid: \"Continue\", msgstr: [\"확인\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"남은 시간 계산\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"현재 버전\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"두 버전을 모두 선택할 경우, 복제된 파일 이름에 숫자가 추가됩니다.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"최근 수정일 알 수 없음\"] }, New: { msgid: \"New\", msgstr: [\"새로 만들기\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"새 버전\"] }, paused: { msgid: \"paused\", msgstr: [\"일시정지됨\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"미리보기 이미지\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"모든 체크박스 선택\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"모든 파일 선택\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"모든 새 파일 선택\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"{count}개의 파일 넘기기\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"크기를 알 수 없음\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"업로드 취소됨\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"파일 업로드\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"업로드 진행도\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"어떤 파일을 보존하시겠습니까?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다.\"] } } } } }, { locale: \"la\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"la\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: la\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lb\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lb\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lb\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lo\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lo\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lo\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lt_LT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lt_LT\", \"Plural-Forms\": \"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lt_LT\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lv\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lv\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lv\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"mk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Сашко Тодоров <sasetodorov@gmail.com>, 2022\", \"Language-Team\": \"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"mk\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nСашко Тодоров <sasetodorov@gmail.com>, 2022\n` }, msgstr: [`Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mk\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"преостануваат {seconds} секунди\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"преостанува {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"уште неколку секунди\"] }, Add: { msgid: \"Add\", msgstr: [\"Додади\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Прекини прикачување\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"приближно преостанато време\"] }, paused: { msgid: \"paused\", msgstr: [\"паузирано\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Прикачување датотеки\"] } } } } }, { locale: \"mn\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"BATKHUYAG Ganbold, 2023\", \"Language-Team\": \"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"mn\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nBATKHUYAG Ganbold, 2023\n` }, msgstr: [`Last-Translator: BATKHUYAG Ganbold, 2023\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mn\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} секунд үлдсэн\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} үлдсэн\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"хэдхэн секунд үлдсэн\"] }, Add: { msgid: \"Add\", msgstr: [\"Нэмэх\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Илгээлтийг цуцлах\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Үлдсэн хугацааг тооцоолж байна\"] }, paused: { msgid: \"paused\", msgstr: [\"түр зогсоосон\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Файл илгээх\"] } } } } }, { locale: \"mr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"mr\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mr\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ms_MY\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ms_MY\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ms_MY\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"my\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"my\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: my\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"nb_NO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Syvert Fossdal, 2024\", \"Language-Team\": \"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nb_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nSyvert Fossdal, 2024\n` }, msgstr: [`Last-Translator: Syvert Fossdal, 2024\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nb_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} file conflict\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} file conflict in {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekunder igjen\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} igjen\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"noen få sekunder igjen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Avbryt opplastninger\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsett\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Estimerer tid igjen\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Gjeldende versjon\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Hvis du velger begge versjoner, vil den kopierte filen få et tall lagt til navnet.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Siste gang redigert ukjent\"] }, New: { msgid: \"New\", msgstr: [\"Ny\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ny versjon\"] }, paused: { msgid: \"paused\", msgstr: [\"pauset\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Forhåndsvis bilde\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Velg alle\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Velg alle eksisterende filer\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Velg alle nye filer\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Skip this file\", \"Hopp over {count} filer\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Ukjent størrelse\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Opplasting avbrutt\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Last opp filer\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Fremdrift, opplasting\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hvilke filer vil du beholde?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du må velge minst en versjon av hver fil for å fortsette.\"] } } } } }, { locale: \"ne\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ne\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ne\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"nl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Rico <rico-schwab@hotmail.com>, 2023\", \"Language-Team\": \"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nRico <rico-schwab@hotmail.com>, 2023\n` }, msgstr: [`Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nl\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Nog {seconds} seconden\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{seconds} over\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Nog een paar seconden\"] }, Add: { msgid: \"Add\", msgstr: [\"Voeg toe\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Uploads annuleren\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Schatting van de resterende tijd\"] }, paused: { msgid: \"paused\", msgstr: [\"Gepauzeerd\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Upload bestanden\"] } } } } }, { locale: \"nn\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nn\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"nn_NO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nn_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"oc\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"oc\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: oc\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"pl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Valdnet, 2024\", \"Language-Team\": \"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"pl\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nM H <haincu@o2.pl>, 2023\nValdnet, 2024\n` }, msgstr: [`Last-Translator: Valdnet, 2024\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pl\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"konflikt 1 pliku\", \"{count} konfliktów plików\", \"{count} konfliktów plików\", \"{count} konfliktów plików\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} konfliktowy plik w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Pozostało {seconds} sekund\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Pozostało {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Pozostało kilka sekund\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Anuluj wysyłanie\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Kontynuuj\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Szacowanie pozostałego czasu\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Istniejąca wersja\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Jeżeli wybierzesz obie wersje to do nazw skopiowanych plików zostanie dodany numer\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Nieznana data ostatniej modyfikacji\"] }, New: { msgid: \"New\", msgstr: [\"Nowy\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nowa wersja\"] }, paused: { msgid: \"paused\", msgstr: [\"Wstrzymane\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Podgląd obrazu\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Zaznacz wszystkie boxy\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Zaznacz wszystkie istniejące pliki\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Zaznacz wszystkie nowe pliki\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Pomiń 1 plik\", \"Pomiń {count} plików\", \"Pomiń {count} plików\", \"Pomiń {count} plików\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Nieznany rozmiar\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Anulowano wysyłanie\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Wyślij pliki\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Postęp wysyłania\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Które pliki chcesz zachować\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku.\"] } } } } }, { locale: \"ps\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ps\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ps\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"pt_BR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Leonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\", \"Language-Team\": \"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"pt_BR\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\n` }, msgstr: [`Last-Translator: Leonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_BR\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} arquivos em conflito\", \"{count} arquivos em conflito\", \"{count} arquivos em conflito\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"alguns segundos restantes\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Cancelar\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Cancelar a operação inteira\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar uploads\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuar\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tempo restante\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versão existente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Se você selecionar ambas as versões, o arquivo copiado terá um número adicionado ao seu nome.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Data da última modificação desconhecida\"] }, New: { msgid: \"New\", msgstr: [\"Novo\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nova versão\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Visualizar imagem\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Marque todas as caixas de seleção\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Selecione todos os arquivos existentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Selecione todos os novos arquivos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Ignorar {count} arquivos\", \"Ignorar {count} arquivos\", \"Ignorar {count} arquivos\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamanho desconhecido\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Envio cancelado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Enviar arquivos\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Envio em progresso\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Quando uma pasta é selecionada, quaisquer arquivos dentro dela também serão sobrescritos.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Quais arquivos você deseja manter?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Você precisa selecionar pelo menos uma versão de cada arquivo para continuar.\"] } } } } }, { locale: \"pt_PT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Manuela Silva <mmsrs@sky.com>, 2022\", \"Language-Team\": \"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"pt_PT\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nManuela Silva <mmsrs@sky.com>, 2022\n` }, msgstr: [`Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_PT\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"faltam {seconds} segundo(s)\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"faltam {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"faltam uns segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"Adicionar\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar envios\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"tempo em falta estimado\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Enviar ficheiros\"] } } } } }, { locale: \"ro\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\", \"Language-Team\": \"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ro\", \"Plural-Forms\": \"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\n` }, msgstr: [`Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ro\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} secunde rămase\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} rămas\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"câteva secunde rămase\"] }, Add: { msgid: \"Add\", msgstr: [\"Adaugă\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Anulați încărcările\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimarea timpului rămas\"] }, paused: { msgid: \"paused\", msgstr: [\"pus pe pauză\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Încarcă fișiere\"] } } } } }, { locale: \"ru\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Александр, 2023\", \"Language-Team\": \"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ru\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nMax Smith <sevinfolds@gmail.com>, 2023\nАлександр, 2023\n` }, msgstr: [`Last-Translator: Александр, 2023\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"конфликт {count} файла\", \"конфликт {count} файлов\", \"конфликт {count} файлов\", \"конфликт {count} файлов\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"конфликт {count} файла в {dirname}\", \"конфликт {count} файлов в {dirname}\", \"конфликт {count} файлов в {dirname}\", \"конфликт {count} файлов в {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"осталось {seconds} секунд\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"осталось {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"осталось несколько секунд\"] }, Add: { msgid: \"Add\", msgstr: [\"Добавить\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Отменить загрузки\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Продолжить\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"оценка оставшегося времени\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Текущая версия\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Если вы выберете обе версии, к имени скопированного файла будет добавлен номер.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Дата последнего изменения неизвестна\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Новая версия\"] }, paused: { msgid: \"paused\", msgstr: [\"приостановлено\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Предварительный просмотр\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Установить все флажки\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Выбрать все существующие файлы\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Выбрать все новые файлы\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Пропустить файл\", \"Пропустить {count} файла\", \"Пропустить {count} файлов\", \"Пропустить {count} файлов\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Неизвестный размер\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Загрузка отменена\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Загрузка файлов\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Какие файлы вы хотите сохранить?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла.\"] } } } } }, { locale: \"ru_RU\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ru_RU\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru_RU\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sc\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sc\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sc\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"si\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"si\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"si_LK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"si_LK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si_LK\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sk_SK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sk_SK\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sk_SK\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Matej Urbančič <>, 2022\", \"Language-Team\": \"Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sl\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMatej Urbančič <>, 2022\n` }, msgstr: [`Last-Translator: Matej Urbančič <>, 2022\nLanguage-Team: Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"še {seconds} sekund\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"še {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"še nekaj sekund\"] }, Add: { msgid: \"Add\", msgstr: [\"Dodaj\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Prekliči pošiljanje\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"ocenjen čas do konca\"] }, paused: { msgid: \"paused\", msgstr: [\"v premoru\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Pošlji datoteke\"] } } } } }, { locale: \"sl_SI\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sl_SI\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl_SI\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sq\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sq\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sq\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Иван Пешић, 2023\", \"Language-Team\": \"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sr\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nИван Пешић, 2023\n` }, msgstr: [`Last-Translator: Иван Пешић, 2023\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} фајл конфликт\", \"{count} фајл конфликта\", \"{count} фајл конфликта\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} фајл конфликт у {dirname}\", \"{count} фајл конфликта у {dirname}\", \"{count} фајл конфликта у {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"преостало је {seconds} секунди\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} преостало\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"преостало је неколико секунди\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Обустави отпремања\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Настави\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"процена преосталог времена\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Постојећа верзија\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Ако изаберете обе верзије, на име копираног фајла ће се додати број.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Није познат датум последње измене\"] }, New: { msgid: \"New\", msgstr: [\"Ново\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Нова верзија\"] }, paused: { msgid: \"paused\", msgstr: [\"паузирано\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Слика прегледа\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Штиклирај сва поља за штиклирање\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Изабери све постојеће фајлове\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Изабери све нове фајлове\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Прескочи овај фајл\", \"Прескочи {count} фајла\", \"Прескочи {count} фајлова\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Непозната величина\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Отпремање је отказано\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Отпреми фајлове\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Напредак отпремања\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Које фајлове желите да задржите?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Морате да изаберете барем једну верзију сваког фајла да наставите.\"] } } } } }, { locale: \"sr@latin\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sr@latin\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr@latin\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sv\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Magnus Höglund, 2024\", \"Language-Team\": \"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sv\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMagnus Höglund, 2024\n` }, msgstr: [`Last-Translator: Magnus Höglund, 2024\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sv\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} filkonflikt\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} filkonflikt i {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekunder kvarstår\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} kvarstår\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"några sekunder kvar\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Avbryt\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Avbryt hela operationen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Avbryt uppladdningar\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsätt\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"uppskattar kvarstående tid\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Nuvarande version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Om du väljer båda versionerna kommer den kopierade filen att få ett nummer tillagt  i namnet.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Senaste ändringsdatum okänt\"] }, New: { msgid: \"New\", msgstr: [\"Ny\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ny version\"] }, paused: { msgid: \"paused\", msgstr: [\"pausad\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Förhandsgranska bild\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Markera alla kryssrutor\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Välj alla befintliga filer\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Välj alla nya filer\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Hoppa över denna fil\", \"Hoppa över {count} filer\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Okänd storlek\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Uppladdningen avbröts\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Ladda upp filer\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Uppladdningsförlopp\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"När en inkommande mapp väljs skrivs även alla konfliktande filer i den över.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Vilka filer vill du behålla?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du måste välja minst en version av varje fil för att fortsätta.\"] } } } } }, { locale: \"sw\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sw\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sw\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ta\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ta\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ta_LK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ta_LK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta_LK\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"th\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Thai (https://www.transifex.com/nextcloud/teams/64236/th/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"th\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Thai (https://www.transifex.com/nextcloud/teams/64236/th/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"th_TH\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Phongpanot Phairat <ppnplus@protonmail.com>, 2022\", \"Language-Team\": \"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"th_TH\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\n` }, msgstr: [`Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th_TH\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"เหลืออีก {seconds} วินาที\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"เหลืออีก {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"เหลืออีกไม่กี่วินาที\"] }, Add: { msgid: \"Add\", msgstr: [\"เพิ่ม\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"ยกเลิกการอัปโหลด\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"กำลังคำนวณเวลาที่เหลือ\"] }, paused: { msgid: \"paused\", msgstr: [\"หยุดชั่วคราว\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"อัปโหลดไฟล์\"] } } } } }, { locale: \"tk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"tk\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tk\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"tr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Kaya Zeren <kayazeren@gmail.com>, 2024\", \"Language-Team\": \"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"tr\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nKaya Zeren <kayazeren@gmail.com>, 2024\n` }, msgstr: [`Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2024\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tr\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} dosya çakışması var\", \"{count} dosya çakışması var\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname} klasöründe {count} dosya çakışması var\", \"{dirname} klasöründe {count} dosya çakışması var\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} saniye kaldı\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} kaldı\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"bir kaç saniye kaldı\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"İptal\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Tüm işlemi iptal et\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Yüklemeleri iptal et\"] }, Continue: { msgid: \"Continue\", msgstr: [\"İlerle\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"öngörülen kalan süre\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Var olan sürüm\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"İki sürümü de seçerseniz, kopyalanan dosyanın adına bir sayı eklenir.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Son değiştirilme tarihi bilinmiyor\"] }, New: { msgid: \"New\", msgstr: [\"Yeni\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Yeni sürüm\"] }, paused: { msgid: \"paused\", msgstr: [\"duraklatıldı\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Görsel ön izlemesi\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Tüm kutuları işaretle\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Tüm var olan dosyaları seç\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Tüm yeni dosyaları seç\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Bu dosyayı atla\", \"{count} dosyayı atla\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Boyut bilinmiyor\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Yükleme iptal edildi\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Dosyaları yükle\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Yükleme ilerlemesi\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hangi dosyaları tutmak istiyorsunuz?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz.\"] } } } } }, { locale: \"ug\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ug\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ug\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"uk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"O St <oleksiy.stasevych@gmail.com>, 2024\", \"Language-Team\": \"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"uk\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nO St <oleksiy.stasevych@gmail.com>, 2024\n` }, msgstr: [`Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2024\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uk\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} конфліктний файл\", \"{count} конфліктних файли\", \"{count} конфліктних файлів\", \"{count} конфліктних файлів\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} конфліктний файл у каталозі {dirname}\", \"{count} конфліктних файли у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Залишилося {seconds} секунд\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Залишилося {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"залишилося кілька секунд\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Скасувати\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Скасувати операцію повністю\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Скасувати завантаження\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Продовжити\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"оцінка часу, що залишився\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Присутня версія\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Якщо ви виберете обидві версії, то буде створено копію файлу, до назви якої буде додано цифру.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Дата останньої зміни невідома\"] }, New: { msgid: \"New\", msgstr: [\"Нове\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Нова версія\"] }, paused: { msgid: \"paused\", msgstr: [\"призупинено\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Попередній перегляд\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Вибрати все\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Вибрати усі присутні файли\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Вибрати усі нові файли\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Пропустити файл\", \"Пропустити {count} файли\", \"Пропустити {count} файлів\", \"Пропустити {count} файлів\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Невідомий розмір\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Завантаження скасовано\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Завантажити файли\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Поступ завантаження\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Які файли залишити?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Для продовження потрібно вибрати принаймні одну версію для кожного файлу.\"] } } } } }, { locale: \"ur_PK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ur_PK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ur_PK\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"uz\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"uz\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uz\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"vi\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Tung DangQuang, 2023\", \"Language-Team\": \"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"vi\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nTung DangQuang, 2023\n` }, msgstr: [`Last-Translator: Tung DangQuang, 2023\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: vi\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} Tập tin xung đột\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} tập tin lỗi trong {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Còn {second} giây\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Còn lại {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Còn lại một vài giây\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Huỷ tải lên\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Tiếp Tục\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Thời gian còn lại dự kiến\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Phiên Bản Hiện Tại\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Ngày sửa dổi lần cuối không xác định\"] }, New: { msgid: \"New\", msgstr: [\"Tạo Mới\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Phiên Bản Mới\"] }, paused: { msgid: \"paused\", msgstr: [\"đã tạm dừng\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Xem Trước Ảnh\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Chọn tất cả hộp checkbox\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Chọn tất cả các tập tin có sẵn\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Chọn tất cả các tập tin mới\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Bỏ Qua {count} tập tin\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Không rõ dung lượng\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Dừng Tải Lên\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Tập tin tải lên\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Đang Tải Lên\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Bạn muốn giữ tập tin nào?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục\"] } } } } }, { locale: \"zh_CN\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Hongbo Chen, 2023\", \"Language-Team\": \"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"zh_CN\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nHongbo Chen, 2023\n` }, msgstr: [`Last-Translator: Hongbo Chen, 2023\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_CN\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count}文件冲突\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"在{dirname}目录下有{count}个文件冲突\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"剩余 {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"剩余 {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"还剩几秒\"] }, Add: { msgid: \"Add\", msgstr: [\"添加\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"取消上传\"] }, Continue: { msgid: \"Continue\", msgstr: [\"继续\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"估计剩余时间\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"版本已存在\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"如果选择所有的版本,新增版本的文件名为原文件名加数字\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"文件最后修改日期未知\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"新版本\"] }, paused: { msgid: \"paused\", msgstr: [\"已暂停\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"图片预览\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"选择所有的选择框\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"选择所有存在的文件\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"选择所有的新文件\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"跳过{count}个文件\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"文件大小未知\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"取消上传\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"上传文件\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"你要保留哪些文件?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"每个文件至少选择一个版本\"] } } } } }, { locale: \"zh_HK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Café Tango, 2023\", \"Language-Team\": \"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"zh_HK\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nCafé Tango, 2023\n` }, msgstr: [`Last-Translator: Café Tango, 2023\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_HK\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"剩餘 {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"還剩幾秒\"] }, Add: { msgid: \"Add\", msgstr: [\"添加\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"取消上傳\"] }, Continue: { msgid: \"Continue\", msgstr: [\"繼續\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"估計剩餘時間\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"既有版本\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"若您選取兩個版本,複製的檔案的名稱將會新增編號。\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"最後修改日期不詳\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"新版本 \"] }, paused: { msgid: \"paused\", msgstr: [\"已暫停\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"預覽圖片\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"選取所有核取方塊\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"選取所有既有檔案\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"選取所有新檔案\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"略過 {count} 個檔案\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"大小不詳\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"已取消上傳\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"上傳檔案\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"您想保留哪些檔案?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }, { locale: \"zh_TW\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"黃柏諺 <s8321414@gmail.com>, 2024\", \"Language-Team\": \"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"zh_TW\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\n黃柏諺 <s8321414@gmail.com>, 2024\n` }, msgstr: [`Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_TW\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"剩餘 {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"還剩幾秒\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"取消\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"取消整個操作\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"取消上傳\"] }, Continue: { msgid: \"Continue\", msgstr: [\"繼續\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"估計剩餘時間\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"既有版本\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"若您選取兩個版本,複製的檔案的名稱將會新增編號。\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"最後修改日期未知\"] }, New: { msgid: \"New\", msgstr: [\"新增\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"新版本\"] }, paused: { msgid: \"paused\", msgstr: [\"已暫停\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"預覽圖片\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"選取所有核取方塊\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"選取所有既有檔案\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"選取所有新檔案\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"略過 {count} 檔案\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"未知大小\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"已取消上傳\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"上傳檔案\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"上傳進度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"您想保留哪些檔案?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }].map((e) => R.addTranslation(e.locale, e.json));\nconst C = R.build(), Gs = C.ngettext.bind(C), u = C.gettext.bind(C), Ls = E.extend({\n  name: \"UploadPicker\",\n  components: {\n    Cancel: ms,\n    NcActionButton: J,\n    NcActions: Q,\n    NcButton: Z,\n    NcIconSvgWrapper: X,\n    NcProgressBar: ss,\n    Plus: fs,\n    Upload: xs\n  },\n  props: {\n    accept: {\n      type: Array,\n      default: null\n    },\n    disabled: {\n      type: Boolean,\n      default: !1\n    },\n    multiple: {\n      type: Boolean,\n      default: !1\n    },\n    destination: {\n      type: z,\n      default: void 0\n    },\n    /**\n     * List of file present in the destination folder\n     */\n    content: {\n      type: Array,\n      default: () => []\n    },\n    forbiddenCharacters: {\n      type: Array,\n      default: () => []\n    }\n  },\n  data() {\n    return {\n      addLabel: u(\"New\"),\n      cancelLabel: u(\"Cancel uploads\"),\n      uploadLabel: u(\"Upload files\"),\n      progressLabel: u(\"Upload progress\"),\n      progressTimeId: `nc-uploader-progress-${Math.random().toString(36).slice(7)}`,\n      eta: null,\n      timeLeft: \"\",\n      newFileMenuEntries: [],\n      uploadManager: M()\n    };\n  },\n  computed: {\n    totalQueueSize() {\n      return this.uploadManager.info?.size || 0;\n    },\n    uploadedQueueSize() {\n      return this.uploadManager.info?.progress || 0;\n    },\n    progress() {\n      return Math.round(this.uploadedQueueSize / this.totalQueueSize * 100) || 0;\n    },\n    queue() {\n      return this.uploadManager.queue;\n    },\n    hasFailure() {\n      return this.queue?.filter((e) => e.status === c.FAILED).length !== 0;\n    },\n    isUploading() {\n      return this.queue?.length > 0;\n    },\n    isAssembling() {\n      return this.queue?.filter((e) => e.status === c.ASSEMBLING).length !== 0;\n    },\n    isPaused() {\n      return this.uploadManager.info?.status === I.PAUSED;\n    },\n    // Hide the button text if we're uploading\n    buttonName() {\n      if (!this.isUploading)\n        return this.addLabel;\n    }\n  },\n  watch: {\n    destination(e) {\n      this.setDestination(e);\n    },\n    totalQueueSize(e) {\n      this.eta = K({ min: 0, max: e }), this.updateStatus();\n    },\n    uploadedQueueSize(e) {\n      this.eta?.report?.(e), this.updateStatus();\n    },\n    isPaused(e) {\n      e ? this.$emit(\"paused\", this.queue) : this.$emit(\"resumed\", this.queue);\n    }\n  },\n  beforeMount() {\n    this.destination && this.setDestination(this.destination), this.uploadManager.addNotifier(this.onUploadCompletion), g.debug(\"UploadPicker initialised\");\n  },\n  methods: {\n    /**\n     * Trigger file picker\n     */\n    onClick() {\n      this.$refs.input.click();\n    },\n    /**\n     * Start uploading\n     */\n    async onPick() {\n      let e = [...this.$refs.input.files];\n      if (Us(e, this.content)) {\n        const s = e.filter((n) => this.content.find((i) => i.basename === n.name)).filter(Boolean), t = e.filter((n) => !s.includes(n));\n        try {\n          const { selected: n, renamed: i } = await ys(this.destination.basename, s, this.content);\n          e = [...t, ...n, ...i];\n        } catch {\n          P(u(\"Upload cancelled\"));\n          return;\n        }\n      }\n      e.forEach((s) => {\n        const n = (this.forbiddenCharacters || []).find((i) => s.name.includes(i));\n        n ? P(u(`\"${n}\" is not allowed inside a file name.`)) : this.uploadManager.upload(s.name, s).catch(() => {\n        });\n      }), this.$refs.form.reset();\n    },\n    /**\n     * Cancel ongoing queue\n     */\n    onCancel() {\n      this.uploadManager.queue.forEach((e) => {\n        e.cancel();\n      }), this.$refs.form.reset();\n    },\n    updateStatus() {\n      if (this.isPaused) {\n        this.timeLeft = u(\"paused\");\n        return;\n      }\n      const e = Math.round(this.eta.estimate());\n      if (e === 1 / 0) {\n        this.timeLeft = u(\"estimating time left\");\n        return;\n      }\n      if (e < 10) {\n        this.timeLeft = u(\"a few seconds left\");\n        return;\n      }\n      if (e > 60) {\n        const s = /* @__PURE__ */ new Date(0);\n        s.setSeconds(e);\n        const t = s.toISOString().slice(11, 19);\n        this.timeLeft = u(\"{time} left\", { time: t });\n        return;\n      }\n      this.timeLeft = u(\"{seconds} seconds left\", { seconds: e });\n    },\n    setDestination(e) {\n      if (!this.destination) {\n        g.debug(\"Invalid destination\");\n        return;\n      }\n      this.uploadManager.destination = e, this.newFileMenuEntries = G(e);\n    },\n    onUploadCompletion(e) {\n      e.status === c.FAILED ? this.$emit(\"failed\", e) : this.$emit(\"uploaded\", e);\n    }\n  }\n});\nvar ks = function() {\n  var s = this, t = s._self._c;\n  return s._self._setupProxy, s.destination ? t(\"form\", { ref: \"form\", staticClass: \"upload-picker\", class: { \"upload-picker--uploading\": s.isUploading, \"upload-picker--paused\": s.isPaused }, attrs: { \"data-cy-upload-picker\": \"\" } }, [s.newFileMenuEntries && s.newFileMenuEntries.length === 0 ? t(\"NcButton\", { attrs: { disabled: s.disabled, \"data-cy-upload-picker-add\": \"\", type: \"secondary\" }, on: { click: s.onClick }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n    return [t(\"Plus\", { attrs: { title: \"\", size: 20, decorative: \"\" } })];\n  }, proxy: !0 }], null, !1, 2954875042) }, [s._v(\" \" + s._s(s.buttonName) + \" \")]) : t(\"NcActions\", { attrs: { \"menu-name\": s.buttonName, \"menu-title\": s.addLabel, type: \"secondary\" }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n    return [t(\"Plus\", { attrs: { title: \"\", size: 20, decorative: \"\" } })];\n  }, proxy: !0 }], null, !1, 2954875042) }, [t(\"NcActionButton\", { attrs: { \"data-cy-upload-picker-add\": \"\", \"close-after-click\": !0 }, on: { click: s.onClick }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n    return [t(\"Upload\", { attrs: { title: \"\", size: 20, decorative: \"\" } })];\n  }, proxy: !0 }], null, !1, 3606034491) }, [s._v(\" \" + s._s(s.uploadLabel) + \" \")]), s._l(s.newFileMenuEntries, function(n) {\n    return t(\"NcActionButton\", { key: n.id, staticClass: \"upload-picker__menu-entry\", attrs: { icon: n.iconClass, \"close-after-click\": !0 }, on: { click: function(i) {\n      return n.handler(s.destination, s.content);\n    } }, scopedSlots: s._u([n.iconSvgInline ? { key: \"icon\", fn: function() {\n      return [t(\"NcIconSvgWrapper\", { attrs: { svg: n.iconSvgInline } })];\n    }, proxy: !0 } : null], null, !0) }, [s._v(\" \" + s._s(n.displayName) + \" \")]);\n  })], 2), t(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: s.isUploading, expression: \"isUploading\" }], staticClass: \"upload-picker__progress\" }, [t(\"NcProgressBar\", { attrs: { \"aria-label\": s.progressLabel, \"aria-describedby\": s.progressTimeId, error: s.hasFailure, value: s.progress, size: \"medium\" } }), t(\"p\", { attrs: { id: s.progressTimeId } }, [s._v(\" \" + s._s(s.timeLeft) + \" \")])], 1), s.isUploading ? t(\"NcButton\", { staticClass: \"upload-picker__cancel\", attrs: { type: \"tertiary\", \"aria-label\": s.cancelLabel, \"data-cy-upload-picker-cancel\": \"\" }, on: { click: s.onCancel }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n    return [t(\"Cancel\", { attrs: { title: \"\", size: 20 } })];\n  }, proxy: !0 }], null, !1, 4076886712) }) : s._e(), t(\"input\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !1, expression: \"false\" }], ref: \"input\", attrs: { type: \"file\", accept: s.accept?.join?.(\", \"), multiple: s.multiple, \"data-cy-upload-picker-input\": \"\" }, on: { change: s.onPick } })], 1) : s._e();\n}, vs = [], Cs = /* @__PURE__ */ y(\n  Ls,\n  ks,\n  vs,\n  !1,\n  null,\n  \"eca9500a\",\n  null,\n  null\n);\nconst Ys = Cs.exports;\nlet k = null;\nfunction M() {\n  const e = document.querySelector('input[name=\"isPublic\"][value=\"1\"]') !== null;\n  return k instanceof N || (k = new N(e)), k;\n}\nfunction Vs(e, s) {\n  const t = M();\n  return t.upload(e, s), t;\n}\nasync function ys(e, s, t) {\n  const n = $(() => import(\"./ConflictPicker-Bif6rCp6.mjs\"));\n  return new Promise((i, o) => {\n    const l = new E({\n      name: \"ConflictPickerRoot\",\n      render: (f) => f(n, {\n        props: {\n          dirname: e,\n          conflicts: s,\n          content: t\n        },\n        on: {\n          submit(r) {\n            i(r), l.$destroy(), l.$el?.parentNode?.removeChild(l.$el);\n          },\n          cancel(r) {\n            o(r ?? new Error(\"Canceled\")), l.$destroy(), l.$el?.parentNode?.removeChild(l.$el);\n          }\n        }\n      })\n    });\n    l.$mount(), document.body.appendChild(l.$el);\n  });\n}\nfunction Us(e, s) {\n  const t = s.map((i) => i.basename);\n  return e.filter((i) => {\n    const o = i instanceof File ? i.name : i.basename;\n    return t.indexOf(o) !== -1;\n  }).length > 0;\n}\nexport {\n  I as S,\n  Ys as U,\n  Gs as a,\n  ns as b,\n  c,\n  M as g,\n  Us as h,\n  g as l,\n  y as n,\n  ys as o,\n  u as t,\n  Vs as u\n};\n","const R = (n, e) => u(n, \"\", e), g = (n) => \"/remote.php/\" + n, U = (n, e) => {\n  var o;\n  return ((o = e == null ? void 0 : e.baseURL) != null ? o : w()) + g(n);\n}, v = (n, e, o) => {\n  var c;\n  const i = Object.assign({\n    ocsVersion: 2\n  }, o || {}).ocsVersion === 1 ? 1 : 2;\n  return ((c = o == null ? void 0 : o.baseURL) != null ? c : w()) + \"/ocs/v\" + i + \".php\" + d(n, e, o);\n}, d = (n, e, o) => {\n  const c = Object.assign({\n    escape: !0\n  }, o || {}), s = function(i, r) {\n    return r = r || {}, i.replace(\n      /{([^{}]*)}/g,\n      function(l, t) {\n        const a = r[t];\n        return c.escape ? encodeURIComponent(typeof a == \"string\" || typeof a == \"number\" ? a.toString() : l) : typeof a == \"string\" || typeof a == \"number\" ? a.toString() : l;\n      }\n    );\n  };\n  return n.charAt(0) !== \"/\" && (n = \"/\" + n), s(n, e || {});\n}, _ = (n, e, o) => {\n  var c, s, i;\n  const r = Object.assign({\n    noRewrite: !1\n  }, o || {}), l = (c = o == null ? void 0 : o.baseURL) != null ? c : f();\n  return ((i = (s = window == null ? void 0 : window.OC) == null ? void 0 : s.config) == null ? void 0 : i.modRewriteWorking) === !0 && !r.noRewrite ? l + d(n, e, o) : l + \"/index.php\" + d(n, e, o);\n}, h = (n, e) => e.indexOf(\".\") === -1 ? u(n, \"img\", e + \".svg\") : u(n, \"img\", e), u = (n, e, o) => {\n  var c, s, i;\n  const r = (i = (s = (c = window == null ? void 0 : window.OC) == null ? void 0 : c.coreApps) == null ? void 0 : s.includes(n)) != null ? i : !1, l = o.slice(-3) === \"php\";\n  let t = f();\n  return l && !r ? (t += \"/index.php/apps/\".concat(n), e && (t += \"/\".concat(encodeURI(e))), o !== \"index.php\" && (t += \"/\".concat(o))) : !l && !r ? (t = b(n), e && (t += \"/\".concat(e, \"/\")), t.at(-1) !== \"/\" && (t += \"/\"), t += o) : ((n === \"settings\" || n === \"core\" || n === \"search\") && e === \"ajax\" && (t += \"/index.php\"), n && (t += \"/\".concat(n)), e && (t += \"/\".concat(e)), t += \"/\".concat(o)), t;\n}, w = () => window.location.protocol + \"//\" + window.location.host + f();\nfunction f() {\n  let n = window._oc_webroot;\n  if (typeof n > \"u\") {\n    n = location.pathname;\n    const e = n.indexOf(\"/index.php/\");\n    if (e !== -1)\n      n = n.slice(0, e);\n    else {\n      const o = n.indexOf(\"/\", 1);\n      n = n.slice(0, o > 0 ? o : void 0);\n    }\n  }\n  return n;\n}\nfunction b(n) {\n  var e, o;\n  return (o = ((e = window._oc_appswebroots) != null ? e : {})[n]) != null ? o : \"\";\n}\nexport {\n  u as generateFilePath,\n  v as generateOcsUrl,\n  U as generateRemoteUrl,\n  _ as generateUrl,\n  b as getAppRootUrl,\n  w as getBaseUrl,\n  f as getRootUrl,\n  h as imagePath,\n  R as linkTo\n};\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n} = axios;\n\nexport {\n  axios as default,\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1110\":\"2909496e7e35d6258214\",\"5929\":\"2e5e3b59f8a28f14168b\",\"6075\":\"f8e1d39004c19c13e598\",\"8902\":\"bb2f9be8a039f8db7e58\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1171;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1171: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(40586)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","has","Object","prototype","hasOwnProperty","prefix","Events","EE","fn","context","once","this","addListener","emitter","event","TypeError","listener","evt","_events","push","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","call","slice","getOwnPropertySymbols","concat","listeners","handlers","i","l","length","ee","Array","listenerCount","emit","a1","a2","a3","a4","a5","args","len","arguments","removeListener","undefined","apply","j","on","removeAllListeners","off","prefixed","module","exports","getLoggerBuilder","setApp","detectUser","build","canUnshareOnly","nodes","every","node","attributes","canDisconnectOnly","queue","PQueue","concurrency","action","FileAction","id","displayName","view","t","hasSharedItems","some","hasDeleteItems","isMixedUnshareAndDelete","type","FileType","File","isAllFiles","Folder","isAllFolders","iconSvgInline","enabled","map","permissions","permission","Permission","DELETE","exec","dir","axios","delete","encodedSource","error","logger","source","execBatch","promises","Promise","resolve","add","async","result","all","order","triggerDownload","url","hiddenElement","document","createElement","download","href","click","downloadNodes","secret","Math","random","toString","substring","generateUrl","files","JSON","stringify","basename","isDownloadable","READ","_node$attributes$shar","_shareAttributes$find","shareAttributes","parse","downloadAttribute","find","attribute","scope","key","_node$root","root","startsWith","fill","UPDATE","path","link","generateOcsUrl","_getCurrentUser","post","uid","getCurrentUser","window","location","host","encodePath","data","ocs","token","showError","openLocalClient","shouldFavorite","favorite","favoriteNode","willFavorite","tags","OC","TAG_FAVORITE","dirname","Vue","StarSvg","_node$root$startsWith","NONE","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","MoveCopyAction","canMove","reduce","min","ALL","canCopy","_node$attributes","canDownload","rootPath","defaultRootUrl","generateRemoteUrl","getClient","rootUrl","client","createClient","setHeaders","requesttoken","onRequestTokenUpdate","getRequestToken","getPatcher","patch","headers","method","fetch","hashCode","str","hash","charCodeAt","resultToNode","userId","Error","props","davParsePermissions","owner","String","filename","nodeData","fileid","mtime","Date","lastmod","mime","size","hasPreview","failed","getContents","controller","AbortController","propfindPayload","davGetDefaultPropfind","CancelablePromise","reject","onCancel","abort","contentsResponse","getDirectoryContents","details","includeSelf","signal","contents","folder","filter","Boolean","getActionForNodes","MOVE_OR_COPY","MOVE","COPY","handleCopyMoveNodeTo","destination","overwrite","NodeStatus","LOADING","copySuffix","index","davGetClient","currentPath","join","davRootPath","destinationPath","target","otherNodes","getUniqueName","n","suffix","ignoreFileExtension","copyFile","stat","davResultToNode","hasConflict","selected","renamed","openConflictPicker","deleteFile","moveFile","AxiosError","_error$response","_error$response2","_error$response3","response","status","message","debug","openFilePickerForAction","fileIDs","filePicker","getFilePickerBuilder","allowDirectories","setFilter","includes","setMimeTypeFilter","setMultiSelect","startAt","setButtonFactory","selection","buttons","dirnames","paths","label","escape","sanitize","icon","CopyIconSvg","callback","FolderMoveSvg","pick","catch","FilePickerClosed","e","FolderSvg","isDavRessource","OCP","Files","Router","goToRoute","default","DefaultType","HIDDEN","openfile","InformationSvg","_window","_ref","_nodes$0$root","OCA","Sidebar","open","query","defineComponent","components","NcButton","NcDialog","NcTextField","defaultName","otherNames","emits","close","localDefaultName","computed","errorMessage","isUniqueName","uniqueName","watch","$nextTick","focusInput","mounted","methods","_this$$refs$input","_this$$refs$input$foc","$refs","input","focus","onCreate","$emit","onClose","state","_vm","_c","_self","_setupProxy","attrs","scopedSlots","_u","_v","_s","proxy","$event","preventDefault","ref","newNodeName","folderContent","labels","contentNames","spawnDialog","NewNodeDialog","folderName","entry","CREATE","handler","content","_getCurrentUser2","_context$attributes","_context$attributes2","_context$attributes3","encodeURIComponent","Overwrite","parseInt","createNewFolder","showSuccess","templatesPath","loadState","directory","templatePath","copySystemTemplates","info","templates_path","initTemplatesFolder","removeNewFileMenuEntry","TemplatePickerVue","defineAsyncComponent","TemplatePicker","getTemplatePicker","mountingPoint","body","appendChild","render","h","parent","picker","el","_rootResponse","reportPayload","davGetFavoritesReport","rootResponse","generateFavoriteFolderView","View","generateIdFromPath","params","columns","activePinia","setActivePinia","pinia","piniaSymbol","Symbol","isPlainObject","o","toJSON","MutationType","IS_CLIENT","USE_DEVTOOLS","__VUE_PROD_DEVTOOLS__","_global","self","global","globalThis","HTMLElement","opts","xhr","XMLHttpRequest","responseType","onload","saveAs","onerror","console","send","corsEnabled","dispatchEvent","MouseEvent","createEvent","initMouseEvent","_navigator","navigator","userAgent","isMacOSWebView","test","HTMLAnchorElement","blob","a","rel","origin","URL","createObjectURL","setTimeout","revokeObjectURL","msSaveOrOpenBlob","autoBom","Blob","fromCharCode","bom","popup","title","innerText","force","isSafari","isChromeIOS","FileReader","reader","onloadend","replace","assign","readAsDataURL","toastMessage","piniaMessage","__VUE_DEVTOOLS_TOAST__","warn","log","isPinia","checkClipboardAccess","checkNotFocusedError","toLowerCase","fileInput","loadStoresState","storeState","value","formatDisplay","display","_custom","PINIA_ROOT_LABEL","PINIA_ROOT_ID","formatStoreForInspectorTree","store","$id","formatEventData","isArray","keys","operations","oldValue","newValue","operation","formatMutationType","direct","patchFunction","patchObject","isTimelineActive","componentStateTypes","MUTATIONS_LAYER_ID","INSPECTOR_ID","assign$1","getStoreType","registerPiniaDevtools","app","logo","packageName","homepage","api","now","addTimelineLayer","color","addInspector","treeFilterPlaceholder","actions","clipboard","writeText","actionGlobalCopyState","tooltip","readText","actionGlobalPasteState","sendInspectorTree","sendInspectorState","actionGlobalSaveState","accept","onchange","file","item","text","oncancel","actionGlobalOpenStateFile","nodeActions","nodeId","get","$reset","inspectComponent","payload","ctx","componentInstance","_pStores","piniaStores","values","forEach","instanceData","editable","_isOptionsAPI","$state","_getters","getters","getInspectorTree","inspectorId","stores","from","rootNodes","getInspectorState","inspectedStore","storeNames","storeMap","storeId","getterName","_customProperties","customProperties","formatStoreForInspectorState","editInspectorState","unshift","set","editComponentState","activeAction","runningActionId","patchActionForGrouping","actionNames","wrapWithProxy","storeActions","actionName","_actionId","trackedStore","Proxy","Reflect","retValue","devtoolsPlugin","originalHotUpdate","_hotUpdate","newStore","_hmrPayload","settings","logStoreChanges","defaultValue","bind","$onAction","after","onError","groupId","addTimelineEvent","layerId","time","subtitle","logType","notifyComponentUpdate","deep","$subscribe","eventData","detached","flush","hotUpdate","$dispose","getSettings","addStoreToDevtools","noop","addSubscription","subscriptions","onCleanup","removeSubscription","idx","indexOf","splice","triggerSubscriptions","fallbackRunWithContext","mergeReactiveObjects","patchToApply","Map","Set","subPatch","targetValue","skipHydrateSymbol","skipHydrateMap","WeakMap","createSetupStore","setup","hot","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","debuggerEvents","actionSubscriptions","initialState","hotState","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","then","newState","wrapAction","afterCallbackList","onErrorCallbackList","ret","partialStore","_p","stopWatcher","run","stop","_r","setupStore","_a","runWithContext","_e","prop","effect","obj","actionValue","defineProperty","nonEnumerable","writable","configurable","enumerable","p","extender","extensions","hydrate","userConfig","show_hidden","crop_image_previews","sort_favorites_first","sort_folders_first","grid_view","toBeInstalled","install","provide","config","globalProperties","$pinia","plugin","use","createPinia","lastTwoWeeksTimestamp","round","registerFileAction","deleteAction","downloadAction","editLocallyAction","favoriteAction","moveOrCopyAction","openFolderAction","openInFilesAction","renameAction","sidebarAction","viewInFolderAction","addNewFileMenuEntry","newFolderEntry","newTemplatesFolder","provider","iconClass","templatePicker","extension","favoriteFolders","favoriteFoldersViews","Navigation","getNavigation","register","caption","emptyTitle","emptyCaption","subscribe","addToFavorites","_node$root2","removePathFromFavorites","updateNodeFromFavorites","updateAndSortViews","sort","b","localeCompare","getLanguage","ignorePunctuation","newFavoriteFolder","findIndex","remove","favoriteFolder","registerFavoritesView","defaultSortKey","userConfigStore","idOrOptions","setupOptions","isSetupStore","useStore","hasContext","localState","computedGetters","createOptionsStore","defineStore","onUpdate","update","put","_initialized","useUserConfigStore","davGetRecentSearch","davRemoteURL","r","split","addEventListener","noRewrite","registration","serviceWorker","registerDavProperty","nc","newName","ext","extname","base","encodeFilePath","pathSections","relativePath","section","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","def","x","d","RC","max","autostart","ignoreSameProgress","rate","lastTimestamp","lastProgress","historyTimeConstant","previousOutput","dt","start","report","progress","timestamp","deltaTimestamp","currentRate","reset","estimate","Infinity","estimatedTime","user","setUid","NewFileMenu","_entries","registerEntry","validateEntry","category","unregisterEntry","entryIndex","getEntryIndex","entries","getEntries","getNewFileMenu","_nc_newfilemenu","DefaultType2","_action","constructor","validateAction","inline","renderInline","_nc_fileactions","search","Permission2","defaultDavProperties","defaultDavNamespaces","oc","namespace","_nc_dav_properties","_nc_dav_namespaces","namespaces","getDavProperties","getDavNameSpaces","ns","lastModified","permString","SHARE","FileType2","davService","match","validateData","crtime","service","NodeStatus2","Node","_data","_attributes","_knownDavService","readonlyAttributes","getOwnPropertyDescriptors","updateMtime","deleteProperty","receiver","pop","firstMatch","pathname","move","rename","basename2","super","remoteURL","headers2","getFavoriteNodes","davClient","davRoot","filesRoot","isPublic","querySelector","Number","getcontentlength","_oc_config","blacklist_files_regex","RegExp","humanList","humanListBinary","formatFileSize","skipSmallSizes","binaryPrefixes","base1000","floor","readableFormat","relativeSize","pow","toFixed","parseFloat","toLocaleString","_views","_currentView","views","setActive","active","_nc_navigation","Column","_column","column","isValidColumn","summary","validator$2","util$3","nameStartChar","nameRegexp","regexName","isExist","v","isEmptyObject","merge","arrayMode","getValue","isName","string","getAllMatches","regex","matches","allmatches","startIndex","lastIndex","util$2","defaultOptions$2","allowBooleanAttributes","unpairedTags","isWhiteSpace","char","readPI","xmlData","tagname","substr","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","trim","msg","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","openPos","col","afterAmp","validateAmpersand","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re","validateNumberAmpersand","count","lineNumber","lines","OptionsBuilder","defaultOptions$1","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","val2","attributeValueProcessor","stopNodes","alwaysCreateTextNode","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","jPath","buildOptions","defaultOptions","util$1","readEntityExp","entityName2","isComment","isEntity","isElement","isAttlist","isNotation","validateEntityName","hexRegex","numRegex","consider","decimalPoint","util","xmlNode","child","addChild","readDocType","entities","hasBody","comment","exp","entityName","val","regx","toNumber","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","num","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","charAt","attrsRegx","buildAttributesMap","oldVal","aName","newVal","attrCollection","parseXml","xmlObj","currentNode","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","lastIndexOf","propIndex","tagsNodeStack","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","docTypeEntities","rawTagName","lastTag","isItStopNode","tagContent","result2","readStopNodeData","replaceEntitiesValue$1","entity","ampEntity","currentTagName","allNodesExp","stopNodePath","stopNodeExp","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","node2json","compress","arr","compressedObj","tagObj","property","propName$1","newJpath","isLeaf","isLeafTag","assignAttributes","attrMap","jpath","atrrName","propCount","prettify","OrderedObjParser2","_","validator$1","arrToStr","indentation","xmlStr","isPreviousElementTag","propName","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","endsWith","attr","attrVal","suppressBooleanAttributes","textValue","buildFromOrderedJs","jArray","format","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","level","j2x","buildTextValNode","buildObjectNode","repeat","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","Ks","L","closeTag","tagEndExp","piClosingChar","fxp","XMLParser","validationOption","orderedObjParser","orderedResult","addEntity","XMLValidator","XMLBuilder","_view","isValidView","emptyView","sticky","expanded","jsonObject","parser","isSvg","getNewFileMenuEntries","numeric","sensitivity","CancelError","reason","isCanceled","promiseState","freeze","pending","canceled","resolved","rejected","PCancelable","userFunction","arguments_","executor","description","defineProperties","shouldReject","boolean","onFulfilled","onRejected","onFinally","finally","cancel","setPrototypeOf","TimeoutError","AbortError","getDOMException","DOMException","getAbortedReason","PriorityQueue","enqueue","element","priority","array","comparator","first","step","trunc","it","lowerBound","dequeue","shift","timeout","carryoverConcurrencyCount","intervalCap","POSITIVE_INFINITY","interval","autoStart","queueClass","isFinite","throwOnTimeout","delay","clearInterval","canInitializeInterval","job","setInterval","newConcurrency","_resolve","function_","throwIfAborted","promise","milliseconds","fallback","customTimers","clearTimeout","timer","cancelablePromise","aborted","timeoutError","clear","pTimeout","race","addAll","functions","pause","onEmpty","onSizeLessThan","limit","onIdle","sizeBy","isPaused","A","s","Destination","request","onUploadProgress","B","appConfig","max_chunk_size","ceil","c","INITIALIZED","UPLOADING","ASSEMBLING","FINISHED","CANCELLED","FAILED","_source","_file","_isChunked","_chunks","_size","_uploaded","_startTime","_status","_controller","_response","isChunked","chunks","startTime","uploaded","getTime","g","I","IDLE","PAUSED","N","_destinationFolder","_isPublic","_uploadQueue","_jobQueue","_queueSize","_queueProgress","_queueStatus","_notifiers","maxChunksSize","updateStats","addNotifier","upload","f","T","U","m","bytes","ts","w","D","W","O","y","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","S","beforeCreate","ms","fillColor","_b","staticClass","role","$attrs","width","height","viewBox","fs","xs","R","detectLocale","locale","json","charset","Language","translations","msgid","comments","translator","msgstr","Add","paused","msgid_plural","extracted","Cancel","Continue","New","addTranslation","C","Gs","ngettext","u","gettext","Ls","extend","NcActionButton","NcActions","NcIconSvgWrapper","NcProgressBar","Plus","Upload","disabled","multiple","forbiddenCharacters","addLabel","cancelLabel","uploadLabel","progressLabel","progressTimeId","eta","timeLeft","newFileMenuEntries","uploadManager","M","totalQueueSize","uploadedQueueSize","hasFailure","isUploading","isAssembling","buttonName","setDestination","updateStatus","beforeMount","onUploadCompletion","onClick","onPick","Us","ys","form","setSeconds","toISOString","seconds","class","decorative","_l","svg","directives","rawName","expression","change","k","conflicts","submit","$destroy","$el","parentNode","removeChild","$mount","baseURL","modRewriteWorking","protocol","_oc_webroot","Axios","CanceledError","isCancel","CancelToken","VERSION","isAxiosError","spread","toFormData","AxiosHeaders","HttpStatusCode","formToJSON","getAdapter","mergeConfig","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","notFulfilled","fulfilled","getter","__esModule","definition","chunkId","Function","done","script","needAttach","scripts","getElementsByTagName","getAttribute","setAttribute","src","onScriptComplete","prev","doneFns","head","toStringTag","nmd","children","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file