, 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=>T.addTranslation(e.locale,e.json));const F=T.build(),L=F.ngettext.bind(F),B=F.gettext.bind(F);class E extends Error{constructor(e){super(B("Upload has been cancelled"),{cause:e})}}const N=(0,p.YK)().setApp("@nextcloud/upload").detectUser().build();async function U(e,t,s){const n={headers:{},onUploadProgress:()=>{},onUploadRetry:()=>{},retries:5,...s};let i;return i=t instanceof Blob?t:await t(),n.destinationFile&&(n.headers.Destination=n.destinationFile),n.headers["Content-Type"]||(n.headers["Content-Type"]="application/octet-stream"),await d.Ay.request({method:"PUT",url:e,data:i,signal:n.signal,onUploadProgress:n.onUploadProgress,headers:n.headers,"axios-retry":{retries:n.retries,retryDelay:(e,t)=>(0,f.Nv)(e,t,1e3),retryCondition:e=>507!==e.status&&(423===e.status||(0,f.Gp)(e)),onRetry:n.onUploadRetry}})}(0,f.Ay)(d.Ay,{retries:0});const P=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"}))},I=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 D=(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))(D||{});class z{_source;_file;_isChunked;_chunks;_size;_uploaded=0;_startTime=0;_status=0;_controller;_response=null;constructor(e,t=!1,s,n){const i=Math.min(I()>0?Math.ceil(s/I()):1,1e4);this._source=e,this._isChunked=t&&I()>0&&i>1,this._chunks=this._isChunked?i: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 j=e=>"FileSystemFileEntry"in window&&e instanceof FileSystemFileEntry,V=e=>"FileSystemEntry"in window&&e instanceof FileSystemEntry;class M extends File{_originalName;_path;_children;constructor(e){super([],(0,o.P8)(e),{type:"httpd/unix-directory",lastModified:0}),this._children=new Map,this._originalName=(0,o.P8)(e),this._path=e}get size(){return this.children.reduce((e,t)=>e+t.size,0)}get lastModified(){return this.children.reduce((e,t)=>Math.max(e,t.lastModified),0)}get originalName(){return this._originalName}get children(){return Array.from(this._children.values())}get webkitRelativePath(){return this._path}getChild(e){return this._children.get(e)??null}async addChildren(e){for(const t of e)await this.addChild(t)}async addChild(e){const t=this._path&&`${this._path}/`;if(j(e))e=await new Promise((t,s)=>e.file(t,s));else if("FileSystemDirectoryEntry"in window&&e instanceof FileSystemDirectoryEntry){const s=e.createReader(),n=await new Promise((e,t)=>s.readEntries(e,t)),i=new M(`${t}${e.name}`);return await i.addChildren(n),void this._children.set(e.name,i)}const s=e.webkitRelativePath??e.name;if(s.includes("/")){if(!s.startsWith(this._path))throw new Error(`File ${s} is not a child of ${this._path}`);const n=s.slice(t.length),i=(0,o.P8)(n);if(i===n)this._children.set(i,e);else{const s=n.slice(0,n.indexOf("/"));if(this._children.has(s))await this._children.get(s).addChild(e);else{const n=new M(`${t}${s}`);await n.addChild(e),this._children.set(s,n)}}}else this._children.set(e.name,e)}}class R extends h.m{_done=0;_total=0;_progress=0;_status=0;_startTime=-1;_elapsedTime=0;_speed=-1;_eta=1/0;_cutoffTime=2.5;constructor(e={}){super(),e.start&&this.resume(),e.total&&this.update(0,e.total),this._cutoffTime=e.cutoffTime??2.5}add(e){this.update(this._done+e)}update(e,t){if(2!==this.status)return;t&&t>0&&(this._total=t);const s=e-this._done,n=(Date.now()-this._startTime)/1e3;this._startTime=Date.now(),this._elapsedTime+=n,this._done=e,this._progress=this._done/this._total;const i=this._cutoffTime+n;if(this._elapsedTime>i){const e=n/(n+1/this._cutoffTime),t=this._done-s+(1-e)*s;this._speed=Math.round(t/this._elapsedTime)}else if(-1===this._speed&&this._elapsedTime>n){const t=(this._total-e)/(e/this._elapsedTime);(this._eta!==1/0||t<=2*this._cutoffTime)&&(this._eta=t)}this._speed>0&&(this._eta=Math.round((this._total-this._done)/this._speed)),this.dispatchTypedEvent("update",new CustomEvent("update",{cancelable:!1}))}reset(){this._done=0,this._total=0,this._progress=0,this._elapsedTime=0,this._eta=1/0,this._speed=-1,this._startTime=-1,this._status=0,this.dispatchTypedEvent("reset",new CustomEvent("reset"))}pause(){2===this._status&&(this._status=1,this._elapsedTime+=(Date.now()-this._startTime)/1e3,this.dispatchTypedEvent("pause",new CustomEvent("pause")))}resume(){2!==this._status&&(this._startTime=Date.now(),this._status=2,this.dispatchTypedEvent("resume",new CustomEvent("resume")))}get status(){return this._status}get progress(){return Math.round(1e4*this._progress)/100}get time(){return this._eta}get timeReadable(){if(this._eta===1/0)return B("estimating time left");if(this._eta<10)return B("a few seconds left");if(this._eta<60)return L("{seconds} seconds left","{seconds} seconds left",this._eta,{seconds:this._eta});const e=String(Math.floor(this._eta/3600)).padStart(2,"0"),t=String(Math.floor(this._eta%3600/60)).padStart(2,"0"),s=String(this._eta%60).padStart(2,"0");return B("{time} left",{time:`${e}:${t}:${s}`})}get speed(){return this._speed}get speedReadable(){return this._speed>0?`${(0,a.v7)(this._speed,!0)}∕s`:""}}var H=(e=>(e[e.IDLE=0]="IDLE",e[e.UPLOADING=1]="UPLOADING",e[e.PAUSED=2]="PAUSED",e))(H||{});class W{_destinationFolder;_isPublic;_customHeaders;_uploadQueue=[];_jobQueue=new m.A({concurrency:(0,l.F)().files?.chunked_upload?.max_parallel_count??5});_queueSize=0;_queueProgress=0;_queueStatus=0;_eta=new R;_notifiers=[];constructor(e=!1,t){if(this._isPublic=e,this._customHeaders={},!t){const s=`${a.PY}${a.lJ}`;let n;if(e)n="anonymous";else{const e=(0,i.HW)()?.uid;if(!e)throw new Error("User is not logged in");n=e}t=new a.vd({id:0,owner:n,permissions:a.aX.ALL,root:a.lJ,source:s})}this.destination=t,N.debug("Upload workspace initialized",{destination:this.destination,root:this.root,isPublic:e,maxChunksSize:I()})}get destination(){return this._destinationFolder}set destination(e){if(!e||e.type!==a.pt.Folder||!e.source)throw new Error("Invalid destination folder");N.debug("Destination set",{folder:e}),this._destinationFolder=e}get root(){return this._destinationFolder.source}get customHeaders(){return structuredClone(this._customHeaders)}setCustomHeader(e,t=""){this._customHeaders[e]=t}deleteCustomerHeader(e){delete this._customHeaders[e]}get queue(){return this._uploadQueue}reset(){this._eta.reset(),0===this._uploadQueue.length&&0===this._jobQueue.size||(this._uploadQueue.splice(0,this._uploadQueue.length),this._jobQueue.clear(),this._queueSize=0,this._queueProgress=0,this._queueStatus=0,N.debug("Uploader state reset"))}pause(){this._eta.pause(),this._jobQueue.pause(),this._queueStatus=2,this.updateStats(),N.debug("Uploader paused")}start(){this._eta.resume(),this._jobQueue.start(),this._queueStatus=1,this.updateStats(),N.debug("Uploader resumed")}get eta(){return this._eta}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);if(this._eta.update(t,e),this._queueSize=e,this._queueProgress=t,2!==this._queueStatus){const e=this._uploadQueue.find(({status:e})=>[D.INITIALIZED,D.UPLOADING,D.ASSEMBLING].includes(e));this._jobQueue.size>0||e?this._queueStatus=1:(this.eta.reset(),this._queueStatus=0)}}addNotifier(e){this._notifiers.push(e)}_notifyAll(e){for(const t of this._notifiers)try{t(e)}catch(t){N.warn("Error in upload notifier",{error:t,source:e.source})}}batchUpload(e,t,s){return s||(s=async e=>e),new c.A(async(n,i,o)=>{const r=new M("");await r.addChildren(t);const l=`${this.root.replace(/\/$/,"")}/${e.replace(/^\//,"")}`,c=new z(l,!1,0,r);c.status=D.UPLOADING,this._uploadQueue.push(c),N.debug("Starting new batch upload",{target:l});try{const t=(0,a.H4)(this.root,this._customHeaders),i=this.uploadDirectory(e,r,s,t);o(()=>i.cancel());const l=await i;c.status=D.FINISHED,n(l)}catch(e){(0,d.FZ)(e)||e instanceof E?(N.info("Upload cancelled by user",{error:e}),c.status=D.CANCELLED,i(new E(e))):(N.error("Error in batch upload",{error:e}),c.status=D.FAILED,i(e))}finally{this._notifyAll(c),this.updateStats()}})}createDirectory(e,t,s){const n=(0,r.normalize)(`${e}/${t.name}`).replace(/\/$/,""),i=`${this.root.replace(/\/$/,"")}/${n.replace(/^\//,"")}`;if(!t.name)throw new Error("Can not create empty directory");const a=new z(i,!1,0,t);return this._uploadQueue.push(a),new c.A(async(e,i,o)=>{const r=new AbortController;o(()=>r.abort()),a.signal.addEventListener("abort",()=>i(B("Upload has been cancelled"))),await this._jobQueue.add(async()=>{a.status=D.UPLOADING;try{await s.createDirectory(n,{signal:r.signal}),e(a)}catch(s){(0,d.FZ)(s)||s instanceof E?(a.status=D.CANCELLED,i(new E(s))):s&&"object"==typeof s&&"status"in s&&405===s.status?(N.debug("Directory already exists, writing into it",{directory:t.name}),a.status=D.FINISHED,e(a)):(a.status=D.FAILED,i(s))}finally{this._notifyAll(a),this.updateStats()}})})}uploadDirectory(e,t,s,n){const i=(0,r.normalize)(`${e}/${t.name}`).replace(/\/$/,"");return new c.A(async(a,o,r)=>{const l=new AbortController;r(()=>l.abort());const d=await s(t.children,i);if(!1===d)return N.debug("Upload canceled by user",{directory:t}),void o(new E("Conflict resolution cancelled by user"));if(0===d.length&&t.children.length>0)return N.debug("Skipping directory, as all files were skipped by user",{directory:t}),void a([]);const c=[],m=[];l.signal.addEventListener("abort",()=>{c.forEach(e=>e.cancel()),m.forEach(e=>e.cancel())}),N.debug("Start directory upload",{directory:t});try{t.name&&(m.push(this.createDirectory(e,t,n)),await m.at(-1));for(const e of d)e instanceof M?c.push(this.uploadDirectory(i,e,s,n)):m.push(this.upload(`${i}/${e.name}`,e));a([await Promise.all(m),...await Promise.all(c)].flat())}catch(e){l.abort(e),o(e)}})}upload(e,t,s,a=5){const r=`${(s=s||this.root).replace(/\/$/,"")}/${e.replace(/^\//,"")}`,{origin:m}=new URL(r),u=m+(0,o.O0)(r.slice(m.length));return this.eta.resume(),N.debug(`Uploading ${t.name} to ${u}`),new c.A(async(e,s,o)=>{j(t)&&(t=await new Promise(e=>t.file(e,s)));const c=t,m=(0,l.F)().dav?.public_shares_chunking??!1,p=I("size"in c?c.size:void 0),h=this._isPublic&&!m||0===p||"size"in c&&c.size{try{A.response=await U(u,t,{signal:A.signal,onUploadProgress:({bytes:e})=>{A.uploaded+=.9*e,this.updateStats()},onUploadRetry:()=>{A.uploaded=0,this.updateStats()},headers:{...this._customHeaders,...this._mtimeHeader(c),"Content-Type":c.type}}),A.uploaded=A.size,this.updateStats(),N.debug(`Successfully uploaded ${c.name}`,{file:c,upload:A}),e(A)}catch(e){if((0,d.FZ)(e)||e instanceof E)return A.status=D.CANCELLED,void s(new E(e));e?.response&&(A.response=e.response),A.status=D.FAILED,N.error(`Failed uploading ${c.name}`,{error:e,file:c,upload:A}),s(B("Failed to upload the file"))}this._notifyAll(A)};this._jobQueue.add(n),this.updateStats()}else{N.debug("Initializing chunked upload",{file:c,upload:A});const t=await async function(e,t=5,s=!1){let a;a=s?`${(0,g.$_)()}/public.php/dav/uploads/${(0,n.G)()}`:(0,g.dC)(`dav/uploads/${(0,i.HW)()?.uid}`);const o=`${a}/web-file-upload-${[...Array(16)].map(()=>Math.floor(16*Math.random()).toString(16)).join("")}`,r=e?{Destination:e}:void 0;return await d.Ay.request({method:"MKCOL",url:o,headers:r,"axios-retry":{retries:t,retryDelay:(e,t)=>(0,f.Nv)(e,t,1e3)}}),N.debug("Created temporary upload workspace",{url:o}),o}(u,a,this._isPublic),o=[];for(let e=0;eP(c,s,p),r=()=>{let o=0;return U(`${t}/${e+1}`,i,{signal:A.signal,destinationFile:u,retries:a,onUploadProgress:({bytes:e})=>{const t=.9*e;o+=t,A.uploaded+=t,this.updateStats()},onUploadRetry:()=>{A.uploaded-=o,o=0,this.updateStats()},headers:{...this._customHeaders,...this._mtimeHeader(c),"OC-Total-Length":c.size,"Content-Type":"application/octet-stream"}}).then(()=>{A.uploaded+=n-s-o,this.updateStats()}).catch(t=>{if(507===t?.response?.status)throw N.error("Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks",{error:t,upload:A}),A.cancel(),A.status=D.FAILED,t;throw(0,d.FZ)(t)||(N.error(`Chunk ${e+1} ${s} - ${n} uploading failed`,{error:t,upload:A}),A.cancel(),A.status=D.FAILED),t})};o.push(this._jobQueue.add(r))}const r=async()=>{try{await Promise.all(o),A.status=D.ASSEMBLING,this.updateStats(),A.response=await d.Ay.request({method:"MOVE",url:`${t}/.file`,headers:{...this._customHeaders,...this._mtimeHeader(c),"OC-Total-Length":c.size,Destination:u}}),A.status=D.FINISHED,this.updateStats(),N.debug(`Successfully uploaded ${c.name}`,{file:c,upload:A}),e(A)}catch(e){(0,d.FZ)(e)||e instanceof E?(A.status=D.CANCELLED,s(new E(e))):(A.status=D.FAILED,s(B("Failed to assemble the chunks together"))),d.Ay.request({method:"DELETE",url:`${t}`})}finally{this._notifyAll(A)}};this._jobQueue.add(r)}return this._jobQueue.onIdle().then(()=>this.reset()),A})}_mtimeHeader(e){const t=Math.floor(e.lastModified/1e3);return t>0?{"X-OC-Mtime":t}:{}}}function G(e=(0,n.f)(),t=!1){return(t||void 0===window._nc_uploader)&&(window._nc_uploader=new W(e)),window._nc_uploader}function O(e,t){return q(e,t).length>0}function q(e,t){const s=t.map(e=>e.basename);return e.filter(e=>{const t="basename"in e?e.basename:e.name;return-1!==s.indexOf(t)})}async function $(e,t,n,i){const a=(0,A.$V)(()=>Promise.all([s.e(4208),s.e(9107)]).then(s.bind(s,99107)));return new Promise((s,o)=>{const r=new A.Ay({name:"ConflictPickerRoot",render:l=>l(a,{props:{dirname:e,conflicts:t,content:n,recursiveUpload:!0===i?.recursive},on:{submit(e){s(e),r.$destroy(),r.$el?.parentNode?.removeChild(r.$el)},cancel(e){o(e??new Error("Canceled")),r.$destroy(),r.$el?.parentNode?.removeChild(r.$el)}}})});r.$mount(),document.body.appendChild(r.$el)})}function Y(e){const t=(0,A.$V)(()=>Promise.all([s.e(4208),s.e(6590)]).then(s.bind(s,11352))),{promise:n,reject:i,resolve:o}=Promise.withResolvers();return(0,v.Ss)(t,{error:e,validateFilename:a.KT},(...e)=>{const[{skip:t,rename:s}]=e;t?o(!1):s?o(s):i()}),n}function K(e,t,s,n,i,a,o,r){var l="function"==typeof e?e.options:e;return t&&(l.render=t,l.staticRenderFns=s,l._compiled=!0),a&&(l._scopeId="data-v-"+a),{exports:e,options:l}}const X=K({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:"true","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()])])])},[],0,0,null).exports,J=K({name:"FolderUploadIcon",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 folder-upload-icon",attrs:{"aria-hidden":e.title?null:"true","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:"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},[],0,0,null).exports,Q=K({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:"true","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()])])])},[],0,0,null).exports,Z=K({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:"true","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()])])])},[],0,0,null).exports,ee=K((0,A.pM)({name:"UploadPicker",components:{IconCancel:X,IconFolderUpload:J,IconPlus:Q,IconUpload:Z,NcActionButton:b.A,NcActionCaption:C.A,NcActionSeparator:_.A,NcActions:y.A,NcButton:k.A,NcIconSvgWrapper:x.A,NcProgressBar:S.A},props:{accept:{type:Array,default:null},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noMenu:{type:Boolean,default:!1},noLabel:{type:Boolean,default:!1},primary:{type:Boolean,default:!1},destination:{type:a.vd,default:void 0},allowFolders:{type:Boolean,default:!1},content:{type:[Array,Function],default:()=>[]},forbiddenCharacters:{type:Array,default:()=>[]}},setup:()=>({t:B,progressTimeId:`nc-uploader-progress-${Math.random().toString(36).slice(7)}`}),data:()=>({newFileMenuEntries:[],openedMenu:!1,uploadManager:G()}),computed:{menuEntriesUpload(){return this.newFileMenuEntries.filter(e=>e.category===a.a7.UploadFromDevice)},menuEntriesNew(){return this.newFileMenuEntries.filter(e=>e.category===a.a7.CreateNew)},menuEntriesOther(){return this.newFileMenuEntries.filter(e=>e.category===a.a7.Other)},canUploadFolders(){return this.allowFolders&&"webkitdirectory"in document.createElement("input")},queue(){return this.uploadManager.queue},hasFailure(){return this.queue.some(e=>e.status===D.FAILED)},isAssembling(){return this.queue.some(e=>e.status===D.ASSEMBLING)},isUploading(){return this.queue.some(e=>e.status!==D.CANCELLED)},isOnlyAssembling(){return this.isAssembling&&this.queue.every(e=>0===e.size||e.status===D.ASSEMBLING||e.status===D.FINISHED)},isPaused(){return this.uploadManager.info?.status===H.PAUSED},buttonLabel(){return this.noMenu?B("Upload"):B("New")},haveMenu(){return!((this.noMenu||0===this.newFileMenuEntries.length)&&!this.canUploadFolders)}},watch:{allowFolders:{immediate:!0,handler(){"function"!=typeof this.content&&this.allowFolders&&N.error("[UploadPicker] Setting `allowFolders` is only allowed if `content` is a function")}},destination(e){this.setDestination(e)},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),(0,w.C)("u",this.onKeyDown,{stop:!0,prevent:!0,shift:!0}),(0,w.C)("Escape",this.onKeyDown,{stop:!0,prevent:!0}),N.debug("UploadPicker initialised")},methods:{etaTimeAndSpeed(){const e=this.uploadManager.eta.speedReadable;return e?`${this.uploadManager.eta.timeReadable} (${e})`:this.uploadManager.eta.timeReadable},async onClick(e){e.handler(this.destination,await this.getContent().catch(()=>[]))},onTriggerPick(e=!1){const t=this.$refs.input;this.canUploadFolders&&(t.webkitdirectory=e),this.$nextTick(()=>t.click())},async getContent(e){return Array.isArray(this.content)?this.content:await this.content(e)},async onPick(){const e=this.$refs.input,t=e.files?Array.from(e.files):[];try{await this.uploadManager.batchUpload("",t,(s=this.getContent,async(e,t)=>{try{const n=await s(t).catch(()=>[]),i=q(e,n);if(i.length>0){const{selected:s,renamed:a}=await $(t,i,n,{recursive:!0});e=[...e.filter(e=>!i.includes(e)),...s,...a]}const r=[];for(const t of e)try{(0,a.KT)(t.name),r.push(t)}catch(s){if(!(s instanceof a.di))throw N.error(`Unexpected error while validating ${t.name}`,{error:s}),s;let n=await Y(s);!1!==n&&(n=(0,a.E6)(n,e.map(e=>e.name)),Object.defineProperty(t,"name",{value:n}),r.push(t))}if(0===r.length&&e.length>0){const e=(0,o.P8)(t);(0,v.cf)(e?B('Upload of "{folder}" has been skipped',{folder:e}):B("Upload has been skipped"))}return r}catch(e){return N.debug("Upload has been cancelled",{error:e}),(0,v.I9)(B("Upload has been cancelled")),!1}}))}catch(e){N.debug("Error while uploading",{error:e})}finally{this.resetForm()}var s},resetForm(){const e=this.$refs.form;e?.reset()},onCancel(){this.uploadManager.queue.forEach(e=>{e.cancel()}),this.resetForm()},setDestination(e){this.destination?(this.uploadManager.destination=e,this.newFileMenuEntries=(0,a.m1)(e)):N.debug("Invalid destination")},onUploadCompletion(e){e.status===D.FAILED?this.$emit("failed",e):this.$emit("uploaded",e)},onKeyDown(e){if("u"===e.key){if(this.haveMenu)return void(this.openedMenu=!0);this.onTriggerPick()}"Escape"===e.key&&this.openedMenu&&(this.openedMenu=!1)}}}),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.haveMenu?t("NcActions",{attrs:{"aria-label":e.buttonLabel,"menu-name":e.noLabel?void 0:e.buttonLabel,open:e.openedMenu,type:e.primary?"primary":"secondary"},on:{"update:open":function(t){e.openedMenu=t}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconPlus",{attrs:{size:20}})]},proxy:!0}],null,!1,1991456921)},[t("NcActionCaption",{attrs:{name:e.t("Upload from device")}}),t("NcActionButton",{attrs:{"data-cy-upload-picker-add":"","data-cy-upload-picker-menu-entry":"upload-file","close-after-click":!0},on:{click:function(t){return e.onTriggerPick()}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconUpload",{attrs:{size:20}})]},proxy:!0}],null,!1,337456192)},[e._v(" "+e._s(e.t("Upload files"))+" ")]),e.canUploadFolders?t("NcActionButton",{attrs:{"close-after-click":"","data-cy-upload-picker-add-folders":"","data-cy-upload-picker-menu-entry":"upload-folder"},on:{click:function(t){return e.onTriggerPick(!0)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconFolderUpload",{attrs:{size:20}})]},proxy:!0}],null,!1,931184598)},[e._v(" "+e._s(e.t("Upload folders"))+" ")]):e._e(),e.noMenu?e._e():e._l(e.menuEntriesUpload,function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},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)+" ")])}),!e.noMenu&&e.menuEntriesNew.length>0?[t("NcActionSeparator"),t("NcActionCaption",{attrs:{name:e.t("Create new")}}),e._l(e.menuEntriesNew,function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},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)+" ")])})]:e._e(),!e.noMenu&&e.menuEntriesOther.length>0?[t("NcActionSeparator"),e._l(e.menuEntriesOther,function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},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)+" ")])})]:e._e()],2):t("NcButton",{attrs:{"aria-label":e.buttonLabel,disabled:e.disabled,"data-cy-upload-picker-add":"","data-cy-upload-picker-menu-entry":"upload-file",type:e.primary?"primary":"secondary"},on:{click:function(t){return e.onTriggerPick()}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconPlus",{attrs:{size:20}})]},proxy:!0},e.isUploading?null:{key:"default",fn:function(){return[e._v(" "+e._s(e.buttonLabel)+" ")]},proxy:!0}],null,!0)}),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isUploading,expression:"isUploading"}],staticClass:"upload-picker__progress"},[t("NcProgressBar",{attrs:{"aria-label":e.t("Upload progress"),"aria-describedby":e.progressTimeId,"data-cy-upload-picker-progress":"",error:e.hasFailure,value:e.uploadManager.eta.progress,size:"medium"}}),t("p",{attrs:{id:e.progressTimeId,"data-cy-upload-picker-progress-label":""}},[e.isPaused?t("span",[e._v(" "+e._s(e.t("paused"))+" ")]):e.isOnlyAssembling?t("span",[e._v(" "+e._s(e.t("assembling"))+" ")]):t("span",{attrs:{title:e.etaTimeAndSpeed()}},[e._v(" "+e._s(e.uploadManager.eta.timeReadable)+" "),e.uploadManager.eta.speedReadable&&e.uploadManager.eta.time>=60?t("span",[e._v(" ("+e._s(e.uploadManager.eta.speedReadable)+") ")]):e._e()])])],1),e.isUploading&&!e.isOnlyAssembling?t("NcButton",{staticClass:"upload-picker__cancel",attrs:{type:"tertiary","aria-label":e.t("Cancel uploads"),"data-cy-upload-picker-cancel":""},on:{click:e.onCancel},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconCancel",{attrs:{size:20}})]},proxy:!0}],null,!1,3076329829)}):e._e(),t("input",{ref:"input",staticClass:"hidden-visually",attrs:{accept:e.accept?.join?.(", "),multiple:e.multiple,"data-cy-upload-picker-input":"",type:"file"},on:{change:e.onPick}})],1):e._e()},[],0,0,"a66c1264").exports},93841:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s(71354),i=s.n(n),a=s(76314),o=s.n(a)()(i());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_1euqq_12 {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._radioGroupButton_1euqq_20 {\n --radio-group-button--border-radius: var(--border-radius-small);\n --radio-group-button--border-width: 1px;\n --radio-group-button--color: var(--color-primary-element-light-text);\n --radio-group-button--background-color: var(--color-primary-element-light);\n --radio-group-button--background-color-hover: var(--color-primary-element-light-hover);\n --radio-group-button--padding: 1px;\n cursor: pointer;\n color: var(--radio-group-button--color);\n background-color: var(--radio-group-button--background-color);\n transition: var(--animation-quick) background-color;\n border: var(--radio-group-button--border-width) solid var(--radio-group-button--background-color-hover);\n border-bottom-width: 2px;\n border-radius: var(--radio-group-button--border-radius);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n text-align: center;\n min-height: var(--default-clickable-area);\n padding-block: var(--radio-group-button--padding) 0;\n padding-inline: var(--radio-group-button--padding);\n}\n._radioGroupButton_1euqq_20 * {\n cursor: pointer;\n}\n._radioGroupButton_1euqq_20:has(._radioGroupButton__label_1euqq_46) {\n padding-inline: calc(var(--radio-group-button--padding) + var(--border-radius-element));\n}\n._radioGroupButton_1euqq_20:has(._radioGroupButton__icon_1euqq_49) {\n padding-inline-start: var(--radio-group-button--padding);\n}\n._radioGroupButton_1euqq_20:hover {\n background-color: var(--radio-group-button--background-color-hover);\n}\n._radioGroupButton_1euqq_20:focus-within {\n --radio-group-button--border-width: 2px;\n --radio-group-button--padding: 0px;\n border: var(--radio-group-button--border-width) solid var(--color-main-text) !important;\n outline: calc(var(--default-grid-baseline) / 2) var(--color-main-background);\n}\n._radioGroupButton_active_1euqq_62 {\n --radio-group-button--color: var(--color-primary-element-text);\n --radio-group-button--background-color: var(--color-primary-element);\n --radio-group-button--background-color-hover: var(--color-primary-element-hover);\n}\n._radioGroupButton__label_1euqq_46 {\n font-weight: bold;\n}\n._radioGroupButton__icon_1euqq_49 {\n --radio-group-button--icon-size: calc(var(--default-clickable-area) - 4px);\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: var(--radio-group-button--icon-size);\n}\n._radioGroupButton__icon_1euqq_49 * {\n --default-clickable-area: var(--radio-group-button--icon-size);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcRadioGroupButton-DRZ1_-yY.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,+DAA+D;EAC/D,uCAAuC;EACvC,oEAAoE;EACpE,0EAA0E;EAC1E,sFAAsF;EACtF,kCAAkC;EAClC,eAAe;EACf,uCAAuC;EACvC,6DAA6D;EAC7D,mDAAmD;EACnD,uGAAuG;EACvG,wBAAwB;EACxB,uDAAuD;EACvD,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;EAClB,yCAAyC;EACzC,mDAAmD;EACnD,kDAAkD;AACpD;AACA;EACE,eAAe;AACjB;AACA;EACE,uFAAuF;AACzF;AACA;EACE,wDAAwD;AAC1D;AACA;EACE,mEAAmE;AACrE;AACA;EACE,uCAAuC;EACvC,kCAAkC;EAClC,uFAAuF;EACvF,4EAA4E;AAC9E;AACA;EACE,8DAA8D;EAC9D,oEAAoE;EACpE,gFAAgF;AAClF;AACA;EACE,iBAAiB;AACnB;AACA;EACE,0EAA0E;EAC1E,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;EACZ,2CAA2C;AAC7C;AACA;EACE,8DAA8D;AAChE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_1euqq_12 {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._radioGroupButton_1euqq_20 {\n --radio-group-button--border-radius: var(--border-radius-small);\n --radio-group-button--border-width: 1px;\n --radio-group-button--color: var(--color-primary-element-light-text);\n --radio-group-button--background-color: var(--color-primary-element-light);\n --radio-group-button--background-color-hover: var(--color-primary-element-light-hover);\n --radio-group-button--padding: 1px;\n cursor: pointer;\n color: var(--radio-group-button--color);\n background-color: var(--radio-group-button--background-color);\n transition: var(--animation-quick) background-color;\n border: var(--radio-group-button--border-width) solid var(--radio-group-button--background-color-hover);\n border-bottom-width: 2px;\n border-radius: var(--radio-group-button--border-radius);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n text-align: center;\n min-height: var(--default-clickable-area);\n padding-block: var(--radio-group-button--padding) 0;\n padding-inline: var(--radio-group-button--padding);\n}\n._radioGroupButton_1euqq_20 * {\n cursor: pointer;\n}\n._radioGroupButton_1euqq_20:has(._radioGroupButton__label_1euqq_46) {\n padding-inline: calc(var(--radio-group-button--padding) + var(--border-radius-element));\n}\n._radioGroupButton_1euqq_20:has(._radioGroupButton__icon_1euqq_49) {\n padding-inline-start: var(--radio-group-button--padding);\n}\n._radioGroupButton_1euqq_20:hover {\n background-color: var(--radio-group-button--background-color-hover);\n}\n._radioGroupButton_1euqq_20:focus-within {\n --radio-group-button--border-width: 2px;\n --radio-group-button--padding: 0px;\n border: var(--radio-group-button--border-width) solid var(--color-main-text) !important;\n outline: calc(var(--default-grid-baseline) / 2) var(--color-main-background);\n}\n._radioGroupButton_active_1euqq_62 {\n --radio-group-button--color: var(--color-primary-element-text);\n --radio-group-button--background-color: var(--color-primary-element);\n --radio-group-button--background-color-hover: var(--color-primary-element-hover);\n}\n._radioGroupButton__label_1euqq_46 {\n font-weight: bold;\n}\n._radioGroupButton__icon_1euqq_49 {\n --radio-group-button--icon-size: calc(var(--default-clickable-area) - 4px);\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: var(--radio-group-button--icon-size);\n}\n._radioGroupButton__icon_1euqq_49 * {\n --default-clickable-area: var(--radio-group-button--icon-size);\n}"],sourceRoot:""}]);const r=o}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={id:e,loaded:!1,exports:{}};return i[e].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}o.m=i,e=[],o.O=(t,s,n,i)=>{if(!s){var a=1/0;for(c=0;c=i)&&Object.keys(o.O).every(e=>o.O[e](s[l]))?s.splice(l--,1):(r=!1,i0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[s,n,i]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var s in t)o.o(t,s)&&!o.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,s)=>(o.f[s](e,t),t),[])),o.u=e=>e+"-"+e+".js?v="+{594:"2c86902dfae9a5006399",620:"8f7783b39d802f10e22b",1082:"0c5f2744a0d853c23325",2391:"908fc68e4bc9b878c937",2880:"fdf99dc4a6f328ebe498",3128:"a580f8fddf480196f031",3334:"317c86bf75722792ab2c",4325:"67df7ab13a8e8d214551",4357:"5b1d29cd886fa8dcd81a",5862:"d020c05f13d21afee82a",6590:"460453c0c09b90e6b174",7145:"7889fe0b0ebc57e3d5f1",8339:"6cdca71a6b3b2d7bef33",8723:"df7ac55daf9507f56d44",8970:"acf89ea6eb537d8becb6",9107:"280328a758bc96b88b2c",9165:"99b59dd36fe5dbcb82b9"}[e],o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},n="nextcloud-ui-legacy:",o.l=(e,t,i,a)=>{if(s[e])s[e].push(t);else{var r,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),c=0;c{r.onerror=r.onload=null,clearTimeout(g);var i=s[e];if(delete s[e],r.parentNode&&r.parentNode.removeChild(r),i&&i.forEach(e=>e(n)),t)return t(n)},g=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),l&&document.head.appendChild(r)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.j=2882,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(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(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{o.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2882:0,9165:0};o.f.j=(t,s)=>{var n=o.o(e,t)?e[t]:void 0;if(0!==n)if(n)s.push(n[2]);else{var i=new Promise((s,i)=>n=e[t]=[s,i]);s.push(n[2]=i);var a=o.p+o.u(t),r=new Error;o.l(a,s=>{if(o.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=s&&("load"===s.type?"missing":s.type),a=s&&s.target&&s.target.src;r.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",r.name="ChunkLoadError",r.type=i,r.request=a,n[1](r)}},"chunk-"+t,t)}},o.O.j=t=>0===e[t];var t=(t,s)=>{var n,i,[a,r,l]=s,d=0;if(a.some(t=>0!==e[t])){for(n in r)o.o(r,n)&&(o.m[n]=r[n]);if(l)var c=l(o)}for(t&&t(s);do(80471));r=o.O(r)})();
//# sourceMappingURL=files-main.js.map?v=e8a9c6e3c694d3bdb4f1