GitHub Action commited on
Commit
b59748f
Β·
1 Parent(s): 991242e

Sync from GitHub: b2d277fcb130eaae5f9b86aaba287479c01f4da6

Browse files
.gitattributes CHANGED
@@ -7,3 +7,9 @@
7
  *.mp4 filter=lfs diff=lfs merge=lfs -text
8
  *.webm filter=lfs diff=lfs merge=lfs -text
9
  *.pdf filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
7
  *.mp4 filter=lfs diff=lfs merge=lfs -text
8
  *.webm filter=lfs diff=lfs merge=lfs -text
9
  *.pdf filter=lfs diff=lfs merge=lfs -text
10
+ hfstudio/static/assets/hf-logo.png filter=lfs diff=lfs merge=lfs -text
11
+ hfstudio/static/assets/hf-studio-logo.png filter=lfs diff=lfs merge=lfs -text
12
+ frontend/static/assets/hf-logo.png filter=lfs diff=lfs merge=lfs -text
13
+ frontend/static/assets/hf-studio-logo.png filter=lfs diff=lfs merge=lfs -text
14
+ hfstudio/static/samples/harvard.wav filter=lfs diff=lfs merge=lfs -text
15
+ frontend/static/samples/harvard.wav filter=lfs diff=lfs merge=lfs -text
frontend/src/routes/+layout.svelte CHANGED
@@ -6,15 +6,24 @@
6
  let currentPage = 'tts';
7
  let sidebarOpen = true;
8
 
9
-
10
  // Initialize from server-side injected data with safe fallback
11
- let initialUser = typeof window !== 'undefined' && window.__INITIAL_USER__ ? window.__INITIAL_USER__ : { authenticated: false };
 
 
 
12
  let isLoggedIn = initialUser?.authenticated || false;
13
- let username = (initialUser?.authenticated && initialUser?.user_info) ?
14
- (initialUser.user_info.name || initialUser.user_info.fullname || initialUser.user_info.login || initialUser.user_info.username || 'User').split(' ')[0] : '';
 
 
 
 
 
 
 
 
15
  // Removed isCheckingAuth - instant feedback with server-side data
16
 
17
-
18
  let showTokenInput = false;
19
  let tokenInput = '';
20
  let tokenError = '';
@@ -38,7 +47,7 @@
38
  if (!isLoggedIn) {
39
  checkLocalTokenAvailability();
40
  }
41
-
42
  // Only check login status if we don't have initial user data
