var Vo=Object.defineProperty;var ct=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Xo=(e,t)=>{for(var n in t)Vo(e,n,{get:t[n],enumerable:!0})};var nn={};Xo(nn,{createSHA256:()=>rr,createSHA256WorkerCode:()=>Ls});async function rr(e=!1){let n=e?await self.SHA256WasmModule():await nr(),r=n.HEAPU8.subarray(n._GetBufferPtr());return{init(){n._Hash_Init(256)},update(o){let s=0;for(;si.toString(16).padStart(2,"0")).join("")}}}function Ls(){return` self.addEventListener('message', async (event) => { const { file } = event.data; const sha256 = await self.createSHA256(true); sha256.init(); const reader = file.stream().getReader(); const total = file.size; let bytesDone = 0; while (true) { const { done, value } = await reader.read(); if (done) { break; } sha256.update(value); bytesDone += value.length; postMessage({ progress: bytesDone / total }); } postMessage({ sha256: sha256.digest('hex') }); }); self.SHA256WasmModule = ${nr.toString()}; self.createSHA256 = ${rr.toString()}; `}var Ds,nr,rn=ct(()=>{Ds=(()=>{var e=import.meta.url;return function(t={}){var n=t,r,o;n.ready=new Promise((N,W)=>{r=N,o=W});var s=Object.assign({},n),i=[],a="./this.program",c=(N,W)=>{throw W},l=typeof window=="object",g=typeof importScripts=="function",h=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",x=!l&&!h&&!g,A="";function w(N){return n.locateFile?n.locateFile(N,A):A+N}var v,E,P;(l||g)&&(g?A=self.location.href:typeof document<"u"&&document.currentScript&&(A=document.currentScript.src),A.startsWith("blob:")?A="":A=A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1),v=N=>{var W=new XMLHttpRequest;return W.open("GET",N,!1),W.send(null),W.responseText},g&&(P=N=>{var W=new XMLHttpRequest;return W.open("GET",N,!1),W.responseType="arraybuffer",W.send(null),new Uint8Array(W.response)}),E=(N,W,re)=>{var X=new XMLHttpRequest;X.open("GET",N,!0),X.responseType="arraybuffer",X.onload=()=>{if(X.status==200||X.status==0&&X.response){W(X.response);return}re()},X.onerror=re,X.send(null)});var C=n.print||console.log.bind(console),S=n.printErr||console.error.bind(console);Object.assign(n,s),s=null,n.arguments&&(i=n.arguments),n.thisProgram&&(a=n.thisProgram),n.quit&&(c=n.quit);var _;n.wasmBinary&&(_=n.wasmBinary),typeof WebAssembly!="object"&&he("no native wasm support detected");function O(N){for(var W=atob(N),re=new Uint8Array(W.length),X=0;XN.startsWith(We),pe=N=>N.startsWith("file://"),Be;Be="data:application/octet-stream;base64,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",ke(Be)||(Be=w(Be));function Do(N){if(N==Be&&_)return new Uint8Array(_);var W=U(N);if(W)return W;if(P)return P(N);throw"both async and sync fetching of the wasm failed"}function Lo(N){return Promise.resolve().then(()=>Do(N))}function Fo(N,W,re){return Lo(N).then(X=>WebAssembly.instantiate(X,W)).then(re,X=>{S(`failed to asynchronously prepare wasm: ${X}`),he(X)})}function No(N,W,re,X){return Fo(W,re,X)}function Mo(){var N={env:Nn,wasi_snapshot_preview1:Nn};function W(X,Xa){return de=X.exports,m=de.memory,R(),J(de.__wasm_call_ctors),ne("wasm-instantiate"),de}Ae("wasm-instantiate");function re(X){W(X.instance)}if(n.instantiateWasm)try{return n.instantiateWasm(N,W)}catch(X){S(`Module.instantiateWasm callback failed with error: ${X}`),o(X)}return No(_,Be,N,re).catch(o),{}}var za,ja;function Wa(N){this.name="ExitStatus",this.message=`Program terminated with exit(${N})`,this.status=N}var Lt=N=>{for(;N.length>0;)N.shift()(n)};function qa(N,W="i8"){switch(W.endsWith("*")&&(W="*"),W){case"i1":return B[N];case"i8":return B[N];case"i16":return f[N>>1];case"i32":return y[N>>2];case"i64":he("to do getValue(i64) use WASM_BIGINT");case"float":return $[N>>2];case"double":return L[N>>3];case"*":return I[N>>2];default:he(`invalid type for getValue: ${W}`)}}var Ga=n.noExitRuntime||!0;function Va(N,W,re="i8"){switch(re.endsWith("*")&&(re="*"),re){case"i1":B[N]=W;break;case"i8":B[N]=W;break;case"i16":f[N>>1]=W;break;case"i32":y[N>>2]=W;break;case"i64":he("to do setValue(i64) use WASM_BIGINT");case"float":$[N>>2]=W;break;case"double":L[N>>3]=W;break;case"*":I[N>>2]=W;break;default:he(`invalid type for setValue: ${re}`)}}var Nn={},de=Mo(),Po=()=>(Po=de.__wasm_call_ctors)(),Oo=n._Hash_Update=N=>(Oo=n._Hash_Update=de.Hash_Update)(N),Qo=n._Hash_Final=()=>(Qo=n._Hash_Final=de.Hash_Final)(),zo=n._Hash_Init=N=>(zo=n._Hash_Init=de.Hash_Init)(N),jo=n._GetBufferPtr=()=>(jo=n._GetBufferPtr=de.GetBufferPtr)(),Wo=()=>(Wo=de.stackSave)(),qo=N=>(qo=de.stackRestore)(N),Go=N=>(Go=de.stackAlloc)(N),at;te=function N(){at||Mn(),at||(te=N)};function Mn(){if(oe>0||(G(),oe>0))return;function N(){at||(at=!0,n.calledRun=!0,!M&&(V(),r(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),ae()))}n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),N()},1)):N()}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Mn(),t.ready}})(),nr=Ds});var Fs={};var or=ct(()=>{});var Ns={};var sr=ct(()=>{});var Ms={};var ir=ct(()=>{});var Ft=[0xb088d3a9e840f559n,0x5652c7f739ed20d6n,0x45b28969898972abn,0x6b0a89d5b68ec777n,0x368f573e8b7a31b7n,0x1dc636dce936d94bn,0x207a4c4e5554d5b6n,0xa474b34628239acbn,0x3b06a83e1ca3b912n,0x90e78d6c2f02baf7n,0xe1c92df7150d9a8an,0x8e95053a1086d3adn,0x5a2ef4f1b83a0722n,0xa50fac949f807faen,0x0e7303eb80d8d681n,0x99b07edc1570ad0fn,0x689d2fb555fd3076n,0x00005082119ea468n,0xc4b08306a88fcc28n,0x3eb0678af6374afdn,0xf19f87ab86ad7436n,0xf2129fbfbe6bc736n,0x481149575c98a4edn,0x0000010695477bc5n,0x1fba37801a9ceaccn,0x3bf06fd663a49b6dn,0x99687e9782e3874bn,0x79a10673aa50d8e3n,0xe4accf9e6211f420n,0x2520e71f87579071n,0x2bd5d3fd781a8a9bn,0x00de4dcddd11c873n,0xeaa9311c5a87392fn,0xdb748eb617bc40ffn,0xaf579a8df620bf6fn,0x86a6e5da1b09c2b1n,0xcc2fc30ac322a12en,0x355e2afec1f74267n,0x2d99c8f4c021a47bn,0xbade4b4a9404cfc3n,0xf7b518721d707d69n,0x3286b6587bf32c20n,0x0000b68886af270cn,0xa115d6e4db8a9079n,0x484f7e9c97b2e199n,0xccca7bb75713e301n,0xbf2584a62bb0f160n,0xade7e813625dbcc8n,0x000070940d87955an,0x8ae69108139e626fn,0xbd776ad72fde38a2n,0xfb6b001fc2fcc0cfn,0xc7a474b8e67bc427n,0xbaf6f11610eb5d58n,0x09cb1f5b6de770d1n,0xb0b219e6977d4c47n,0x00ccbc386ea7ad4an,0xcc849d0adf973f01n,0x73a3ef7d016af770n,0xc807d2d386bdbdfen,0x7f2ac9966c791730n,0xd037a86bc6c504dan,0xf3f17c661eaa609dn,0xaca626b04daae687n,0x755a99374f4a5b07n,0x90837ee65b2caeden,0x6ee8ad93fd560785n,0x0000d9e11053edd8n,0x9e063bb2d21cdbd7n,0x07ab77f12a01d2b2n,0xec550255e6641b44n,0x78fb94a8449c14c6n,0xc7510e1bc6c0f5f5n,0x0000320b36e4cae3n,0x827c33262c8b1a2dn,0x14675f0b48ea4144n,0x267bd3a6498decebn,0xf1916ff982f5035en,0x86221b7ff434fb88n,0x9dbecee7386f49d8n,0xea58f8cac80f8f4an,0x008d198692fc64d8n,0x6d38704fbabf9a36n,0xe032cb07d1e7be4cn,0x228d21f6ad450890n,0x635cb1bfc02589a5n,0x4620a1739ca2ce71n,0xa7e7dfe3aae5fb58n,0x0c10ca932b3c0debn,0x2727fee884afed7bn,0xa2df1c6df9e2ab1fn,0x4dcdd1ac0774f523n,0x000070ffad33e24en,0xa2ace87bc5977816n,0x9892275ab4286049n,0xc2861181ddf18959n,0xbb9972a042483e19n,0xef70cd3766513078n,0x00000513abfc9864n,0xc058b61858c94083n,0x09e850859725e0den,0x9197fb3bf83e7d94n,0x7e1e626d12b64bcen,0x520c54507f7b57d1n,0xbee1797174e22416n,0x6fd9ac3222e95587n,0x0023957c9adfbf3en,0xa01c7d7e234bbe15n,0xaba2c758b8a38cbbn,0x0d1fa0ceec3e2b30n,0x0bb6a58b7e60b991n,0x4333dd5b9fa26635n,0xc2fd3b7d4001c1a3n,0xfb41802454731127n,0x65a56185a50d18cbn,0xf67a02bd8784b54fn,0x696f11dd67e65063n,0x00002022fca814abn,0x8cd6be912db9d852n,0x695189b6e9ae8a57n,0xee9453b50ada0c28n,0xd8fc5ea91a78845en,0xab86bf191a4aa767n,0x0000c6b5c86415e5n,0x267310178e08a22en,0xed2d101b078bca25n,0x3b41ed84b226a8fbn,0x13e622120f28dc06n,0xa315f5ebfb706d26n,0x8816c34e3301bacen,0xe9395b9cbb71fdaen,0x002ce9202e721648n,0x4283db1d2bb3c91cn,0xd77d461ad2b1a6a5n,0xe2ec17e46eeb866bn,0xb8e0be4039fbc47cn,0xdea160c4d5299d04n,0x7eec86c8d28c3634n,0x2119ad129f98a399n,0xa6ccf46b61a283efn,0x2c52cedef658c617n,0x2db4871169acdd83n,0x0000f0d6f39ecbe9n,0x3dd5d8c98d2f9489n,0x8a1872a22b01f584n,0xf282a4c40e7b3cf2n,0x8020ec2ccb1ba196n,0x6693b6e09e59e313n,0x0000ce19cc7c83ebn,0x20cb5735f6479c3bn,0x762ebf3759d75a5bn,0x207bfe823d693975n,0xd77dc112339cd9d5n,0x9ba7834284627d03n,0x217dc513e95f51e9n,0xb27b1a29fc5e7816n,0x00d5cd9831bb662dn,0x71e39b806d75734cn,0x7e572af006fb1a23n,0xa2734f2f6ae91f85n,0xbf82c6b5022cddf2n,0x5c3beac60761a0den,0xcdc893bb47416998n,0x6d1085615c187e01n,0x77f8ae30ac277c5dn,0x917c6b81122a2c91n,0x5b75b699add16967n,0x0000cf6ae79a069bn,0xf3c40afa60de1104n,0x2063127aa59167c3n,0x621de62269d1894dn,0xd188ac1de62b4726n,0x107036e2154b673cn,0x0000b85f28553a1dn,0xf2ef4e4c18236f3dn,0xd9d6de6611b9f602n,0xa1fc7955fb47911cn,0xeb85fd032f298dbdn,0xbe27502fb3befae1n,0xe3034251c4cd661en,0x441364d354071836n,0x0082b36c75f2983en,0xb145910316fa66f0n,0x021c069c9847caf7n,0x2910dfc75a4b5221n,0x735b353e1c57a8b5n,0xce44312ce98ed96cn,0xbc942e4506bdfa65n,0xf05086a71257941bn,0xfec3b215d351ceadn,0x00ae1055e0144202n,0xf54b40846f42e454n,0x00007fd9c8bcbcc8n,0xbfbd9ef317de9bfen,0xa804302ff2854e12n,0x39ce4957a5e5d8d4n,0xffb9e2a45637ba84n,0x55b9ad1d9ea0818bn,0x00008acbf319178an,0x48e2bfc8d0fbfb38n,0x8be39841e848b5e8n,0x0e2712160696a08bn,0xd51096e84b44242an,0x1101ba176792e13an,0xc22e770f4531689dn,0x1689eff272bbc56cn,0x00a92a197f5650ecn,0xbc765990bda1784en,0xc61441e392fcb8aen,0x07e13a2ced31e4a0n,0x92cbe984234e9d4dn,0x8f4ff572bb7d8ac5n,0x0b9670c00b963bd0n,0x62955a581a03eb01n,0x645f83e5ea000254n,0x41fce516cd88f299n,0xbbda9748da7a98cfn,0x0000aab2fe4845fan,0x19761b069bf56555n,0x8b8f5e8343b6ad56n,0x3e5d1cfd144821d9n,0xec5c1e2ca2b0cd8fn,0xfaf7e0fea7fbb57fn,0x000000d3ba12961bn,0xda3f90178401b18en,0x70ff906de33a5febn,0x0527d5a7c06970e7n,0x22d8e773607c13e9n,0xc9ab70df643c3bacn,0xeda4c6dc8abe12e3n,0xecef1f410033e78an,0x0024c2b274ac72cbn,0x06740d954fa900b4n,0x1d7a299b323d6304n,0xb3c37cb298cbead5n,0xc986e3c76178739bn,0x9fabea364b46f58an,0x6da214c5af85cc56n,0x17a43ed8b7a38f84n,0x6eccec511d9adbebn,0xf9cab30913335afbn,0x4a5e60c5f415eed2n,0x00006967503672b4n,0x9da51d121454bb87n,0x84321e13b9bbc816n,0xfb3d6fb6ab2fdd8dn,0x60305eed8e160a8dn,0xcbbf4b14e9946ce8n,0x00004f63381b10c3n,0x07d5b7816fcc4e10n,0xe5a536726a6a8155n,0x57afb23447a07fddn,0x18f346f7abc9d394n,0x636dc655d61ad33dn,0xcc8bab4939f7f3f6n,0x63c7a906c1dd187bn];var Ko=0,ve=2048,Mt=2056,dt=4096,Pt=8,Ot=Pt*65536-dt,lt=null,On=null,Nt=null;function ht(e){let t=[],n=e|0;for(;;){let r=n&127;if(n>>=7,n===0&&(r&64)===0||n===-1&&(r&64)!==0)return t.push(r),t;t.push(r|128)}}function Pn(e){return[e&127|128,e>>>7&127|128,e>>>14&127|128,e>>>21&127|128,e>>>28&15]}function Jo(){let e=[];function t(...l){e.push(...l)}t(0,97,115,109),t(1,0,0,0),t(1,7,1,96,2,127,127,1,127),t(2,11,1,2,106,115,3,109,101,109,2,0,Pt),t(3,2,1,0),t(7,13,1,9,110,101,120,116,77,97,116,99,104,0,0),t(10);let n=e.length;t(0,0,0,0,0),t(1);let r=e.length;t(0,0,0,0,0);let o=e.length;t(2,2,126,2,127),t(65,...ht(ve)),t(41,3,0),t(33,2),t(65,...ht(Mt)),t(41,3,0),t(33,3),t(32,0),t(33,4),t(32,0),t(32,1),t(106),t(33,5),t(2,64),t(3,64),t(32,4),t(32,5),t(78),t(13,1),t(32,2),t(66,1),t(134),t(32,4),t(45,0,0),t(65,3),t(116),t(41,3,0),t(124),t(34,2),t(32,3),t(131),t(80),t(4,64),t(65,...ht(ve)),t(32,2),t(55,3,0),t(32,4),t(32,0),t(107),t(65,1),t(106),t(15),t(11),t(32,4),t(65,1),t(106),t(33,4),t(12,0),t(11),t(11),t(65,...ht(ve)),t(32,2),t(55,3,0),t(65,127),t(11);let s=e.length-o,i=Pn(s);for(let l=0;l<5;l++)e[r+l]=i[l];let a=e.length-n-5,c=Pn(a);for(let l=0;l<5;l++)e[n+l]=c[l];return new Uint8Array(e)}function Qn(){if(Nt)return;let e=Jo();lt=new WebAssembly.Memory({initial:Pt});let t=new WebAssembly.Module(e);Nt=new WebAssembly.Instance(t,{js:{mem:lt}}).exports.nextMatch,On=new Uint8Array(lt.buffer);let r=new DataView(lt.buffer);for(let o=0;o<256;o++)r.setBigUint64(Ko+o*8,Ft[o],!0)}function zn(e,t){return Nt(e,t)}function jn(){return On}var ft=class{maskBytes;hash;constructor(t){Qn(),this.maskBytes=new Uint8Array(8),this.hash=new Uint8Array(8),new DataView(this.maskBytes.buffer).setBigUint64(0,t,!0)}nextMatch(t){let n=t.length;if(n===0)return-1;if(n>Ot)throw new RangeError(`Input too large: ${n} > ${Ot}`);let r=jn();r.set(this.hash,ve),r.set(this.maskBytes,Mt),r.set(t,dt);let o=zn(dt,n);return this.hash.set(r.subarray(ve,ve+8)),o}resetHash(){this.hash.fill(0)}};function be(e,t,n,r,o,s,i,a,c,l){let g=n[r]|0,h=n[r+1]|0,x=n[r+2]|0,A=n[r+3]|0,w=n[r+4]|0,v=n[r+5]|0,E=n[r+6]|0,P=n[r+7]|0,C=n[r+8]|0,S=n[r+9]|0,_=n[r+10]|0,O=n[r+11]|0,U=n[r+12]|0,m=n[r+13]|0,M=n[r+14]|0,j=n[r+15]|0,H=e[t]|0,D=e[t+1]|0,B=e[t+2]|0,T=e[t+3]|0,f=e[t+4]|0,p=e[t+5]|0,y=e[t+6]|0,I=e[t+7]|0,$=1779033703,L=3144134277,R=1013904242,F=2773480762,k=a|0,u=a/4294967296|0,d=c|0,b=l|0;H=(H+f|0)+g|0,k^=H,k=k>>>16|k<<16,$=$+k|0,f^=$,f=f>>>12|f<<20,H=(H+f|0)+h|0,k^=H,k=k>>>8|k<<24,$=$+k|0,f^=$,f=f>>>7|f<<25,D=(D+p|0)+x|0,u^=D,u=u>>>16|u<<16,L=L+u|0,p^=L,p=p>>>12|p<<20,D=(D+p|0)+A|0,u^=D,u=u>>>8|u<<24,L=L+u|0,p^=L,p=p>>>7|p<<25,B=(B+y|0)+w|0,d^=B,d=d>>>16|d<<16,R=R+d|0,y^=R,y=y>>>12|y<<20,B=(B+y|0)+v|0,d^=B,d=d>>>8|d<<24,R=R+d|0,y^=R,y=y>>>7|y<<25,T=(T+I|0)+E|0,b^=T,b=b>>>16|b<<16,F=F+b|0,I^=F,I=I>>>12|I<<20,T=(T+I|0)+P|0,b^=T,b=b>>>8|b<<24,F=F+b|0,I^=F,I=I>>>7|I<<25,H=(H+p|0)+C|0,b^=H,b=b>>>16|b<<16,R=R+b|0,p^=R,p=p>>>12|p<<20,H=(H+p|0)+S|0,b^=H,b=b>>>8|b<<24,R=R+b|0,p^=R,p=p>>>7|p<<25,D=(D+y|0)+_|0,k^=D,k=k>>>16|k<<16,F=F+k|0,y^=F,y=y>>>12|y<<20,D=(D+y|0)+O|0,k^=D,k=k>>>8|k<<24,F=F+k|0,y^=F,y=y>>>7|y<<25,B=(B+I|0)+U|0,u^=B,u=u>>>16|u<<16,$=$+u|0,I^=$,I=I>>>12|I<<20,B=(B+I|0)+m|0,u^=B,u=u>>>8|u<<24,$=$+u|0,I^=$,I=I>>>7|I<<25,T=(T+f|0)+M|0,d^=T,d=d>>>16|d<<16,L=L+d|0,f^=L,f=f>>>12|f<<20,T=(T+f|0)+j|0,d^=T,d=d>>>8|d<<24,L=L+d|0,f^=L,f=f>>>7|f<<25;{let G=g,V=h;g=x,x=A,A=_,_=U,U=S,S=O,O=v,v=G,h=E,E=w,w=P,P=m,m=M,M=j,j=C,C=V}H=(H+f|0)+g|0,k^=H,k=k>>>16|k<<16,$=$+k|0,f^=$,f=f>>>12|f<<20,H=(H+f|0)+h|0,k^=H,k=k>>>8|k<<24,$=$+k|0,f^=$,f=f>>>7|f<<25,D=(D+p|0)+x|0,u^=D,u=u>>>16|u<<16,L=L+u|0,p^=L,p=p>>>12|p<<20,D=(D+p|0)+A|0,u^=D,u=u>>>8|u<<24,L=L+u|0,p^=L,p=p>>>7|p<<25,B=(B+y|0)+w|0,d^=B,d=d>>>16|d<<16,R=R+d|0,y^=R,y=y>>>12|y<<20,B=(B+y|0)+v|0,d^=B,d=d>>>8|d<<24,R=R+d|0,y^=R,y=y>>>7|y<<25,T=(T+I|0)+E|0,b^=T,b=b>>>16|b<<16,F=F+b|0,I^=F,I=I>>>12|I<<20,T=(T+I|0)+P|0,b^=T,b=b>>>8|b<<24,F=F+b|0,I^=F,I=I>>>7|I<<25,H=(H+p|0)+C|0,b^=H,b=b>>>16|b<<16,R=R+b|0,p^=R,p=p>>>12|p<<20,H=(H+p|0)+S|0,b^=H,b=b>>>8|b<<24,R=R+b|0,p^=R,p=p>>>7|p<<25,D=(D+y|0)+_|0,k^=D,k=k>>>16|k<<16,F=F+k|0,y^=F,y=y>>>12|y<<20,D=(D+y|0)+O|0,k^=D,k=k>>>8|k<<24,F=F+k|0,y^=F,y=y>>>7|y<<25,B=(B+I|0)+U|0,u^=B,u=u>>>16|u<<16,$=$+u|0,I^=$,I=I>>>12|I<<20,B=(B+I|0)+m|0,u^=B,u=u>>>8|u<<24,$=$+u|0,I^=$,I=I>>>7|I<<25,T=(T+f|0)+M|0,d^=T,d=d>>>16|d<<16,L=L+d|0,f^=L,f=f>>>12|f<<20,T=(T+f|0)+j|0,d^=T,d=d>>>8|d<<24,L=L+d|0,f^=L,f=f>>>7|f<<25;{let G=g,V=h;g=x,x=A,A=_,_=U,U=S,S=O,O=v,v=G,h=E,E=w,w=P,P=m,m=M,M=j,j=C,C=V}H=(H+f|0)+g|0,k^=H,k=k>>>16|k<<16,$=$+k|0,f^=$,f=f>>>12|f<<20,H=(H+f|0)+h|0,k^=H,k=k>>>8|k<<24,$=$+k|0,f^=$,f=f>>>7|f<<25,D=(D+p|0)+x|0,u^=D,u=u>>>16|u<<16,L=L+u|0,p^=L,p=p>>>12|p<<20,D=(D+p|0)+A|0,u^=D,u=u>>>8|u<<24,L=L+u|0,p^=L,p=p>>>7|p<<25,B=(B+y|0)+w|0,d^=B,d=d>>>16|d<<16,R=R+d|0,y^=R,y=y>>>12|y<<20,B=(B+y|0)+v|0,d^=B,d=d>>>8|d<<24,R=R+d|0,y^=R,y=y>>>7|y<<25,T=(T+I|0)+E|0,b^=T,b=b>>>16|b<<16,F=F+b|0,I^=F,I=I>>>12|I<<20,T=(T+I|0)+P|0,b^=T,b=b>>>8|b<<24,F=F+b|0,I^=F,I=I>>>7|I<<25,H=(H+p|0)+C|0,b^=H,b=b>>>16|b<<16,R=R+b|0,p^=R,p=p>>>12|p<<20,H=(H+p|0)+S|0,b^=H,b=b>>>8|b<<24,R=R+b|0,p^=R,p=p>>>7|p<<25,D=(D+y|0)+_|0,k^=D,k=k>>>16|k<<16,F=F+k|0,y^=F,y=y>>>12|y<<20,D=(D+y|0)+O|0,k^=D,k=k>>>8|k<<24,F=F+k|0,y^=F,y=y>>>7|y<<25,B=(B+I|0)+U|0,u^=B,u=u>>>16|u<<16,$=$+u|0,I^=$,I=I>>>12|I<<20,B=(B+I|0)+m|0,u^=B,u=u>>>8|u<<24,$=$+u|0,I^=$,I=I>>>7|I<<25,T=(T+f|0)+M|0,d^=T,d=d>>>16|d<<16,L=L+d|0,f^=L,f=f>>>12|f<<20,T=(T+f|0)+j|0,d^=T,d=d>>>8|d<<24,L=L+d|0,f^=L,f=f>>>7|f<<25;{let G=g,V=h;g=x,x=A,A=_,_=U,U=S,S=O,O=v,v=G,h=E,E=w,w=P,P=m,m=M,M=j,j=C,C=V}H=(H+f|0)+g|0,k^=H,k=k>>>16|k<<16,$=$+k|0,f^=$,f=f>>>12|f<<20,H=(H+f|0)+h|0,k^=H,k=k>>>8|k<<24,$=$+k|0,f^=$,f=f>>>7|f<<25,D=(D+p|0)+x|0,u^=D,u=u>>>16|u<<16,L=L+u|0,p^=L,p=p>>>12|p<<20,D=(D+p|0)+A|0,u^=D,u=u>>>8|u<<24,L=L+u|0,p^=L,p=p>>>7|p<<25,B=(B+y|0)+w|0,d^=B,d=d>>>16|d<<16,R=R+d|0,y^=R,y=y>>>12|y<<20,B=(B+y|0)+v|0,d^=B,d=d>>>8|d<<24,R=R+d|0,y^=R,y=y>>>7|y<<25,T=(T+I|0)+E|0,b^=T,b=b>>>16|b<<16,F=F+b|0,I^=F,I=I>>>12|I<<20,T=(T+I|0)+P|0,b^=T,b=b>>>8|b<<24,F=F+b|0,I^=F,I=I>>>7|I<<25,H=(H+p|0)+C|0,b^=H,b=b>>>16|b<<16,R=R+b|0,p^=R,p=p>>>12|p<<20,H=(H+p|0)+S|0,b^=H,b=b>>>8|b<<24,R=R+b|0,p^=R,p=p>>>7|p<<25,D=(D+y|0)+_|0,k^=D,k=k>>>16|k<<16,F=F+k|0,y^=F,y=y>>>12|y<<20,D=(D+y|0)+O|0,k^=D,k=k>>>8|k<<24,F=F+k|0,y^=F,y=y>>>7|y<<25,B=(B+I|0)+U|0,u^=B,u=u>>>16|u<<16,$=$+u|0,I^=$,I=I>>>12|I<<20,B=(B+I|0)+m|0,u^=B,u=u>>>8|u<<24,$=$+u|0,I^=$,I=I>>>7|I<<25,T=(T+f|0)+M|0,d^=T,d=d>>>16|d<<16,L=L+d|0,f^=L,f=f>>>12|f<<20,T=(T+f|0)+j|0,d^=T,d=d>>>8|d<<24,L=L+d|0,f^=L,f=f>>>7|f<<25;{let G=g,V=h;g=x,x=A,A=_,_=U,U=S,S=O,O=v,v=G,h=E,E=w,w=P,P=m,m=M,M=j,j=C,C=V}H=(H+f|0)+g|0,k^=H,k=k>>>16|k<<16,$=$+k|0,f^=$,f=f>>>12|f<<20,H=(H+f|0)+h|0,k^=H,k=k>>>8|k<<24,$=$+k|0,f^=$,f=f>>>7|f<<25,D=(D+p|0)+x|0,u^=D,u=u>>>16|u<<16,L=L+u|0,p^=L,p=p>>>12|p<<20,D=(D+p|0)+A|0,u^=D,u=u>>>8|u<<24,L=L+u|0,p^=L,p=p>>>7|p<<25,B=(B+y|0)+w|0,d^=B,d=d>>>16|d<<16,R=R+d|0,y^=R,y=y>>>12|y<<20,B=(B+y|0)+v|0,d^=B,d=d>>>8|d<<24,R=R+d|0,y^=R,y=y>>>7|y<<25,T=(T+I|0)+E|0,b^=T,b=b>>>16|b<<16,F=F+b|0,I^=F,I=I>>>12|I<<20,T=(T+I|0)+P|0,b^=T,b=b>>>8|b<<24,F=F+b|0,I^=F,I=I>>>7|I<<25,H=(H+p|0)+C|0,b^=H,b=b>>>16|b<<16,R=R+b|0,p^=R,p=p>>>12|p<<20,H=(H+p|0)+S|0,b^=H,b=b>>>8|b<<24,R=R+b|0,p^=R,p=p>>>7|p<<25,D=(D+y|0)+_|0,k^=D,k=k>>>16|k<<16,F=F+k|0,y^=F,y=y>>>12|y<<20,D=(D+y|0)+O|0,k^=D,k=k>>>8|k<<24,F=F+k|0,y^=F,y=y>>>7|y<<25,B=(B+I|0)+U|0,u^=B,u=u>>>16|u<<16,$=$+u|0,I^=$,I=I>>>12|I<<20,B=(B+I|0)+m|0,u^=B,u=u>>>8|u<<24,$=$+u|0,I^=$,I=I>>>7|I<<25,T=(T+f|0)+M|0,d^=T,d=d>>>16|d<<16,L=L+d|0,f^=L,f=f>>>12|f<<20,T=(T+f|0)+j|0,d^=T,d=d>>>8|d<<24,L=L+d|0,f^=L,f=f>>>7|f<<25;{let G=g,V=h;g=x,x=A,A=_,_=U,U=S,S=O,O=v,v=G,h=E,E=w,w=P,P=m,m=M,M=j,j=C,C=V}H=(H+f|0)+g|0,k^=H,k=k>>>16|k<<16,$=$+k|0,f^=$,f=f>>>12|f<<20,H=(H+f|0)+h|0,k^=H,k=k>>>8|k<<24,$=$+k|0,f^=$,f=f>>>7|f<<25,D=(D+p|0)+x|0,u^=D,u=u>>>16|u<<16,L=L+u|0,p^=L,p=p>>>12|p<<20,D=(D+p|0)+A|0,u^=D,u=u>>>8|u<<24,L=L+u|0,p^=L,p=p>>>7|p<<25,B=(B+y|0)+w|0,d^=B,d=d>>>16|d<<16,R=R+d|0,y^=R,y=y>>>12|y<<20,B=(B+y|0)+v|0,d^=B,d=d>>>8|d<<24,R=R+d|0,y^=R,y=y>>>7|y<<25,T=(T+I|0)+E|0,b^=T,b=b>>>16|b<<16,F=F+b|0,I^=F,I=I>>>12|I<<20,T=(T+I|0)+P|0,b^=T,b=b>>>8|b<<24,F=F+b|0,I^=F,I=I>>>7|I<<25,H=(H+p|0)+C|0,b^=H,b=b>>>16|b<<16,R=R+b|0,p^=R,p=p>>>12|p<<20,H=(H+p|0)+S|0,b^=H,b=b>>>8|b<<24,R=R+b|0,p^=R,p=p>>>7|p<<25,D=(D+y|0)+_|0,k^=D,k=k>>>16|k<<16,F=F+k|0,y^=F,y=y>>>12|y<<20,D=(D+y|0)+O|0,k^=D,k=k>>>8|k<<24,F=F+k|0,y^=F,y=y>>>7|y<<25,B=(B+I|0)+U|0,u^=B,u=u>>>16|u<<16,$=$+u|0,I^=$,I=I>>>12|I<<20,B=(B+I|0)+m|0,u^=B,u=u>>>8|u<<24,$=$+u|0,I^=$,I=I>>>7|I<<25,T=(T+f|0)+M|0,d^=T,d=d>>>16|d<<16,L=L+d|0,f^=L,f=f>>>12|f<<20,T=(T+f|0)+j|0,d^=T,d=d>>>8|d<<24,L=L+d|0,f^=L,f=f>>>7|f<<25;{let G=g,V=h;g=x,x=A,A=_,_=U,U=S,S=O,O=v,v=G,h=E,E=w,w=P,P=m,m=M,M=j,j=C,C=V}H=(H+f|0)+g|0,k^=H,k=k>>>16|k<<16,$=$+k|0,f^=$,f=f>>>12|f<<20,H=(H+f|0)+h|0,k^=H,k=k>>>8|k<<24,$=$+k|0,f^=$,f=f>>>7|f<<25,D=(D+p|0)+x|0,u^=D,u=u>>>16|u<<16,L=L+u|0,p^=L,p=p>>>12|p<<20,D=(D+p|0)+A|0,u^=D,u=u>>>8|u<<24,L=L+u|0,p^=L,p=p>>>7|p<<25,B=(B+y|0)+w|0,d^=B,d=d>>>16|d<<16,R=R+d|0,y^=R,y=y>>>12|y<<20,B=(B+y|0)+v|0,d^=B,d=d>>>8|d<<24,R=R+d|0,y^=R,y=y>>>7|y<<25,T=(T+I|0)+E|0,b^=T,b=b>>>16|b<<16,F=F+b|0,I^=F,I=I>>>12|I<<20,T=(T+I|0)+P|0,b^=T,b=b>>>8|b<<24,F=F+b|0,I^=F,I=I>>>7|I<<25,H=(H+p|0)+C|0,b^=H,b=b>>>16|b<<16,R=R+b|0,p^=R,p=p>>>12|p<<20,H=(H+p|0)+S|0,b^=H,b=b>>>8|b<<24,R=R+b|0,p^=R,p=p>>>7|p<<25,D=(D+y|0)+_|0,k^=D,k=k>>>16|k<<16,F=F+k|0,y^=F,y=y>>>12|y<<20,D=(D+y|0)+O|0,k^=D,k=k>>>8|k<<24,F=F+k|0,y^=F,y=y>>>7|y<<25,B=(B+I|0)+U|0,u^=B,u=u>>>16|u<<16,$=$+u|0,I^=$,I=I>>>12|I<<20,B=(B+I|0)+m|0,u^=B,u=u>>>8|u<<24,$=$+u|0,I^=$,I=I>>>7|I<<25,T=(T+f|0)+M|0,d^=T,d=d>>>16|d<<16,L=L+d|0,f^=L,f=f>>>12|f<<20,T=(T+f|0)+j|0,d^=T,d=d>>>8|d<<24,L=L+d|0,f^=L,f=f>>>7|f<<25,i&&(o[s+8]=$^e[t],o[s+9]=L^e[t+1],o[s+10]=R^e[t+2],o[s+11]=F^e[t+3],o[s+12]=k^e[t+4],o[s+13]=u^e[t+5],o[s+14]=d^e[t+6],o[s+15]=b^e[t+7]),o[s]=H^$,o[s+1]=D^L,o[s+2]=B^R,o[s+3]=T^F,o[s+4]=f^k,o[s+5]=p^u,o[s+6]=y^d,o[s+7]=I^b}var ut=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Qt=1,zt=2,qe=4,Ge=8,Wn=16,qn=32,Gn=64,jt=32,Wt=32,ye=64,Ve=1024,Vn=54;var oc=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,2,6,3,10,7,0,4,13,1,11,12,5,9,14,15,8,3,4,10,12,13,2,7,14,6,5,9,0,11,15,8,1,10,7,12,9,14,3,13,15,4,0,11,2,5,8,1,6,12,13,9,11,15,10,14,8,7,2,5,3,0,1,6,4,9,14,11,5,8,12,15,1,13,3,0,10,2,6,4,7,11,15,5,0,1,9,8,6,14,10,2,12,3,4,7,13]);var gt=new Uint8Array(new Uint32Array([16909060]).buffer)[0]===4;function qt(e,t,n){for(let r=0;r<16;++r,t+=4)n[r]=e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24}function xt(e,t,n,r,o){let s=o>>>2,i=0;for(;i>>8&255,n[r+2]=c>>>16&255,n[r+3]=c>>>24&255}let a=o&3;if(a>0){let c=e[t+i];n[r]=c&255,a>1&&(n[r+1]=c>>>8&255),a>2&&(n[r+2]=c>>>16&255)}}function Xn(e){if(typeof TextEncoder<"u")return new TextEncoder().encode(e);let t=[];for(let n=0;n>6,128|r&63):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|r&63):(n++,r=65536+((r&1023)<<10|e.charCodeAt(n)&1023),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|r&63))}return new Uint8Array(t)}var ic=new Uint8Array([0,1,28,2,29,14,24,3,30,22,20,15,25,17,4,8,31,27,13,23,21,19,16,7,26,12,18,6,11,5,10,9]);var At=class{inputCv;blockWords;counter;blockLen;flags;outputBlock;outputBlockOffset;constructor(t,n,r,o,s){this.inputCv=t,this.blockWords=n,this.counter=r,this.blockLen=o,this.flags=s|Ge,this.outputBlock=new Uint32Array(16),this.outputBlockOffset=64}read(t){let n=new Uint8Array(t),r=0;for(;r=64&&(be(this.inputCv,0,this.blockWords,0,this.outputBlock,0,!0,this.counter++,this.blockLen,this.flags),this.outputBlockOffset=0);let o=64-this.outputBlockOffset,s=Math.min(o,t-r),i=this.outputBlockOffset>>>2;if((this.outputBlockOffset&3)===0&&s>=4){let c=s>>>2;xt(this.outputBlock,i,n,r,c<<2);let l=c<<2;r+=l,this.outputBlockOffset+=l}else{for(let c=0;c>>2,g=this.outputBlockOffset+c&3;n[r+c]=this.outputBlock[l]>>>(g<<3)&255}r+=s,this.outputBlockOffset+=s}}return n}},Gt=class{chainingValue;chunkCounter;blockWords;blockLen;blocksCompressed;flags;constructor(t,n,r){this.chainingValue=new Uint32Array(t),this.chunkCounter=n,this.blockWords=new Uint32Array(16),this.blockLen=0,this.blocksCompressed=0,this.flags=r}resetTo(t,n,r){this.chainingValue.set(t),this.chunkCounter=n,this.blockLen=0,this.blocksCompressed=0,this.flags=r}startFlag(){return this.blocksCompressed===0?Qt:0}update(t,n,r){let o=0;for(;r>0;){this.blockLen===ye&&(be(this.chainingValue,0,this.blockWords,0,this.chainingValue,0,!1,this.chunkCounter,ye,this.flags|this.startFlag()),this.blocksCompressed++,this.blockLen=0);let s=ye-this.blockLen,i=Math.min(s,r);if(this.blockLen===0&&i===ye)qt(t,n,this.blockWords);else for(let a=0;a>>2,g=c&3;g===0?this.blockWords[l]=t[n+a]:this.blockWords[l]|=t[n+a]<<(g<<3)}this.blockLen+=i,n+=i,r-=i,o+=i}return o}output(){let t=this.blockLen+3>>>2;for(let n=t;n<16;n++)this.blockWords[n]=0;return{inputCv:this.chainingValue,blockWords:this.blockWords,blockLen:this.blockLen,counter:this.chunkCounter,flags:this.flags|this.startFlag()|zt}}len(){return this.blocksCompressed*ye+this.blockLen}},fe=class e{chunkState;keyWords;cvStack;cvStackLen;flags;parentBlock;parentCv;chunkCv;outWords;finalizeCv;constructor(t,n){this.keyWords=t?new Uint32Array(t):new Uint32Array(ut),this.flags=n??0,this.chunkState=new Gt(this.keyWords,0,this.flags),this.cvStack=new Uint32Array(Vn*8),this.cvStackLen=0,this.parentBlock=new Uint32Array(16),this.parentCv=new Uint32Array(8),this.chunkCv=new Uint32Array(8),this.outWords=new Uint32Array(16),this.finalizeCv=new Uint32Array(8)}reset(){return this.chunkState.resetTo(this.keyWords,0,this.flags),this.cvStackLen=0,this}static newKeyed(t){if(t.length!==Wt)throw new Error(`Key must be ${Wt} bytes, got ${t.length}`);let n=new Uint32Array(8);if(gt){let r=new Uint32Array(t.buffer,t.byteOffset,8);n.set(r)}else for(let r=0;r<8;r++){let o=r*4;n[r]=t[o]|t[o+1]<<8|t[o+2]<<16|t[o+3]<<24}return new e(n,Wn)}static newDeriveKey(t){let n=Xn(t),r=new e(new Uint32Array(ut),qn);r.update(n);let o=new Uint32Array(8),s=r.finalizeOutput();return be(s.inputCv,0,s.blockWords,0,o,0,!1,s.counter,s.blockLen,s.flags|Ge),new e(o,Gn)}pushCv(t,n){this.cvStack.set(t.subarray(n,n+8),this.cvStackLen*8),this.cvStackLen++}popCv(t,n){this.cvStackLen--,t.set(this.cvStack.subarray(this.cvStackLen*8,(this.cvStackLen+1)*8),n)}addChunkCv(t,n,r){let o=this.parentBlock,s=this.parentCv;for(;(r&1)===0;)this.popCv(o,0),o.set(t.subarray(n,n+8),8),be(this.keyWords,0,o,0,s,0,!1,0,ye,this.flags|qe),t=s,n=0,r>>>=1;this.pushCv(t,n)}update(t){let n=0,r=t.length;for(;r>0;){if(this.chunkState.len()===Ve){let i=this.chunkState.output(),a=this.chunkCv;be(i.inputCv,0,i.blockWords,0,a,0,!1,i.counter,i.blockLen,i.flags);let c=this.chunkState.chunkCounter+1;this.addChunkCv(a,0,c),this.chunkState.resetTo(this.keyWords,c,this.flags)}let o=Ve-this.chunkState.len(),s=Math.min(o,r);this.chunkState.update(t,n,s),n+=s,r-=s}return this}finalizeOutput(){let t=this.chunkState.output(),n=this.parentBlock,r=this.finalizeCv;if(this.cvStackLen>0)for(be(t.inputCv,0,t.blockWords,0,r,0,!1,t.counter,t.blockLen,t.flags);this.cvStackLen>0;)if(this.cvStackLen--,n.set(this.cvStack.subarray(this.cvStackLen*8,(this.cvStackLen+1)*8),0),n.set(r,8),this.cvStackLen>0)be(this.keyWords,0,n,0,r,0,!1,0,ye,this.flags|qe);else return{inputCv:this.keyWords,blockWords:n,blockLen:ye,counter:0,flags:this.flags|qe};return t}finalize(t=jt){let n=this.finalizeOutput(),r=new Uint8Array(t);if(t<=64){let o=this.outWords;if(be(n.inputCv,0,n.blockWords,0,o,0,t>32,n.counter,n.blockLen,n.flags|Ge),gt){let s=new Uint8Array(o.buffer);r.set(s.subarray(0,t))}else xt(o,0,r,0,t)}else{let s=this.finalizeXof().read(t);r.set(s)}return r}finalizeXof(){let t=this.finalizeOutput();return new At(new Uint32Array(t.inputCv),new Uint32Array(t.blockWords),t.counter,t.blockLen,t.flags)}};function se(e){return[e&127|128,e>>>7&127]}function wt(e){return[e&127|128,e>>>7&127|128,e>>>14&127|128,e>>>21&127|128,e>>>28&15]}function Kn(e){let t=[],n=e|0,r=!0;for(;r;){let o=n&127;n>>=7,n===0&&(o&64)===0||n===-1&&(o&64)!==0?r=!1:o|=128,t.push(o)}return t}var Z=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,2,6,3,10,7,0,4,13,1,11,12,5,9,14,15,8,3,4,10,12,13,2,7,14,6,5,9,0,11,15,8,1,10,7,12,9,14,3,13,15,4,0,11,2,5,8,1,6,12,13,9,11,15,10,14,8,7,2,5,3,0,1,6,4,9,14,11,5,8,12,15,1,13,3,0,10,2,6,4,7,11,15,5,0,1,9,8,6,14,10,2,12,3,4,7,13];function Yo(){let e=[];function t(U){e.push(...U)}t([0,97,115,109]),t([1,0,0,0]),t([1]),t([4]),t([1]),t([96,0,0]),t([2]),t([11]),t([1]),t([2,106,115]),t([3,109,101,109]),t([2,0,1]),t([3]),t([4]),t([3]),t([0]),t([0]),t([0]),t([7]),t([50]),t([3]),t([10]),t([99,111,109,112,114,101,115,115,52,120]),t([0,0]),t([16]),t([99,111,109,112,114,101,115,115,67,104,117,110,107,115,52,120]),t([0,1]),t([14]),t([99,111,109,112,114,101,115,115,80,97,114,101,110,116]),t([0,2]),t([10]);let n=e.length;t([0,0,0,0,0]),t([3]);let r=e.length;t([0,0,0,0,0]);let o=e.length;t([1]),t([32,123]);for(let U=0;U<16;U++)t([65,...se(U*16)]),t([253,0,2,0]),t([33,U]);for(let U=0;U<8;U++)t([65,...se(512+U*16)]),t([253,0,2,0]),t([33,16+U]);let s=[1779033703,3144134277,1013904242,2773480762];for(let U=0;U<4;U++){let m=[];for(let M=0;M<4;M++)m.push(s[U]&255),m.push(s[U]>>>8&255),m.push(s[U]>>>16&255),m.push(s[U]>>>24&255);t([253,12,...m]),t([33,24+U])}t([65,...se(768)]),t([253,0,2,0]),t([33,28]),t([65,...se(784)]),t([253,0,2,0]),t([33,29]),t([65,...se(800)]),t([253,0,2,0]),t([33,30]),t([65,...se(816)]),t([253,0,2,0]),t([33,31]);let i=0;function a(U,m,M,j){let H=Z[i++],D=Z[i++];t([32,16+U]),t([32,16+m]),t([253,174,1]),t([32,H]),t([253,174,1]),t([33,16+U]),t([32,16+j]),t([32,16+U]),t([253,81]),t([34,16+j]),t([32,16+j]),t([253,13,2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13]),t([33,16+j]),t([32,16+M]),t([32,16+j]),t([253,174,1]),t([33,16+M]),t([32,16+m]),t([32,16+M]),t([253,81]),t([34,16+m]),t([65,12]),t([253,173,1]),t([32,16+m]),t([65,20]),t([253,171,1]),t([253,80]),t([33,16+m]),t([32,16+U]),t([32,16+m]),t([253,174,1]),t([32,D]),t([253,174,1]),t([33,16+U]),t([32,16+j]),t([32,16+U]),t([253,81]),t([34,16+j]),t([32,16+j]),t([253,13,1,2,3,0,5,6,7,4,9,10,11,8,13,14,15,12]),t([33,16+j]),t([32,16+M]),t([32,16+j]),t([253,174,1]),t([33,16+M]),t([32,16+m]),t([32,16+M]),t([253,81]),t([34,16+m]),t([65,7]),t([253,173,1]),t([32,16+m]),t([65,25]),t([253,171,1]),t([253,80]),t([33,16+m])}for(let U=0;U<7;U++)a(0,4,8,12),a(1,5,9,13),a(2,6,10,14),a(3,7,11,15),a(0,5,10,15),a(1,6,11,12),a(2,7,8,13),a(3,4,9,14);for(let U=0;U<8;U++)t([65,...se(640+U*16)]),t([32,16+U]),t([32,24+U]),t([253,81]),t([253,11,2,0]);t([11]);let c=e.length-o,l=wt(c);for(let U=0;U<5;U++)e[r+U]=l[U];let g=e.length;t([0,0,0,0,0]);let h=e.length,x=Zo();t(x);let A=e.length-h,w=wt(A);for(let U=0;U<5;U++)e[g+U]=w[U];let v=e.length;t([0,0,0,0,0]);let E=e.length,P=es();t(P);let C=e.length-E,S=wt(C);for(let U=0;U<5;U++)e[v+U]=S[U];let _=e.length-n-5,O=wt(_);for(let U=0;U<5;U++)e[n+U]=O[U];return new Uint8Array(e)}function Zo(){let e=[];function t(h){e.push(...h)}t([2]),t([32,123]),t([1,127]);let n=K.BATCH_BLOCK_WORDS,r=K.BATCH_CV,o=K.BATCH_COUNTER_LOW,s=K.BATCH_FLAGS_BASE,i=K.BATCH_OUTPUT,a=[1779033703,3144134277,1013904242,2773480762];for(let h=0;h<8;h++)t([65,...se(r+h*16)]),t([253,0,2,0]),t([33,16+h]);t([65,0]),t([33,32]),t([2,64]),t([3,64]);for(let h=0;h<16;h++)t([32,32]),t([65,...se(256)]),t([108]),t([65,...se(n+h*16)]),t([106]),t([253,0,2,0]),t([33,h]);for(let h=0;h<4;h++){let x=[];for(let A=0;A<4;A++)x.push(a[h]&255),x.push(a[h]>>>8&255),x.push(a[h]>>>16&255),x.push(a[h]>>>24&255);t([253,12,...x]),t([33,24+h])}t([65,...se(o)]),t([253,0,2,0]),t([33,28]),t([253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),t([33,29]);let c=[];for(let h=0;h<4;h++)c.push(64,0,0,0);t([253,12,...c]),t([33,30]),t([65,...se(s)]),t([253,0,2,0]),t([32,32]),t([69]),t([32,32]),t([65,15]),t([70]),t([65,1]),t([116]),t([114]),t([253,17]),t([253,80]),t([33,31]);let l=0;function g(h,x,A,w){let v=Z[l++],E=Z[l++];t([32,16+h]),t([32,16+x]),t([253,174,1]),t([32,v]),t([253,174,1]),t([33,16+h]),t([32,16+w]),t([32,16+h]),t([253,81]),t([34,16+w]),t([32,16+w]),t([253,13,2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13]),t([33,16+w]),t([32,16+A]),t([32,16+w]),t([253,174,1]),t([33,16+A]),t([32,16+x]),t([32,16+A]),t([253,81]),t([34,16+x]),t([65,12]),t([253,173,1]),t([32,16+x]),t([65,20]),t([253,171,1]),t([253,80]),t([33,16+x]),t([32,16+h]),t([32,16+x]),t([253,174,1]),t([32,E]),t([253,174,1]),t([33,16+h]),t([32,16+w]),t([32,16+h]),t([253,81]),t([34,16+w]),t([32,16+w]),t([253,13,1,2,3,0,5,6,7,4,9,10,11,8,13,14,15,12]),t([33,16+w]),t([32,16+A]),t([32,16+w]),t([253,174,1]),t([33,16+A]),t([32,16+x]),t([32,16+A]),t([253,81]),t([34,16+x]),t([65,7]),t([253,173,1]),t([32,16+x]),t([65,25]),t([253,171,1]),t([253,80]),t([33,16+x])}for(let h=0;h<7;h++)g(0,4,8,12),g(1,5,9,13),g(2,6,10,14),g(3,7,11,15),g(0,5,10,15),g(1,6,11,12),g(2,7,8,13),g(3,4,9,14);for(let h=0;h<8;h++)t([32,16+h]),t([32,24+h]),t([253,81]),t([33,16+h]);t([32,32]),t([65,1]),t([106]),t([34,32]),t([65,16]),t([73]),t([13,0]),t([11]),t([11]);for(let h=0;h<8;h++)t([65,...se(i+h*16)]),t([32,16+h]),t([253,11,2,0]);return t([11]),e}function es(){let e=[];function t(a){e.push(...a)}t([1]),t([32,127]);let n=K.PARENT_BLOCK,r=K.CHUNK_CV,o=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];for(let a=0;a<16;a++)t([65,...se(n+a*4)]),t([40,2,0]),t([33,a]);for(let a=0;a<8;a++)t([65,...Kn(o[a])]),t([33,16+a]);for(let a=0;a<4;a++)t([65,...Kn(o[a])]),t([33,24+a]);t([65,0]),t([33,28]),t([65,0]),t([33,29]),t([65,192,0]),t([33,30]),t([65,4]),t([33,31]);function s(a,c,l,g,h,x){let A=16+a,w=16+c,v=16+l,E=16+g;t([32,A]),t([32,w]),t([106]),t([32,h]),t([106]),t([33,A]),t([32,E]),t([32,A]),t([115]),t([65,16]),t([120]),t([33,E]),t([32,v]),t([32,E]),t([106]),t([33,v]),t([32,w]),t([32,v]),t([115]),t([65,12]),t([120]),t([33,w]),t([32,A]),t([32,w]),t([106]),t([32,x]),t([106]),t([33,A]),t([32,E]),t([32,A]),t([115]),t([65,8]),t([120]),t([33,E]),t([32,v]),t([32,E]),t([106]),t([33,v]),t([32,w]),t([32,v]),t([115]),t([65,7]),t([120]),t([33,w])}let i=0;for(let a=0;a<7;a++)s(0,4,8,12,Z[i],Z[i+1]),i+=2,s(1,5,9,13,Z[i],Z[i+1]),i+=2,s(2,6,10,14,Z[i],Z[i+1]),i+=2,s(3,7,11,15,Z[i],Z[i+1]),i+=2,s(0,5,10,15,Z[i],Z[i+1]),i+=2,s(1,6,11,12,Z[i],Z[i+1]),i+=2,s(2,7,8,13,Z[i],Z[i+1]),i+=2,s(3,4,9,14,Z[i],Z[i+1]),i+=2;for(let a=0;a<8;a++)t([65,...se(r+a*4)]),t([32,16+a]),t([32,24+a]),t([115]),t([54,2,0]);return t([11]),e}var Xe=null,Le=null,ts=null,ns=null,rs=null,os=null,ss=null;function is(){try{let e=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,22,1,20,0,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11]);return WebAssembly.validate(e)}catch{return!1}}function as(){if(!Le)return;let e=Le.buffer;cs=new Uint32Array(e,K.CV_STACK,512),ls=new Uint32Array(e,K.PARENT_BLOCK,16),hs=new Uint32Array(e,K.CHUNK_CV,8),ds=new Uint32Array(e,K.TEMP_CVS,32),fs=new Uint32Array(e,K.BATCH_BLOCK_WORDS,256*4),us=new Uint32Array(e,K.BATCH_CV,32),gs=new Uint32Array(e,K.BATCH_COUNTER_LOW,4),xs=new Uint32Array(e,K.BATCH_FLAGS_BASE,4),As=new Uint32Array(e,K.BATCH_OUTPUT,32)}var Jn=null;function Yn(){if(Xe)return!0;if(!is())return!1;try{let e=Jn||Yo();Jn=e,Le=new WebAssembly.Memory({initial:1});let t={js:{mem:Le}},n=new WebAssembly.Module(e.buffer);return Xe=new WebAssembly.Instance(n,t),ts=Xe.exports.compress4x,ns=Xe.exports.compressChunks4x,rs=Xe.exports.compressParent,os=new Uint8Array(Le.buffer),ss=new Uint32Array(Le.buffer),as(),!0}catch(e){return console.warn("Failed to initialize WASM SIMD:",e),!1}}var K={BLOCK_WORDS:0,CHAINING_VALUES:512,OUTPUT:640,COUNTER_LOW:768,COUNTER_HIGH:784,BLOCK_LEN:800,FLAGS:816,BATCH_BLOCK_WORDS:832,BATCH_CV:4928,BATCH_COUNTER_LOW:5056,BATCH_FLAGS_BASE:5072,BATCH_OUTPUT:5088,CV_STACK:5216,PARENT_BLOCK:7264,CHUNK_CV:7328,TEMP_CVS:7360},cs=null,ls=null,hs=null,ds=null,fs=null,us=null,gs=null,xs=null,As=null;var ws=64,kc=new Uint32Array(ws*8),Zn=64,ps=new Uint32Array(Zn*8),bs=[];for(let e=0;e{Xt()});var er=64*1024,Bs=8,Ss=2,Ke=64,ms=new Uint8Array([102,151,245,119,91,149,80,222,49,53,203,172,165,151,24,28,157,228,33,16,155,235,43,88,180,208,176,75,147,173,242,41]),Kt=class{minimumChunk;maximumChunk;chunkBuf;curChunkLen;gear;blake3;constructor(t=er){if(t<=0)throw new Error("Target chunk size must be greater than 0");if((t&t-1)!==0)throw new Error("Target chunk size must be a power of 2");if(t<=Ke)throw new Error("Target chunk size must be greater than hash window size");if(t>=Number.MAX_SAFE_INTEGER)throw new Error("Target chunk size must be less than Number.MAX_SAFE_INTEGER");let n=BigInt(t-1),r=0;for(let s=63;s>=0&&(n&1n<=this.maximumChunk&&(a=this.maximumChunk-this.curChunkLen,o=!0),this.curChunkLen+=a,s+=a,this.chunkBuf.set(t.subarray(0,s),this.curChunkLen-s)}if(o||n&&this.curChunkLen>0){let i=this.chunkBuf.subarray(0,this.curChunkLen),a=this.blake3.reset().update(i).finalize(32),c={length:i.length,hash:a};return this.curChunkLen=0,this.gear.resetHash(),{chunk:c,bytesConsumed:s}}return{chunk:null,bytesConsumed:s}}nextBlock(t,n){let r=[],o=0;for(;o0;){let i=this.next(t.subarray(o),!1);i.chunk&&r.push(i.chunk),o+=i.bytesConsumed}let s=this.minimumChunk>Ke?this.minimumChunk-Ke-1:0;for(;o=this.maximumChunk?(g=i+this.maximumChunk,h=!0):(h=!1,g=c),h){let x=this.blake3.reset().update(t.subarray(i,g)).finalize(32);r.push({length:g-i,hash:x}),o=g,this.gear.resetHash()}else if(n){let x=this.blake3.reset().update(t.subarray(i)).finalize(32);r.push({length:t.length-i,hash:x}),o=t.length}else this.chunkBuf.set(t.subarray(i),0),this.curChunkLen=t.length-i,o=t.length}return r}finish(){if(this.curChunkLen>0){let t=this.chunkBuf.subarray(0,this.curChunkLen),n=this.blake3.reset().update(t).finalize(32),r={length:this.curChunkLen,hash:n};return this.curChunkLen=0,this.gear.resetHash(),r}return null}};function pt(e=er){return new Kt(e)}function Jt(e,t){return e.nextBlock(t,!1)}function Yt(e){return e.finish()}function Ie(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=t.getBigUint64(0,!0),r=t.getBigUint64(8,!0),o=t.getBigUint64(16,!0),s=t.getBigUint64(24,!0);return n.toString(16).padStart(16,"0")+r.toString(16).padStart(16,"0")+o.toString(16).padStart(16,"0")+s.toString(16).padStart(16,"0")}function Te(e){let t=new Uint8Array(32),n=new DataView(t.buffer);return n.setBigUint64(0,BigInt("0x"+e.slice(0,16)),!0),n.setBigUint64(8,BigInt("0x"+e.slice(16,32)),!0),n.setBigUint64(16,BigInt("0x"+e.slice(32,48)),!0),n.setBigUint64(24,BigInt("0x"+e.slice(48,64)),!0),t}var tr=4,Cs=new Uint8Array([1,126,197,199,165,71,41,150,253,148,102,102,180,138,2,230,93,221,83,111,55,199,109,210,248,99,82,230,74,83,113,63]),vs=24,Ts=fe.newKeyed(Cs);function Je(e){if(e.length===0)return new Uint8Array(32);let t=e;for(;t.length>1;){let n=[],r=0,o=0;for(let s=0;s=2&&t[s].hash[vs]%tr===0?(n.push(Us(t.slice(r,s+1))),r=s+1,o=0):o++;t=n}return t[0].hash}function Us(e){let t="",n=0;for(let s of e)t+=Ie(s.hash)+" : "+s.length+` `,n+=s.length;let r=new Uint8Array(t.length);for(let s=0;s2)throw new TypeError("Too many slashes in repo designation: "+e);return{type:"dataset",name:e.slice(9)}}if(e.startsWith("buckets/")){if(t!==2)throw new TypeError("Bucket Id must include namespace and name of the bucket");return{type:"bucket",name:e.slice(8)}}if(e.startsWith("kernels/")){if(t!==2)throw new TypeError("Kernel Id must include namespace and name of the kernel");return{type:"kernel",name:e.slice(8)}}if(t>1)throw new TypeError("Too many slashes in repo designation: "+e);return{type:"model",name:e}}async function x0(e){let t=e&&q(e),n=ee(e.repo),r=await(e.fetch||fetch)(`${e?.hubUrl||z}/api/${n.type}s/${n.name}`,{headers:{...t?{Authorization:`Bearer ${t}`}:{}}});if(!r.ok)throw await Q(r)}function Ps(e,t){return t?Array(t-e).fill(0).map((n,r)=>e+r):Array(e).fill(0).map((n,r)=>r)}function vt(e,t){if(isNaN(t)||t<1)throw new RangeError("Invalid chunk size: "+t);return e.length?e.length<=t?[e]:Ps(Math.ceil(e.length/t)).map(n=>e.slice(n*t,(n+1)*t)):[]}async function vn(e,t){let n=[],r=new Set,o=0;for(let s of e){let i=o++,a=s().then(c=>{n[i]=c,r.delete(a)});r.add(a),r.size>=t&&await Promise.race(r)}return await Promise.all(r),n}async function cr(e,t){let n=[];for await(let r of e){let o=r().then(()=>{n.splice(n.indexOf(o),1)});n.push(o),n.length>=t&&await Promise.race(n)}await Promise.all(n)}async function*_e(e){let t=[];function n(){let o,s,i=new Promise((a,c)=>{o=a,s=c});t.push({p:i,resolve:o,reject:s})}n();let r=Promise.resolve().then(()=>e(o=>{n(),t.at(-2)?.resolve({done:!1,value:o})},o=>{n(),t.at(-2)?.resolve({done:!0,value:o})},o=>t.shift()?.reject(o))).catch(o=>t.shift()?.reject(o));for(;;){let o=t[0];if(!o)throw new Error("Logic error in eventGenerator, promises should never be empty");let s=await o.p;if(t.shift(),s.done)return await r,s.value;yield s.value}throw new Error("Unreachable")}function Os(e){if(globalThis.Buffer)return globalThis.Buffer.from(e).toString("hex");{let t=[];return e.forEach(n=>{t.push(n.toString(16).padStart(2,"0"))}),t.join("")}}var Qs=typeof window<"u"&&typeof window.document<"u",zs=typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope",js=!Qs&&!zs,rt=!js;async function lr(){let e=await Promise.resolve().then(()=>(rn(),nn));return URL.createObjectURL(new Blob([e.createSHA256WorkerCode()]))}var Vr=[],Oe=new Set,ot,Tn=new Promise(e=>{ot=e});async function Ws(e){{let n=Vr.pop();if(n)return Oe.add(n),n}if(!e){let n=new Worker(await lr());return Oe.add(n),n}if(e<=0)throw new TypeError("Invalid webworker pool size: "+e);for(;Oe.size>=e;)await Tn;let t=new Worker(await lr());return Oe.add(t),t}async function qs(e,t){if(!t)return Me(e);Oe.delete(e),Vr.push(e);let n=ot;Tn=new Promise(r=>{ot=r}),n()}function Me(e){Oe.delete(e),e.terminate();let t=ot;Tn=new Promise(n=>{ot=n}),t()}async function*Gs(e,t){yield 0;let n=typeof t?.useWebWorker=="object"&&t?.useWebWorker.minSize!==void 0?t.useWebWorker.minSize:1e7;if(e.size{c.removeEventListener("message",l),c.removeEventListener("error",g),h&&t?.abortSignal?.removeEventListener("abort",h)};return yield*_e((A,w,v)=>{if(l=E=>{if(E.data.sha256)x(),qs(c,a),w(E.data.sha256);else if(E.data.progress){A(E.data.progress);try{t.abortSignal?.throwIfAborted()}catch(P){x(),Me(c),v(P)}}else x(),Me(c),v(E)},g=E=>{x(),Me(c),v(E.error)},t?.abortSignal){try{t.abortSignal?.throwIfAborted()}catch{x(),Me(c),v(t.abortSignal.reason??new DOMException("Aborted","AbortError"));return}h=()=>{x(),Me(c),v(t.abortSignal?.reason??new DOMException("Aborted","AbortError"))},t.abortSignal.addEventListener("abort",h)}c.addEventListener("message",l),c.addEventListener("error",g),c.postMessage({file:e})})}catch(a){console.warn("Failed to use web worker for sha256",a)}sn||(sn=await Promise.resolve().then(()=>(rn(),nn)));let r=await sn.createSHA256();r.init();let o=e.stream().getReader(),s=e.size,i=0;for(;;){let{done:a,value:c}=await o.read();if(a)break;r.update(c),i+=c.length,yield i/s,t?.abortSignal?.throwIfAborted()}return r.digest("hex")}return on||(on=await Promise.resolve().then(()=>(or(),Fs))),yield*on.sha256Node(e,{abortSignal:t?.abortSignal})}var on,sn,ze=class extends Blob{static async create(e,t){let n=t?.fetch??fetch,r=await n(e,{headers:{Range:"bytes=0-0",...t?.accessToken&&{Authorization:`Bearer ${t.accessToken}`}}});if(!r.ok)throw await Q(r);let o=r.headers.get("content-type")||"";if(r.status===206){let s=Number(r.headers.get("content-range")?.split("/").pop());if(await r.body?.cancel(),Number.isFinite(s)&&s>=(t?.cacheBelow??1e6))return new ze(e,0,s,o,!0,n,t?.accessToken);let i=await n(e,{...t?.accessToken&&{headers:{Authorization:`Bearer ${t.accessToken}`}}});if(!i.ok)throw await Q(i);return i.blob()}return r.blob()}url;start;end;contentType;full;fetch;accessToken;constructor(e,t,n,r,o,s,i){super([]),this.url=e,this.start=t,this.end=n,this.contentType=r,this.full=o,this.fetch=s,this.accessToken=i}get size(){return this.end-this.start}get type(){return this.contentType}slice(e=0,t=this.size){return(e<0||t<0)&&new TypeError("Unsupported negative start/end on WebBlob.slice"),new ze(this.url,this.start+e,Math.min(this.start+t,this.end),this.contentType,e===0&&t===this.size?this.full:!1,this.fetch,this.accessToken)}async arrayBuffer(){return(await this.fetchRange()).arrayBuffer()}async text(){return(await this.fetchRange()).text()}stream(){let e=new TransformStream;return this.fetchRange().then(t=>t.body?.pipeThrough(e)).catch(t=>e.writable.abort(t.message)),e.readable}fetchRange(){let e=this.fetch;return this.full?e(this.url,{...this.accessToken&&{headers:{Authorization:`Bearer ${this.accessToken}`}}}).then(t=>t.ok?t:Q(t)):e(this.url,{headers:{Range:`bytes=${this.start}-${this.end-1}`,...this.accessToken&&{Authorization:`Bearer ${this.accessToken}`}}}).then(t=>t.ok?t:Q(t))}};function Rt(e){if(globalThis.Buffer)return globalThis.Buffer.from(e).toString("base64");{let t=[];return e.forEach(n=>{t.push(String.fromCharCode(n))}),globalThis.btoa(t.join(""))}}async function Xr(e,t,n){if(e.protocol==="http:"||e.protocol==="https:"){let r=await ze.create(e,{fetch:n?.fetch,accessToken:n?.accessToken});return[{path:t,blob:r}]}if(rt)throw new TypeError(`Unsupported URL protocol "${e.protocol}"`);if(e.protocol==="file:"){let{FileBlob:r}=await Promise.resolve().then(()=>(sr(),Ns)),{subPaths:o}=await Promise.resolve().then(()=>(ir(),Ms)),s=await o(e,n?.maxFolderDepth);if(s.length===1&&s[0].relativePath==="."){let i=await r.create(e);return[{path:t,blob:i}]}return Promise.all(s.map(async i=>({path:`${t}/${i.relativePath}`.replace(/\/[.]$/,"").replaceAll("//","/").replace(/^[.]?\//,""),blob:await r.create(new URL(i.path))})))}throw new TypeError(`Unsupported URL protocol "${e.protocol}"`)}function En(...e){let t=e.reduce((o,s)=>o+s.length,0),n=new Uint8Array(t),r=0;for(let o of e)n.set(o,r),r+=o.length;return n}function Vs(e){return e=e|0,e=e+2127912214+(e<<12)|0,e=e^-949894596^e>>>19,e=e+374761393+(e<<5)|0,e=e+-744332180^e<<9,e=e+-42973499+(e<<3)|0,e^-1252372727^e>>>16|0}function Xs(e,t){let n=0;return n|=e[t++]<<0,n|=e[t++]<<8,n|=e[t++]<<16,n|=e[t++]<<24,n|=e[t++]<<32,n|=e[t++]<<40,n|=e[t++]<<48,n|=e[t++]<<56,n}function we(e,t){let n=0;return n|=e[t++]<<0,n|=e[t++]<<8,n|=e[t++]<<16,n|=e[t++]<<24,n}function bt(e,t,n){e[t++]=n>>0&255,e[t++]=n>>8&255,e[t++]=n>>16&255,e[t++]=n>>24&255}function st(e,t){let n=e>>>16,r=e&65535,o=t>>>16,s=t&65535;return r*s+(n*s+r*o<<16)|0}var Re=2654435761,He=2246822519,Kr=3266489917,Ks=668265263,Jr=374761393;function yt(e,t){return e=e|0,t=t|0,e>>>(32-t|0)|e<>>(32-t|0)|e<>>t^e|0}function Ze(e,t,n,r,o){return Yr(st(t,n)+e,r,o)}function Js(e,t,n){return Yr(e+st(t[n],Jr),11,Re)}function Ys(e,t,n){return Ze(e,we(t,n),Kr,17,Ks)}function Zs(e,t,n){return[Ze(e[0],we(t,n+0),He,13,Re),Ze(e[1],we(t,n+4),He,13,Re),Ze(e[2],we(t,n+8),He,13,Re),Ze(e[3],we(t,n+12),He,13,Re)]}function ei(e,t,n,r){let o,s=r;if(r>=16){for(o=[e+Re+He,e+He,e,e-Re];r>=16;)o=Zs(o,t,n),n+=16,r-=16;o=yt(o[0],1)+yt(o[1],7)+yt(o[2],12)+yt(o[3],18)+s}else o=e+Jr+r>>>0;for(;r>=4;)o=Ys(o,t,n),n+=4,r-=4;for(;r>0;)o=Js(o,t,n),n++,r--;return o=an(st(an(st(an(o,15),He),13),Kr),16),o>>>0}var ti=ei,kn=4,ni=12,ri=5,cn=6,Ct=65536,et=4,It=(1<>Rn&to;if(Ut[s]===void 0)throw new Error("invalid block size "+s);let i=Ut[s];if(o)return Xs(e,t);t++;let a=0;for(;;){let c=we(e,t);if(t+=4,c&Tt?(c&=~Tt,a+=c):c>0&&(a+=i),c===0)return a;r&&(t+=4),t+=c}}function hi(e,t,n,r,o){let s,i,a,c,l,g=t.copyWithin!==void 0&&t.fill!==void 0;for(a=n+r;n>4;if(x>0){if(x===15)for(;x+=e[n],e[n++]===255;);for(c=n+x;n=a)break;if(s=h&15,i=e[n++]|e[n++]<<8,s===15)for(;s+=e[n],e[n++]===255;);if(s+=kn,g&&i===1)t.fill(t[o-1]|0,o,o+s),o+=s;else if(g&&i>s&&s>31)t.copyWithin(o,o-i,o-i+s),o+=s;else for(l=o-i,c=l+s;l>>0;if(E=(E>>16^E)>>>0&65535,s=o[E]-1,o[E]=n+1,s<0||n-s>>>16>0||we(e,s)!==v){l=w++>>cn,n+=l;continue}for(w=(1<=Fe){for(t[h++]=(Fe<=255;A-=255)t[h++]=255;t[h++]=A}else t[h++]=(g<>8,a>=It){for(A=a-It;A>=255;A-=255)t[h++]=255;t[h++]=A}i=n}if(i===0)return 0;if(g=x-i,g>=Fe){for(t[h++]=Fe<=255;A-=255)t[h++]=255;t[h++]=A}else t[h++]=g<>Rn&to;if(Ut[c]===void 0)throw new Error("invalid block size");for(o&&(i+=8),i++;;){var l;if(l=we(e,i),i+=4,l===0)break;if(n&&(i+=4),(l&Tt)!==0){l&=~Tt;for(let g=0;g>8,n++;let r=Ut[fr],o=e.length,s=0;for(ai(dr);o>0;){let i=0,a=o>r?r:o;if(i=di(e,hr,s,a,dr),i>a||i===0){bt(t,n,2147483648|a),n+=4;for(let c=s+a;sc.start&&n.push({index:a,range:c}),c.data!==null)throw new Error("Overlapping range already has data")}if(n.length===0){this.ranges.push({start:e,end:t,refCount:1,data:null}),this.ranges.sort((a,c)=>a.start-c.start);return}let r=[],o=e;for(let a=0;at&&r.push({start:t,end:c.end,refCount:c.refCount,data:null}),o=Math.max(o,c.end)}oa.start-c.start)}remove(e,t){if(t<=e)throw new TypeError("End must be greater than start");let n=[];for(let r=0;ro.start&&n.push({index:r,range:o})}if(n.length===0)throw new Error("No ranges found to remove");if(e!==n[0].range.start||t!==n[n.length-1].range.end)throw new Error("Range boundaries must match existing boundaries");for(let r=0;rr.refCount>0)}getRanges(e,t){if(t<=e)throw new TypeError("End must be greater than start");return this.ranges.filter(n=>en.start)}getAllRanges(){return[...this.ranges]}};function xr(e,t,n=0){let r=t.length;if(r===0)return n<=e.length?n:-1;let o=r-1,s=e.length-r,i=new Uint16Array(256).fill(r);for(let c=0;c=0&&e[a+c]===t[c];)c--;if(c<0)return a;a+=i[e[a+o]]}return-1}var $n=new TextEncoder,ln=$n.encode(`\r `),Ar=$n.encode(`\r \r `),Et=65536,wr=class{#t;#e=ln;#n=[];#s=0;#r;#o=0;#i=0;#a=!1;constructor(e){let t=xi(e);if(!t)throw new Error(`No boundary found in Content-Type: ${e}`);this.#t=$n.encode(`\r --${t}`)}push(e){if(this.#a)return[];let t=e&&e.byteLength?En(this.#e,e):this.#e;this.#e=new Uint8Array(0);let n=[];for(;;){if(this.#i===0||this.#i===2){let r=xr(t,this.#t,0);if(r===-1){let o=Math.max(0,t.byteLength-(this.#t.byteLength-1));this.#i===2&&o>0&&this.#c(t.subarray(0,o)),this.#e=t.slice(o);break}if(this.#i===2){this.#c(t.subarray(0,r));let o=this.#h(),s=xr(o,Ar,0);if(s===-1)throw new Error("Malformed multipart part: missing header/data separator");n.push(o.subarray(s+Ar.byteLength))}t=t.slice(r+this.#t.byteLength),this.#i=1;continue}if(t.byteLength<2){this.#e=t;break}if(t[0]===45&&t[1]===45)return this.#a=!0,n;if(t[0]===ln[0]&&t[1]===ln[1]){t=t.slice(2),this.#i=2;continue}throw new Error("Malformed multipart body: expected CRLF or closing delimiter after boundary")}return n}#c(e){if(this.#s+=e.byteLength,e.byteLength>=Et){this.#l(),this.#n.push(e);return}let t=0;for(;t0&&this.#n.push(this.#r.subarray(0,this.#o)),this.#r=void 0,this.#o=0}#h(){this.#l();let e=new Uint8Array(this.#s),t=0;for(let n of this.#n)e.set(n,t),t+=n.byteLength;return this.#n=[],this.#s=0,e}};function xi(e){for(let t of e.split(";")){let n=t.trim();if(n.toLowerCase().startsWith("boundary="))return n.slice(9).replace(/^"|"$/g,"")}return null}function ce(e){return e.reduce((t,n)=>t+n,0)}function Ai(e){let t=new Uint8Array(ce(e.map(r=>r.byteLength))),n=0;for(let r of e)t.set(r,n),n+=r.byteLength;return t}var pr=6e4,wi=1e3,br=rt?4:8,pi=64*1024*1024,bi=256*1024*1024,yi=500,Ii=1.05,yr=10,Ei=class{#t=[];wait(){return new Promise(e=>this.#t.push(e))}notifyAll(){let e=this.#t;this.#t=[];for(let t of e)t()}};function Ir(e){return new Promise(t=>setTimeout(t,e))}var ki={0:"None",1:"LZ4",2:"ByteGroupingLZ4"},ie=8;function Sn(e){let t={version:e.getUint8(0),compressed_length:e.getUint8(1)|e.getUint8(2)<<8|e.getUint8(3)<<16,compression_scheme:e.getUint8(4),uncompressed_length:e.getUint8(5)|e.getUint8(6)<<8|e.getUint8(7)<<16};if(t.version!==0)throw new Error(`Unsupported chunk version ${t.version}`);if(t.compression_scheme!==0&&t.compression_scheme!==1&&t.compression_scheme!==2)throw new Error(`Unsupported compression scheme ${ki[t.compression_scheme]??t.compression_scheme}`);return t}function mn(e,t){switch(e.compression_scheme){case 1:return ur(t,e.uncompressed_length);case 2:return Bi(ur(t,e.uncompressed_length));default:return t.slice()}}function Er(e,t,n){let r=n.getRanges(t.chunks.start,t.chunks.end),o=new Map,s=t.chunks.start,i=0;for(;i=t.chunks.end)throw new Error(`Multipart part for chunks ${t.chunks.start}-${t.chunks.end} contains more chunks than expected`);if(e.byteLength-ie.byteLength)throw new Error("Truncated chunk data in multipart part");let g=mn(a,e.subarray(c,l)),h=r.find(x=>s>=x.start&&so.byteLength)));return t}var ro=class extends Blob{fetch;accessToken;refreshUrl;reconstructionUrl;hash;start=0;end=0;internalLogging=!1;reconstructionInfo;listener;parallelDownloads;constructor(e){if(super([]),this.fetch=e.fetch??fetch.bind(globalThis),this.accessToken=q(e),this.refreshUrl=e.refreshUrl,this.end=e.size,this.reconstructionUrl=e.reconstructionUrl,this.hash=e.hash,this.listener=e.listener,this.internalLogging=e.internalLogging??!1,this.parallelDownloads=e.parallelDownloads,e.readToken){let t=oo({refreshUrl:this.refreshUrl,initialAccessToken:this.accessToken});Se.set(t,{accessToken:e.readToken.accessToken,expiresAt:new Date(e.readToken.exp*1e3),casUrl:e.readToken.casUrl})}}get size(){return this.end-this.start}#t(){let e=new ro({fetch:this.fetch,hash:this.hash,refreshUrl:this.refreshUrl,reconstructionUrl:this.reconstructionUrl,size:this.size});return e.accessToken=this.accessToken,e.start=this.start,e.end=this.end,e.reconstructionInfo=this.reconstructionInfo,e.listener=this.listener,e.internalLogging=this.internalLogging,e.parallelDownloads=this.parallelDownloads,e}slice(e=0,t=this.size){(e<0||t<0)&&new TypeError("Unsupported negative start/end on XetBlob.slice");let n=this.#t();return n.start=this.start+e,n.end=Math.min(this.start+t,this.end),(n.start!==this.start||n.end!==this.end)&&(n.reconstructionInfo=void 0),n}#e;#n(){return this.#e?this.#e:(this.#e=(async()=>{let e=await mi(this.accessToken,this.fetch,this.refreshUrl),t=this.reconstructionUrl?this.reconstructionUrl.replace("/v1/reconstructions/","/v2/reconstructions/"):`${e.casUrl}/v2/reconstructions/${this.hash}`,n=await this.fetch(t,{headers:{Authorization:`Bearer ${e.accessToken}`,Range:`bytes=${this.start}-${this.end-1}`}});if(!n.ok)throw await Q(n);return this.reconstructionInfo=await n.json(),this.reconstructionInfo})().finally(()=>this.#e=void 0),this.#e)}async#s(){if(this.size===0)return new ReadableStream({start(a){a.close()}});this.reconstructionInfo||await this.#n();let e=new Map;if(!this.reconstructionInfo)throw new Error("Failed to load reconstruction info");for(let a of this.reconstructionInfo.terms){let c=e.get(a.hash);c||(c=new gi,e.set(a.hash,c)),c.add(a.range.start,a.range.end)}let t=this.listener,n=this.internalLogging?(...a)=>console.log(...a):()=>{};async function*r(a,c,l,g){let h=0,x=a.offset_into_first_range;for(let A of a.terms){if(h>=l)break;let w=e.get(A.hash);if(!w)throw new Error(`Failed to find range list for term ${A.hash}`);let v=B=>{for(let T of B.xorbs[A.hash]??[]){let f=T.ranges.find(p=>p.chunks.start<=A.range.start&&p.chunks.end>=A.range.end);if(f)return{entry:T,descriptor:f}}},E=B=>`bytes=${B.ranges.map(T=>`${T.bytes.start}-${T.bytes.end}`).join(",")}`,P=async B=>{let T=await c(B.url,{headers:{Range:E(B)}});if(T.status===403){a=await g();let R=v(a);if(!R)throw new Error(`Failed to find fetch info for term ${A.hash} and range ${A.range.start}-${A.range.end} after refresh`);B=R.entry,T=await c(B.url,{headers:{Range:E(B)}})}if(!T.ok)throw await Q(T);let f=T.headers.get("content-type")??"";if(!f.includes("multipart/byteranges"))throw new Error(`Expected multipart/byteranges response for multi-range request, got "${f}"`);let p=T.body?.getReader();if(!p)throw new Error("Failed to get reader from response body");let y=new wr(f),I=[],$=0,L=R=>{for(let F of R){let k=B.ranges[$];if(!k)throw new Error(`Received more multipart parts than the ${B.ranges.length} signed ranges`);I.push(Er(F,k,w)),$++}};try{for(;;){let R=await p.read();if(t?.({event:"read"}),R.done)break;R.value&&L(y.push(R.value))}L(y.push())}finally{await p.cancel().catch(()=>{})}if($!==B.ranges.length)throw new Error(`Multi-range fetch produced ${$} parts but expected ${B.ranges.length} for term ${A.hash}`);for(let R of I)kr(R)},C=w.getRanges(A.range.start,A.range.end);if(!C.every(B=>B.data)){let B=v(a);if(!B)throw new Error(`Failed to find fetch info for term ${A.hash} and range ${A.range.start}-${A.range.end}`);B.entry.ranges.length>1&&(await P(B.entry),C=w.getRanges(A.range.start,A.range.end))}if(C.every(B=>B.data)){n("all data available for term",A.hash,x);let B=ce(C.map(T=>ce(T.data.map(f=>f.byteLength))));if(B!==A.unpacked_length)throw new Error(`Term ${A.hash} range ${A.range.start}-${A.range.end} decoded to ${B} bytes, expected ${A.unpacked_length}`);e:for(let T of C)for(let f of T.data){if(x){let p=Math.min(x,f.byteLength);if(f=f.slice(p),x-=p,!f.byteLength)continue}if(f.byteLength>l-h&&(f=f.slice(0,l-h)),h+=f.byteLength,yield T.refCount>1?f.slice():f,t?.({event:"progress",progress:{read:h,total:l}}),h>=l)break e}w.remove(A.range.start,A.range.end);continue}let S=v(a);if(!S)throw new Error(`Failed to find fetch info for term ${A.hash} and range ${A.range.start}-${A.range.end}`);let _=S.descriptor;n("term",A),n("descriptor",_),n("readBytesToSkip",x);let O=await c(S.entry.url,{headers:{Range:`bytes=${_.bytes.start}-${_.bytes.end}`}});if(O.status===403){if(a=await g(),S=v(a),!S)throw new Error(`Failed to find fetch info for term ${A.hash} and range ${A.range.start}-${A.range.end} after refresh`);_=S.descriptor,O=await c(S.entry.url,{headers:{Range:`bytes=${_.bytes.start}-${_.bytes.end}`}})}if(!O.ok)throw await Q(O);n("expected content length",O.headers.get("content-length"),"range",_.bytes,O.headers.get("content-range"));let U=O.body?.getReader();if(!U)throw new Error("Failed to get reader from response body");let m=!1,M=_.chunks.start,j=w.getRanges(_.chunks.start,_.chunks.end),H,D=0;e:for(;!m&&hM>=R.start&&M=A.range.start&&M=$&&(y.data??=[],y.data.push(p),L=!0),I){if(x){let R=Math.min(x,p.byteLength);p=p.slice(x),x-=R}p.byteLength>l-h&&(p=p.slice(0,l-h)),p.byteLength&&(n("yield",p.byteLength,"bytes",B.value.byteLength,"total read",h,L),h+=p.byteLength,yield L?p.slice():p,t?.({event:"progress",progress:{read:h,total:l}}))}M++,B.value=B.value.slice(f.compressed_length)}}if(m&&h{for(let b of u.xorbs[d.hash]??[])if(b.ranges.find(V=>V.chunks.start<=d.range.start&&V.chunks.end>=d.range.end))return b},E=[],P=new Map,C=[];for(let u of w){let d=v(a,u);if(!d)throw new Error(`Failed to find fetch info for term ${u.hash} and range ${u.range.start}-${u.range.end}`);let b=P.get(d.url);b===void 0&&(b=E.length,E.push({hash:u.hash,ranges:d.ranges,url:d.url}),P.set(d.url,b)),C.push(b)}let S=Math.max(1,h.maxConcurrency??br),_=u=>ce(u.ranges.map(d=>d.bytes.end-d.bytes.start+1)),O=E.length?Math.max(...E.map(_)):0,U=h.maxInFlightBytes??Math.min(bi,Math.max(pi,3*O)),m={nextEntry:0,neededEntry:0,target:1,error:void 0,finished:!1,inFlightBytes:0,decodedBytes:0,active:0,claimed:0,maxActive:0,activeHighWater:0,count429:0,targetHistory:[]},M=new Ei,j=async(u,d)=>{for(;!m.error&&!m.finished&&m.inFlightBytes+u>U&&d!==m.neededEntry;)await M.wait();m.inFlightBytes+=u},H=u=>{m.inFlightBytes-=u,M.notifyAll()},D=u=>{for(let d of E){let b=(u.xorbs[d.hash]??[]).find(G=>G.ranges.length===d.ranges.length&&G.ranges.every((V,ae)=>V.chunks.start===d.ranges[ae].chunks.start&&V.chunks.end===d.ranges[ae].chunks.end));b&&(d.url=b.url,d.ranges=b.ranges)}},B=u=>`bytes=${u.ranges.map(d=>`${d.bytes.start}-${d.bytes.end}`).join(",")}`,T=async(u,d,b)=>{if(m.error||m.finished)return;let G=e.get(u.hash);if(!G)throw new Error(`Failed to find range list for entry ${u.hash}`);let V=await c(u.url,{headers:{Range:B(u)}}),ae=0,Y=0;for(;V.status===403&&ae<1||V.status===429&&Y<3;)await V.body?.cancel().catch(()=>{}),V.status===403?(ae++,a=await g(),D(a)):(Y++,m.count429++,M.notifyAll(),await Ir(300*Y)),V=await c(u.url,{headers:{Range:B(u)}});if(!V.ok)throw await Q(V);let J=V.body?.getReader();if(!J)throw new Error("Failed to get reader from response body");try{if(u.ranges.length>1){let ge=V.headers.get("content-type")??"";if(!ge.includes("multipart/byteranges"))throw new Error(`Expected multipart/byteranges response for multi-range request, got "${ge}"`);let Ce=new wr(ge),oe=0,xe=async te=>{for(let De of te){let Ae=u.ranges[oe];if(!Ae)throw new Error(`Received more multipart parts than the ${u.ranges.length} signed ranges`);let ne=Er(De,Ae,G);b.committed+=kr(ne),m.decodedBytes+=De.byteLength,oe++,M.notifyAll()}};for(;;){if(m.error||m.finished)return;let te=await J.read();if(t?.({event:"read"}),te.done)break;te.value&&await xe(Ce.push(te.value))}if(await xe(Ce.push()),!m.finished&&oe!==u.ranges.length)throw new Error(`Multi-range fetch produced ${oe} parts but expected ${u.ranges.length} for ${u.hash}`)}else{let ge=u.ranges[0],Ce=G.getRanges(ge.chunks.start,ge.chunks.end),oe=new Map,xe=ge.chunks.start,te,De=!1;for(;!De;){if(m.error||m.finished)return;let Ae=await J.read();t?.({event:"read"}),De=Ae.done;let ne=Ae.value;if(ne)for(te&&(ne=En(te,ne),te=void 0);ne.byteLength;){if(ne.byteLengthxe>=pe.start&&xeBe.byteLength)),M.notifyAll())}m.decodedBytes+=We.byteLength,xe++,ne=ne.slice(ie+he.compressed_length)}}if(!m.finished){for(let Ae of Ce)if(!Ae.data)throw new Error(`Failed to fetch all data for ${u.hash} chunks ${Ae.start}-${Ae.end} (stream ended early)`)}}}finally{await J.cancel().catch(()=>{})}},f=u=>u instanceof TypeError||/terminated|socket|network|ECONNRESET|fetch failed/i.test(String(u)),p=async u=>{for(;;){if(m.error||m.finished)return;if(u>=m.target){await M.wait();continue}let d=m.nextEntry;if(d>=E.length)return;m.nextEntry++,m.claimed++;let b=_(E[d]);try{if(await j(b,d),m.error||m.finished){H(b);return}m.active++,m.maxActive=Math.max(m.maxActive,m.active),m.activeHighWater=Math.max(m.activeHighWater,m.active);let G,V={committed:0};for(let ae=0;ae<2;ae++)try{await T(E[d],d,V),H(b-V.committed),G=void 0;break}catch(Y){if(G=Y,ae===0&&!m.finished&&f(Y)){n("retrying entry after transient error",E[d].hash,Y),await Ir(250);continue}}G&&(H(b),m.error??=G),m.active--}finally{m.claimed--,M.notifyAll()}}},y=Promise.allSettled(Array.from({length:S},(u,d)=>p(d))),I=new Map,$=0,L=0,R=1,F=0,k=setInterval(()=>{let u=m.decodedBytes-$;$=m.decodedBytes;let d=m.activeHighWater;if(m.activeHighWater=m.active,F=Math.max(0,F-1),m.count429>L)L=m.count429,m.target=Math.max(1,m.target-1),R=1,F=yr;else if(u===0&&m.nextEntry0)R--;else if(m.claimed>=m.target&&d<=m.target){let b=((I.get(m.target)??u)+u)/2;I.set(m.target,b);let G=I.get(m.target-1);m.target>1&&G===void 0?(m.target--,R=1):G!==void 0&&b=l)break;m.neededEntry=C[u],M.notifyAll();let b=e.get(d.hash);if(!b)throw new Error(`Failed to find range list for term ${d.hash}`);let G=b.getRanges(d.range.start,d.range.end);for(;!G.every(Y=>Y.data);){if(m.error)throw m.error;if(m.claimed===0&&m.nextEntry>=E.length)throw new Error(`Download workers finished without producing data for term ${d.hash} range ${d.range.start}-${d.range.end}`);await M.wait(),G=b.getRanges(d.range.start,d.range.end)}n("all data available for term",d.hash,A);let V=ce(G.map(Y=>ce(Y.data.map(J=>J.byteLength))));if(V!==d.unpacked_length)throw new Error(`Term ${d.hash} range ${d.range.start}-${d.range.end} decoded to ${V} bytes, expected ${d.unpacked_length}`);e:for(let Y of G)for(let J of Y.data){if(A){let ge=Math.min(A,J.byteLength);if(J=J.slice(ge),A-=ge,!J.byteLength)continue}if(J.byteLength>l-x&&(J=J.slice(0,l-x)),x+=J.byteLength,yield Y.refCount>1?J.slice():J,t?.({event:"progress",progress:{read:x,total:l}}),x>=l)break e}let ae=0;for(let Y of G)Y.refCount===1&&Y.data&&(ae+=ce(Y.data.map(J=>J.byteLength)));b.remove(d.range.start,d.range.end),H(ae)}}finally{m.finished=!0,clearInterval(k),M.notifyAll(),await y,h.onStat?.({entries:E.length,maxActive:m.maxActive,finalTarget:m.target,count429:m.count429,targetHistory:m.targetHistory})}}let i=o&&(o.maxConcurrency??br)>1?s(this.reconstructionInfo,this.fetch,this.end-this.start,this.#n.bind(this),o):r(this.reconstructionInfo,this.fetch,this.end-this.start,this.#n.bind(this));return new ReadableStream({async pull(a){let c=await i.next();c.value&&a.enqueue(c.value),c.done&&a.close()},async cancel(){await i.return?.(void 0)},type:"bytes"},{highWaterMark:1e3})}async arrayBuffer(){let e=(await this.#s()).getReader(),t=[];for(;;){let{done:n,value:r}=await e.read();if(n)break;t.push(r)}return Ai(t).buffer}async text(){return new TextDecoder().decode(await this.arrayBuffer())}async response(){let e=await this.#s();return new Response(e)}stream(){let e=new TransformStream;return this.#s().then(t=>t.pipeThrough(e)).catch(t=>e.writable.abort(t.message)),e.readable}},hn=new Map,Se=new Map;function oo(e){return JSON.stringify([e.refreshUrl,e.initialAccessToken])}function Bi(e){let t=Math.floor(e.byteLength/4),n=e.byteLength%4,r=t+(n>=1?1:0),o=r+t+(n>=2?1:0),s=o+t+(n==3?1:0),i=new Uint8Array(e.byteLength);for(let a=0,c=0;a=1?1:0),s=o+n+(r>=2?1:0),i=s+n+(r==3?1:0);for(let a=0,c=0;anew Date(Date.now()+pr))return{accessToken:o.accessToken,casUrl:o.casUrl};let s=hn.get(r);if(s)return s;let i=(async()=>{let a=await t(n,{headers:{...e?{Authorization:`Bearer ${e}`}:{}}});if(!a.ok)throw new Error(`Failed to get JWT token: ${a.status} ${await a.text()}`);let c=await a.json(),l={accessToken:c.accessToken,expiresAt:new Date(c.exp*1e3),casUrl:c.casUrl};hn.delete(r);for(let[g,h]of Se.entries())if(h.expiresAt=wi){let g=Se.keys().next().value;g&&Se.delete(g)}return Se.set(r,l),{accessToken:c.accessToken,casUrl:c.casUrl}})();return hn.set(r,i),i}var Br=1e4,Sr=1.5,Ci=1e6,vi=class{index=0;xorbIndices;chunkIndices;map=new Map;hmacs=new Set;maxSize;constructor(e=Ci){if(e<1)throw new Error("maxSize must be at least 1");this.maxSize=e,this.xorbIndices=new Int32Array(Math.min(Br,e)),this.chunkIndices=new Uint16Array(Math.min(Br,e))}addChunkToCache(e,t,n,r){if(!this.map.has(e)){if(this.map.values().next().value===this.index&&this.map.delete(this.map.keys().next().value),this.map.set(e,this.index),r!==null&&this.hmacs.add(r),this.index>=this.xorbIndices.length){let o=this.xorbIndices,s=this.chunkIndices;this.xorbIndices=new Int32Array(Math.min(this.xorbIndices.length*Sr,this.maxSize)),this.chunkIndices=new Uint16Array(Math.min(this.chunkIndices.length*Sr,this.maxSize)),this.xorbIndices.set(o),this.chunkIndices.set(s)}this.xorbIndices[this.index]=t,this.chunkIndices[this.index]=n,this.index=(this.index+1)%this.maxSize}}getChunk(e,t){let n=this.map.get(e);if(n===void 0&&t!==null){for(let r of this.hmacs)if(n=this.map.get(t(e,r)),n!==void 0)break}if(n!==void 0)return{xorbIndex:this.xorbIndices[n],chunkIndex:this.chunkIndices[n]}}updateChunkIndex(e,t){let n=this.map.get(e);if(n===void 0)throw new Error(`Chunk not found in cache: ${e}`);this.chunkIndices[n]=t}removeChunkFromCache(e){this.map.delete(e)}},dn=6e4,Ti=1e3,fn=new Map,Ue=new Map;async function Ht(e){if(e.xetParams.expiresAt&&e.xetParams.casUrl&&e.xetParams.accessToken&&e.xetParams.expiresAt>new Date(Date.now()+dn))return{accessToken:e.xetParams.accessToken,casUrl:e.xetParams.casUrl};let t=e.xetParams.refreshWriteTokenUrl,n=Ue.get(t);if(n&&n.expiresAt>new Date(Date.now()+dn))return{accessToken:n.accessToken,casUrl:n.casUrl};let r=fn.get(t);if(r)return r;let o=(async()=>{let s=await(e.fetch??fetch)(e.xetParams.refreshWriteTokenUrl,{headers:{...e.accessToken?{Authorization:`Bearer ${e.accessToken}`}:{},...e.xetParams.sessionId?{"X-Xet-Session-Id":e.xetParams.sessionId}:{}}});if(!s.ok)throw await Q(s);let i=await s.json(),a={accessToken:i.accessToken,expiresAt:new Date(i.exp*1e3),casUrl:i.casUrl};fn.delete(t);for(let[c,l]of Ue.entries())if(l.expiresAt=Ti){let c=Ue.keys().next().value;c&&Ue.delete(c)}return Ue.set(t,a),{accessToken:i.accessToken,casUrl:i.casUrl}})();return fn.set(t,o),o}var _t=32,Ui="ff".repeat(_t);function un(e,t){let n="";for(let r=0;r<_t;r+=8)n+=`${e[t+r+7].toString(16).padStart(2,"0")}${e[t+r+6].toString(16).padStart(2,"0")}${e[t+r+5].toString(16).padStart(2,"0")}${e[t+r+4].toString(16).padStart(2,"0")}${e[t+r+3].toString(16).padStart(2,"0")}${e[t+r+2].toString(16).padStart(2,"0")}${e[t+r+1].toString(16).padStart(2,"0")}${e[t+r].toString(16).padStart(2,"0")}`;return n}async function so(e){let t=new Uint8Array(await e.arrayBuffer()),n=new DataView(t.buffer);if(!t.slice(0,Qe.length).every((A,w)=>A===Qe[w]))throw new Error("Invalid shard magic tag");let o=n.getBigUint64(Qe.length,!0);if(o!==fo)throw new Error(`Invalid shard version: ${o}`);let s=Number(n.getBigUint64(Qe.length+8,!0)),i=t.length-s,a=n.getBigUint64(i,!0);if(a!==uo)throw new Error(`Invalid shard footer version: ${a}`);let c=Number(n.getBigUint64(i+16,!0)),l=Number(n.getBigUint64(i+24,!0)),g=un(t,i+72),h=[],x=c;for(;xe.size||r.end>e.size)throw new Error("Invalid start/end positions for SplicedBlob");if(r.start>r.end)throw new Error("Invalid start/end positions for SplicedBlob")}let n=[...t].sort((r,o)=>r.start-o.start);for(let r=0;rn[r+1].start)throw new Error("Overlapping splice operations are not supported");return new $t(e,n)}get size(){let e=0,t=0;for(let n of this.spliceOperations)e+=n.end-n.start,t+=n.insert.size;return this.originalBlob.size-e+t}get type(){return this.originalBlob.type}slice(e=0,t=this.size){if(e<0||t<0)throw new TypeError("Unsupported negative start/end on SplicedBlob.slice");if(e=Math.min(e,this.size),t=Math.min(t,this.size),e>=t)return new Blob([]);let n=this.segments,r=[0],o=0;for(let i of n)o+=i.size,r.push(o);let s=[];for(let i=0;i=t)break;let l=Math.max(0,e-a),g=Math.min(n[i].size,t-a);ls.arrayBuffer())),n=ce(t.map(s=>s.byteLength)),r=new Uint8Array(n),o=0;for(let s of t)r.set(new Uint8Array(s),o),o+=s.byteLength;return r.buffer}async text(){let e=await this.arrayBuffer();return new TextDecoder().decode(e)}stream(){return new ReadableStream({start:async t=>{try{let n=this.segments;for(let r of n){let o=r.stream().getReader();try{for(;;){let{done:s,value:i}=await o.read();if(s)break;t.enqueue(i)}}finally{o.releaseLock()}}t.close()}catch(n){t.error(n)}}})}get segments(){let e=[],t=0,n=[...this.spliceOperations].sort((r,o)=>r.start-o.start);for(let r of n)t0&&e.push(r.insert),t=r.end;return t({hash:Te(n.hash),length:n.length}));return Ie(Je(t))}function kt(e,t){return Ie(en(Te(e),Te(t)))}function Ri(e){return Ie(tn(e.map(Te)))}function Hi(e){let t=e.map(n=>({hash:Te(n.hash),length:n.length}));return Ie(Zt(t))}function co(e,t){return Jt(t,e).map(n=>({hash:Ie(n.hash),length:n.length,dedup:!1}))}function lo(e){let t=Yt(e);return t?[{hash:Ie(t.hash),length:t.length,dedup:!1}]:[]}var vr=class{id;offset;chunks;fileProcessedBytes;fileUploadedBytes;fileSize;data;immutableData;constructor(){this.id=0,this.offset=0,this.chunks=[],this.fileProcessedBytes={},this.fileUploadedBytes={},this.fileSize={},this.data=new Uint8Array(io),this.immutableData=null}event(e){let t=this.chunks.map(n=>({hash:n.hash,length:n.length}));return{event:"xorb",xorb:this.data.subarray(0,this.offset),hash:e(t),chunks:t,id:this.id,files:Object.entries(this.fileProcessedBytes).map(([n,r])=>({path:n,progress:r/this.fileSize[n],lastSentProgress:((this.fileUploadedBytes[n]??0)+(r-(this.fileUploadedBytes[n]??0))*Ln)/this.fileSize[n]}))}}};async function*$i(e,t){let n=new Set,r=0,o=new vi,s=new vr,i=l=>{let g=s.event(Cr);return r++,s=new vr,s.id=r,s.fileUploadedBytes={[l.path]:l.uploadedBytes},s.fileSize[l.path]=l.size,g},a=[],c=[""];for await(let l of e){if(t.yieldCallback?.({event:"fileProgress",path:l.path,progress:0}),l.sha256&&n.has(l.sha256)){t.yieldCallback?.({event:"fileProgress",path:l.path,progress:1});continue}l.sha256&&n.add(l.sha256);let g=pt(Dn);{s.fileSize[l.path]=l.content.size,l.content instanceof $t&&l.content.firstSpliceIndex=ao){let T=await Ht(t);h=0;let f=await(t.fetch??fetch)(T.casUrl+"/v1/chunks/default/"+M.hash,{headers:{Authorization:`Bearer ${T.accessToken}`}});if(f.ok){let p=await f.blob(),y=await so(p);for(let $ of y.xorbs){let L=-c.length;c.push($.hash);let R=0;for(let F of $.chunks)o.addChunkToCache(F.hash,L,R++,y.hmacKey)}B=o.getChunk(M.hash,kt);let I=P;P=Di(s,kt,y,o,S,P),P>I&&(s.fileUploadedBytes[l.path]??=0,s.fileUploadedBytes[l.path]+=P-I)}}if(B===void 0){if(!Tr(s,D,M.hash)){yield i({path:l.path,uploadedBytes:E,size:l.content.size}),j=0,H=r;for(let T of a)T.representation=T.representation.map(f=>({...f,xorbId:f.xorbId>=0?f.xorbId:c[-f.xorbId]})),yield T;if(a.length=0,!Tr(s,D,M.hash))throw new Error("Failed to write chunk into xorb")}o.addChunkToCache(M.hash,r,j,null)}else H=B.xorbIndex,j=B.chunkIndex,P+=M.length,s.fileUploadedBytes[l.path]??=0,s.fileUploadedBytes[l.path]+=M.length;if(h+=M.length,x+=M.length,C.push({hash:M.hash,length:M.length}),S.push({xorbId:H,chunkIndex:j,length:M.length}),s.fileProcessedBytes[l.path]=E,x>=1e6&&(x=0,t.yieldCallback?.({event:"fileProgress",path:l.path,progress:((s.fileUploadedBytes[l.path]??0)+(s.fileProcessedBytes[l.path]-(s.fileUploadedBytes[l.path]??0))*Ln)/l.content.size})),s.chunks.length>=_i){yield i({path:l.path,uploadedBytes:E,size:l.content.size});for(let T of a)T.representation=T.representation.map(f=>({...f,xorbId:f.xorbId>=0?f.xorbId:c[-f.xorbId]})),yield T;a.length=0}}};for(;;){let{done:m,value:M}=await v.read();if(m){yield*_(lo(g));break}E+=M.length,w.push(M),yield*_(co(M,g))}let O=Li(S,C,Ri);s.immutableData={chunkIndex:s.chunks.length,offset:s.offset};let U=l.content.size>0?P/l.content.size:0;a.push({event:"file",path:l.path,hash:Hi(C),sha256:l.sha256,dedupRatio:U,representation:O})}}s.offset>0&&(yield s.event(Cr));for(let l of a)l.representation=l.representation.map(g=>({...g,xorbId:g.xorbId>=0?g.xorbId:c[-g.xorbId]})),yield l}function Di(e,t,n,r,o,s){let i=new Map;for(let w=e.immutableData?.chunkIndex??0;w0&&x.set(w,h.length-1))}e.chunks=h,e.offset=g;for(let w of o)if(w.xorbId===e.id){let v=x.get(w.chunkIndex);if(v!==void 0){let E=r.getChunk(e.chunks[v].hash,null);E!==void 0&&E.xorbIndex===w.xorbId&&E.chunkIndex===w.chunkIndex&&r.updateChunkIndex(e.chunks[v].hash,v),w.chunkIndex=v}}return s}function ho(e,t){if(t===e[0].length){let n=e[0];return e.shift(),n}else if(tio?!1:(e.data[e.offset]=0,e.data[e.offset+1]=i.length&255,e.data[e.offset+2]=i.length>>8&255,e.data[e.offset+3]=i.length>>16&255,e.data[e.offset+4]=i.length>8&255,e.data[e.offset+7]=t.length>>16&255,e.data.set(i,e.offset+ie),e.chunks.push({hash:n,length:t.length,offset:e.offset}),e.offset+=ie+i.length,!0)}var Li=(e,t,n)=>{if(e.length===0)return[];let r=[],o={xorbId:e[0].xorbId,indexStart:e[0].chunkIndex,indexEnd:e[0].chunkIndex+1,length:e[0].length,chunkHashStart:0};for(let i=1;il.hash));r.push({xorbId:o.xorbId,indexStart:o.indexStart,indexEnd:o.indexEnd,length:o.length,rangeHash:c}),o={xorbId:a.xorbId,indexStart:a.chunkIndex,indexEnd:a.chunkIndex+1,length:a.length,chunkHashStart:i}}}let s=n(t.slice(o.chunkHashStart).map(i=>i.hash));return r.push({xorbId:o.xorbId,indexStart:o.indexStart,indexEnd:o.indexEnd,length:o.length,rangeHash:s}),r};async function Fi(e,t,n,r,o,s){let i=pt(Dn),a=r,c=0,l=0,g=0,h=1/0,x=[],A=e.stream().getReader(),w=async v=>{for(let E of v){l++,s?.isAtBeginning&&l===1&&(E.dedup=!0),g+=E.length,ho(x,E.length);let P=a.getChunk(E.hash,o);if(P!==void 0){c+=E.length,h+=E.length;continue}if(E.dedup&&h>=ao){let C=await Ht(n);h=0;let S=await(n.fetch??fetch)(C.casUrl+"/v1/chunks/default/"+E.hash,{headers:{Authorization:`Bearer ${C.accessToken}`}});if(S.ok){let _=await S.blob(),O=await so(_);for(let U of O.xorbs){let m=-t.length;t.push(U.hash);let M=0;for(let j of U.chunks)a.addChunkToCache(j.hash,m,M++,O.hmacKey)}P=a.getChunk(E.hash,o)}}P!==void 0&&(c+=E.length),h+=E.length}};for(;!(s?.end!==void 0&&g>=s.end||s?.maxChunks!==void 0&&l>=s.maxChunks);){let{done:v,value:E}=await A.read();if(v){await w(lo(i));break}x.push(E),await w(co(E,i))}}var Ur=64*1024*1024,Bt=48,St=200,ue=32,Ni=48,Mi=48,fo=2n,uo=1n,Pi=2147483648,Oi=1073741824,Qe=new Uint8Array([72,70,82,101,112,111,77,101,116,97,68,97,116,97,0,85,105,103,69,106,123,129,87,131,165,189,217,92,205,209,74,169]);async function*go(e,t){let n=[],r=new Set,o=new Uint8Array(Math.floor(Ur-Bt-St)*.25),s=new Uint8Array(Math.floor(Ur-Bt-St)*.75),i=new DataView(s.buffer),a=0,c=new DataView(o.buffer),l=0,g=0n,h=0n,x=0n;for await(let w of $i(e,t))switch(w.event){case"xorb":{n.push(w.hash);let v=ue+4+4+4+4,E=w.chunks.length*(ue+4+4+8),P=v+E;a+P>s.length&&(a>0||l>0)&&await gn(A(),t),Ne(w.hash,s,a),a+=ue,i.setUint32(a,0,!0),a+=4,i.setUint32(a,w.chunks.length,!0),a+=4;let C=ce(w.chunks.map(_=>_.length));i.setUint32(a,C,!0),x+=BigInt(C),g+=BigInt(w.xorb.byteLength),a+=4,i.setUint32(a,w.xorb.byteLength,!0),a+=4;let S=0;for(let _ of w.chunks)Ne(_.hash,s,a),a+=ue,i.setUint32(a,S,!0),a+=4,i.setUint32(a,_.length,!0),a+=4,i.setBigUint64(a,0n,!0),a+=8,S+=_.length;for(let _ of w.files)yield{event:"fileProgress",path:_.path,progress:_.lastSentProgress};await Qi(w,t);for(let _ of w.files)yield{event:"fileProgress",path:_.path,progress:_.progress};break}case"file":{if(yield{event:"file",path:w.path,xetHash:w.hash,sha256:w.sha256,dedupRatio:w.dedupRatio},r.has(w.hash))break;r.add(w.hash);let v=ue+4+4+8,E=w.representation.length*(ue+4+4+4+4),P=w.representation.length*(ue+16),C=w.sha256,S=C!==void 0,_=S?ue+16:0,O=v+E+P+_;l+O>o.length&&(a>0||l>0)&&await gn(A(),t),Ne(w.hash,o,l),l+=ue,c.setUint32(l,Pi+(S?Oi:0),!0),l+=4,c.setUint32(l,w.representation.length,!0),l+=4,c.setBigUint64(l,0n,!0),l+=8;for(let U of w.representation)Ne(typeof U.xorbId=="number"?n[U.xorbId]:U.xorbId,o,l),l+=ue,c.setUint32(l,0,!0),l+=4,c.setUint32(l,U.length,!0),l+=4,c.setUint32(l,U.indexStart,!0),l+=4,c.setUint32(l,U.indexEnd,!0),l+=4;for(let U of w.representation){Ne(U.rangeHash,o,l),l+=ue;for(let m=0;m<16;m++)o[l+m]=0;l+=16}if(S){Ne(C,o,l),l+=ue;for(let U=0;U<16;U++)o[l+U]=0;l+=16}break}}function A(){let w=new Uint8Array(Bt+St+a+Ni+l+Mi),v=new DataView(w.buffer),E=0;w.set(Qe,E),E+=Qe.length,v.setBigUint64(E,fo,!0),E+=8,v.setBigUint64(E,BigInt(St),!0),E+=8,w.set(o.slice(0,l),E),E+=l;for(let S=0;S<32;S++)w[E+S]=255;E+=32;for(let S=0;S<16;S++)w[E+S]=0;E+=16;let P=E;w.set(s.slice(0,a),E),E+=a;for(let S=0;S<32;S++)w[E+S]=255;E+=32;for(let S=0;S<16;S++)w[E+S]=0;E+=16;let C=E;v.setBigUint64(E,uo,!0),E+=8,v.setBigUint64(E,BigInt(Bt),!0),E+=8,v.setBigUint64(E,BigInt(P),!0),E+=8;for(let S=0;S<48;S++)v.setUint8(E+S,0);E+=48;for(let S=0;S<32;S++)v.setUint8(E+S,0);E+=32,v.setBigUint64(E,BigInt(Math.floor(Date.now()/1e3)),!0),E+=8,v.setBigUint64(E,0n,!0),E+=8;for(let S=0;S<48;S++)v.setUint8(E+S,0);return E+=48,v.setBigUint64(E,g,!0),E+=8,v.setBigUint64(E,h,!0),E+=8,v.setBigUint64(E,x,!0),E+=8,v.setBigUint64(E,BigInt(C),!0),a=0,l=0,g=0n,x=0n,h=0n,w}(a||l)&&await gn(A(),t)}function Ne(e,t,n){for(let r=0;r{for(let s of e.files)t.yieldCallback?.({event:"fileProgress",path:s.path,progress:s.lastSentProgress+(s.progress-s.lastSentProgress)*o})}}});if(!r.ok)throw await Q(r)}async function gn(e,t){let n=await Ht(t),r=await(t.fetch??fetch)(`${n.casUrl}/v1/shards`,{method:"POST",body:e,headers:{Authorization:`Bearer ${n.accessToken}`,...t.xetParams.sessionId?{"X-Xet-Session-Id":t.xetParams.sessionId}:{}}});if(!r.ok)throw await Q(r)}function xo(e,t){if(t<=0)return[];let n=i=>new Promise(a=>setTimeout(a,i)),r=null,o=[],s=t;for(let i=0;i{for(;r!==null;)await n(1);return r=i,e.next().then(a=>(r=null,a))},return:async()=>(s--,s===0?e.return(void 0):{done:!0,value:void 0}),throw:async a=>e.throw(a),[Symbol.asyncIterator]:()=>o[i]});return o}var zi=5,ji=5,Wi=5;function Pe(e){let t=e.operation==="addOrUpdate";if(t&&!(e.content instanceof Blob))throw new TypeError("Precondition failed: op.content should be a Blob");return t}async function*Ao(e){let t=q(e),n=ee(e.repo);if(n.type==="bucket")return yield*qi(e);if(e.operations.some(a=>a.operation==="copy"))throw new Error("'copy' operations are only supported when the destination repo is a bucket");yield{event:"phase",phase:"preuploading"};let r=e.useXet??!0,o=new Map,s=new AbortController,i=s.signal;i.throwIfAborted||(i.throwIfAborted=()=>{if(i.aborted)throw new DOMException("Aborted","AbortError")}),e.abortSignal&&e.abortSignal.addEventListener("abort",()=>s.abort());try{let a=(await Promise.all(e.operations.map(async l=>{if(l.operation==="edit"){let h=$t.create(l.originalContent,l.edits.map(x=>({insert:x.content,start:x.start,end:x.end})));return{operation:"addOrUpdate",path:l.path,content:h}}if(l.operation!=="addOrUpdate")return l;if(!(l.content instanceof URL))return{...l,content:l.content};let g=await Xr(l.content,l.path,{fetch:e.fetch,maxFolderDepth:e.maxFolderDepth});return i?.throwIfAborted(),g.map(h=>({...l,content:h.blob,path:h.path}))}))).flat(1),c=a.filter(Pe).find(l=>l.path===".gitattributes")?.content;for(let l of vt(a.filter(Pe),100)){let g={gitAttributes:c&&await c.text(),files:await Promise.all(l.map(async A=>({path:A.path,size:A.content.size,sample:Rt(new Uint8Array(await A.content.slice(0,512).arrayBuffer()))})))};i?.throwIfAborted();let h=await(e.fetch??fetch)(`${e.hubUrl??z}/api/${n.type}s/${n.name}/preupload/${encodeURIComponent(e.branch??"main")}`+(e.isPullRequest?"?create_pr=1":""),{method:"POST",headers:{...t&&{Authorization:`Bearer ${t}`},"Content-Type":"application/json"},body:JSON.stringify(g),signal:i});if(!h.ok)throw await Q(h);let x=await h.json();for(let A of x.files)A.uploadMode==="lfs"&&o.set(A.path,null)}yield{event:"phase",phase:"uploadingLargeFiles"};for(let l of vt(a.filter(Pe).filter(g=>o.has(g.path)),100)){let g=yield*_e((P,C,S)=>vn(l.map(_=>async()=>{let O=Gs(_.content,{useWebWorker:e.useWebWorkers,abortSignal:i}),U;do U=await O.next(),U.done||P({event:"fileProgress",path:_.path,progress:U.value,state:"hashing"});while(!U.done);let m=U.value;return o.set(_.path,U.value),m}),zi).then(C,S));i?.throwIfAborted();let h={operation:"upload",transfers:["basic","multipart",...r?["xet"]:[]],hash_algo:"sha_256",...!e.isPullRequest&&{ref:{name:e.branch??"main"}},objects:l.map((P,C)=>({oid:g[C],size:P.content.size}))},x=await(e.fetch??fetch)(`${e.hubUrl??z}/${n.type==="model"?"":n.type+"s/"}${n.name}.git/info/lfs/objects/batch`,{method:"POST",headers:{...t&&{Authorization:`Bearer ${t}`},Accept:"application/vnd.git-lfs+json","Content-Type":"application/vnd.git-lfs+json"},body:JSON.stringify(h),signal:i});if(!x.ok)throw await Q(x);let A=await x.json(),w=x.headers.get("X-Request-Id")||void 0,v=new Map(l.map((P,C)=>[g[C],P]));r&&A.transfer!=="xet"&&(r=!1);let E=null;if(r){for(let C of A.objects){let S=v.get(C.oid);if(!S)throw new me("Unrequested object ID in response");if(C.error){let _=`Error while doing LFS batch call for ${l[g.indexOf(C.oid)].path}: ${C.error.message}${w?` - Request ID: ${w}`:""}`;throw new In(x.url,C.error.code,w,_)}if(!C.actions?.upload)yield{event:"fileProgress",path:S.path,progress:1,state:"uploading"};else{let _=new Headers(C.actions.upload.header);E={sessionId:_.get("X-Xet-Session-Id")??void 0,casUrl:_.get("X-Xet-Cas-Url")??void 0,accessToken:_.get("X-Xet-Access-Token")??void 0,expiresAt:_.get("X-Xet-Token-Expiration")?new Date(parseInt(_.get("X-Xet-Token-Expiration")??"0")*1e3):void 0,refreshWriteTokenUrl:C.actions.upload.href}}}let P=(async function*(){for(let C of A.objects){let S=v.get(C.oid);!S||!C.actions?.upload||(i?.throwIfAborted(),yield{content:S.content,path:S.path,sha256:C.oid})}})();if(E){let C=E,S=xo(P,5);yield*_e((_,O,U)=>Promise.all(S.map(async function(m){for await(let M of go(m,{fetch:e.fetch,accessToken:t,hubUrl:e.hubUrl??z,repo:n,xetParams:C,rev:e.branch??"main",isPullRequest:e.isPullRequest,yieldCallback:j=>_({...j,state:"uploading"})}))M.event==="file"?_({event:"fileProgress",path:M.path,progress:1,state:"uploading"}):M.event==="fileProgress"&&_({event:"fileProgress",path:M.path,progress:M.progress,state:"uploading"})})).then(()=>O(void 0),U))}}else yield*_e((P,C,S)=>cr(A.objects.map(_=>async()=>{let O=v.get(_.oid);if(!O)throw new me("Unrequested object ID in response");if(i?.throwIfAborted(),_.error){let M=`Error while doing LFS batch call for ${l[g.indexOf(_.oid)].path}: ${_.error.message}${w?` - Request ID: ${w}`:""}`;throw new In(x.url,_.error.code,w,M)}if(!_.actions?.upload){P({event:"fileProgress",path:O.path,progress:1,state:"uploading"});return}P({event:"fileProgress",path:O.path,progress:0,state:"uploading"});let U=O.content,m=_.actions.upload.header;if(m?.chunk_size){let M=parseInt(m.chunk_size),j=_.actions.upload.href,H=Object.keys(m).filter(f=>/^[0-9]+$/.test(f));if(H.length!==Math.ceil(U.size/M))throw new Error("Invalid server response to upload large LFS file, wrong number of parts");let D={oid:_.oid,parts:H.map(f=>({partNumber:+f,etag:""}))},B=f=>P({event:"fileProgress",path:O.path,progress:f,state:"uploading"});await cr(H.map(f=>async()=>{i?.throwIfAborted();let p=parseInt(f)-1,y=U.slice(p*M,(p+1)*M),I=await(e.fetch??fetch)(m[f],{method:"PUT",body:y instanceof ze&&rt?await y.arrayBuffer():y,signal:i,progressHint:{path:O.path,part:p,numParts:H.length,progressCallback:B}});if(!I.ok)throw await Q(I,{requestId:w,message:`Error while uploading part ${f} of ${l[g.indexOf(_.oid)].path} to LFS storage`});let $=I.headers.get("ETag");if(!$)throw new Error("Cannot get ETag of part during multipart upload");D.parts[Number(f)-1].etag=$}),Wi),i?.throwIfAborted();let T=await(e.fetch??fetch)(j,{method:"POST",body:JSON.stringify(D),headers:{Accept:"application/vnd.git-lfs+json","Content-Type":"application/vnd.git-lfs+json"},signal:i});if(!T.ok)throw await Q(T,{requestId:w,message:`Error completing multipart upload of ${l[g.indexOf(_.oid)].path} to LFS storage`});P({event:"fileProgress",path:O.path,progress:1,state:"uploading"})}else{let M=await(e.fetch??fetch)(_.actions.upload.href,{method:"PUT",headers:{...w?{"X-Request-Id":w}:void 0},body:U instanceof ze&&rt?await U.arrayBuffer():U,signal:i,progressHint:{path:O.path,progressCallback:j=>P({event:"fileProgress",path:O.path,progress:j,state:"uploading"})}});if(!M.ok)throw await Q(M,{requestId:w,message:`Error while uploading ${l[g.indexOf(_.oid)].path} to LFS storage`});P({event:"fileProgress",path:O.path,progress:1,state:"uploading"})}}),ji).then(C,S))}return i?.throwIfAborted(),yield{event:"phase",phase:"committing"},yield*_e(async(l,g,h)=>(e.fetch??fetch)(`${e.hubUrl??z}/api/${n.type}s/${n.name}/commit/${encodeURIComponent(e.branch??"main")}`+(e.isPullRequest?"?create_pr=1":""),{method:"POST",headers:{...t&&{Authorization:`Bearer ${t}`},"Content-Type":"application/x-ndjson"},body:[{key:"header",value:{summary:e.title,description:e.description,parentCommit:e.parentCommit}},...await Promise.all(a.map(x=>{if(Pe(x)){let A=o.get(x.path);if(A)return{key:"lfsFile",value:{path:x.path,algo:"sha256",size:x.content.size,oid:A}}}return Gi(x)}))].map(x=>JSON.stringify(x)).join(` `),signal:i,progressHint:{progressCallback:x=>{for(let A of a)Pe(A)&&!o.has(A.path)&&l({event:"fileProgress",path:A.path,progress:x,state:"uploading"})}}}).then(async x=>{if(!x.ok)throw await Q(x);let A=await x.json();g({pullRequestUrl:A.pullRequestUrl,commit:{oid:A.commitOid,url:A.commitUrl},hookOutput:A.hookOutput})}).catch(h))}catch(a){throw s.abort(),a}}async function*qi(e){let t=q(e),n=ee(e.repo);if(e.useXet===!1)throw new Error("useXet must be true or undefined for buckets");let r=new AbortController,o=r.signal;o.throwIfAborted||(o.throwIfAborted=()=>{if(o.aborted)throw new DOMException("Aborted","AbortError")}),e.abortSignal&&e.abortSignal.addEventListener("abort",()=>r.abort());try{let s=(await Promise.all(e.operations.map(async c=>{if(c.operation==="edit"){let g=$t.create(c.originalContent,c.edits.map(h=>({insert:h.content,start:h.start,end:h.end})));return{operation:"addOrUpdate",path:c.path,content:g}}if(c.operation!=="addOrUpdate")return c;if(!(c.content instanceof URL))return{...c,content:c.content};let l=await Xr(c.content,c.path,{fetch:e.fetch,maxFolderDepth:e.maxFolderDepth});return o?.throwIfAborted(),l.map(g=>({...c,content:g.blob,path:g.path}))}))).flat(1);yield{event:"phase",phase:"uploadingLargeFiles"};for(let c of vt(s.filter(Pe),100)){let l=new Map;o?.throwIfAborted();let g=(async function*(){for(let v of c)o?.throwIfAborted(),yield{content:v.content,path:v.path}})(),h={sessionId:crypto.randomUUID(),refreshWriteTokenUrl:`${e.hubUrl??z}/api/${n.type}s/${n.name}/xet-write-token`},x=xo(g,5);yield*_e((v,E,P)=>Promise.all(x.map(async function(C){for await(let S of go(C,{fetch:e.fetch,accessToken:t,hubUrl:e.hubUrl??z,repo:n,xetParams:h,rev:e.branch??"main",yieldCallback:_=>v({..._,state:"uploading"})}))S.event==="file"?(v({event:"fileProgress",path:S.path,progress:1,state:"uploading"}),l.set(S.path,S.xetHash)):S.event==="fileProgress"&&v({event:"fileProgress",path:S.path,progress:S.progress,state:"uploading"})})).then(()=>E(void 0),P));let A=await(e.fetch??fetch)(`${e.hubUrl??z}/api/${n.type}s/${n.name}/batch`,{method:"POST",headers:{...t&&{Authorization:`Bearer ${t}`},"Content-Type":"application/x-ndjson"},body:[...l.entries()].map(([v,E])=>JSON.stringify({type:"addFile",path:v,xetHash:E})).join(` `),signal:o});if(!A.ok&&A.status!==422)throw await Q(A);let w=await A.json();for(let v of w.failed)yield{event:"fileProgress",path:v.path,progress:0,state:"error"}}o?.throwIfAborted();let i=s.filter(c=>c.operation==="copy");for(let c of vt(i,100)){o?.throwIfAborted();let l=await(e.fetch??fetch)(`${e.hubUrl??z}/api/${n.type}s/${n.name}/batch`,{method:"POST",headers:{...t&&{Authorization:`Bearer ${t}`},"Content-Type":"application/x-ndjson"},body:c.map(h=>{let x=ee(h.sourceRepo);return JSON.stringify({type:"copyFile",path:h.path,xetHash:h.sourceXetHash,sourceRepoType:x.type,sourceRepoId:x.name})}).join(` `),signal:o});if(!l.ok&&l.status!==422)throw await Q(l);let g=await l.json();for(let h of g.failed)yield{event:"fileProgress",path:h.path,progress:0,state:"error"}}o?.throwIfAborted();let a=s.filter(c=>c.operation==="delete");if(a.length>0){let c=await(e.fetch??fetch)(`${e.hubUrl??z}/api/${n.type}s/${n.name}/batch`,{method:"POST",headers:{...t&&{Authorization:`Bearer ${t}`},"Content-Type":"application/x-ndjson"},body:a.map(g=>JSON.stringify({type:"deleteFile",path:g.path})).join(` `),signal:o});if(!c.ok)throw await Q(c);let l=await c.json();if(l.failed.length>0){let g=l.failed.slice(0,5).map(h=>h.path);throw new Error(`Failed to delete ${l.failed.length} file(s): ${g.join(", ")}${l.failed.length>5?"...":""}, request ID: ${c.headers.get("X-Request-Id")}`)}}o?.throwIfAborted()}catch(s){throw r.abort(),s}}async function je(e){let t=Ao(e),n=[],r=0,o=await t.next();for(;!o.done;)o.value.event==="fileProgress"&&o.value.state==="error"&&(r++,n.length<5&&n.push(o.value.path)),o=await t.next();if(r>0)throw new Error(`Failed to upload ${r} file(s): ${n.join(", ")}${r>5?"...":""}`);return o.value}async function Gi(e){switch(e.operation){case"addOrUpdate":return{key:"file",value:{content:Rt(new Uint8Array(await e.content.arrayBuffer())),path:e.path,encoding:"base64"}};case"delete":return{key:"deletedFile",value:{path:e.path}};case"edit":throw new Error("Edit operations should be converted to addOrUpdate operations before reaching convertOperationToNdJson");default:throw new TypeError("Unknown operation: "+e.operation)}}function Vi(e){if(!Number.isFinite(e)||e<0)return`${e} B`;let t=["B","kB","MB","GB","TB","PB"],n=e,r=0;for(;n>=1e3&&r=100?0:n>=10?1:2)} ${t[r]}`}function $e(e){let t=/<(https?:[/][/][^>]+)>;\s+rel="([^"]+)"/g;return Object.fromEntries([...e.matchAll(t)].map(([,n,r])=>[r,n]))}async function Xi(e){let t=q(e),n=ee(e.repo),r=e.hubUrl??z,o=n.type==="bucket"?void 0:e.revision??"main",s=`${r}/${n.type==="model"?"":`${n.type}s/`}${n.name}/${e.raw?"raw":"resolve"}${o?`/${encodeURIComponent(o)}`:""}/${e.path}`+(e.noContentDisposition?"?noContentDisposition=1":""),i=await(e.fetch??fetch)(s,{method:"GET",headers:{...t&&{Authorization:`Bearer ${t}`},Range:"bytes=0-0",Accept:"application/vnd.xet-fileinfo+json, */*"}});if(i.status===404&&i.headers.get("X-Error-Code")==="EntryNotFound")return null;if(!i.ok)throw await Q(i);let a,c;if(i.headers.get("Content-Type")?.includes("application/vnd.xet-fileinfo+json")){if(a=parseInt(i.headers.get("X-Linked-Size")??"invalid"),isNaN(a))throw new me("Invalid file size received in X-Linked-Size header");let g=i.headers.get("X-Xet-Hash"),h=$e(i.headers.get("Link")??""),x=(()=>{try{return new URL(h["xet-reconstruction-info"])}catch{return null}})(),A=(()=>{try{return new URL(h["xet-auth"])}catch{return null}})();if(!g)throw new me("No hash received in X-Xet-Hash header");if(!x||!A)throw new me("No xet-reconstruction-info or xet-auth link header");c={hash:g,refreshUrl:A,reconstructionUrl:x}}if(a===void 0||isNaN(a)){let g=i.headers.get("content-range");if(!g)throw new me("Expected size information");let[,h]=g.split("/");if(a=parseInt(h),isNaN(a))throw new me("Invalid file size received")}let l=i.headers.get("X-Linked-ETag")??i.headers.get("ETag")??void 0;if(!l)throw new me("Expected ETag");return{etag:l,size:a,xet:c,url:i.url&&(new URL(i.url).origin===new URL(r).origin||i.headers.get("X-Cache")?.endsWith(" cloudfront"))?i.url:s}}async function Dt(e){let t=q(e),n=e.downloadInfo??await Xi({accessToken:t,repo:e.repo,path:e.path,revision:e.revision,hubUrl:e.hubUrl,fetch:e.fetch,raw:e.raw});return n?n.xet&&e.xet!==!1?new ro({refreshUrl:n.xet.refreshUrl.href,reconstructionUrl:n.xet.reconstructionUrl.href,fetch:e.fetch,accessToken:t,size:n.size,readToken:typeof e.xet=="object"?e.xet.readToken:void 0,parallelDownloads:e.parallelDownloads}):new ze(new URL(n.url),0,n.size,"",!0,e.fetch??fetch,t):null}async function*Ki(e){let t=q(e),n=ee(e.repo),r=n.type==="bucket"?void 0:e.revision||"main",o=`${e.hubUrl||z}/api/${n.type}s/${n.name}/tree${r?`/${r}`:""}${e.path?"/"+e.path:""}?recursive=${!!e.recursive}&expand=${!!e.expand}`;for(;o;){let s=await(e.fetch??fetch)(o,{headers:{accept:"application/json",...t?{Authorization:`Bearer ${t}`}:void 0}});if(!s.ok)throw await Q(s);let i=await s.json();for(let c of i)yield c;let a=s.headers.get("Link");o=a?$e(a).next:void 0}}async function Ji(e){let t=q(e),n=ee(e.repo),r=e.hubUrl??z,o=n.type==="bucket"?void 0:e.revision??"main",s=`${r}/api/${n.type}s/${n.name}/paths-info${o?`/${encodeURIComponent(o)}`:""}`,i=await(e.fetch??fetch)(s,{method:"POST",headers:{...t&&{Authorization:`Bearer ${t}`},Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({paths:e.paths,expand:e.expand})});if(!i.ok)throw await Q(i);let a=await i.json();if(!Array.isArray(a))throw new Error("malformed response: expected array");return a.map(c=>({path:c.path,lfs:c.lfs,type:c.type,oid:c.oid,size:c.size,xetHash:c.xetHash,uploadedAt:c.uploadedAt,securityFileStatus:c.securityFileStatus,lastCommit:c.lastCommit?{date:new Date(c.lastCommit.date),title:c.lastCommit.title,id:c.lastCommit.id}:void 0}))}var Yi=5,_r=100,xn=5;function p0(e){return Zi({...e.accessToken?{accessToken:e.accessToken}:{credentials:e.credentials},destination:e.destination.repo,files:[{source:e.source,destinationPath:e.destination.path}],hubUrl:e.hubUrl,fetch:e.fetch,abortSignal:e.abortSignal})}function b0(e){return wo({...e.accessToken?{accessToken:e.accessToken}:{credentials:e.credentials},destination:e.destination.repo,files:[{source:e.source,destinationPath:e.destination.path}],hubUrl:e.hubUrl,fetch:e.fetch,abortSignal:e.abortSignal})}async function Zi(e){let t=wo(e);for(;;)if((await t.next()).done)return}async function*wo(e){if(e.files.length===0)return void 0;let t=yield*ta(e,e.files);return await je({...e.accessToken?{accessToken:e.accessToken}:{credentials:e.credentials},repo:e.destination,operations:t,title:"",hubUrl:e.hubUrl,fetch:e.fetch,abortSignal:e.abortSignal}),void 0}async function y0(e){let t=ea(e);for(;;)if((await t.next()).done)return}async function*ea(e){let t=q(e),n=ee(e.source.repo),r=(e.source.path??"").replace(/\/+$/,""),o=(e.destination.path??"").replace(/\/+$/,""),s=n.type==="bucket"?void 0:e.source.revision??"main",i=[],a=[],c=[];for await(let l of Ki({repo:n,path:r||void 0,recursive:!0,revision:s,accessToken:t,hubUrl:e.hubUrl,fetch:e.fetch})){if(l.type!=="file")continue;let g=na(l.path,r),h=o?`${o}/${g}`:g;switch(bo(l)){case"copy":i.push({operation:"copy",path:h,sourceXetHash:l.xetHash,sourceRepo:n});continue;case"lfs":c.push({path:l.path,size:l.lfs?.size??l.size});continue;case"download":a.push({index:i.length,repoId:n,revision:s,sourcePath:l.path}),i.push({operation:"addOrUpdate",path:h,content:new Blob([])});continue}}return c.length>0&&yo(n,c),i.length===0||(yield*po({pendingDownloads:a,operations:i,accessToken:t,hubUrl:e.hubUrl,fetch:e.fetch}),await je({...e.accessToken?{accessToken:e.accessToken}:{credentials:e.credentials},repo:e.destination.repo,operations:i,title:"",hubUrl:e.hubUrl,fetch:e.fetch,abortSignal:e.abortSignal})),void 0}async function*ta(e,t){let n=q(e),r=new Map;for(let i=0;ih.file.source.path),c=[];for(let h=0;h[h.path,h])),g=[];for(let{index:h,file:x}of i.entries){let A=l.get(x.source.path);if(!A)throw new Error(`Source file not found: '${x.source.path}' in ${i.repoId.type}s/${i.repoId.name}`);if(A.type!=="file")throw new Error(`Source path '${x.source.path}' in ${i.repoId.type}s/${i.repoId.name} is a folder; use copyFolder() instead.`);switch(bo(A)){case"copy":o[h]={operation:"copy",path:x.destinationPath,sourceXetHash:A.xetHash,sourceRepo:i.repoId};continue;case"lfs":g.push({path:x.source.path,size:A.lfs?.size??A.size});continue;case"download":s.push({index:h,repoId:i.repoId,revision:i.revision,sourcePath:x.source.path}),o[h]={operation:"addOrUpdate",path:x.destinationPath,content:new Blob([])};continue}}g.length>0&&yo(i.repoId,g)}return yield*po({pendingDownloads:s,operations:o,accessToken:n,hubUrl:e.hubUrl,fetch:e.fetch}),o}function po(e){let t=e.pendingDownloads.length;return _e((n,r,o)=>{if(t===0){r();return}let s=0;vn(e.pendingDownloads.map(({index:i,repoId:a,revision:c,sourcePath:l})=>async()=>{let g=await Dt({repo:a,path:l,revision:c,accessToken:e.accessToken,hubUrl:e.hubUrl,fetch:e.fetch});if(!g)throw new Error(`Failed to download '${l}' from ${a.type}s/${a.name}`);let h=e.operations[i];if(h.operation!=="addOrUpdate")throw new Error("Internal: expected addOrUpdate placeholder operation");h.content=g,s++,n({event:"fileDownloaded",path:l,downloaded:s,total:t})}),Yi).then(()=>r(),i=>o(i))})}function na(e,t){if(!t)return e;if(e===t)return e.split("/").pop()??e;if(e.startsWith(t+"/"))return e.slice(t.length+1);throw new Error(`Path '${e}' is not inside folder '${t}'`)}function bo(e){return e.xetHash?"copy":e.lfs?"lfs":"download"}function yo(e,t){let n=t.slice(0,xn).map(o=>`'${o.path}' (${Vi(o.size)})`).join(", "),r=t.length>xn?` (and ${t.length-xn} more)`:"";throw new Error(`Cannot copy ${t.length} LFS file(s) from ${e.type}s/${e.name} that have not been migrated to xet: ${n}${r}. Migrate these files to xet before copying.`)}async function I0(e){let t=q(e),n=ee(e.repo),r=`${e.hubUrl??z}/api/${n.type}s/${n.name}/commits/${e.revision??"main"}?limit=1`,o=await(e.fetch??fetch)(r,{headers:t?{Authorization:`Bearer ${t}`}:{}});if(!o.ok)throw await Q(o);return parseInt(o.headers.get("x-total-count")??"0",10)}async function E0(e){let t=q(e),n=ee(e.repo),[r,o]=n.name.split("/"),s=e.visibility??(e.private!==void 0?e.private?"private":"public":void 0);if(!r||!o)throw new TypeError(`"${n.name}" is not a fully qualified repo name. It should be of the form "{namespace}/{repoName}".`);let i=n.type==="bucket"?await(e.fetch??fetch)(`${e.hubUrl??z}/api/buckets/${r}/${o}`,{method:"POST",body:JSON.stringify({visibility:s,resourceGroupId:e.resourceGroupId}),headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"}}):await(e.fetch??fetch)(`${e.hubUrl??z}/api/repos/create`,{method:"POST",body:JSON.stringify({name:o,visibility:s,organization:r,resourceGroupId:e.resourceGroupId,license:e.license,...n.type==="space"?{type:"space",sdk:e.sdk??"static"}:{type:n.type},files:e.files?await Promise.all(e.files.map(async c=>({encoding:"base64",path:c.path,content:Rt(new Uint8Array(c.content instanceof Blob?await c.content.arrayBuffer():c.content))}))):void 0}),headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"}});if(!i.ok)throw await Q(i);let a=await i.json();return{repoUrl:a.url,id:a.id}}async function k0(e){let t=ee(e.repo),n=await(e.fetch??fetch)(`${e.hubUrl??z}/api/${t.type}s/${t.name}/branch/${encodeURIComponent(e.branch)}`,{method:"POST",headers:{"Content-Type":"application/json",...e.accessToken&&{Authorization:`Bearer ${e.accessToken}`}},body:JSON.stringify({startingPoint:e.revision,...e.empty&&{emptyBranch:!0},overwrite:e.overwrite})});if(!n.ok)throw await Q(n)}async function B0(e){let t=q(e),n=await(e.fetch??fetch)(`${e.hubUrl??z}/api/collections`,{method:"POST",body:JSON.stringify(e.collection),headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"}});if(!n.ok)throw await Q(n);return{slug:(await n.json()).slug}}function it(e,t){return Object.assign({},...t.map(n=>{if(e[n]!==void 0)return{[n]:e[n]}}))}var Io=["private","downloads","gated","likes","lastModified"],S0=["author","cardData","citation","createdAt","disabled","description","downloads","downloadsAllTime","gated","gitalyUid","lastModified","likes","paperswithcode_id","private","sha","tags"];async function*m0(e){let t=e&&q(e),n=e?.limit??1/0,r=new URLSearchParams([...Object.entries({limit:String(Math.min(n,500)),...e?.search?.owner?{author:e.search.owner}:void 0,...e?.search?.query?{search:e.search.query}:void 0,...e?.sort?{sort:e.sort}:void 0}),...e?.search?.tags?.map(s=>["filter",s])??[],...Io.map(s=>["expand",s]),...e?.additionalFields?.map(s=>["expand",s])??[]]).toString(),o=`${e?.hubUrl||z}/api/datasets`+(r?"?"+r:"");for(;o;){let s=await(e?.fetch??fetch)(o,{headers:{accept:"application/json",...t?{Authorization:`Bearer ${t}`}:void 0}});if(!s.ok)throw await Q(s);let i=await s.json();for(let c of i)if(yield{...e?.additionalFields&&it(c,e.additionalFields),id:c._id,name:c.id,private:c.private,downloads:c.downloads,likes:c.likes,gated:c.gated,updatedAt:new Date(c.lastModified)},n--,n<=0)return;let a=s.headers.get("Link");o=a?$e(a).next:void 0}}async function C0(e){let t=e&&q(e),n=new URLSearchParams([...Io.map(s=>["expand",s]),...e?.additionalFields?.map(s=>["expand",s])??[]]).toString(),r=await(e.fetch||fetch)(`${e?.hubUrl||z}/api/datasets/${e.name}/revision/${encodeURIComponent(e.revision??"HEAD")}?${n.toString()}`,{headers:{...t?{Authorization:`Bearer ${t}`}:{}}});if(!r.ok)throw await Q(r);let o=await r.json();return{...e?.additionalFields&&it(o,e.additionalFields),id:o._id,name:o.id,private:o.private,downloads:o.downloads,likes:o.likes,gated:o.gated,updatedAt:new Date(o.lastModified)}}async function v0(e){let t=ee(e.repo),n=await(e.fetch??fetch)(`${e.hubUrl??z}/api/${t.type}s/${t.name}/branch/${encodeURIComponent(e.branch)}`,{method:"DELETE",headers:{...e.accessToken&&{Authorization:`Bearer ${e.accessToken}`}}});if(!n.ok)throw await Q(n)}function T0(e){return je({...e.accessToken?{accessToken:e.accessToken}:{credentials:e.credentials},repo:e.repo,operations:[{operation:"delete",path:e.path}],title:e.commitTitle??`Delete ${e.path}`,description:e.commitDescription,hubUrl:e.hubUrl,branch:e.branch,isPullRequest:e.isPullRequest,parentCommit:e.parentCommit,fetch:e.fetch})}function U0(e){return je({...e.accessToken?{accessToken:e.accessToken}:{credentials:e.credentials},repo:e.repo,operations:e.paths.map(t=>({operation:"delete",path:t})),title:e.commitTitle??`Deletes ${e.paths.length} files`,description:e.commitDescription,hubUrl:e.hubUrl,branch:e.branch,isPullRequest:e.isPullRequest,parentCommit:e.parentCommit,fetch:e.fetch})}async function _0(e){let t=q(e),n=ee(e.repo),[r,o]=n.name.split("/"),s=n.type==="bucket"?await(e.fetch??fetch)(`${e.hubUrl??z}/api/buckets/${r}/${o}`,{method:"DELETE",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"}}):await(e.fetch??fetch)(`${e.hubUrl??z}/api/repos/delete`,{method:"DELETE",body:JSON.stringify({name:o,organization:r,type:n.type}),headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"}});if(!s.ok)throw await Q(s)}async function R0(e){if(!e.slug)throw new TypeError("slug is required");let t=q(e),n=await(e.fetch??fetch)(`${e.hubUrl??z}/api/collections/${e.slug}`,{method:"DELETE",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"}});if(!n.ok)throw await Q(n)}async function Rr(e){let t=q(e),n=ee(e.repo),r=e.hubUrl??z,o=n.type==="bucket"?void 0:e.revision??"main",s=n.type==="bucket"?"resolve":"raw",i=`${r}/${n.type==="model"?"":`${n.type}s/`}${n.name}/${s}${o?`/${encodeURIComponent(o)}`:""}/${e.path}`,a=await(e.fetch??fetch)(i,{method:"HEAD",headers:t?{Authorization:`Bearer ${t}`}:{}});if(a.status===404)return!1;if(!a.ok)throw await Q(a);return!0}async function H0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/jobs/${e.namespace}/${e.jobId}/cancel`,{method:"POST",headers:{"Content-Type":"application/json",...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n);return await n.json()}async function $0(e){let t=q(e),{namespace:n,hubUrl:r,fetch:o,...s}=e;if(!s.jobSpec.dockerImage&&!s.jobSpec.spaceId)throw new Error("Either dockerImage or spaceId must be provided in jobSpec");if(s.jobSpec.dockerImage&&s.jobSpec.spaceId)throw new Error("Cannot provide both dockerImage and spaceId in jobSpec");let i={jobSpec:{flavor:s.jobSpec.flavor},schedule:s.schedule,suspend:s.suspend??!1,concurrency:s.concurrency??!1};s.jobSpec.dockerImage&&(i.jobSpec.dockerImage=s.jobSpec.dockerImage),s.jobSpec.spaceId&&(i.jobSpec.spaceId=s.jobSpec.spaceId),s.jobSpec.command&&(i.jobSpec.command=s.jobSpec.command),i.jobSpec.environment=s.jobSpec.environment||{},s.jobSpec.secrets&&(i.jobSpec.secrets=s.jobSpec.secrets),s.jobSpec.arch&&(i.jobSpec.arch=s.jobSpec.arch),s.jobSpec.timeoutSeconds!==void 0&&(i.jobSpec.timeoutSeconds=s.jobSpec.timeoutSeconds),s.jobSpec.attempts!==void 0&&(i.jobSpec.attempts=s.jobSpec.attempts),s.jobSpec.labels&&(i.jobSpec.labels=s.jobSpec.labels),s.jobSpec.volumes?.length&&(i.jobSpec.volumes=s.jobSpec.volumes.map(({source:c,...l})=>{let g=ee(c);return{type:g.type,source:g.name,...l}}));let a=await(o||fetch)(`${r||z}/api/scheduled-jobs/${n}`,{method:"POST",headers:{"Content-Type":"application/json",...t?{Authorization:`Bearer ${t}`}:{}},body:JSON.stringify(i)});if(!a.ok)throw await Q(a);return await a.json()}async function D0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/scheduled-jobs/${e.namespace}/${e.jobId}`,{method:"DELETE",headers:{"Content-Type":"application/json",...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n)}async function L0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/jobs/${e.namespace}/${e.jobId}/duplicate`,{method:"POST",headers:{"Content-Type":"application/json",...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n);return await n.json()}async function F0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/jobs/${e.namespace}/${e.jobId}`,{headers:{...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n);return await n.json()}async function N0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/scheduled-jobs/${e.namespace}/${e.jobId}`,{headers:{...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n);return await n.json()}async function M0(e){let t=q(e??{}),n={};t&&(n.Authorization=`Bearer ${t}`);let r=await(e?.fetch||fetch)(`${e?.hubUrl||z}/api/jobs/hardware`,{headers:n});if(!r.ok)throw await Q(r);return await r.json()}async function P0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/jobs/${e.namespace}`,{headers:{...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n);return await n.json()}async function O0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/scheduled-jobs/${e.namespace}`,{headers:{...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n);return await n.json()}async function Q0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/scheduled-jobs/${e.namespace}/${e.jobId}/resume`,{method:"POST",headers:{...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n)}async function z0(e){let t=q(e);if(!e.dockerImage&&!e.spaceId)throw new Error("Either dockerImage or spaceId must be provided");if(e.dockerImage&&e.spaceId)throw new Error("Cannot provide both dockerImage and spaceId");let n={flavor:e.flavor,environment:e.environment||{}};e.dockerImage&&(n.dockerImage=e.dockerImage),e.spaceId&&(n.spaceId=e.spaceId),e.command&&(n.command=e.command),e.arguments&&(n.arguments=e.arguments),e.secrets&&(n.secrets=e.secrets),e.arch&&(n.arch=e.arch),e.timeoutSeconds!==void 0&&(n.timeoutSeconds=e.timeoutSeconds),e.attempts!==void 0&&(n.attempts=e.attempts),e.labels&&(n.labels=e.labels),e.volumes?.length&&(n.volumes=e.volumes.map(({source:o,...s})=>{let i=ee(o);return{type:i.type,source:i.name,...s}}));let r=await(e.fetch||fetch)(`${e.hubUrl||z}/api/jobs/${e.namespace}`,{method:"POST",headers:{"Content-Type":"application/json",...t?{Authorization:`Bearer ${t}`}:{}},body:JSON.stringify(n)});if(!r.ok)throw await Q(r);return await r.json()}async function j0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/scheduled-jobs/${e.namespace}/${e.jobId}/run`,{method:"POST",headers:{"Content-Type":"application/json",...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok){if(n.status===409)return null;throw await Q(n)}return await n.json()}async function*W0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/jobs/${e.namespace}/${e.jobId}/events`,{headers:{Accept:"text/event-stream",...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n);if(!n.body)return;let r=n.body.getReader(),o=new TextDecoder,s="";try{for(;;){let{done:i,value:a}=await r.read();if(i)break;s+=o.decode(a,{stream:!0});let c=s.split(` `);s=c.pop()||"";for(let l of c)l.startsWith("data: ")&&(yield l.slice(6))}if(s){let i=s.split(` `);for(let a of i)a.startsWith("data: ")&&(yield a.slice(6))}}finally{r.releaseLock()}}async function*q0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/jobs/${e.namespace}/${e.jobId}/logs`,{headers:{Accept:"text/event-stream",...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n);if(!n.body)return;let r=n.body.getReader(),o=new TextDecoder,s="";try{for(;;){let{done:i,value:a}=await r.read();if(i)break;s+=o.decode(a,{stream:!0});let c=s.split(` `);s=c.pop()||"";for(let l of c)if(l.startsWith("data: "))try{let g=JSON.parse(l.slice(6));yield{message:g.data,timestamp:new Date(g.timestamp)}}catch{yield{message:l.slice(6),timestamp:new Date}}}if(s){let i=s.split(` `);for(let a of i)if(a.startsWith("data: "))try{let c=JSON.parse(a.slice(6));yield{message:c.data,timestamp:new Date(c.timestamp)}}catch{yield{message:a.slice(6),timestamp:new Date}}}}finally{r.releaseLock()}}async function*G0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/jobs/${e.namespace}/${e.jobId}/metrics`,{headers:{Accept:"text/event-stream",...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n);if(!n.body)return;let r=n.body.getReader(),o=new TextDecoder,s="";try{for(;;){let{done:i,value:a}=await r.read();if(i)break;s+=o.decode(a,{stream:!0});let c=s.split(` `);s=c.pop()||"";for(let l of c)l.startsWith("data: ")&&(yield l.slice(6))}if(s){let i=s.split(` `);for(let a of i)a.startsWith("data: ")&&(yield a.slice(6))}}finally{r.releaseLock()}}async function V0(e){let t=q(e),n=await(e.fetch||fetch)(`${e.hubUrl||z}/api/scheduled-jobs/${e.namespace}/${e.jobId}/suspend`,{method:"POST",headers:{"Content-Type":"application/json",...t?{Authorization:`Bearer ${t}`}:{}}});if(!n.ok)throw await Q(n)}async function*X0(e){let t=q(e),n=ee(e.repo),r=`${e.hubUrl??z}/api/${n.type}s/${n.name}/commits/${e.revision??"main"}?limit=${e.batchSize??100}`;for(;r;){let o=await(e.fetch??fetch)(r,{headers:t?{Authorization:`Bearer ${t}`}:{}});if(!o.ok)throw await Q(o);let s=await o.json();for(let a of s)yield{oid:a.id,title:a.title,message:a.message,authors:a.authors.map(c=>({username:c.user,avatarUrl:c.avatar})),date:new Date(a.date)};let i=o.headers.get("Link");r=i?$e(i).next:void 0}}function Eo(e,t){return t?Array.isArray(t)?t.map(n=>({...n,hfModelId:e})):Object.entries(t).map(([n,r])=>({provider:n,hfModelId:e,providerId:r.providerId,status:r.status,task:r.task})):[]}var ko=["pipeline_tag","private","gated","downloads","likes","lastModified"],K0=["author","cardData","config","createdAt","disabled","downloads","downloadsAllTime","gated","gitalyUid","inferenceProviderMapping","lastModified","library_name","likes","model-index","pipeline_tag","private","safetensors","sha","spaces","tags","transformersInfo"],Bo={filePaths:"siblings"};async function*J0(e){let t=e&&q(e),n=e?.limit??1/0,r=e?.additionalFields?.map(i=>Bo[i]??i)??[],o=new URLSearchParams([...Object.entries({limit:String(Math.min(n,500)),...e?.search?.owner?{author:e.search.owner}:void 0,...e?.search?.task?{pipeline_tag:e.search.task}:void 0,...e?.search?.query?{search:e.search.query}:void 0,...e?.search?.inferenceProviders?{inference_provider:e.search.inferenceProviders.join(",")}:void 0,...e?.search?.apps?{apps:e.search.apps.join(",")}:void 0,...e?.sort?{sort:e.sort}:void 0}),...e?.search?.tags?.map(i=>["filter",i])??[],...ko.map(i=>["expand",i]),...r.map(i=>["expand",i])]).toString(),s=`${e?.hubUrl||z}/api/models?${o}`;for(;s;){let i=await(e?.fetch??fetch)(s,{headers:{accept:"application/json",...t?{Authorization:`Bearer ${t}`}:void 0}});if(!i.ok)throw await Q(i);let a=await i.json();for(let l of a){let g={};if(e?.additionalFields)for(let h of e.additionalFields)h==="filePaths"?g.filePaths=(l.siblings??[]).map(x=>x.rfilename):h==="inferenceProviderMapping"&&l.inferenceProviderMapping?g.inferenceProviderMapping=Eo(l.id,l.inferenceProviderMapping):g[h]=l[h];if(yield{...g,id:l._id,name:l.id,private:l.private,task:l.pipeline_tag,downloads:l.downloads,gated:l.gated,likes:l.likes,updatedAt:new Date(l.lastModified)},n--,n<=0)return}let c=i.headers.get("Link");s=c?$e(c).next:void 0}}var So=["sdk","likes","private","lastModified"],Y0=["author","cardData","datasets","disabled","gitalyUid","lastModified","createdAt","likes","private","runtime","sdk","sha","subdomain","tags","models"];async function*Z0(e){let t=e&&q(e),n=new URLSearchParams([...Object.entries({limit:"500",...e?.search?.owner?{author:e.search.owner}:void 0,...e?.search?.query?{search:e.search.query}:void 0,...e?.sort?{sort:e.sort}:void 0}),...e?.search?.tags?.map(o=>["filter",o])??[],...[...So,...e?.additionalFields??[]].map(o=>["expand",o])]).toString(),r=`${e?.hubUrl||z}/api/spaces?${n}`;for(;r;){let o=await(e?.fetch??fetch)(r,{headers:{accept:"application/json",...t?{Authorization:`Bearer ${t}`}:void 0}});if(!o.ok)throw await Q(o);let s=await o.json();for(let a of s)yield{...e?.additionalFields&&it(a,e.additionalFields),id:a._id,name:a.id,sdk:a.sdk,likes:a.likes,private:a.private,updatedAt:new Date(a.lastModified)};let i=o.headers.get("Link");r=i?$e(i).next:void 0}}async function*el(e){let t=e&&q(e),n=new URLSearchParams,r=e?.limit??1/0;if(n.append("limit",String(Math.min(r,100))),e?.sort&&n.append("sort",e.sort),e?.search?.owner)for(let s of e.search.owner)n.append("owner",s);if(e?.search?.item)for(let s of e.search.item)n.append("item",s);e?.search?.q&&n.append("q",e.search.q);let o=`${e?.hubUrl||z}/api/collections?${n}`;for(;o;){let s=await(e?.fetch??fetch)(o,{headers:{accept:"application/json",...t?{Authorization:`Bearer ${t}`}:void 0}});if(!s.ok)throw await Q(s);let i=await s.json();for(let c of i)if(yield c,r--,r<=0)return;let a=s.headers.get("Link");o=a?$e(a).next:void 0}}async function tl(e){let t=e&&q(e),n=e?.additionalFields?.map(a=>Bo[a]??a)??[],r=new URLSearchParams([...ko.map(a=>["expand",a]),...n.map(a=>["expand",a])]).toString(),o=await(e.fetch||fetch)(`${e?.hubUrl||z}/api/models/${e.name}/revision/${encodeURIComponent(e.revision??"HEAD")}?${r.toString()}`,{headers:{...t?{Authorization:`Bearer ${t}`}:{}}});if(!o.ok)throw await Q(o);let s=await o.json(),i={};if(e?.additionalFields)for(let a of e.additionalFields)a==="filePaths"?i.filePaths=(s.siblings??[]).map(c=>c.rfilename):a==="inferenceProviderMapping"&&s.inferenceProviderMapping?i.inferenceProviderMapping=Eo(s.id,s.inferenceProviderMapping):i[a]=s[a];return{...i,id:s._id,name:s.id,private:s.private,task:s.pipeline_tag,downloads:s.downloads,gated:s.gated,likes:s.likes,updatedAt:new Date(s.lastModified)}}async function Hr(e){if(typeof window>"u"&&!e?.redirectedUrl)throw new Error("oauthHandleRedirect is only available in the browser, unless you provide redirectedUrl");if(typeof localStorage>"u"&&(!e?.nonce||!e?.codeVerifier))throw new Error("oauthHandleRedirect requires localStorage to be available, unless you provide nonce and codeVerifier");let t=e?.redirectedUrl??window.location.href,n=(()=>{try{return new URL(t).searchParams}catch{throw new Error("Failed to parse redirected URL: "+t)}})(),[r,o]=[n.get("error"),n.get("error_description")];if(r)throw new Error(`${r}: ${o}`);let s=n.get("code"),i=e?.nonce??localStorage.getItem("huggingface.co:oauth:nonce");if(!s)throw new Error("Missing oauth code from query parameters in redirected URL: "+t);if(!i)throw new Error("Missing oauth nonce from localStorage");let a=e?.codeVerifier??localStorage.getItem("huggingface.co:oauth:code_verifier");if(!a)throw new Error("Missing oauth code_verifier from localStorage");let c=n.get("state");if(!c)throw new Error("Missing oauth state from query parameters in redirected URL");let l;try{l=JSON.parse(c)}catch{throw new Error("Invalid oauth state in redirected URL, unable to parse JSON: "+c)}if(l.nonce!==i)throw new Error("Invalid oauth state in redirected URL");let g=e?.hubUrl||z,h=`${new URL(g).origin}/.well-known/openid-configuration`,x=await fetch(h,{headers:{Accept:"application/json"}});if(!x.ok)throw await Q(x);let A=await x.json(),w=await fetch(A.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:s,redirect_uri:l.redirectUri,code_verifier:a}).toString()});if(e?.codeVerifier||localStorage.removeItem("huggingface.co:oauth:code_verifier"),e?.nonce||localStorage.removeItem("huggingface.co:oauth:nonce"),!w.ok)throw await Q(w);let v=await w.json(),E=new Date(Date.now()+v.expires_in*1e3),P=await fetch(A.userinfo_endpoint,{headers:{Authorization:`Bearer ${v.access_token}`}});if(!P.ok)throw await Q(P);let C=await P.json();return{accessToken:v.access_token,accessTokenExpiresAt:E,userInfo:C,state:l.state,scope:v.scope}}async function nl(e){if(typeof window>"u"&&!e?.redirectedUrl)throw new Error("oauthHandleRedirect is only available in the browser, unless you provide redirectedUrl");if(typeof localStorage>"u"&&(!e?.nonce||!e?.codeVerifier))throw new Error("oauthHandleRedirect requires localStorage to be available, unless you provide nonce and codeVerifier");let t=new URLSearchParams(e?.redirectedUrl??window.location.search);return t.has("error")?Hr(e):t.has("code")?localStorage.getItem("huggingface.co:oauth:nonce")?Hr(e):(console.warn("Missing oauth nonce from localStorage. This can happen when the user refreshes the page after logging in, without changing the URL."),!1):!1}async function rl(e){if(typeof window>"u"&&(!e?.redirectUrl||!e?.clientId))throw new Error("oauthLogin is only available in the browser, unless you provide clientId and redirectUrl");if(typeof localStorage>"u"&&!e?.localStorage)throw new Error("oauthLogin requires localStorage to be available in the context, unless you provide a localStorage empty object as argument");let t=e?.hubUrl||z,n=`${new URL(t).origin}/.well-known/openid-configuration`,r=await fetch(n,{headers:{Accept:"application/json"}});if(!r.ok)throw await Q(r);let o=await r.json(),s=globalThis.crypto.randomUUID(),i=globalThis.crypto.randomUUID()+globalThis.crypto.randomUUID();if(e?.localStorage){if(e.localStorage.codeVerifier!==void 0&&e.localStorage.codeVerifier!==null)throw new Error("localStorage.codeVerifier must be initially set to null or undefined, and will be filled by oauthLoginUrl");if(e.localStorage.nonce!==void 0&&e.localStorage.nonce!==null)throw new Error("localStorage.nonce must be initially set to null or undefined, and will be filled by oauthLoginUrl");e.localStorage.codeVerifier=i,e.localStorage.nonce=s}else localStorage.setItem("huggingface.co:oauth:nonce",s),localStorage.setItem("huggingface.co:oauth:code_verifier",i);let a=e?.redirectUrl||(typeof window<"u"?window.location.href:void 0);if(!a)throw new Error("Missing redirectUrl");let c=JSON.stringify({nonce:s,redirectUri:a,state:e?.state}),l=typeof window<"u"?window.huggingface?.variables??null:null,g=e?.clientId||l?.OAUTH_CLIENT_ID;if(!g)throw l?new Error("Missing clientId, please add hf_oauth: true to the README.md's metadata in your static Space"):new Error("Missing clientId");let h=Rt(new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256",new TextEncoder().encode(i)))).replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/=/g,"");return`${o.authorization_endpoint}?${new URLSearchParams({client_id:g,scope:e?.scopes||l?.OAUTH_SCOPES||"openid profile",response_type:"code",redirect_uri:a,state:c,code_challenge:h,code_challenge_method:"S256"}).toString()}`}function mo(e,t){return e.includes(t)}function Co(e,t){let n=Array.isArray(t)?t:[t],r=Object.keys(e).filter(o=>!mo(n,o));return it(e,r)}function Fn(e){return Object.entries(e)}var Ee=class extends Error{constructor(e){super(e),this.name="JsonStreamParseError"}},ra=16e6,oa=1e3,mt=0,An=1,Ye=2,$r=3,Dr=4,wn=5,pn=6,Lr=7,Fr=8,bn=9,Nr=10,yn=11,sa={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` `,r:"\r",t:" "};function ia(e){return e===" "||e===` `||e==="\r"||e===" "}function aa(e){return e>="0"&&e<="9"||e==="-"||e==="+"||e==="."||e==="e"||e==="E"}function ca(e){return e>="0"&&e<="9"||e>="a"&&e<="f"||e>="A"&&e<="F"}async function*la(e){if(!("getReader"in e)){yield*e;return}let t=e.getReader();try{for(;;){let{done:n,value:r}=await t.read();if(n)return;r&&(yield r)}}finally{await t.cancel().catch(()=>{})}}async function*ha(e,t){let n=t?.maxTokenLength??ra,r=t?.maxDepth??oa,o=mt,s=[],i="",a=!1,c="";function l(){if(i.length>n)throw new Ee(`JSON token exceeds the maximum length of ${n} characters`)}function g(){o=s.length===0?yn:Lr}function h(){let C=Number(i);if(i===""||!Number.isFinite(C))throw new Ee(`Invalid JSON number: ${JSON.stringify(i)}`);return i="",g(),{type:"value",value:C}}function x(){let C=i;switch(i="",g(),C){case"true":return{type:"value",value:!0};case"false":return{type:"value",value:!1};case"null":return{type:"value",value:null};default:throw new Ee(`Invalid JSON literal: ${JSON.stringify(C)}`)}}function A(C){throw new Ee(`Unexpected character ${JSON.stringify(C)} in JSON`)}function w(C){if(s.length>=r)throw new Ee(`JSON nesting is deeper than the maximum of ${r} levels`);s.push(C)}function*v(C){let S=0;for(;SS){i+=C.slice(S,O),l(),S=O;continue}if(C[S]==="\\"){o=$r,S++;continue}S++;let U=i;i="",a?(a=!1,o=Nr,yield{type:"key",key:U}):(g(),yield{type:"value",value:U});continue}if(o===$r){let O=C[S++];if(O==="u"){c="",o=Dr;continue}let U=sa[O];if(U===void 0)throw new Ee(`Invalid escape sequence "\\${O}" in JSON string`);i+=U,l(),o=Ye;continue}if(o===Dr){let O=C[S++];if(!ca(O))throw new Ee(`Invalid unicode escape "\\u${c}${O}" in JSON string`);c+=O,c.length===4&&(i+=String.fromCharCode(parseInt(c,16)),l(),c="",o=Ye);continue}if(o===wn){let O=S;for(;OS){i+=C.slice(S,O),l(),S=O;continue}yield h();continue}if(o===pn){let O=S;for(;O="a"&&C[O]<="z";)O++;if(O>S){i+=C.slice(S,O),l(),S=O;continue}yield x();continue}let _=C[S];if(ia(_)){S++;continue}switch(o){case mt:case An:{if(_==="]"){o!==An&&A(_),s.pop(),g(),S++,yield{type:"endArray"};break}if(_==="{"){w(!1),o=bn,S++,yield{type:"startObject"};break}if(_==="["){w(!0),o=An,S++,yield{type:"startArray"};break}if(_==='"'){a=!1,o=Ye,S++;break}if(_==="-"||_>="0"&&_<="9"){o=wn;break}if(_>="a"&&_<="z"){o=pn;break}A(_);break}case Fr:case bn:{if(_==="}"){o!==bn&&A(_),s.pop(),g(),S++,yield{type:"endObject"};break}if(_==='"'){a=!0,o=Ye,S++;break}A(_);break}case Nr:{_!==":"&&A(_),o=mt,S++;break}case Lr:{if(_===","){o=s[s.length-1]?mt:Fr,S++;break}if(_==="}"){s[s.length-1]!==!1&&A(_),s.pop(),g(),S++,yield{type:"endObject"};break}if(_==="]"){s[s.length-1]!==!0&&A(_),s.pop(),g(),S++,yield{type:"endArray"};break}A(_);break}case yn:throw new Ee(`Unexpected trailing content ${JSON.stringify(_)} after JSON value`);default:throw new Ee(`Unreachable parser state ${o}`)}}}let E=new TextDecoder("utf-8");for await(let C of la(e)){let S=E.decode(C,{stream:!0});S.length>0&&(yield*v(S))}let P=E.decode();if(P.length>0&&(yield*v(P)),o===wn?yield h():o===pn&&(yield x()),o!==yn)throw new Ee("Unexpected end of JSON input")}var tt=class extends Error{constructor(e){super(e),this.name="SafetensorsIndexParseError"}},da=25e7,fa=2e5,ua=1e3,ga=1e5,xa=64,Mr=4e6,Aa=24e6;async function*wa(e,t){let n=0,r=e.getReader();try{for(;;){let{done:o,value:s}=await r.read();if(o)return;if(s){if(n+=s.length,n>t)throw new tt(`safetensors index is too big. Maximum supported size is ${t} bytes.`);yield s}}}finally{await r.cancel().catch(()=>{})}}async function pa(e,t){let n=t?.maxBytes??da,r=t?.maxWeightMapEntries??fa,o=t?.maxShardCount??1/0,s=[],i=new Set,a={},c=0,l=0,g,h,x=0,A,w,v=!1,E=0,P=C=>{if(E+=C,E>Mr)throw new tt(`safetensors index retains more than ${Mr} characters of metadata/filenames`)};for await(let C of ha(wa(e,n),{maxTokenLength:ga,maxDepth:xa}))switch(C.type){case"startObject":case"startArray":if(x++,x===1){if(C.type==="startArray")throw new tt("safetensors index must be a JSON object");v=!0}w=void 0;break;case"endObject":case"endArray":x--,x<=1&&(A=void 0,w=void 0);break;case"key":x===1?(A=C.key,w=void 0):w=C.key;break;case"value":{if(x===1){A==="dtype"&&typeof C.value=="string"&&(h=C.value),A=void 0;break}if(x!==2||w===void 0)break;if(A==="weight_map"){if(typeof C.value!="string")break;if(c++,!i.has(C.value)&&(P(C.value.length),i.add(C.value),s.push(C.value),i.size>o))throw new tt(`Too many shard files (>${o}). Maximum supported is ${o}.`);a!==void 0&&(l+=w.length+C.value.length,c>r||l>Aa?a=void 0:a[w]=C.value)}else A==="metadata"&&(g??={},Object.keys(g).length(?.*?)[_-])(?\d{5,6})-of-(?\d{5,6})\.safetensors$/;function ol(e){let t=Ba.exec(e);return t&&t.groups?{prefix:t.groups.prefix,basePrefix:t.groups.basePrefix,shard:t.groups.shard,total:t.groups.total}:null}var Sa=20,Qr=25e6,ma=1e7,Cn=1e4,zr=2**32,vo="qweight",Ca=["qzeros","g_idx","scales"],va=["weight_scale","weight_scale_inv","weight_scale_2","weight_global_scale","weight_zero_point","input_scale","input_global_scale","input_zero_point","zero_point","weight_shape","weight_g_idx"],Ta="_scales",Ua=["absmax","quant_map","nested_absmax","nested_quant_map"],_a="bitsandbytes__",Ra=new Set(["F8_E8M0","E8M0","UE8"]),To={U8:8,I8:8,U16:16,I16:16,U32:32,I32:32},Ha=[["nvfp4",4],["mxfp4",4],["fp4",4],["int4",4],["uint4",4],["nf4",4],["int2",2]];function $a(e){return e.includes(".experts.")&&!e.includes("shared_experts")}function jr(e){if(!e)return;let t=e.toLowerCase();return Ha.find(([n])=>t.includes(n))?.[1]}function Wr(e,t){let n=To[e];return!n||!t||t<=0||t>=n?1:n/t}var le=class extends Error{constructor(e){super(e),this.name="SafetensorParseError"}};function Da(e,t,n,r){if(!Array.isArray(n.shape)||!Array.isArray(n.data_offsets)||n.data_offsets.length!==2)throw new le(`Failed to parse file ${e}: tensor "${t}" is malformed.`);for(let i of n.shape){if(!Number.isFinite(i)||!Number.isInteger(i)||i<0)throw new le(`Failed to parse file ${e}: tensor "${t}" has an invalid dimension (${i}).`);if(i>zr)throw new le(`Failed to parse file ${e}: tensor "${t}" dimension is ${i}, which exceeds the maximum allowed (${zr}).`)}let[o,s]=n.data_offsets;if(!Number.isFinite(o)||!Number.isFinite(s)||!Number.isInteger(o)||!Number.isInteger(s)||o<0||sr)throw new le(`Failed to parse file ${e}: tensor "${t}" declares data_offsets ending at ${s}, which exceeds the file size (${r} bytes). The file is malformed.`)}async function La(e){try{let t=await Dt({...e,path:"config.json"});return t?JSON.parse(await t.slice(0,ma).text()):null}catch{return null}}async function Uo(e,t){let n=await Dt({...t,path:e});if(!n)throw new le(`Failed to parse file ${e}: failed to fetch safetensors header length.`);let r=await n.slice(0,8).arrayBuffer(),o=new DataView(r).getBigUint64(0,!0);if(o<=0)throw new le(`Failed to parse file ${e}: safetensors header is malformed.`);if(o>Qr)throw new le(`Failed to parse file ${e}: safetensor header is too big. Maximum supported size is ${Qr} bytes.`);let s;try{s=JSON.parse(await n.slice(8,8+Number(o)).text())}catch{throw new le(`Failed to parse file ${e}: safetensors header is not valid JSON.`)}let i=Number.isFinite(n.size)&&n.size>=0?n.size:void 0;for(let[a,c]of Fn(Co(s,"__metadata__")))Da(e,a,c,i);return{header:s,fileSizeBytes:i}}async function Fa(e,t){let n=await Dt({...t,path:e});if(!n)throw new le(`Failed to parse file ${e}: failed to fetch safetensors index.`);try{let{dtype:r,metadata:o,shardFilenames:s,weightMap:i}=await pa(n.stream(),{maxShardCount:Cn});return{index:{dtype:r,metadata:o,weight_map:i},shardFilenames:s}}catch(r){throw new le(`Failed to parse file ${e}: ${r instanceof Error?r.message:"not a valid JSON."}`)}}async function Na(e,t,n){let r=e.slice(0,e.lastIndexOf("/")+1);if(t.length>Cn)throw new le(`Too many shard files (${t.length}). Maximum supported is ${Cn}.`);for(let s of t)if(s.includes("..")||s.startsWith("/")||s.includes("://"))throw new le(`Unsafe shard filename in weight_map: "${s}"`);return Object.fromEntries((await vn(t.map(s=>async()=>[s,await Uo(r+s,n)]),Sa)).map(([s,{header:i}])=>[s,i]))}function qr(e,t){if(!e)return;let n=typeof e=="number"?e:parseInt(e);if(!(!Number.isFinite(n)||n<0))return t!==void 0&&n>t?t:n}var Ma={diffusers:[...Ia.map(e=>({single:`${e}/${Pr}`,index:`${e}/${Or}`})),{single:Pr,index:Or}]};async function sl(e){if(ee(e.repo).type!=="model")throw new TypeError("Only model repos should contain safetensors files.");let n=e.computeParametersCount?await La(e):null,r=n?.quantization_config??n?.text_config?.quantization_config,o=n?.expert_dtype??n?.text_config?.expert_dtype,s;if(e.path)Ea.test(e.path)?s={path:e.path,sharded:!1}:ka.test(e.path)&&(s={path:e.path,sharded:!0});else{let i=[{single:ba,index:ya},...e.library?Ma[e.library]??[]:[]];for(let{single:a,index:c}of i){if(await Rr({...e,path:a})){s={path:a,sharded:!1};break}if(await Rr({...e,path:c})){s={path:c,sharded:!0};break}}}if(s&&!s.sharded){let{header:i}=await Uo(s.path,e),a=e.computeParametersCount?(()=>{let c=$o(i,r,o);return{parameterCount:c,parameterTotal:qr(i.__metadata__?.total_parameters,ce(Object.values(c)))}})():void 0;return{sharded:!1,header:i,...a,filepaths:[s.path]}}else if(s){let i=s.path,{index:a,shardFilenames:c}=await Fa(i,e),l=await Na(i,c,e),g=i.slice(0,i.lastIndexOf("/")+1),h=e.computeParametersCount?(()=>{let x=Oa(l,r,o);return{parameterCount:x,parameterTotal:qr(a.metadata?.total_parameters,ce(Object.values(x)))}})():void 0;return{sharded:!0,index:a,headers:l,...h,filepaths:[i,...Object.keys(l).map(x=>g+x)]}}else throw new Error("model id does not seem to contain safetensors weights")}function _o(e,t){let n=e.split("*");if(n.length===1)return e===t;if(!t.startsWith(n[0]))return!1;let r=n[0].length,o=n[n.length-1];if(!t.endsWith(o))return!1;let s=t.length-o.length;for(let i=1;is)return!1;r=a+n[i].length}return r<=s}function Ro(e,t){if(!t)return!1;if(t.ignore?.length){let r=e.lastIndexOf(".weight"),o=r===-1?e:e.slice(0,r);if(t.ignore.some(s=>Ho(s,o)))return!1}let n=t.modules_to_not_convert;return n?.length?!n.some(r=>r.includes("*")?_o(r,e):e.includes(r)):!0}function Ho(e,t){if(!e.startsWith("re:"))return e===t;let n=e.slice(3);n.startsWith("^")&&(n=n.slice(1)),n.endsWith("$")?n=n.slice(0,-1):n+=".*";let r=n.replaceAll(".*","*").replaceAll("\\.",".");return/[\\+?()[\]{}|^$]/.test(r)?!1:_o(r,t)}function Pa(e,t,n,r){if(!n||!Ro(e,n))return 1;switch(n.quant_method?.toLowerCase()){case"mxfp4":return t==="U8"&&e.includes("_blocks")?2:1;case"gptq":case"awq":if(nt(e)===vo){let s=n.bits&&n.bits>0?n.bits:4;return Math.max(1,Math.floor(32/s))}return n.bits===4&&t==="U8"?2:n.bits===2&&t==="U8"?4:1;case"compressed-tensors":{if(!To[t])return 1;let s=Object.values(n.config_groups??{}),i=e.lastIndexOf(".weight"),a=i===-1?e:e.slice(0,i),c=s.find(h=>h.targets?.some(x=>Ho(x,a))),l=(c?.format??n.format)?.toLowerCase();if(!l?.endsWith("pack-quantized"))return 1;let g=c?.weights?.num_bits??s.find(h=>h.weights?.num_bits)?.weights?.num_bits??jr(l)??4;return Wr(t,g)}case"fp8":return $a(e)?Wr(t,jr(r)):1;case"bitsandbytes":return n.load_in_4bit&&t==="U8"?2:1;default:return t==="U8"&&(n.load_in_4bit||n.bits===4)?2:1}}function $o(e,t,n){let r={},o=Co(e,"__metadata__");for(let[s,i]of Fn(o)){if(Qa(s,i.dtype,t)||i.shape.length===0)continue;let a=i.shape.reduce((l,g)=>l*g);if(!Number.isFinite(a))continue;let c=t?Pa(s,i.dtype,t,n):1;c!==0&&(r[i.dtype]=(r[i.dtype]??0)+Math.round(a*c))}return r}function Oa(e,t,n){let r={};for(let o of Object.values(e))for(let[s,i]of Fn($o(o,t,n)))r[s]=(r[s]??0)+(i??0);return r}function nt(e){let t=e.lastIndexOf(".");return t===-1?e:e.slice(t+1)}function Qa(e,t,n){if(Ra.has(t))return!0;if(!n)return!1;if(va.includes(nt(e)))return!0;let r=n.quant_method?.toLowerCase();if(r==="mxfp4")return t==="U8"&&nt(e).endsWith(Ta);if(r==="bitsandbytes"){let s=nt(e);return Ua.includes(s)||s.startsWith(_a)}if(r!=="gptq"&&r!=="awq"||!Ro(e,n))return!1;let o=nt(e);return o!==vo&&Ca.includes(o)}async function il(e){let t=ee(e.repo),n=await(e.fetch??fetch)(`${e.hubUrl??z}/api/${t.type}s/${t.name}?expand[]=likes`,{method:"GET",headers:{...e.accessToken&&{Authorization:`Bearer ${e.accessToken}`}}});if(n.status===404||n.status===401)return!1;if(!n.ok)throw await Q(n);return!0}async function al(e){let t=e&&q(e),n=new URLSearchParams([...So.map(s=>["expand",s]),...e?.additionalFields?.map(s=>["expand",s])??[]]).toString(),r=await(e.fetch||fetch)(`${e?.hubUrl||z}/api/spaces/${e.name}/revision/${encodeURIComponent(e.revision??"HEAD")}?${n.toString()}`,{headers:{...t?{Authorization:`Bearer ${t}`}:{}}});if(!r.ok)throw await Q(r);let o=await r.json();return{...e?.additionalFields&&it(o,e.additionalFields),id:o._id,name:o.id,sdk:o.sdk,likes:o.likes,private:o.private,updatedAt:new Date(o.lastModified)}}function cl(e){let t=e.file instanceof URL?e.file.pathname.split("/").at(-1)??"file":"path"in e.file?e.file.path:e.file.name;return je({...e.accessToken?{accessToken:e.accessToken}:{credentials:e.credentials},repo:e.repo,operations:[{operation:"addOrUpdate",path:t,content:"content"in e.file?e.file.content:e.file}],title:e.commitTitle??`Add ${t}`,description:e.commitDescription,hubUrl:e.hubUrl,branch:e.branch,isPullRequest:e.isPullRequest,parentCommit:e.parentCommit,fetch:e.fetch,useWebWorkers:e.useWebWorkers,abortSignal:e.abortSignal,useXet:e.useXet})}function ll(e){return je({...e.accessToken?{accessToken:e.accessToken}:{credentials:e.credentials},repo:e.repo,operations:e.files.map(t=>({operation:"addOrUpdate",path:t instanceof URL?t.pathname.split("/").at(-1)??"file":"path"in t?t.path:t.name,content:"content"in t?t.content:t})),title:e.commitTitle??`Add ${e.files.length} files`,description:e.commitDescription,hubUrl:e.hubUrl,branch:e.branch,isPullRequest:e.isPullRequest,parentCommit:e.parentCommit,fetch:e.fetch,useWebWorkers:e.useWebWorkers,abortSignal:e.abortSignal,useXet:e.useXet})}var Gr=new WeakMap;async function*hl(e){return yield*Ao({...e.accessToken?{accessToken:e.accessToken}:{credentials:e.credentials},repo:e.repo,operations:e.files.map(t=>({operation:"addOrUpdate",path:t instanceof URL?t.pathname.split("/").at(-1)??"file":"path"in t?t.path:t.name,content:"content"in t?t.content:t})),title:e.commitTitle??`Add ${e.files.length} files`,description:e.commitDescription,hubUrl:e.hubUrl,branch:e.branch,isPullRequest:e.isPullRequest,parentCommit:e.parentCommit,useWebWorkers:e.useWebWorkers,abortSignal:e.abortSignal,useXet:e.useXet,fetch:async(t,n)=>{if(!n)return fetch(t);if(!mo(["PUT","POST"],n.method)||!("progressHint"in n)||!n.progressHint||typeof XMLHttpRequest>"u"||typeof t!="string"||!(n.body instanceof ArrayBuffer)&&!(n.body instanceof Blob)&&!(n.body instanceof File)&&typeof n.body!="string")return fetch(t,n);let r=n.progressHint,o=r.progressCallback,s=new XMLHttpRequest;return s.upload.addEventListener("progress",i=>{if(i.lengthComputable)if(r.part!==void 0){let a=Gr.get(o);a||(a={numParts:r.numParts,partsProgress:{}},Gr.set(o,a)),a.partsProgress[r.part]=i.loaded/i.total;let c=0;for(let l of Object.values(a.partsProgress))c+=l;c===a.numParts?o(.9999999999):o(c/a.numParts)}else i.loaded===i.total?o(.9999999999):o(i.loaded/i.total)}),s.open(n.method,t,!0),n.headers&&new Headers(n.headers).forEach((a,c)=>{s.setRequestHeader(c,a)}),n.signal?.throwIfAborted(),s.send(n.body),new Promise((i,a)=>{s.addEventListener("load",()=>{i(new Response(s.responseText,{status:s.status,statusText:s.statusText,headers:Object.fromEntries(s.getAllResponseHeaders().trim().split(` `).map(c=>[c.slice(0,c.indexOf(":")),c.slice(c.indexOf(":")+1).trim()]))}))}),s.addEventListener("error",()=>{a(new Error(s.statusText))}),n.signal&&n.signal.addEventListener("abort",()=>{s.abort();try{n.signal?.throwIfAborted()}catch(c){a(c)}})})}})}async function dl(e){let t=q(e),n=await(e.fetch??fetch)(`${e.hubUrl??z}/api/whoami-v2`,{headers:{Authorization:`Bearer ${t}`}});if(!n.ok)throw await Q(n);let r=await n.json();return typeof r.auth.accessToken?.createdAt=="string"&&(r.auth.accessToken.createdAt=new Date(r.auth.accessToken.createdAt)),r}export{S0 as DATASET_EXPANDABLE_KEYS,Io as DATASET_EXPAND_KEYS,Pr as DIFFUSERS_SAFETENSORS_FILE,Or as DIFFUSERS_SAFETENSORS_INDEX_FILE,Ia as DIFFUSERS_WEIGHTS_SUBFOLDERS,z as HUB_URL,In as HubApiError,me as InvalidApiResponseFormatError,Bo as MODEL_DERIVED_FIELD_TO_API_KEY,K0 as MODEL_EXPANDABLE_KEYS,ko as MODEL_EXPAND_KEYS,Ea as RE_SAFETENSORS_FILE,ka as RE_SAFETENSORS_INDEX_FILE,Ba as RE_SAFETENSORS_SHARD_FILE,ba as SAFETENSORS_FILE,ya as SAFETENSORS_INDEX_FILE,Y0 as SPACE_EXPANDABLE_KEYS,So as SPACE_EXPAND_KEYS,le as SafetensorParseError,ro as __internal_XetBlob,Gs as __internal_sha256,H0 as cancelJob,x0 as checkRepoAccess,je as commit,Ao as commitIter,qi as commitIterBucket,$o as computeNumOfParamsByDtypeSingleFile,p0 as copyFile,b0 as copyFileIter,Zi as copyFiles,wo as copyFilesIter,y0 as copyFolder,ea as copyFolderIter,I0 as countCommits,k0 as createBranch,B0 as createCollection,E0 as createRepo,$0 as createScheduledJob,C0 as datasetInfo,v0 as deleteBranch,R0 as deleteCollection,T0 as deleteFile,U0 as deleteFiles,_0 as deleteRepo,D0 as deleteScheduledJob,Dt as downloadFile,L0 as duplicateJob,Xi as fileDownloadInfo,Rr as fileExists,F0 as getJob,Pa as getQuantizationMultiplier,N0 as getScheduledJob,_o as globMatch,Ro as isQuantizedTensor,el as listCollections,X0 as listCommits,m0 as listDatasets,Ki as listFiles,M0 as listJobHardware,P0 as listJobs,J0 as listModels,O0 as listScheduledJobs,Z0 as listSpaces,Ho as matchesCompressedTensorsTarget,tl as modelInfo,Hr as oauthHandleRedirect,nl as oauthHandleRedirectIfPresent,rl as oauthLoginUrl,sl as parseSafetensorsMetadata,ol as parseSafetensorsShardFilename,qr as parseTotalParameters,Ji as pathsInfo,na as relativeUnderFolder,il as repoExists,Q0 as resumeScheduledJob,z0 as runJob,j0 as runScheduledJob,al as spaceInfo,W0 as streamJobEvents,q0 as streamJobLogs,G0 as streamJobMetrics,V0 as suspendScheduledJob,cl as uploadFile,ll as uploadFiles,hl as uploadFilesWithProgress,Da as validateTensorEntry,dl as whoAmI};