43
  if (!initialUser?.authenticated) {
44
  checkLoginStatus();
@@ -72,7 +81,7 @@
72
 
73
  if (data.available) {
74
  isLocalEnvironment = true;
75
-
76
  // For local tokens, create session via manual token endpoint if not already authenticated
77
  if (data.token && !isLoggedIn) {
78
  try {
@@ -80,14 +89,15 @@
80
  method: 'POST',
81
  headers: { 'Content-Type': 'application/json' },
82
  credentials: 'include',
83
- body: JSON.stringify({ token: data.token })
84
  });
85
-
86
  if (tokenResponse.ok) {
87
  const tokenData = await tokenResponse.json();
88
  isLoggedIn = true;
89
  const userInfo = tokenData.user_info;
90
- const fullName = userInfo.name || userInfo.fullname || userInfo.login || userInfo.username || 'User';
 
91
  username = fullName.split(' ')[0];
92
  }
93
  } catch (error) {
@@ -115,7 +125,7 @@
115
  try {
116
  // Check session-based auth via backend
117
  const response = await fetch('/api/auth/user', {
118
- credentials: 'include' // Include cookies
119
  });
120
 
121
  if (response.ok) {
@@ -123,7 +133,8 @@
123
  if (data.authenticated) {
124
  isLoggedIn = true;
125
  const userInfo = data.user_info;
126
- const fullName = userInfo.name || userInfo.fullname || userInfo.login || userInfo.username || 'User';
 
127
  username = fullName.split(' ')[0];
128
  } else {
129
  isLoggedIn = false;
@@ -138,7 +149,7 @@
138
  username = '';
139
  }
140
  }
141
-
142
  // Removed old localStorage-based functions
143
 
144
  async function handleAuthAction() {
@@ -200,21 +211,22 @@
200
  if (response.ok) {
201
  const userData = await response.json();
202
  const token = tokenInput.trim();
203
-
204
  // Send token to backend for validation and session creation
205
  try {
206
  const tokenResponse = await fetch('/api/auth/manual-token', {
207
  method: 'POST',
208
  headers: { 'Content-Type': 'application/json' },
209
  credentials: 'include',
210
- body: JSON.stringify({ token: token })
211
  });
212
-
213
  if (tokenResponse.ok) {
214
  const tokenData = await tokenResponse.json();
215
  isLoggedIn = true;
216
  const userInfo = tokenData.user_info;
217
- const fullName = userInfo.name || userInfo.fullname || userInfo.login || userInfo.username || 'User';
 
218
  username = fullName.split(' ')[0];
219
  closeTokenInput();
220
  } else {
@@ -325,9 +337,19 @@
325
  </svg>
326
  </button>
327
 
328
- <p class="text-sm font-medium text-gray-700 mb-1 pr-4">Hugging Face <span class="bg-gradient-to-r from-purple-500 via-pink-500 via-green-500 to-blue-500 bg-clip-text text-transparent font-bold">Pro</span></p>
 
 
 
 
 
329
  <p class="text-sm text-gray-600 pr-4">
330
- Sign in to with your Hugging Face <a href="https://huggingface.co/pro" target="_blank" class="text-amber-600 hover:text-amber-700 underline font-medium">Pro account</a> to get started with $2 of free API credits per month. You can add a billing method for additional pay-as-you-go usage &#10549;
 
 
 
 
 
331
  </p>
332
  </div>
333
  {/if}
@@ -343,7 +365,7 @@
343
  ></div>
344
  {/if}
345
  {#if isLoggedIn}
346
- <span class="relative z-10">Logout {username}</span>
347
  {:else}
348
  <img src="/assets/hf-logo.png" alt="HF Logo" class="w-5 h-5 relative z-10" />
349
  <span class="relative z-10">Sign In</span>
 
6
  let currentPage = 'tts';
7
  let sidebarOpen = true;
8
 
 
9
  // Initialize from server-side injected data with safe fallback
10
+ let initialUser =
11
+ typeof window !== 'undefined' && window.__INITIAL_USER__
12
+ ? window.__INITIAL_USER__
13
+ : { authenticated: false };
14
  let isLoggedIn = initialUser?.authenticated || false;
15
+ let username =
16
+ initialUser?.authenticated && initialUser?.user_info
17
+ ? (
18
+ initialUser.user_info.name ||
19
+ initialUser.user_info.fullname ||
20
+ initialUser.user_info.login ||
21
+ initialUser.user_info.username ||
22
+ 'User'
23
+ ).split(' ')[0]
24
+ : '';
25
  // Removed isCheckingAuth - instant feedback with server-side data
26
 
 
27
  let showTokenInput = false;
28
  let tokenInput = '';
29
  let tokenError = '';
 
47
  if (!isLoggedIn) {
48
  checkLocalTokenAvailability();
49
  }
50
+
51
  // Only check login status if we don't have initial user data
52
  if (!initialUser?.authenticated) {
53
  checkLoginStatus();
 
81
 
82
  if (data.available) {
83
  isLocalEnvironment = true;
84
+
85
  // For local tokens, create session via manual token endpoint if not already authenticated
86
  if (data.token && !isLoggedIn) {
87
  try {
 
89
  method: 'POST',
90
  headers: { 'Content-Type': 'application/json' },
91
  credentials: 'include',
92
+ body: JSON.stringify({ token: data.token }),
93
  });
94
+
95
  if (tokenResponse.ok) {
96
  const tokenData = await tokenResponse.json();
97
  isLoggedIn = true;
98
  const userInfo = tokenData.user_info;
99
+ const fullName =
100
+ userInfo.name || userInfo.fullname || userInfo.login || userInfo.username || 'User';
101
  username = fullName.split(' ')[0];
102
  }
103
  } catch (error) {
 
125
  try {
126
  // Check session-based auth via backend
127
  const response = await fetch('/api/auth/user', {
128
+ credentials: 'include', // Include cookies
129
  });
130
 
131
  if (response.ok) {
 
133
  if (data.authenticated) {
134
  isLoggedIn = true;
135
  const userInfo = data.user_info;
136
+ const fullName =
137
+ userInfo.name || userInfo.fullname || userInfo.login || userInfo.username || 'User';
138
  username = fullName.split(' ')[0];
139
  } else {
140
  isLoggedIn = false;
 
149
  username = '';
150
  }
151
  }
152
+
153
  // Removed old localStorage-based functions
154
 
155
  async function handleAuthAction() {
 
211
  if (response.ok) {
212
  const userData = await response.json();
213
  const token = tokenInput.trim();
214
+
215
  // Send token to backend for validation and session creation
216
  try {
217
  const tokenResponse = await fetch('/api/auth/manual-token', {
218
  method: 'POST',
219
  headers: { 'Content-Type': 'application/json' },
220
  credentials: 'include',
221
+ body: JSON.stringify({ token: token }),
222
  });
223
+
224
  if (tokenResponse.ok) {
225
  const tokenData = await tokenResponse.json();
226
  isLoggedIn = true;
227
  const userInfo = tokenData.user_info;
228
+ const fullName =
229
+ userInfo.name || userInfo.fullname || userInfo.login || userInfo.username || 'User';
230
  username = fullName.split(' ')[0];
231
  closeTokenInput();
232
  } else {
 
337
  </svg>
338
  </button>
339
 
340
+ <p class="text-sm font-medium text-gray-700 mb-1 pr-4">
341
+ Hugging Face <span
342
+ class="bg-gradient-to-r from-purple-500 via-pink-500 via-green-500 to-blue-500 bg-clip-text text-transparent font-bold"
343
+ >Pro</span
344
+ >
345
+ </p>
346
  <p class="text-sm text-gray-600 pr-4">
347
+ Sign in to with your Hugging Face <a
348
+ href="https://huggingface.co/pro"
349
+ target="_blank"
350
+ class="text-amber-600 hover:text-amber-700 underline font-medium">Pro account</a
351
+ > to get started with $2 of free API credits per month. You can add a billing method for
352
+ additional pay-as-you-go usage &#10549;
353
  </p>
354
  </div>
355
  {/if}
 
365
  ></div>
366
  {/if}
367
  {#if isLoggedIn}
368
+ <span class="relative z-10">Logout, {username}</span>
369
  {:else}
370
  <img src="/assets/hf-logo.png" alt="HF Logo" class="w-5 h-5 relative z-10" />
371
  <span class="relative z-10">Sign In</span>
frontend/src/routes/+page.svelte CHANGED
@@ -133,7 +133,7 @@
133
  headers: {
134
  'Content-Type': 'application/json',
135
  },
136
- credentials: 'include', // Include session cookie
137
  body: JSON.stringify(requestBody),
138
  });
139
 
@@ -1178,7 +1178,10 @@ print(f"βœ“ Audio saved to {output_filename}")
1178
  <div class="bg-gray-50 rounded-lg p-4 border">
1179
  <h4 class="text-sm font-medium text-gray-900 mb-2">Error Details:</h4>
1180
  <pre
1181
- class="text-xs text-gray-700 whitespace-pre-wrap font-mono leading-relaxed break-words">{errorDetails}</pre>
 
 
 
1182
  </div>
1183
  {/if}
1184
  </div>
 
133
  headers: {
134
  'Content-Type': 'application/json',
135
  },
136
+ credentials: 'include', // Include session cookie
137
  body: JSON.stringify(requestBody),
138
  });
139
 
 
1178
  <div class="bg-gray-50 rounded-lg p-4 border">
1179
  <h4 class="text-sm font-medium text-gray-900 mb-2">Error Details:</h4>
1180
  <pre
1181
+ class="text-xs text-gray-700 whitespace-pre-wrap font-mono leading-relaxed break-words">{#if errorDetails.includes('exceeded your monthly included credits')}{@html errorDetails.replace(
1182
+ 'Subscribe to PRO',
1183
+ '<a href="https://huggingface.co/settings/billing" target="_blank" class="text-amber-600 hover:text-amber-700 underline font-medium">Subscribe to PRO</a>'
1184
+ )}{:else}{errorDetails}{/if}</pre>
1185
  </div>
1186
  {/if}
1187
  </div>
hfstudio/server.py CHANGED
@@ -48,7 +48,7 @@ def create_session(access_token: str, user_info: Dict[str, Any]) -> str:
48
  "access_token": access_token,
49
  "user_info": user_info,
50
  "created_at": time.time(),
51
- "last_accessed": time.time()
52
  }
53
  return session_id
54
 
@@ -57,15 +57,15 @@ def get_session(session_id: str) -> Optional[Dict[str, Any]]:
57
  """Get session data if valid and not expired."""
58
  if not session_id or session_id not in sessions:
59
  return None
60
-
61
  session = sessions[session_id]
62
  current_time = time.time()
63
-
64
  # Check if session is expired
65
  if current_time - session["created_at"] > SESSION_TIMEOUT:
66
  del sessions[session_id]
67
  return None
68
-
69
  # Update last accessed time
70
  session["last_accessed"] = current_time
71
  return session
@@ -77,17 +77,22 @@ def delete_session(session_id: str) -> None:
77
  del sessions[session_id]
78
 
79
 
80
- def get_current_session(session_id: str = Cookie(None, alias="hf_session")) -> Optional[Dict[str, Any]]:
 
 
81
  """FastAPI dependency to get current session."""
82
  return get_session(session_id)
83
 
84
 
85
- def require_auth(session: Optional[Dict[str, Any]] = Depends(get_current_session)) -> Dict[str, Any]:
 
 
86
  """FastAPI dependency that requires authentication."""
87
  if not session:
88
  raise HTTPException(status_code=401, detail="Authentication required")
89
  return session
90
 
 
91
  static_dir = Path(__file__).parent / "static"
92
  models_dir = Path(__file__).parent.parent / "models"
93
 
@@ -332,26 +337,25 @@ async def validate_manual_token(request: ManualTokenRequest, response: Response)
332
  user_info = whoami(token=request.token)
333
  if user_info.get("type") != "user":
334
  raise HTTPException(status_code=400, detail="Invalid token type")
335
-
336
  # Create session and set cookie
337
  session_id = create_session(request.token, user_info)
338
-
339
  response.set_cookie(
340
  key="hf_session",
341
  value=session_id,
342
  httponly=True,
343
  secure=bool(os.getenv("SPACE_HOST")),
344
  samesite="lax",
345
- max_age=SESSION_TIMEOUT
346
  )
347
-
348
- return {
349
- "success": True,
350
- "user_info": user_info
351
- }
352
-
353
  except Exception as e:
354
- raise HTTPException(status_code=400, detail=f"Token validation failed: {str(e)}")
 
 
355
 
356
 
357
  @app.get("/api/auth/user")
@@ -359,25 +363,26 @@ async def get_current_user(session: Dict[str, Any] = Depends(get_current_session
359
  """Get current user info from session."""
360
  if not session:
361
  raise HTTPException(status_code=401, detail="Not authenticated")
362
-
363
- return {
364
- "authenticated": True,
365
- "user_info": session["user_info"]
366
- }
367
 
368
 
369
  @app.post("/api/auth/logout")
370
- async def logout(response: Response, session_id: str = Cookie(None, alias="hf_session")):
 
 
371
  """Logout and clear session."""
372
  if session_id:
373
  delete_session(session_id)
374
-
375
  response.delete_cookie("hf_session")
376
  return {"success": True}
377
 
378
 
379
  @app.post("/api/tts/generate")
380
- async def generate_tts(request: TTSRequest, session: Dict[str, Any] = Depends(require_auth)):
 
 
381
  try:
382
  # Load model specification
383
  model_spec = load_model_spec(request.model_id)
@@ -486,7 +491,12 @@ async def exchange_oauth_token(request: OAuthTokenRequest, http_request: Request
486
 
487
 
488
  @app.get("/auth/callback")
489
- async def oauth_callback(code: str = None, state: str = None, request: Request = None, response: Response = None):
 
 
 
 
 
490
  if not code:
491
  return HTMLResponse(
492
  """
@@ -532,17 +542,17 @@ async def oauth_callback(code: str = None, state: str = None, request: Request =
532
  if token_response.status_code == 200:
533
  token_data = token_response.json()
534
  access_token = token_data["access_token"]
535
-
536
  # Get user info
537
  try:
538
  user_info = whoami(token=access_token)
539
  except Exception:
540
  # Fallback user info if API call fails
541
  user_info = {"name": "User", "fullname": "User", "avatarUrl": None}
542
-
543
  # Create session and set HTTP-only cookie
544
  session_id = create_session(access_token, user_info)
545
-
546
  html_response = HTMLResponse("""
547
  <html>
548
  <head><title>OAuth Success</title></head>
@@ -555,7 +565,7 @@ async def oauth_callback(code: str = None, state: str = None, request: Request =
555
  </body>
556
  </html>
557
  """)
558
-
559
  # Set HTTP-only, secure session cookie
560
  html_response.set_cookie(
561
  key="hf_session",
@@ -563,9 +573,9 @@ async def oauth_callback(code: str = None, state: str = None, request: Request =
563
  httponly=True,
564
  secure=bool(os.getenv("SPACE_HOST")), # Secure in production
565
  samesite="lax",
566
- max_age=SESSION_TIMEOUT
567
  )
568
-
569
  return html_response
570
  else:
571
  return HTMLResponse(
 
48
  "access_token": access_token,
49
  "user_info": user_info,
50
  "created_at": time.time(),
51
+ "last_accessed": time.time(),
52
  }
53
  return session_id
54
 
 
57
  """Get session data if valid and not expired."""
58
  if not session_id or session_id not in sessions:
59
  return None
60
+
61
  session = sessions[session_id]
62
  current_time = time.time()
63
+
64
  # Check if session is expired
65
  if current_time - session["created_at"] > SESSION_TIMEOUT:
66
  del sessions[session_id]
67
  return None
68
+
69
  # Update last accessed time
70
  session["last_accessed"] = current_time
71
  return session
 
77
  del sessions[session_id]
78
 
79
 
80
+ def get_current_session(
81
+ session_id: str = Cookie(None, alias="hf_session"),
82
+ ) -> Optional[Dict[str, Any]]:
83
  """FastAPI dependency to get current session."""
84
  return get_session(session_id)
85
 
86
 
87
+ def require_auth(
88
+ session: Optional[Dict[str, Any]] = Depends(get_current_session),
89
+ ) -> Dict[str, Any]:
90
  """FastAPI dependency that requires authentication."""
91
  if not session:
92
  raise HTTPException(status_code=401, detail="Authentication required")
93
  return session
94
 
95
+
96
  static_dir = Path(__file__).parent / "static"
97
  models_dir = Path(__file__).parent.parent / "models"
98
 
 
337
  user_info = whoami(token=request.token)
338
  if user_info.get("type") != "user":
339
  raise HTTPException(status_code=400, detail="Invalid token type")
340
+
341
  # Create session and set cookie
342
  session_id = create_session(request.token, user_info)
343
+
344
  response.set_cookie(
345
  key="hf_session",
346
  value=session_id,
347
  httponly=True,
348
  secure=bool(os.getenv("SPACE_HOST")),
349
  samesite="lax",
350
+ max_age=SESSION_TIMEOUT,
351
  )
352
+
353
+ return {"success": True, "user_info": user_info}
354
+
 
 
 
355
  except Exception as e:
356
+ raise HTTPException(
357
+ status_code=400, detail=f"Token validation failed: {str(e)}"
358
+ )
359
 
360
 
361
  @app.get("/api/auth/user")
 
363
  """Get current user info from session."""
364
  if not session:
365
  raise HTTPException(status_code=401, detail="Not authenticated")
366
+
367
+ return {"authenticated": True, "user_info": session["user_info"]}
 
 
 
368
 
369
 
370
  @app.post("/api/auth/logout")
371
+ async def logout(
372
+ response: Response, session_id: str = Cookie(None, alias="hf_session")
373
+ ):
374
  """Logout and clear session."""
375
  if session_id:
376
  delete_session(session_id)
377
+
378
  response.delete_cookie("hf_session")
379
  return {"success": True}
380
 
381
 
382
  @app.post("/api/tts/generate")
383
+ async def generate_tts(
384
+ request: TTSRequest, session: Dict[str, Any] = Depends(require_auth)
385
+ ):
386
  try:
387
  # Load model specification
388
  model_spec = load_model_spec(request.model_id)
 
491
 
492
 
493
  @app.get("/auth/callback")
494
+ async def oauth_callback(
495
+ code: str = None,
496
+ state: str = None,
497
+ request: Request = None,
498
+ response: Response = None,
499
+ ):
500
  if not code:
501
  return HTMLResponse(
502
  """
 
542
  if token_response.status_code == 200:
543
  token_data = token_response.json()
544
  access_token = token_data["access_token"]
545
+
546
  # Get user info
547
  try:
548
  user_info = whoami(token=access_token)
549
  except Exception:
550
  # Fallback user info if API call fails
551
  user_info = {"name": "User", "fullname": "User", "avatarUrl": None}
552
+
553
  # Create session and set HTTP-only cookie
554
  session_id = create_session(access_token, user_info)
555
+
556
  html_response = HTMLResponse("""
557
  <html>
558
  <head><title>OAuth Success</title></head>
 
565
  </body>
566
  </html>
567
  """)
568
+
569
  # Set HTTP-only, secure session cookie
570
  html_response.set_cookie(
571
  key="hf_session",
 
573
  httponly=True,
574
  secure=bool(os.getenv("SPACE_HOST")), # Secure in production
575
  samesite="lax",
576
+ max_age=SESSION_TIMEOUT,
577
  )
578
+
579
  return html_response
580
  else:
581
  return HTMLResponse(
hfstudio/static/_app/immutable/chunks/C5JSCrvZ.js ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ var Se=Object.defineProperty;var ke=(t,e,n)=>e in t?Se(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var R=(t,e,n)=>ke(t,typeof e!="symbol"?e+"":e,n);import{S as Ee,F as Ae,Z as Re,_ as Te,$ as Ie,a0 as Ue,a1 as Le,a2 as $e,z as vt,a3 as xe,G as bt,n as gt,s as Ce}from"./MT0Fezl8.js";class Zt extends Ee{constructor(n){if(!n||!n.target&&!n.$$inline)throw new Error("'target' is a required option");super();R(this,"$$prop_def");R(this,"$$events_def");R(this,"$$slot_def")}$destroy(){super.$destroy(),this.$destroy=()=>{console.warn("Component was already destroyed")}}$capture_state(){}$inject_state(){}}class Pe extends Zt{}const Oe=Object.freeze(Object.defineProperty({__proto__:null,SvelteComponent:Zt,SvelteComponentTyped:Pe,afterUpdate:Ae,beforeUpdate:Re,createEventDispatcher:Te,getAllContexts:Ie,getContext:Ue,hasContext:Le,onDestroy:$e,onMount:vt,setContext:xe,tick:bt},Symbol.toStringTag,{value:"Module"}));class it{constructor(e,n){this.status=e,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}}class Rt{constructor(e,n){this.status=e,this.location=n}}class Tt extends Error{constructor(e,n,r){super(r),this.status=e,this.text=n}}new URL("sveltekit-internal://");function Ne(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function je(t){return t.split("%25").map(decodeURI).join("%25")}function De(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function mt({href:t}){return t.split("#")[0]}function Fe(t,e,n,r=!1){const a=new URL(t);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(i,o){if(o==="get"||o==="getAll"||o==="has")return l=>(n(l),i[o](l));e();const c=Reflect.get(i,o);return typeof c=="function"?c.bind(i):c}}),enumerable:!0,configurable:!0});const s=["href","pathname","search","toString","toJSON"];r&&s.push("hash");for(const i of s)Object.defineProperty(a,i,{get(){return e(),t[i]},enumerable:!0,configurable:!0});return a}function Be(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)e=e*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}new TextEncoder;const Me=new TextDecoder;function Ve(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return n}const qe=window.fetch;window.fetch=(t,e)=>((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&Y.delete(It(t)),qe(t,e));const Y=new Map;function Ge(t,e){const n=It(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){r.remove();let{body:a,...s}=JSON.parse(r.textContent);const i=r.getAttribute("data-ttl");return i&&Y.set(n,{body:a,init:s,ttl:1e3*Number(i)}),r.getAttribute("data-b64")!==null&&(a=Ve(a)),Promise.resolve(new Response(a,s))}return window.fetch(t,e)}function Ye(t,e,n){if(Y.size>0){const r=It(t,n),a=Y.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n==null?void 0:n.cache))return new Response(a.body,a.init);Y.delete(r)}}return window.fetch(e,n)}function It(t,e){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(t instanceof Request?t.url:t)}]`;if(e!=null&&e.headers||e!=null&&e.body){const a=[];e.headers&&a.push([...new Headers(e.headers)].join(",")),e.body&&(typeof e.body=="string"||ArrayBuffer.isView(e.body))&&a.push(e.body),r+=`[data-hash="${Be(...a)}"]`}return r}const ze=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function He(t){const e=[];return{pattern:t==="/"?/^\/$/:new RegExp(`^${We(t).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return e.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(s)return e.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const i=r.split(/\[(.+?)\](?!\])/);return"/"+i.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return _t(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return _t(String.fromCharCode(...c.slice(2).split("-").map(u=>parseInt(u,16))));const d=ze.exec(c),[,h,y,f,p]=d;return e.push({name:f,matcher:p,optional:!!h,rest:!!y,chained:y?l===1&&i[0]==="":!1}),y?"([^]*?)":h?"([^/]*)?":"([^/]+?)"}return _t(c)}).join("")}).join("")}/?$`),params:e}}function Ke(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function We(t){return t.slice(1).split("/").filter(Ke)}function Je(t,e,n){const r={},a=t.slice(1),s=a.filter(o=>o!==void 0);let i=0;for(let o=0;o<e.length;o+=1){const c=e[o];let l=a[o-i];if(c.chained&&c.rest&&i&&(l=a.slice(o-i,o+1).filter(d=>d).join("/"),i=0),l===void 0){c.rest&&(r[c.name]="");continue}if(!c.matcher||n[c.matcher](l)){r[c.name]=l;const d=e[o+1],h=a[o+1];d&&!d.rest&&d.optional&&h&&c.chained&&(i=0),!d&&!h&&Object.keys(r).length===s.length&&(i=0);continue}if(c.optional&&c.chained){i++;continue}return}if(!i)return r}function _t(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Xe({nodes:t,server_loads:e,dictionary:n,matchers:r}){const a=new Set(e);return Object.entries(n).map(([o,[c,l,d]])=>{const{pattern:h,params:y}=He(o),f={id:o,exec:p=>{const u=h.exec(p);if(u)return Je(u,y,r)},errors:[1,...d||[]].map(p=>t[p]),layouts:[0,...l||[]].map(i),leaf:s(c)};return f.errors.length=f.layouts.length=Math.max(f.errors.length,f.layouts.length),f});function s(o){const c=o<0;return c&&(o=~o),[c,t[o]]}function i(o){return o===void 0?o:[a.has(o),t[o]]}}function Qt(t,e=JSON.parse){try{return e(sessionStorage[t])}catch{}}function Bt(t,e,n=JSON.stringify){const r=n(e);try{sessionStorage[t]=r}catch{}}const D=[];function Ut(t,e=gt){let n;const r=new Set;function a(o){if(Ce(t,o)&&(t=o,n)){const c=!D.length;for(const l of r)l[1](),D.push(l,t);if(c){for(let l=0;l<D.length;l+=2)D[l][0](D[l+1]);D.length=0}}}function s(o){a(o(t))}function i(o,c=gt){const l=[o,c];return r.add(l),r.size===1&&(n=e(a,s)||gt),o(t),()=>{r.delete(l),r.size===0&&n&&(n(),n=null)}}return{set:a,update:s,subscribe:i}}var Jt;const $=((Jt=globalThis.__sveltekit_1tpt24)==null?void 0:Jt.base)??"";var Xt;const Ze=((Xt=globalThis.__sveltekit_1tpt24)==null?void 0:Xt.assets)??$??"",Qe="1761159342660",te="sveltekit:snapshot",ee="sveltekit:scroll",ne="sveltekit:states",tn="sveltekit:pageurl",B="sveltekit:history",K="sveltekit:navigation",O={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ct=location.origin;function ae(t){if(t instanceof URL)return t;let e=document.baseURI;if(!e){const n=document.getElementsByTagName("base");e=n.length?n[0].href:document.URL}return new URL(t,e)}function lt(){return{x:pageXOffset,y:pageYOffset}}function F(t,e){return t.getAttribute(`data-sveltekit-${e}`)}const Mt={...O,"":O.hover};function re(t){let e=t.assignedSlot??t.parentNode;return(e==null?void 0:e.nodeType)===11&&(e=e.host),e}function oe(t,e){for(;t&&t!==e;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=re(t)}}function St(t,e,n){let r;try{if(r=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=t instanceof SVGAElement?t.target.baseVal:t.target,s=!r||!!a||ft(r,e,n)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),i=(r==null?void 0:r.origin)===ct&&t.hasAttribute("download");return{url:r,external:s,target:a,download:i}}function Q(t){let e=null,n=null,r=null,a=null,s=null,i=null,o=t;for(;o&&o!==document.documentElement;)r===null&&(r=F(o,"preload-code")),a===null&&(a=F(o,"preload-data")),e===null&&(e=F(o,"keepfocus")),n===null&&(n=F(o,"noscroll")),s===null&&(s=F(o,"reload")),i===null&&(i=F(o,"replacestate")),o=re(o);function c(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Mt[r??"off"],preload_data:Mt[a??"off"],keepfocus:c(e),noscroll:c(n),reload:c(s),replace_state:c(i)}}function Vt(t){const e=Ut(t);let n=!0;function r(){n=!0,e.update(i=>i)}function a(i){n=!1,e.set(i)}function s(i){let o;return e.subscribe(c=>{(o===void 0||n&&c!==o)&&i(o=c)})}return{notify:r,set:a,subscribe:s}}const se={v:()=>{}};function en(){const{set:t,subscribe:e}=Ut(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Ze}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const i=(await a.json()).version!==Qe;return i&&(t(!0),se.v(),clearTimeout(n)),i}catch{return!1}}return{subscribe:e,check:r}}function ft(t,e,n){return t.origin!==ct||!t.pathname.startsWith(e)?!0:n?!(t.pathname===e+"/"||t.pathname===e+"/index.html"||t.protocol==="file:"&&t.pathname.replace(/\/[^/]+\.html?$/,"")===e):!1}function qn(t){}function nn(t){const e=rn(t),n=new ArrayBuffer(e.length),r=new DataView(n);for(let a=0;a<n.byteLength;a++)r.setUint8(a,e.charCodeAt(a));return n}const an="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function rn(t){t.length%4===0&&(t=t.replace(/==?$/,""));let e="",n=0,r=0;for(let a=0;a<t.length;a++)n<<=6,n|=an.indexOf(t[a]),r+=6,r===24&&(e+=String.fromCharCode((n&16711680)>>16),e+=String.fromCharCode((n&65280)>>8),e+=String.fromCharCode(n&255),n=r=0);return r===12?(n>>=4,e+=String.fromCharCode(n)):r===18&&(n>>=2,e+=String.fromCharCode((n&65280)>>8),e+=String.fromCharCode(n&255)),e}const on=-1,sn=-2,cn=-3,ln=-4,fn=-5,un=-6;function dn(t,e){if(typeof t=="number")return a(t,!0);if(!Array.isArray(t)||t.length===0)throw new Error("Invalid input");const n=t,r=Array(n.length);function a(s,i=!1){if(s===on)return;if(s===cn)return NaN;if(s===ln)return 1/0;if(s===fn)return-1/0;if(s===un)return-0;if(i||typeof s!="number")throw new Error("Invalid input");if(s in r)return r[s];const o=n[s];if(!o||typeof o!="object")r[s]=o;else if(Array.isArray(o))if(typeof o[0]=="string"){const c=o[0],l=e==null?void 0:e[c];if(l)return r[s]=l(a(o[1]));switch(c){case"Date":r[s]=new Date(o[1]);break;case"Set":const d=new Set;r[s]=d;for(let f=1;f<o.length;f+=1)d.add(a(o[f]));break;case"Map":const h=new Map;r[s]=h;for(let f=1;f<o.length;f+=2)h.set(a(o[f]),a(o[f+1]));break;case"RegExp":r[s]=new RegExp(o[1],o[2]);break;case"Object":r[s]=Object(o[1]);break;case"BigInt":r[s]=BigInt(o[1]);break;case"null":const y=Object.create(null);r[s]=y;for(let f=1;f<o.length;f+=2)y[o[f]]=a(o[f+1]);break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":{const f=globalThis[c],p=new f(a(o[1]));r[s]=o[2]!==void 0?p.subarray(o[2],o[3]):p;break}case"ArrayBuffer":{const f=o[1],p=nn(f);r[s]=p;break}case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":{const f=c.slice(9);r[s]=Temporal[f].from(o[1]);break}case"URL":{const f=new URL(o[1]);r[s]=f;break}case"URLSearchParams":{const f=new URLSearchParams(o[1]);r[s]=f;break}default:throw new Error(`Unknown type ${c}`)}}else{const c=new Array(o.length);r[s]=c;for(let l=0;l<o.length;l+=1){const d=o[l];d!==sn&&(c[l]=a(d))}}else{const c={};r[s]=c;for(const l in o){if(l==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");const d=o[l];c[l]=a(d)}}return r[s]}return a(0)}const ie=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...ie];const hn=new Set([...ie]);[...hn];function pn(t){return t.filter(e=>e!=null)}const gn="x-sveltekit-invalidated",mn="x-sveltekit-trailing-slash";function tt(t){return t instanceof it||t instanceof Tt?t.status:500}function _n(t){return t instanceof Tt?t.text:"Internal Error"}let T,W,wt;const wn=vt.toString().includes("$$")||/function \w+\(\) \{\}/.test(vt.toString());wn?(T={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},W={current:null},wt={current:!1}):(T=new class{constructor(){R(this,"data",$state.raw({}));R(this,"form",$state.raw(null));R(this,"error",$state.raw(null));R(this,"params",$state.raw({}));R(this,"route",$state.raw({id:null}));R(this,"state",$state.raw({}));R(this,"status",$state.raw(-1));R(this,"url",$state.raw(new URL("https://example.com")))}},W=new class{constructor(){R(this,"current",$state.raw(null))}},wt=new class{constructor(){R(this,"current",$state.raw(!1))}},se.v=()=>wt.current=!0);function yn(t){Object.assign(T,t)}const vn="/__data.json",bn=".html__data.json";function Sn(t){return t.endsWith(".html")?t.replace(/\.html$/,bn):t.replace(/\/$/,"")+vn}const qt={spanContext(){return kn},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},kn={traceId:"",spanId:"",traceFlags:0},{tick:En}=Oe,An=new Set(["icon","shortcut icon","apple-touch-icon"]),j=Qt(ee)??{},J=Qt(te)??{},C={url:Vt({}),page:Vt({}),navigating:Ut(null),updated:en()};function Lt(t){j[t]=lt()}function Rn(t,e){let n=t+1;for(;j[n];)delete j[n],n+=1;for(n=e+1;J[n];)delete J[n],n+=1}function q(t,e=!1){return e?location.replace(t.href):location.href=t.href,new Promise(()=>{})}async function ce(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration($||"/");t&&await t.update()}}function Gt(){}let $t,kt,et,x,Et,k;const nt=[],at=[];let U=null;const Z=new Map,le=new Set,Tn=new Set,z=new Set;let b={branch:[],error:null,url:null},xt=!1,rt=!1,Yt=!0,X=!1,G=!1,fe=!1,Ct=!1,ue,A,L,N;const H=new Set,zt=new Map;async function Hn(t,e,n){var s,i,o,c,l;(s=globalThis.__sveltekit_1tpt24)!=null&&s.data&&globalThis.__sveltekit_1tpt24.data,document.URL!==location.href&&(location.href=location.href),k=t,await((o=(i=t.hooks).init)==null?void 0:o.call(i)),$t=Xe(t),x=document.documentElement,Et=e,kt=t.nodes[0],et=t.nodes[1],kt(),et(),A=(c=history.state)==null?void 0:c[B],L=(l=history.state)==null?void 0:l[K],A||(A=L=Date.now(),history.replaceState({...history.state,[B]:A,[K]:L},""));const r=j[A];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await Dn(Et,n)):(await M({type:"enter",url:ae(k.hash?Bn(new URL(location.href)):location.href),replace_state:!0}),a()),jn()}function In(){nt.length=0,Ct=!1}function de(t){at.some(e=>e==null?void 0:e.snapshot)&&(J[t]=at.map(e=>{var n;return(n=e==null?void 0:e.snapshot)==null?void 0:n.capture()}))}function he(t){var e;(e=J[t])==null||e.forEach((n,r)=>{var a,s;(s=(a=at[r])==null?void 0:a.snapshot)==null||s.restore(n)})}function Ht(){Lt(A),Bt(ee,j),de(L),Bt(te,J)}async function Un(t,e,n,r){let a;e.invalidateAll&&(U=null),await M({type:"goto",url:ae(t),keepfocus:e.keepFocus,noscroll:e.noScroll,replace_state:e.replaceState,state:e.state,redirect_count:n,nav_token:r,accept:()=>{e.invalidateAll&&(Ct=!0,a=[...zt.keys()]),e.invalidate&&e.invalidate.forEach(Nn)}}),e.invalidateAll&&bt().then(bt).then(()=>{zt.forEach(({resource:s},i)=>{var o;a!=null&&a.includes(i)&&((o=s.refresh)==null||o.call(s))})})}async function Ln(t){if(t.id!==(U==null?void 0:U.id)){const e={};H.add(e),U={id:t.id,token:e,promise:me({...t,preload:e}).then(n=>(H.delete(e),n.type==="loaded"&&n.state.error&&(U=null),n))}}return U.promise}async function yt(t){var n;const e=(n=await dt(t,!1))==null?void 0:n.route;e&&await Promise.all([...e.layouts,e.leaf].map(r=>r==null?void 0:r[1]()))}function pe(t,e,n){var a;b=t.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(T,t.props.page),ue=new k.root({target:e,props:{...t.props,stores:C,components:at},hydrate:n,sync:!1}),he(L),n){const s={from:null,to:{params:b.params,route:{id:((a=b.route)==null?void 0:a.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};z.forEach(i=>i(s))}rt=!0}function ot({url:t,params:e,branch:n,status:r,error:a,route:s,form:i}){let o="never";if($&&(t.pathname===$||t.pathname===$+"/"))o="always";else for(const f of n)(f==null?void 0:f.slash)!==void 0&&(o=f.slash);t.pathname=Ne(t.pathname,o),t.search=t.search;const c={type:"loaded",state:{url:t,params:e,branch:n,error:a,route:s},props:{constructors:pn(n).map(f=>f.node.component),page:jt(T)}};i!==void 0&&(c.props.form=i);let l={},d=!T,h=0;for(let f=0;f<Math.max(n.length,b.branch.length);f+=1){const p=n[f],u=b.branch[f];(p==null?void 0:p.data)!==(u==null?void 0:u.data)&&(d=!0),p&&(l={...l,...p.data},d&&(c.props[`data_${h}`]=l),h+=1)}return(!b.url||t.href!==b.url.href||b.error!==a||i!==void 0&&i!==T.form||d)&&(c.props.page={error:a,params:e,route:{id:(s==null?void 0:s.id)??null},state:{},status:r,url:new URL(t),form:i??null,data:d?l:T.data}),c}async function Pt({loader:t,parent:e,url:n,params:r,route:a,server_data_node:s}){var d,h,y;let i=null,o=!0;const c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},l=await t();if((d=l.universal)!=null&&d.load){let f=function(...u){for(const g of u){const{href:_}=new URL(g,n);c.dependencies.add(_)}};const p={tracing:{enabled:!1,root:qt,current:qt},route:new Proxy(a,{get:(u,g)=>(o&&(c.route=!0),u[g])}),params:new Proxy(r,{get:(u,g)=>(o&&c.params.add(g),u[g])}),data:(s==null?void 0:s.data)??null,url:Fe(n,()=>{o&&(c.url=!0)},u=>{o&&c.search_params.add(u)},k.hash),async fetch(u,g){u instanceof Request&&(g={body:u.method==="GET"||u.method==="HEAD"?void 0:await u.blob(),cache:u.cache,credentials:u.credentials,headers:[...u.headers].length>0?u==null?void 0:u.headers:void 0,integrity:u.integrity,keepalive:u.keepalive,method:u.method,mode:u.mode,redirect:u.redirect,referrer:u.referrer,referrerPolicy:u.referrerPolicy,signal:u.signal,...g});const{resolved:_,promise:I}=ge(u,g,n);return o&&f(_.href),I},setHeaders:()=>{},depends:f,parent(){return o&&(c.parent=!0),e()},untrack(u){o=!1;try{return u()}finally{o=!0}}};i=await l.universal.load.call(null,p)??null}return{node:l,loader:t,server:s,universal:(h=l.universal)!=null&&h.load?{type:"data",data:i,uses:c}:null,data:i??(s==null?void 0:s.data)??null,slash:((y=l.universal)==null?void 0:y.trailingSlash)??(s==null?void 0:s.slash)}}function ge(t,e,n){let r=t instanceof Request?t.url:t;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const s=rt?Ye(r,a.href,e):Ge(r,e);return{resolved:a,promise:s}}function Kt(t,e,n,r,a,s){if(Ct)return!0;if(!a)return!1;if(a.parent&&t||a.route&&e||a.url&&n)return!0;for(const i of a.search_params)if(r.has(i))return!0;for(const i of a.params)if(s[i]!==b.params[i])return!0;for(const i of a.dependencies)if(nt.some(o=>o(new URL(i))))return!0;return!1}function Ot(t,e){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?e??null:null}function $n(t,e){if(!t)return new Set(e.searchParams.keys());const n=new Set([...t.searchParams.keys(),...e.searchParams.keys()]);for(const r of n){const a=t.searchParams.getAll(r),s=e.searchParams.getAll(r);a.every(i=>s.includes(i))&&s.every(i=>a.includes(i))&&n.delete(r)}return n}function Wt({error:t,url:e,route:n,params:r}){return{type:"loaded",state:{error:t,url:e,route:n,params:r,branch:[]},props:{page:jt(T),constructors:[]}}}async function me({id:t,invalidating:e,url:n,params:r,route:a,preload:s}){if((U==null?void 0:U.id)===t)return H.delete(U.token),U.promise;const{errors:i,layouts:o,leaf:c}=a,l=[...o,c];i.forEach(w=>w==null?void 0:w().catch(()=>{})),l.forEach(w=>w==null?void 0:w[1]().catch(()=>{}));let d=null;const h=b.url?t!==st(b.url):!1,y=b.route?a.id!==b.route.id:!1,f=$n(b.url,n);let p=!1;const u=l.map((w,m)=>{var P;const v=b.branch[m],S=!!(w!=null&&w[0])&&((v==null?void 0:v.loader)!==w[1]||Kt(p,y,h,f,(P=v.server)==null?void 0:P.uses,r));return S&&(p=!0),S});if(u.some(Boolean)){try{d=await ye(n,u)}catch(w){const m=await V(w,{url:n,params:r,route:{id:t}});return H.has(s)?Wt({error:m,url:n,params:r,route:a}):ut({status:tt(w),error:m,url:n,route:a})}if(d.type==="redirect")return d}const g=d==null?void 0:d.nodes;let _=!1;const I=l.map(async(w,m)=>{var ht;if(!w)return;const v=b.branch[m],S=g==null?void 0:g[m];if((!S||S.type==="skip")&&w[1]===(v==null?void 0:v.loader)&&!Kt(_,y,h,f,(ht=v.universal)==null?void 0:ht.uses,r))return v;if(_=!0,(S==null?void 0:S.type)==="error")throw S;return Pt({loader:w[1],url:n,params:r,route:a,parent:async()=>{var Ft;const Dt={};for(let pt=0;pt<m;pt+=1)Object.assign(Dt,(Ft=await I[pt])==null?void 0:Ft.data);return Dt},server_data_node:Ot(S===void 0&&w[0]?{type:"skip"}:S??null,w[0]?v==null?void 0:v.server:void 0)})});for(const w of I)w.catch(()=>{});const E=[];for(let w=0;w<l.length;w+=1)if(l[w])try{E.push(await I[w])}catch(m){if(m instanceof Rt)return{type:"redirect",location:m.location};if(H.has(s))return Wt({error:await V(m,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let v=tt(m),S;if(g!=null&&g.includes(m))v=m.status??v,S=m.error;else if(m instanceof it)S=m.body;else{if(await C.updated.check())return await ce(),await q(n);S=await V(m,{params:r,url:n,route:{id:a.id}})}const P=await xn(w,E,i);return P?ot({url:n,params:r,branch:E.slice(0,P.idx).concat(P.node),status:v,error:S,route:a}):await we(n,{id:a.id},S,v)}else E.push(void 0);return ot({url:n,params:r,branch:E,status:200,error:null,route:a,form:e?void 0:null})}async function xn(t,e,n){for(;t--;)if(n[t]){let r=t;for(;!e[r];)r-=1;try{return{idx:r+1,node:{node:await n[t](),loader:n[t],data:{},server:null,universal:null}}}catch{continue}}}async function ut({status:t,error:e,url:n,route:r}){const a={};let s=null;if(k.server_loads[0]===0)try{const o=await ye(n,[!0]);if(o.type!=="data"||o.nodes[0]&&o.nodes[0].type!=="data")throw 0;s=o.nodes[0]??null}catch{(n.origin!==ct||n.pathname!==location.pathname||xt)&&await q(n)}try{const o=await Pt({loader:kt,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Ot(s)}),c={node:await et(),loader:et,universal:null,server:null,data:null};return ot({url:n,params:a,branch:[o,c],status:t,error:e,route:null})}catch(o){if(o instanceof Rt)return Un(new URL(o.location,location.href),{},0);throw o}}async function Cn(t){const e=t.href;if(Z.has(e))return Z.get(e);let n;try{const r=(async()=>{let a=await k.hooks.reroute({url:new URL(t),fetch:async(s,i)=>ge(s,i,t).promise})??t;if(typeof a=="string"){const s=new URL(t);k.hash?s.hash=a:s.pathname=a,a=s}return a})();Z.set(e,r),n=await r}catch{Z.delete(e);return}return n}async function dt(t,e){if(t&&!ft(t,$,k.hash)){const n=await Cn(t);if(!n)return;const r=Pn(n);for(const a of $t){const s=a.exec(r);if(s)return{id:st(t),invalidating:e,route:a,params:De(s),url:t}}}}function Pn(t){return je(k.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice($.length))||"/"}function st(t){return(k.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function _e({url:t,type:e,intent:n,delta:r,event:a}){let s=!1;const i=Nt(b,n,t,e);r!==void 0&&(i.navigation.delta=r),a!==void 0&&(i.navigation.event=a);const o={...i.navigation,cancel:()=>{s=!0,i.reject(new Error("navigation cancelled"))}};return X||le.forEach(c=>c(o)),s?null:i}async function M({type:t,url:e,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:i={},redirect_count:o=0,nav_token:c={},accept:l=Gt,block:d=Gt,event:h}){const y=N;N=c;const f=await dt(e,!1),p=t==="enter"?Nt(b,f,e,t):_e({url:e,type:t,delta:n==null?void 0:n.delta,intent:f,event:h});if(!p){d(),N===c&&(N=y);return}const u=A,g=L;l(),X=!0,rt&&p.navigation.type!=="enter"&&C.navigating.set(W.current=p.navigation);let _=f&&await me(f);if(!_){if(ft(e,$,k.hash))return await q(e,s);_=await we(e,{id:null},await V(new Tt(404,"Not Found",`Not found: ${e.pathname}`),{url:e,params:{},route:{id:null}}),404,s)}if(e=(f==null?void 0:f.url)||e,N!==c)return p.reject(new Error("navigation aborted")),!1;if(_.type==="redirect"){if(o<20){await M({type:t,url:new URL(_.location,e),popped:n,keepfocus:r,noscroll:a,replace_state:s,state:i,redirect_count:o+1,nav_token:c}),p.fulfil(void 0);return}_=await ut({status:500,error:await V(new Error("Redirect loop"),{url:e,params:{},route:{id:null}}),url:e,route:{id:null}})}else _.props.page.status>=400&&await C.updated.check()&&(await ce(),await q(e,s));if(In(),Lt(u),de(g),_.props.page.url.pathname!==e.pathname&&(e.pathname=_.props.page.url.pathname),i=n?n.state:i,!n){const m=s?0:1,v={[B]:A+=m,[K]:L+=m,[ne]:i};(s?history.replaceState:history.pushState).call(history,v,"",e),s||Rn(A,L)}if(U=null,_.props.page.state=i,rt){const m=(await Promise.all(Array.from(Tn,v=>v(p.navigation)))).filter(v=>typeof v=="function");if(m.length>0){let v=function(){m.forEach(S=>{z.delete(S)})};m.push(v),m.forEach(S=>{z.add(S)})}b=_.state,_.props.page&&(_.props.page.url=e),ue.$set(_.props),yn(_.props.page),fe=!0}else pe(_,Et,!1);const{activeElement:I}=document;await En();let E=n?n.scroll:a?lt():null;if(Yt){const m=e.hash&&document.getElementById(be(e));if(E)scrollTo(E.x,E.y);else if(m){m.scrollIntoView();const{top:v,left:S}=m.getBoundingClientRect();E={x:pageXOffset+S,y:pageYOffset+v}}else scrollTo(0,0)}const w=document.activeElement!==I&&document.activeElement!==document.body;!r&&!w&&Fn(e,E),Yt=!0,_.props.page&&Object.assign(T,_.props.page),X=!1,t==="popstate"&&he(L),p.fulfil(void 0),z.forEach(m=>m(p.navigation)),C.navigating.set(W.current=null)}async function we(t,e,n,r,a){return t.origin===ct&&t.pathname===location.pathname&&!xt?await ut({status:r,error:n,url:t,route:e}):await q(t,a)}function On(){let t,e,n;x.addEventListener("mousemove",o=>{const c=o.target;clearTimeout(t),t=setTimeout(()=>{s(c,O.hover)},20)});function r(o){o.defaultPrevented||s(o.composedPath()[0],O.tap)}x.addEventListener("mousedown",r),x.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const c of o)c.isIntersecting&&(yt(new URL(c.target.href)),a.unobserve(c.target))},{threshold:0});async function s(o,c){const l=oe(o,x),d=l===e&&c>=n;if(!l||d)return;const{url:h,external:y,download:f}=St(l,$,k.hash);if(y||f)return;const p=Q(l),u=h&&st(b.url)===st(h);if(!(p.reload||u))if(c<=p.preload_data){e=l,n=O.tap;const g=await dt(h,!1);if(!g)return;Ln(g)}else c<=p.preload_code&&(e=l,n=c,yt(h))}function i(){a.disconnect();for(const o of x.querySelectorAll("a")){const{url:c,external:l,download:d}=St(o,$,k.hash);if(l||d)continue;const h=Q(o);h.reload||(h.preload_code===O.viewport&&a.observe(o),h.preload_code===O.eager&&yt(c))}}z.add(i),i()}function V(t,e){if(t instanceof it)return t.body;const n=tt(t),r=_n(t);return k.hooks.handleError({error:t,event:e,status:n,message:r})??{message:r}}function Nn(t){if(typeof t=="function")nt.push(t);else{const{href:e}=new URL(t,location.href);nt.push(n=>n.href===e)}}function jn(){var e;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{let r=!1;if(Ht(),!X){const a=Nt(b,void 0,null,"leave"),s={...a.navigation,cancel:()=>{r=!0,a.reject(new Error("navigation cancelled"))}};le.forEach(i=>i(s))}r?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Ht()}),(e=navigator.connection)!=null&&e.saveData||On(),x.addEventListener("click",async n=>{if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const r=oe(n.composedPath()[0],x);if(!r)return;const{url:a,external:s,target:i,download:o}=St(r,$,k.hash);if(!a)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const c=Q(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||o)return;const[d,h]=(k.hash?a.hash.replace(/^#/,""):a.href).split("#"),y=d===mt(location);if(s||c.reload&&(!y||!h)){_e({url:a,type:"link",event:n})?X=!0:n.preventDefault();return}if(h!==void 0&&y){const[,f]=b.url.href.split("#");if(f===h){if(n.preventDefault(),h===""||h==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const p=r.ownerDocument.getElementById(decodeURIComponent(h));p&&(p.scrollIntoView(),p.focus())}return}if(G=!0,Lt(A),t(a),!c.replace_state)return;G=!1}n.preventDefault(),await new Promise(f=>{requestAnimationFrame(()=>{setTimeout(f,0)}),setTimeout(f,100)}),await M({type:"link",url:a,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??a.href===location.href,event:n})}),x.addEventListener("submit",n=>{if(n.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(n.target),a=n.submitter;if(((a==null?void 0:a.formTarget)||r.target)==="_blank"||((a==null?void 0:a.formMethod)||r.method)!=="get")return;const o=new URL((a==null?void 0:a.hasAttribute("formaction"))&&(a==null?void 0:a.formAction)||r.action);if(ft(o,$,!1))return;const c=n.target,l=Q(c);if(l.reload)return;n.preventDefault(),n.stopPropagation();const d=new FormData(c,a);o.search=new URLSearchParams(d).toString(),M({type:"form",url:o,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??o.href===location.href,event:n})}),addEventListener("popstate",async n=>{var r;if(!At){if((r=n.state)!=null&&r[B]){const a=n.state[B];if(N={},a===A)return;const s=j[a],i=n.state[ne]??{},o=new URL(n.state[tn]??location.href),c=n.state[K],l=b.url?mt(location)===mt(b.url):!1;if(c===L&&(fe||l)){i!==T.state&&(T.state=i),t(o),j[A]=lt(),s&&scrollTo(s.x,s.y),A=a;return}const h=a-A;await M({type:"popstate",url:o,popped:{state:i,scroll:s,delta:h},accept:()=>{A=a,L=c},block:()=>{history.go(-h)},nav_token:N,event:n})}else if(!G){const a=new URL(location.href);t(a),k.hash&&location.reload()}}}),addEventListener("hashchange",()=>{G&&(G=!1,history.replaceState({...history.state,[B]:++A,[K]:L},"",location.href))});for(const n of document.querySelectorAll("link"))An.has(n.rel)&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&C.navigating.set(W.current=null)});function t(n){b.url=T.url=n,C.page.set(jt(T)),C.page.notify()}}async function Dn(t,{status:e=200,error:n,node_ids:r,params:a,route:s,server_route:i,data:o,form:c}){xt=!0;const l=new URL(location.href);let d;({params:a={},route:s={id:null}}=await dt(l,!1)||{}),d=$t.find(({id:f})=>f===s.id);let h,y=!0;try{const f=r.map(async(u,g)=>{const _=o[g];return _!=null&&_.uses&&(_.uses=ve(_.uses)),Pt({loader:k.nodes[u],url:l,params:a,route:s,parent:async()=>{const I={};for(let E=0;E<g;E+=1)Object.assign(I,(await f[E]).data);return I},server_data_node:Ot(_)})}),p=await Promise.all(f);if(d){const u=d.layouts;for(let g=0;g<u.length;g++)u[g]||p.splice(g,0,void 0)}h=ot({url:l,params:a,branch:p,status:e,error:n,form:c,route:d??null})}catch(f){if(f instanceof Rt){await q(new URL(f.location,location.href));return}h=await ut({status:tt(f),error:await V(f,{url:l,params:a,route:s}),url:l,route:s}),t.textContent="",y=!1}h.props.page&&(h.props.page.state={}),pe(h,t,y)}async function ye(t,e){var s;const n=new URL(t);n.pathname=Sn(t.pathname),t.pathname.endsWith("/")&&n.searchParams.append(mn,"1"),n.searchParams.append(gn,e.map(i=>i?"1":"0").join(""));const r=window.fetch,a=await r(n.href,{});if(!a.ok){let i;throw(s=a.headers.get("content-type"))!=null&&s.includes("application/json")?i=await a.json():a.status===404?i="Not Found":a.status===500&&(i="Internal Error"),new it(a.status,i)}return new Promise(async i=>{var h;const o=new Map,c=a.body.getReader();function l(y){return dn(y,{...k.decoders,Promise:f=>new Promise((p,u)=>{o.set(f,{fulfil:p,reject:u})})})}let d="";for(;;){const{done:y,value:f}=await c.read();if(y&&!d)break;for(d+=!f&&d?`
2
+ `:Me.decode(f,{stream:!0});;){const p=d.indexOf(`
3
+ `);if(p===-1)break;const u=JSON.parse(d.slice(0,p));if(d=d.slice(p+1),u.type==="redirect")return i(u);if(u.type==="data")(h=u.nodes)==null||h.forEach(g=>{(g==null?void 0:g.type)==="data"&&(g.uses=ve(g.uses),g.data=l(g.data))}),i(u);else if(u.type==="chunk"){const{id:g,data:_,error:I}=u,E=o.get(g);o.delete(g),I?E.reject(l(I)):E.fulfil(l(_))}}}})}function ve(t){return{dependencies:new Set((t==null?void 0:t.dependencies)??[]),params:new Set((t==null?void 0:t.params)??[]),parent:!!(t!=null&&t.parent),route:!!(t!=null&&t.route),url:!!(t!=null&&t.url),search_params:new Set((t==null?void 0:t.search_params)??[])}}let At=!1;function Fn(t,e=null){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=be(t);if(r&&document.getElementById(r)){const{x:s,y:i}=e??lt();setTimeout(()=>{const o=history.state;At=!0,location.replace(`#${r}`),k.hash&&location.replace(t.hash),history.replaceState(o,"",t.hash),scrollTo(s,i),At=!1})}else{const s=document.body,i=s.getAttribute("tabindex");s.tabIndex=-1,s.focus({preventScroll:!0,focusVisible:!1}),i!==null?s.setAttribute("tabindex",i):s.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const s=[];for(let i=0;i<a.rangeCount;i+=1)s.push(a.getRangeAt(i));setTimeout(()=>{if(a.rangeCount===s.length){for(let i=0;i<a.rangeCount;i+=1){const o=s[i],c=a.getRangeAt(i);if(o.commonAncestorContainer!==c.commonAncestorContainer||o.startContainer!==c.startContainer||o.endContainer!==c.endContainer||o.startOffset!==c.startOffset||o.endOffset!==c.endOffset)return}a.removeAllRanges()}})}}}function Nt(t,e,n,r){var c,l;let a,s;const i=new Promise((d,h)=>{a=d,s=h});return i.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url},to:n&&{params:(e==null?void 0:e.params)??null,route:{id:((l=e==null?void 0:e.route)==null?void 0:l.id)??null},url:n},willUnload:!e,type:r,complete:i},fulfil:a,reject:s}}function jt(t){return{data:t.data,error:t.error,form:t.form,params:t.params,route:t.route,state:t.state,status:t.status,url:t.url}}function Bn(t){const e=new URL(t);return e.hash=decodeURIComponent(t.hash),e}function be(t){let e;if(k.hash){const[,,n]=t.hash.split("#",3);e=n??""}else e=t.hash.slice(1);return decodeURIComponent(e)}export{Hn as a,qn as l,C as s};
hfstudio/static/_app/immutable/entry/app.BCbjTi7X.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.DLHnFKoX.js","../chunks/MT0Fezl8.js","../chunks/IHki7fMi.js","../assets/0.BiGl-Ylq.css","../nodes/1.Da5qfWvI.js","../chunks/C5JSCrvZ.js","../nodes/2.CGWtaa3T.js","../assets/2.BoAMr1TJ.css"])))=>i.map(i=>d[i]);
2
+ import{S as T,i as V,s as B,d,o as h,p as g,C as S,D as O,b as E,h as U,E as w,k as z,F,z as G,G as H,H as y,I as P,J as R,K as L,L as I,q as A,M as p,e as J,f as K,j as W,N as C,a as Q,g as X,t as Y}from"../chunks/MT0Fezl8.js";import"../chunks/IHki7fMi.js";const Z="modulepreload",M=function(o,e){return new URL(o,e).href},N={},D=function(e,n,i){let r=Promise.resolve();if(n&&n.length>0){const t=document.getElementsByTagName("link"),s=document.querySelector("meta[property=csp-nonce]"),a=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));r=Promise.allSettled(n.map(f=>{if(f=M(f,i),f in N)return;N[f]=!0;const l=f.endsWith(".css"),_=l?'[rel="stylesheet"]':"";if(!!i)for(let k=t.length-1;k>=0;k--){const v=t[k];if(v.href===f&&(!l||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${f}"]${_}`))return;const m=document.createElement("link");if(m.rel=l?"stylesheet":Z,l||(m.as="script"),m.crossOrigin="",m.href=f,a&&m.setAttribute("nonce",a),document.head.appendChild(m),l)return new Promise((k,v)=>{m.addEventListener("load",k),m.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${f}`)))})}))}function u(t){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=t,window.dispatchEvent(s),!s.defaultPrevented)throw t}return r.then(t=>{for(const s of t||[])s.status==="rejected"&&u(s.reason);return e().catch(u)})},ae={};function $(o){let e,n,i;var r=o[2][0];function u(t,s){return{props:{data:t[4],form:t[3],params:t[1].params}}}return r&&(e=y(r,u(o)),o[12](e)),{c(){e&&R(e.$$.fragment),n=w()},l(t){e&&I(e.$$.fragment,t),n=w()},m(t,s){e&&L(e,t,s),E(t,n,s),i=!0},p(t,s){if(s&4&&r!==(r=t[2][0])){if(e){S();const a=e;h(a.$$.fragment,1,0,()=>{P(a,1)}),O()}r?(e=y(r,u(t)),t[12](e),R(e.$$.fragment),g(e.$$.fragment,1),L(e,n.parentNode,n)):e=null}else if(r){const a={};s&16&&(a.data=t[4]),s&8&&(a.form=t[3]),s&2&&(a.params=t[1].params),e.$set(a)}},i(t){i||(e&&g(e.$$.fragment,t),i=!0)},o(t){e&&h(e.$$.fragment,t),i=!1},d(t){t&&d(n),o[12](null),e&&P(e,t)}}}function x(o){let e,n,i;var r=o[2][0];function u(t,s){return{props:{data:t[4],params:t[1].params,$$slots:{default:[ee]},$$scope:{ctx:t}}}}return r&&(e=y(r,u(o)),o[11](e)),{c(){e&&R(e.$$.fragment),n=w()},l(t){e&&I(e.$$.fragment,t),n=w()},m(t,s){e&&L(e,t,s),E(t,n,s),i=!0},p(t,s){if(s&4&&r!==(r=t[2][0])){if(e){S();const a=e;h(a.$$.fragment,1,0,()=>{P(a,1)}),O()}r?(e=y(r,u(t)),t[11](e),R(e.$$.fragment),g(e.$$.fragment,1),L(e,n.parentNode,n)):e=null}else if(r){const a={};s&16&&(a.data=t[4]),s&2&&(a.params=t[1].params),s&8239&&(a.$$scope={dirty:s,ctx:t}),e.$set(a)}},i(t){i||(e&&g(e.$$.fragment,t),i=!0)},o(t){e&&h(e.$$.fragment,t),i=!1},d(t){t&&d(n),o[11](null),e&&P(e,t)}}}function ee(o){let e,n,i;var r=o[2][1];function u(t,s){return{props:{data:t[5],form:t[3],params:t[1].params}}}return r&&(e=y(r,u(o)),o[10](e)),{c(){e&&R(e.$$.fragment),n=w()},l(t){e&&I(e.$$.fragment,t),n=w()},m(t,s){e&&L(e,t,s),E(t,n,s),i=!0},p(t,s){if(s&4&&r!==(r=t[2][1])){if(e){S();const a=e;h(a.$$.fragment,1,0,()=>{P(a,1)}),O()}r?(e=y(r,u(t)),t[10](e),R(e.$$.fragment),g(e.$$.fragment,1),L(e,n.parentNode,n)):e=null}else if(r){const a={};s&32&&(a.data=t[5]),s&8&&(a.form=t[3]),s&2&&(a.params=t[1].params),e.$set(a)}},i(t){i||(e&&g(e.$$.fragment,t),i=!0)},o(t){e&&h(e.$$.fragment,t),i=!1},d(t){t&&d(n),o[10](null),e&&P(e,t)}}}function j(o){let e,n=o[7]&&q(o);return{c(){e=W("div"),n&&n.c(),this.h()},l(i){e=J(i,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,style:!0});var r=K(e);n&&n.l(r),r.forEach(d),this.h()},h(){A(e,"id","svelte-announcer"),A(e,"aria-live","assertive"),A(e,"aria-atomic","true"),p(e,"position","absolute"),p(e,"left","0"),p(e,"top","0"),p(e,"clip","rect(0 0 0 0)"),p(e,"clip-path","inset(50%)"),p(e,"overflow","hidden"),p(e,"white-space","nowrap"),p(e,"width","1px"),p(e,"height","1px")},m(i,r){E(i,e,r),n&&n.m(e,null)},p(i,r){i[7]?n?n.p(i,r):(n=q(i),n.c(),n.m(e,null)):n&&(n.d(1),n=null)},d(i){i&&d(e),n&&n.d()}}}function q(o){let e;return{c(){e=Y(o[8])},l(n){e=X(n,o[8])},m(n,i){E(n,e,i)},p(n,i){i&256&&Q(e,n[8])},d(n){n&&d(e)}}}function te(o){let e,n,i,r,u;const t=[x,$],s=[];function a(l,_){return l[2][1]?0:1}e=a(o),n=s[e]=t[e](o);let f=o[6]&&j(o);return{c(){n.c(),i=z(),f&&f.c(),r=w()},l(l){n.l(l),i=U(l),f&&f.l(l),r=w()},m(l,_){s[e].m(l,_),E(l,i,_),f&&f.m(l,_),E(l,r,_),u=!0},p(l,[_]){let b=e;e=a(l),e===b?s[e].p(l,_):(S(),h(s[b],1,1,()=>{s[b]=null}),O(),n=s[e],n?n.p(l,_):(n=s[e]=t[e](l),n.c()),g(n,1),n.m(i.parentNode,i)),l[6]?f?f.p(l,_):(f=j(l),f.c(),f.m(r.parentNode,r)):f&&(f.d(1),f=null)},i(l){u||(g(n),u=!0)},o(l){h(n),u=!1},d(l){l&&(d(i),d(r)),s[e].d(l),f&&f.d(l)}}}function ne(o,e,n){let{stores:i}=e,{page:r}=e,{constructors:u}=e,{components:t=[]}=e,{form:s}=e,{data_0:a=null}=e,{data_1:f=null}=e;F(i.page.notify);let l=!1,_=!1,b=null;G(()=>{const c=i.page.subscribe(()=>{l&&(n(7,_=!0),H().then(()=>{n(8,b=document.title||"untitled page")}))});return n(6,l=!0),c});function m(c){C[c?"unshift":"push"](()=>{t[1]=c,n(0,t)})}function k(c){C[c?"unshift":"push"](()=>{t[0]=c,n(0,t)})}function v(c){C[c?"unshift":"push"](()=>{t[0]=c,n(0,t)})}return o.$$set=c=>{"stores"in c&&n(9,i=c.stores),"page"in c&&n(1,r=c.page),"constructors"in c&&n(2,u=c.constructors),"components"in c&&n(0,t=c.components),"form"in c&&n(3,s=c.form),"data_0"in c&&n(4,a=c.data_0),"data_1"in c&&n(5,f=c.data_1)},o.$$.update=()=>{o.$$.dirty&514&&i.page.set(r)},[t,r,u,s,a,f,l,_,b,i,m,k,v]}class le extends T{constructor(e){super(),V(this,e,ne,te,B,{stores:9,page:1,constructors:2,components:0,form:3,data_0:4,data_1:5})}}const fe=[()=>D(()=>import("../nodes/0.DLHnFKoX.js"),__vite__mapDeps([0,1,2,3]),import.meta.url),()=>D(()=>import("../nodes/1.Da5qfWvI.js"),__vite__mapDeps([4,1,2,5]),import.meta.url),()=>D(()=>import("../nodes/2.CGWtaa3T.js"),__vite__mapDeps([6,1,2,7]),import.meta.url)],ce=[],ue={"/":[2]},se={handleError:({error:o})=>{console.error(o)},reroute:()=>{},transport:{}},ie=Object.fromEntries(Object.entries(se.transport).map(([o,e])=>[o,e.decode])),_e=!1,me=(o,e)=>ie[o](e);export{me as decode,ie as decoders,ue as dictionary,_e as hash,se as hooks,ae as matchers,fe as nodes,le as root,ce as server_loads};
hfstudio/static/_app/immutable/entry/start.BskaFKiu.js ADDED
@@ -0,0 +1 @@
 
 
1
+ import{l as o,a as r}from"../chunks/C5JSCrvZ.js";export{o as load_css,r as start};
hfstudio/static/_app/immutable/nodes/0.DLHnFKoX.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ import{S as Ie,i as He,s as Ee,m as Me,d as _,r as Te,o as Se,p as Ne,q as o,u as Pe,v as Ae,w as je,b as K,c as n,x as se,e as i,f as D,y as H,h as w,j as u,k,z as De,n as Ce,A as be,a as Le,g as pe,t as he,B as Be}from"../chunks/MT0Fezl8.js";import"../chunks/IHki7fMi.js";function ve(c){let t,e,l='<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg>',r,p,s='Hugging Face <span class="bg-gradient-to-r from-purple-500 via-pink-500 via-green-500 to-blue-500 bg-clip-text text-transparent font-bold">Pro</span>',a,v,B=`Sign in to with your Hugging Face <a href="https://huggingface.co/pro" target="_blank" class="text-amber-600 hover:text-amber-700 underline font-medium">Pro account</a> to get started with $2 of free API credits per month. You can add a billing method for
2
+ additional pay-as-you-go usage ‡`,f,y;return{c(){t=u("div"),e=u("button"),e.innerHTML=l,r=k(),p=u("p"),p.innerHTML=s,a=k(),v=u("p"),v.innerHTML=B,this.h()},l(N){t=i(N,"DIV",{class:!0});var L=D(t);e=i(L,"BUTTON",{class:!0,"aria-label":!0,"data-svelte-h":!0}),H(e)!=="svelte-1ywh7al"&&(e.innerHTML=l),r=w(L),p=i(L,"P",{class:!0,"data-svelte-h":!0}),H(p)!=="svelte-1mnmz00"&&(p.innerHTML=s),a=w(L),v=i(L,"P",{class:!0,"data-svelte-h":!0}),H(v)!=="svelte-p23n8l"&&(v.innerHTML=B),L.forEach(_),this.h()},h(){o(e,"class","absolute top-2 right-2 text-gray-400 hover:text-gray-600 transition-colors"),o(e,"aria-label","Dismiss"),o(p,"class","text-sm font-medium text-gray-700 mb-1 pr-4"),o(v,"class","text-sm text-gray-600 pr-4"),o(t,"class","mb-3 px-3 py-2 bg-gradient-to-r from-amber-50 to-orange-50 rounded-lg border border-amber-200 relative")},m(N,L){K(N,t,L),n(t,e),n(t,r),n(t,p),n(t,a),n(t,v),f||(y=se(e,"click",c[15]),f=!0)},p:Ce,d(N){N&&_(t),f=!1,y()}}}function xe(c){let t;return{c(){t=u("div"),this.h()},l(e){t=i(e,"DIV",{class:!0}),D(t).forEach(_),this.h()},h(){o(t,"class","absolute inset-0 -left-full animate-sweep bg-gradient-to-r from-transparent via-orange-400/40 to-transparent svelte-1s3xy1i")},m(e,l){K(e,t,l)},d(e){e&&_(t)}}}function Oe(c){let t,e,l,r,p="Sign In";return{c(){t=u("img"),l=k(),r=u("span"),r.textContent=p,this.h()},l(s){t=i(s,"IMG",{src:!0,alt:!0,class:!0}),l=w(s),r=i(s,"SPAN",{class:!0,"data-svelte-h":!0}),H(r)!=="svelte-b2ltkx"&&(r.textContent=p),this.h()},h(){Be(t.src,e="/assets/hf-logo.png")||o(t,"src",e),o(t,"alt","HF Logo"),o(t,"class","w-5 h-5 relative z-10"),o(r,"class","relative z-10")},m(s,a){K(s,t,a),K(s,l,a),K(s,r,a)},p:Ce,d(s){s&&(_(t),_(l),_(r))}}}function Ue(c){let t,e,l;return{c(){t=u("span"),e=he("Logout, "),l=he(c[2]),this.h()},l(r){t=i(r,"SPAN",{class:!0});var p=D(t);e=pe(p,"Logout, "),l=pe(p,c[2]),p.forEach(_),this.h()},h(){o(t,"class","relative z-10")},m(r,p){K(r,t,p),n(t,e),n(t,l)},p(r,p){p&4&&Le(l,r[2])},d(r){r&&_(t)}}}function we(c){let t,e,l,r="Sign In with HuggingFace Token",p,s,a,v="<strong>Manual Token Entry:</strong> Please enter your HuggingFace token.",B,f,y=`1. Go to <a href="https://huggingface.co/settings/tokens" target="_blank" class="underline text-blue-600">HuggingFace Settings</a><br/>
3
+ 2. Create a new token with &quot;Inference API&quot; permissions<br/>
4
+ 3. Copy and paste it below`,N,L,C,z,R="HuggingFace Token",Q,x,X,Z,E,q,ee="Cancel",d,b,I="Sign In",T,V,g=c[6]&&ke(),m=c[5]&&ye(c);return{c(){t=u("div"),e=u("div"),l=u("h2"),l.textContent=r,p=k(),s=u("div"),a=u("p"),a.innerHTML=v,B=k(),f=u("p"),f.innerHTML=y,N=k(),g&&g.c(),L=k(),C=u("div"),z=u("label"),z.textContent=R,Q=k(),x=u("input"),X=k(),m&&m.c(),Z=k(),E=u("div"),q=u("button"),q.textContent=ee,d=k(),b=u("button"),b.textContent=I,this.h()},l(O){t=i(O,"DIV",{class:!0});var J=D(t);e=i(J,"DIV",{class:!0});var S=D(e);l=i(S,"H2",{class:!0,"data-svelte-h":!0}),H(l)!=="svelte-1t0ehet"&&(l.textContent=r),p=w(S),s=i(S,"DIV",{class:!0});var Y=D(s);a=i(Y,"P",{class:!0,"data-svelte-h":!0}),H(a)!=="svelte-344vn4"&&(a.innerHTML=v),B=w(Y),f=i(Y,"P",{class:!0,"data-svelte-h":!0}),H(f)!=="svelte-orsfwv"&&(f.innerHTML=y),N=w(Y),g&&g.l(Y),Y.forEach(_),L=w(S),C=i(S,"DIV",{class:!0});var M=D(C);z=i(M,"LABEL",{for:!0,class:!0,"data-svelte-h":!0}),H(z)!=="svelte-vtbmxo"&&(z.textContent=R),Q=w(M),x=i(M,"INPUT",{id:!0,type:!0,placeholder:!0,class:!0}),X=w(M),m&&m.l(M),M.forEach(_),Z=w(S),E=i(S,"DIV",{class:!0});var $=D(E);q=i($,"BUTTON",{class:!0,"data-svelte-h":!0}),H(q)!=="svelte-csk0rj"&&(q.textContent=ee),d=w($),b=i($,"BUTTON",{class:!0,"data-svelte-h":!0}),H(b)!=="svelte-1nxas5u"&&(b.textContent=I),$.forEach(_),S.forEach(_),J.forEach(_),this.h()},h(){o(l,"class","text-xl font-semibold mb-4"),o(a,"class","text-blue-800 mb-2"),o(f,"class","text-blue-700"),o(s,"class","mb-4 p-3 bg-blue-50 rounded-md text-sm"),o(z,"for","token"),o(z,"class","block text-sm font-medium text-gray-700 mb-2"),o(x,"id","token"),o(x,"type","password"),o(x,"placeholder","hf_..."),o(x,"class","w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-orange-500 focus:border-transparent"),o(C,"class","mb-4"),o(q,"class","px-4 py-2 text-gray-600 hover:text-gray-800 transition-colors"),o(b,"class","px-4 py-2 bg-orange-500 text-white rounded-md hover:bg-orange-600 transition-colors"),o(E,"class","flex justify-end gap-3"),o(e,"class","bg-white rounded-lg p-6 max-w-md w-full mx-4 shadow-xl"),o(t,"class","fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50")},m(O,J){K(O,t,J),n(t,e),n(e,l),n(e,p),n(e,s),n(s,a),n(s,B),n(s,f),n(s,N),g&&g.m(s,null),n(e,L),n(e,C),n(C,z),n(C,Q),n(C,x),be(x,c[4]),n(C,X),m&&m.m(C,null),n(e,Z),n(e,E),n(E,q),n(E,d),n(E,b),T||(V=[se(x,"input",c[16]),se(x,"keydown",c[17]),se(q,"click",c[10]),se(b,"click",c[11])],T=!0)},p(O,J){O[6]?g||(g=ke(),g.c(),g.m(s,null)):g&&(g.d(1),g=null),J&16&&x.value!==O[4]&&be(x,O[4]),O[5]?m?m.p(O,J):(m=ye(O),m.c(),m.m(C,null)):m&&(m.d(1),m=null)},d(O){O&&_(t),g&&g.d(),m&&m.d(),T=!1,Te(V)}}}function ke(c){let t,e=`<strong>Tip:</strong> You can also run <code>huggingface-cli login</code> in your terminal
5
+ to automatically use your local token.`;return{c(){t=u("p"),t.innerHTML=e,this.h()},l(l){t=i(l,"P",{class:!0,"data-svelte-h":!0}),H(t)!=="svelte-xrut8w"&&(t.innerHTML=e),this.h()},h(){o(t,"class","text-blue-600 mt-2")},m(l,r){K(l,t,r)},d(l){l&&_(t)}}}function ye(c){let t,e;return{c(){t=u("p"),e=he(c[5]),this.h()},l(l){t=i(l,"P",{class:!0});var r=D(t);e=pe(r,c[5]),r.forEach(_),this.h()},h(){o(t,"class","text-red-600 text-sm mt-1")},m(l,r){K(l,t,r),n(t,e)},p(l,r){r&32&&Le(e,l[5])},d(l){l&&_(t)}}}function Ve(c){let t,e,l,r='<div class="flex items-center gap-3"><img src="/assets/hf-studio-logo.png" alt="HF Logo" class="w-8 h-8"/> <h1 class="text-xl font-semibold">HFStudio<sup class="text-xs text-gray-500 ml-1">BETA</sup></h1></div>',p,s,a,v="Tasks",B,f,y,N="πŸŽ™οΈ",L,C,z="Text to Speech",R,Q,x,X="<span>🎡</span> <span>Voice Cloning</span>",Z,E,q="<span>🎧</span> <span>Speech to Text</span>",ee,d,b="<span>🎼</span> <span>Sound Effects</span>",I,T,V="<span>🎸</span> <span>Music Generation</span>",g,m,O="<span>πŸ”Š</span> <span>Audio Enhancement</span>",J,S,Y,M,$,ue,ne,ce,te,fe,me,P=!c[1]&&c[7]&&ve(c),U=c[8]&&xe();function ge(h,j){return h[1]?Ue:Oe}let oe=ge(c),W=oe(c);const de=c[13].default,G=Me(de,c,c[12],null);let A=c[3]&&we(c);return{c(){t=u("div"),e=u("aside"),l=u("div"),l.innerHTML=r,p=k(),s=u("nav"),a=u("div"),a.textContent=v,B=k(),f=u("button"),y=u("span"),y.textContent=N,L=k(),C=u("span"),C.textContent=z,Q=k(),x=u("button"),x.innerHTML=X,Z=k(),E=u("button"),E.innerHTML=q,ee=k(),d=u("button"),d.innerHTML=b,I=k(),T=u("button"),T.innerHTML=V,g=k(),m=u("button"),m.innerHTML=O,J=k(),S=u("div"),P&&P.c(),Y=k(),M=u("button"),U&&U.c(),$=k(),W.c(),ue=k(),ne=u("main"),G&&G.c(),ce=k(),A&&A.c(),this.h()},l(h){t=i(h,"DIV",{class:!0});var j=D(t);e=i(j,"ASIDE",{class:!0});var le=D(e);l=i(le,"DIV",{class:!0,"data-svelte-h":!0}),H(l)!=="svelte-60or62"&&(l.innerHTML=r),p=w(le),s=i(le,"NAV",{class:!0});var F=D(s);a=i(F,"DIV",{class:!0,"data-svelte-h":!0}),H(a)!=="svelte-pii1fa"&&(a.textContent=v),B=w(F),f=i(F,"BUTTON",{class:!0});var ae=D(f);y=i(ae,"SPAN",{"data-svelte-h":!0}),H(y)!=="svelte-1yx42xi"&&(y.textContent=N),L=w(ae),C=i(ae,"SPAN",{"data-svelte-h":!0}),H(C)!=="svelte-2j89jk"&&(C.textContent=z),ae.forEach(_),Q=w(F),x=i(F,"BUTTON",{class:!0,"data-svelte-h":!0}),H(x)!=="svelte-10dl8nf"&&(x.innerHTML=X),Z=w(F),E=i(F,"BUTTON",{class:!0,"data-svelte-h":!0}),H(E)!=="svelte-wf0x5d"&&(E.innerHTML=q),ee=w(F),d=i(F,"BUTTON",{class:!0,"data-svelte-h":!0}),H(d)!=="svelte-x7bha3"&&(d.innerHTML=b),I=w(F),T=i(F,"BUTTON",{class:!0,"data-svelte-h":!0}),H(T)!=="svelte-1tyblmt"&&(T.innerHTML=V),g=w(F),m=i(F,"BUTTON",{class:!0,"data-svelte-h":!0}),H(m)!=="svelte-1emrjb3"&&(m.innerHTML=O),F.forEach(_),J=w(le),S=i(le,"DIV",{class:!0});var re=D(S);P&&P.l(re),Y=w(re),M=i(re,"BUTTON",{class:!0});var ie=D(M);U&&U.l(ie),$=w(ie),W.l(ie),ie.forEach(_),re.forEach(_),le.forEach(_),ue=w(j),ne=i(j,"MAIN",{class:!0});var _e=D(ne);G&&G.l(_e),_e.forEach(_),ce=w(j),A&&A.l(j),j.forEach(_),this.h()},h(){o(l,"class","p-4 border-b border-gray-200"),o(a,"class","mt-2 mb-1 px-2 text-xs font-medium text-gray-500 uppercase"),o(f,"class",R="w-full flex items-center gap-2 px-2 py-1.5 rounded-md hover:bg-gray-100 transition-colors text-left "+(c[0]==="tts"?"bg-gray-100":"")),o(x,"class","w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left opacity-40 cursor-not-allowed"),x.disabled=!0,o(E,"class","w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left opacity-40 cursor-not-allowed"),E.disabled=!0,o(d,"class","w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left opacity-40 cursor-not-allowed"),d.disabled=!0,o(T,"class","w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left opacity-40 cursor-not-allowed"),T.disabled=!0,o(m,"class","w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left opacity-40 cursor-not-allowed"),m.disabled=!0,o(s,"class","p-2 text-sm flex-1"),M.disabled=!1,o(M,"class","w-full px-6 py-3 bg-black text-white rounded-lg font-medium hover:bg-gray-800 transition-colors shadow-sm flex items-center justify-center gap-2 text-sm disabled:opacity-50 disabled:cursor-not-allowed relative overflow-hidden"),o(S,"class","p-2"),o(e,"class","w-56 border-r border-gray-200 bg-white flex-shrink-0 flex flex-col h-full "),o(ne,"class","flex-1 overflow-auto"),o(t,"class","flex h-screen bg-white")},m(h,j){K(h,t,j),n(t,e),n(e,l),n(e,p),n(e,s),n(s,a),n(s,B),n(s,f),n(f,y),n(f,L),n(f,C),n(s,Q),n(s,x),n(s,Z),n(s,E),n(s,ee),n(s,d),n(s,I),n(s,T),n(s,g),n(s,m),n(e,J),n(e,S),P&&P.m(S,null),n(S,Y),n(S,M),U&&U.m(M,null),n(M,$),W.m(M,null),n(t,ue),n(t,ne),G&&G.m(ne,null),n(t,ce),A&&A.m(t,null),te=!0,fe||(me=[se(f,"click",c[14]),se(M,"click",c[9])],fe=!0)},p(h,[j]){(!te||j&1&&R!==(R="w-full flex items-center gap-2 px-2 py-1.5 rounded-md hover:bg-gray-100 transition-colors text-left "+(h[0]==="tts"?"bg-gray-100":"")))&&o(f,"class",R),!h[1]&&h[7]?P?P.p(h,j):(P=ve(h),P.c(),P.m(S,Y)):P&&(P.d(1),P=null),h[8]?U||(U=xe(),U.c(),U.m(M,$)):U&&(U.d(1),U=null),oe===(oe=ge(h))&&W?W.p(h,j):(W.d(1),W=oe(h),W&&(W.c(),W.m(M,null))),G&&G.p&&(!te||j&4096)&&Pe(G,de,h,h[12],te?je(de,h[12],j,null):Ae(h[12]),null),h[3]?A?A.p(h,j):(A=we(h),A.c(),A.m(t,null)):A&&(A.d(1),A=null)},i(h){te||(Ne(G,h),te=!0)},o(h){Se(G,h),te=!1},d(h){h&&_(t),P&&P.d(),U&&U.d(),W.d(),G&&G.d(h),A&&A.d(),fe=!1,Te(me)}}}function Fe(c,t,e){let{$$slots:l={},$$scope:r}=t,p="tts",s=typeof window<"u"&&window.__INITIAL_USER__?window.__INITIAL_USER__:{authenticated:!1},a=(s==null?void 0:s.authenticated)||!1,v=s!=null&&s.authenticated&&(s!=null&&s.user_info)?(s.user_info.name||s.user_info.fullname||s.user_info.login||s.user_info.username||"User").split(" ")[0]:"",B=!1,f="",y="",N=!1,L=!1,C=!1;De(()=>{window.addEventListener("show-login-prompt",()=>{a||(e(7,L=!0),e(8,C=!0),setTimeout(()=>{e(8,C=!1)},1600))}),a||z(),s!=null&&s.authenticated||R(),document.addEventListener("visibilitychange",()=>{document.hidden||R()}),window.addEventListener("storage",R);const d=setInterval(R,1e3);return()=>{window.removeEventListener("storage",R),clearInterval(d)}});async function z(){if(!a)try{const b=await(await fetch("/api/auth/local-token")).json();if(b.available)if(e(6,N=!0),b.token&&!a)try{const I=await fetch("/api/auth/manual-token",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({token:b.token})});if(I.ok){const T=await I.json();e(1,a=!0);const V=T.user_info,g=V.name||V.fullname||V.login||V.username||"User";e(2,v=g.split(" ")[0])}}catch(I){console.error("Local token session creation failed:",I)}else b.user_info&&b.user_info.name!=="Local User"&&!a?(e(1,a=!0),e(2,v=b.user_info.name.split(" ")[0])):a||(e(1,a=!0),e(2,v="Local User"));else e(6,N=!1)}catch{e(6,N=!1)}}async function R(){if(!(s!=null&&s.authenticated&&a))try{const d=await fetch("/api/auth/user",{credentials:"include"});if(d.ok){const b=await d.json();if(b.authenticated){e(1,a=!0);const I=b.user_info,T=I.name||I.fullname||I.login||I.username||"User";e(2,v=T.split(" ")[0])}else e(1,a=!1),e(2,v="")}else e(1,a=!1),e(2,v="")}catch{e(1,a=!1),e(2,v="")}}async function Q(){if(a)localStorage.removeItem("hf_access_token"),localStorage.removeItem("hf_user_info"),localStorage.removeItem("hf_cached_token"),sessionStorage.removeItem("oauth_state"),e(1,a=!1),e(2,v="");else if(window.location.hostname.includes("hf.space")||window.location.hostname.includes("huggingface.co"))try{const b=await(await fetch("/api/auth/oauth-config")).json(),I=b.scopes||"read-repos write-repos manage-repos inference-api",T=`https://huggingface.co/oauth/authorize?client_id=${b.client_id}&redirect_uri=${encodeURIComponent(window.location.origin+"/auth/callback")}&scope=${encodeURIComponent(I)}&response_type=code&state=${Date.now()}`;window.location.href=T}catch{e(3,B=!0),e(4,f=""),e(5,y="")}else e(3,B=!0),e(4,f=""),e(5,y="")}function x(){e(3,B=!1),e(4,f=""),e(5,y="")}async function X(){if(!f.trim()){e(5,y="Please enter a token");return}if(!f.startsWith("hf_")){e(5,y='Token should start with "hf_"');return}try{const d=await fetch("https://huggingface.co/api/whoami-v2",{headers:{Authorization:`Bearer ${f.trim()}`}});if(d.ok){const b=await d.json(),I=f.trim();try{const T=await fetch("/api/auth/manual-token",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({token:I})});if(T.ok){const V=await T.json();e(1,a=!0);const g=V.user_info,m=g.name||g.fullname||g.login||g.username||"User";e(2,v=m.split(" ")[0]),x()}else{const V=await T.json();e(5,y=V.detail||"Token validation failed")}}catch{e(5,y="Failed to validate token. Please try again.")}}else e(5,y=`Invalid token (${d.status}). Please check your token and try again.`)}catch{e(5,y="Error validating token. Please try again.")}}const Z=()=>e(0,p="tts"),E=()=>e(7,L=!1);function q(){f=this.value,e(4,f)}const ee=d=>d.key==="Enter"&&X();return c.$$set=d=>{"$$scope"in d&&e(12,r=d.$$scope)},[p,a,v,B,f,y,N,L,C,Q,x,X,r,l,Z,E,q,ee]}class qe extends Ie{constructor(t){super(),He(this,t,Fe,Ve,Ee,{})}}export{qe as component};
hfstudio/static/_app/immutable/nodes/1.Da5qfWvI.js ADDED
@@ -0,0 +1 @@
 
 
1
+ import{S,i as x,s as j,n as _,d as l,a as d,b as m,c as f,e as g,f as h,g as v,h as k,j as $,t as E,k as q,l as y}from"../chunks/MT0Fezl8.js";import"../chunks/IHki7fMi.js";import{s as C}from"../chunks/C5JSCrvZ.js";const H=()=>{const s=C;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},P={subscribe(s){return H().page.subscribe(s)}};function w(s){var b;let t,r=s[0].status+"",n,o,i,c=((b=s[0].error)==null?void 0:b.message)+"",u;return{c(){t=$("h1"),n=E(r),o=q(),i=$("p"),u=E(c)},l(e){t=g(e,"H1",{});var a=h(t);n=v(a,r),a.forEach(l),o=k(e),i=g(e,"P",{});var p=h(i);u=v(p,c),p.forEach(l)},m(e,a){m(e,t,a),f(t,n),m(e,o,a),m(e,i,a),f(i,u)},p(e,[a]){var p;a&1&&r!==(r=e[0].status+"")&&d(n,r),a&1&&c!==(c=((p=e[0].error)==null?void 0:p.message)+"")&&d(u,c)},i:_,o:_,d(e){e&&(l(t),l(o),l(i))}}}function z(s,t,r){let n;return y(s,P,o=>r(0,n=o)),[n]}let F=class extends S{constructor(t){super(),x(this,t,z,w,j,{})}};export{F as component};
hfstudio/static/_app/immutable/nodes/2.CGWtaa3T.js ADDED
The diff for this file is too large to render. See raw diff
 
hfstudio/static/index.html CHANGED
@@ -6,25 +6,25 @@
6
  <meta name="viewport" content="width=device-width, initial-scale=1" />
7
  <title>HFStudio - Text to Speech</title>
8
 
9
- <link rel="modulepreload" href="/_app/immutable/entry/start.CTaRfo20.js">
10
- <link rel="modulepreload" href="/_app/immutable/chunks/BlyK7gkx.js">
11
  <link rel="modulepreload" href="/_app/immutable/chunks/MT0Fezl8.js">
12
- <link rel="modulepreload" href="/_app/immutable/entry/app.D5Ifjv_I.js">
13
  <link rel="modulepreload" href="/_app/immutable/chunks/IHki7fMi.js">
14
  </head>
15
  <body data-sveltekit-preload-data="hover">
16
  <div style="display: contents">
17
  <script>
18
  {
19
- __sveltekit_10m0q4a = {
20
  base: ""
21
  };
22
 
23
  const element = document.currentScript.parentElement;
24
 
25
  Promise.all([
26
- import("/_app/immutable/entry/start.CTaRfo20.js"),
27
- import("/_app/immutable/entry/app.D5Ifjv_I.js")
28
  ]).then(([kit, app]) => {
29
  kit.start(app, element);
30
  });
 
6
  <meta name="viewport" content="width=device-width, initial-scale=1" />
7
  <title>HFStudio - Text to Speech</title>
8
 
9
+ <link rel="modulepreload" href="/_app/immutable/entry/start.BskaFKiu.js">
10
+ <link rel="modulepreload" href="/_app/immutable/chunks/C5JSCrvZ.js">
11
  <link rel="modulepreload" href="/_app/immutable/chunks/MT0Fezl8.js">
12
+ <link rel="modulepreload" href="/_app/immutable/entry/app.BCbjTi7X.js">
13
  <link rel="modulepreload" href="/_app/immutable/chunks/IHki7fMi.js">
14
  </head>
15
  <body data-sveltekit-preload-data="hover">
16
  <div style="display: contents">
17
  <script>
18
  {
19
+ __sveltekit_1tpt24 = {
20
  base: ""
21
  };
22
 
23
  const element = document.currentScript.parentElement;
24
 
25
  Promise.all([
26
+ import("/_app/immutable/entry/start.BskaFKiu.js"),
27
+ import("/_app/immutable/entry/app.BCbjTi7X.js")
28
  ]).then(([kit, app]) => {
29
  kit.start(app, element);
30
  });