From c959b676be29e93f8dbc3bd6056ceba812a9eb72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Wed, 17 Sep 2025 15:32:42 +0200 Subject: [PATCH 01/11] CUDA: fix FA occupancy, optimize tile kernel (#15982) --- ggml/src/ggml-cuda/common.cuh | 16 + ggml/src/ggml-cuda/fattn-common.cuh | 13 +- ggml/src/ggml-cuda/fattn-tile.cu | 551 ++++++++++++++++------------ ggml/src/ggml-cuda/vendors/hip.h | 34 +- 4 files changed, 361 insertions(+), 253 deletions(-) diff --git a/ggml/src/ggml-cuda/common.cuh b/ggml/src/ggml-cuda/common.cuh index b0feea3623..045c6d3006 100644 --- a/ggml/src/ggml-cuda/common.cuh +++ b/ggml/src/ggml-cuda/common.cuh @@ -75,6 +75,8 @@ #define GGML_CUDA_CC_IS_RDNA4(cc) (cc >= GGML_CUDA_CC_RDNA4) #define GGML_CUDA_CC_IS_GCN(cc) (cc > GGML_CUDA_CC_OFFSET_AMD && cc < GGML_CUDA_CC_CDNA1) #define GGML_CUDA_CC_IS_CDNA(cc) (cc >= GGML_CUDA_CC_CDNA1 && cc < GGML_CUDA_CC_RDNA1) +#define GGML_CUDA_CC_IS_CDNA1(cc) (cc >= GGML_CUDA_CC_CDNA1 && cc < GGML_CUDA_CC_CDNA2) +#define GGML_CUDA_CC_IS_CDNA2(cc) (cc >= GGML_CUDA_CC_CDNA2 && cc < GGML_CUDA_CC_CDNA3) #define GGML_CUDA_CC_IS_CDNA3(cc) (cc >= GGML_CUDA_CC_CDNA3 && cc < GGML_CUDA_CC_RDNA1) // Moore Threads @@ -325,6 +327,20 @@ static constexpr __device__ int ggml_cuda_get_physical_warp_size() { #endif // defined(GGML_USE_HIP) && (defined(__GFX9__) || defined(__GFX8__)) } +// Maximum number of bytes that can be copied in a single instruction. +static constexpr __device__ int ggml_cuda_get_max_cpy_bytes() { +#ifdef GGML_USE_HIP + return 16; +#else +#if __CUDA_ARCH__ >= GGML_CUDA_CC_VOLTA + return 16; +#else + return 8; +#endif // __CUDA_ARCH__ >= GGML_CUDA_CC_VOLTA +#endif // GGML_USE_HIP +} + + [[noreturn]] static __device__ void no_device_code( const char * file_name, const int line, const char * function_name, const int arch, const char * arch_list) { diff --git a/ggml/src/ggml-cuda/fattn-common.cuh b/ggml/src/ggml-cuda/fattn-common.cuh index b69f57d659..142a3a88d1 100644 --- a/ggml/src/ggml-cuda/fattn-common.cuh +++ b/ggml/src/ggml-cuda/fattn-common.cuh @@ -647,9 +647,7 @@ static __global__ void flash_attn_stream_k_fixup( } template // D == head size -#if !defined(GGML_USE_HIP) __launch_bounds__(D, 1) -#endif // !(defined(GGML_USE_HIP) static __global__ void flash_attn_combine_results( const float * __restrict__ VKQ_parts, const float2 * __restrict__ VKQ_meta, @@ -692,10 +690,7 @@ static __global__ void flash_attn_combine_results( float VKQ_numerator = 0.0f; float VKQ_denominator = 0.0f; for (int l = 0; l < parallel_blocks; ++l) { - const float diff = meta[l].x - kqmax; - float KQ_max_scale = expf(diff); - const uint32_t ftz_mask = 0xFFFFFFFF * (diff > SOFTMAX_FTZ_THRESHOLD); - *((uint32_t *) &KQ_max_scale) &= ftz_mask; + const float KQ_max_scale = expf(meta[l].x - kqmax); VKQ_numerator += KQ_max_scale * VKQ_parts[l*D + tid]; VKQ_denominator += KQ_max_scale * meta[l].y; @@ -836,11 +831,10 @@ void launch_fattn( CUDA_CHECK(cudaGetLastError()); } - int parallel_blocks = 1; - const dim3 block_dim(warp_size, nwarps, 1); int max_blocks_per_sm = 1; // Max. number of active blocks limited by occupancy. CUDA_CHECK(cudaOccupancyMaxActiveBlocksPerMultiprocessor(&max_blocks_per_sm, fattn_kernel, block_dim.x * block_dim.y * block_dim.z, nbytes_shared)); + int parallel_blocks = max_blocks_per_sm; dim3 blocks_num; if (stream_k) { @@ -862,9 +856,6 @@ void launch_fattn( GGML_ASSERT(K->ne[1] % KQ_row_granularity == 0); const int ntiles_KQ = K->ne[1] / KQ_row_granularity; // Max. number of parallel blocks limited by tensor size. - // parallel_blocks should be at least large enough to achieve max. occupancy for a single wave: - parallel_blocks = std::max((nsm * max_blocks_per_sm) / ntiles_total, 1); - // parallel_blocks must not be larger than what the tensor size allows: parallel_blocks = std::min(parallel_blocks, ntiles_KQ); diff --git a/ggml/src/ggml-cuda/fattn-tile.cu b/ggml/src/ggml-cuda/fattn-tile.cu index c6a399ce5d..a2d9951ea5 100644 --- a/ggml/src/ggml-cuda/fattn-tile.cu +++ b/ggml/src/ggml-cuda/fattn-tile.cu @@ -2,20 +2,30 @@ #include "fattn-common.cuh" #include "fattn-tile.cuh" -#define FATTN_TILE_NTHREADS 256 +// kq_stride == number of KQ rows to process per iteration +// kq_nbatch == number of K columns to load in parallel for KQ calculation static int fattn_tile_get_kq_stride_host(const int D, const int ncols, const int cc, const int warp_size) { if (GGML_CUDA_CC_IS_AMD(cc)) { + if (GGML_CUDA_CC_IS_RDNA(cc)) { + switch (D) { + case 64: + return 128; + case 128: + case 256: + return ncols <= 16 ? 128 : 64; + default: + GGML_ABORT("fatal error"); + return -1; + } + } switch (D) { case 64: - return 64; + return ncols == 32 ? 128 : 64; case 128: + return ncols == 32 ? 64 : 32; case 256: - if (GGML_CUDA_CC_IS_GCN(cc) || GGML_CUDA_CC_IS_CDNA(cc)) { - return ncols <= 16 ? 64 : 32; - } else { - return 64; - } + return 32; default: GGML_ABORT("fatal error"); return -1; @@ -49,24 +59,28 @@ static int fattn_tile_get_kq_stride_host(const int D, const int ncols, const int static constexpr __device__ int fattn_tile_get_kq_stride_device(int D, int ncols, int warp_size) { #ifdef GGML_USE_HIP +#ifdef RDNA switch (D) { case 64: - return 64; + return 128; case 128: -#if defined(GCN) || defined(CDNA) - return ncols <= 16 ? 64 : 32; -#else - return 64; -#endif // defined(GCN) || defined(CDNA) case 256: -#if defined(GCN) || defined(CDNA) - return ncols <= 16 ? 64 : 32; -#else - return 64; -#endif // defined(GCN) || defined(CDNA) + return ncols <= 16 ? 128 : 64; default: return -1; } +#else + switch (D) { + case 64: + return ncols == 32 ? 128 : 64; + case 128: + return ncols == 32 ? 64 : 32; + case 256: + return 32; + default: + return -1; + } +#endif // RDNA #else #ifdef FAST_FP16_AVAILABLE switch (D) { @@ -100,17 +114,8 @@ static constexpr __device__ int fattn_tile_get_kq_nbatch_device(int D, int ncols case 64: return 64; case 128: -#if defined(GCN) || defined(CDNA) - return ncols <= 16 ? 64 : 128; -#else - return 64; -#endif // defined(GCN) || defined(CDNA) case 256: -#if defined(GCN) || defined(CDNA) - return ncols <= 16 ? 64 : 128; -#else - return ncols <= 16 ? 64 : 256; -#endif // defined(GCN) || defined(CDNA) + return 128; default: return -1; } @@ -120,9 +125,8 @@ static constexpr __device__ int fattn_tile_get_kq_nbatch_device(int D, int ncols case 64: return 64; case 128: - return ncols <= 16 ? 128 : 64; case 256: - return ncols <= 16 ? 64 : 128; + return 128; default: return -1; } @@ -142,12 +146,27 @@ static constexpr __device__ int fattn_tile_get_kq_nbatch_device(int D, int ncols GGML_UNUSED_VARS(ncols, warp_size); } -template // D == head size -#ifdef GGML_USE_HIP -__launch_bounds__(FATTN_TILE_NTHREADS, 1) +static int fattn_tile_get_nthreads_host(const int cc, const int ncols) { + return 256; + GGML_UNUSED_VARS(cc, ncols); +} + +static constexpr __device__ int fattn_tile_get_nthreads_device(int ncols) { + return 256; + GGML_UNUSED(ncols); +} + +static constexpr __device__ int fattn_tile_get_occupancy_device(int ncols) { +#ifdef RDNA + return 3; #else -__launch_bounds__(FATTN_TILE_NTHREADS, 2) -#endif // GGML_USE_HIP + return ncols <= 16 ? 3 : 2; +#endif // RDNA + GGML_UNUSED(ncols); +} + +template // D == head size +__launch_bounds__(fattn_tile_get_nthreads_device(ncols), fattn_tile_get_occupancy_device(ncols)) static __global__ void flash_attn_tile( const char * __restrict__ Q, const char * __restrict__ K, @@ -193,7 +212,7 @@ static __global__ void flash_attn_tile( } constexpr int warp_size = 32; - constexpr int nwarps = FATTN_TILE_NTHREADS / warp_size; + constexpr int nwarps = fattn_tile_get_nthreads_device(ncols) / warp_size; constexpr int kq_stride = fattn_tile_get_kq_stride_device(D, ncols, warp_size); static_assert(kq_stride % warp_size == 0, "kq_stride not divisable by warp_size."); constexpr int kq_nbatch = fattn_tile_get_kq_nbatch_device(D, ncols, warp_size); @@ -206,90 +225,126 @@ static __global__ void flash_attn_tile( const int sequence = blockIdx.z / ne02; const int head = blockIdx.z - sequence*ne02; const int gqa_ratio = ne02 / ne12; // With grouped query attention there are > 1 Q matrices per K, V matrix. - const float2 * Q_f2 = (const float2 *) (Q + nb03* sequence + nb02* head + nb01*ic0); - const half2 * K_h2 = (const half2 *) (K + nb13* sequence + nb12*(head / gqa_ratio)); - const half2 * V_h2 = (const half2 *) (V + nb13* sequence + nb12*(head / gqa_ratio)); // K and V have same shape - const half * maskh = (const half *) (mask + nb33*(sequence % ne33) + nb31*ic0); - const float * sinksf = (const float *) (sinks); + const float * Q_f = (const float *) (Q + nb03* sequence + nb02* head + nb01*ic0); + const half2 * K_h2 = (const half2 *) (K + nb13* sequence + nb12*(head / gqa_ratio)); + const half2 * V_h2 = (const half2 *) (V + nb13* sequence + nb12*(head / gqa_ratio)); // K and V have same shape + const half * maskh = (const half *) (mask + nb33*(sequence % ne33) + nb31*ic0); + const float * sinksf = (const float *) (sinks); const int stride_KV2 = nb11 / sizeof(half2); const float slope = get_alibi_slope(max_bias, head, n_head_log2, m0, m1); -#if defined(GGML_USE_HIP) - constexpr int cpy_nb = 16; -#else - constexpr int cpy_nb = 8; -#endif // defined(GGML_USE_HIP) && defined(GCN) + constexpr int cpy_nb = ggml_cuda_get_max_cpy_bytes(); constexpr int cpy_ne = cpy_nb / 4; - __shared__ float KQ[ncols][kq_stride]; + constexpr int cpw = ncols/nwarps; // cols per warp + + // softmax_iter_j == number of KQ columns for which to calculate softmax in parallel. + // KQ is originall 2D but uses a Z-shaped memory pattern for larger reads/writes. #ifdef FAST_FP16_AVAILABLE + constexpr int softmax_iter_j = cpw < 2*cpy_ne ? cpw : 2*cpy_ne; + + __shared__ half KQ[ncols/softmax_iter_j][kq_stride][softmax_iter_j]; __shared__ half2 Q_tmp[ncols][D/2]; - __shared__ half2 KV_tmp_h2[kq_stride * (kq_nbatch/2 + cpy_ne)]; // Padded to avoid memory bank conflicts. - half2 VKQ[ncols/nwarps][D/(2*warp_size)] = {{{0.0f, 0.0f}}}; + __shared__ half2 KV_tmp[kq_stride * (kq_nbatch/2 + cpy_ne)]; // Padded to avoid memory bank conflicts. + half2 VKQ[cpw][D/(2*warp_size)] = {{{0.0f, 0.0f}}}; #else + constexpr int softmax_iter_j = cpw < 1*cpy_ne ? cpw : 1*cpy_ne; + + __shared__ float KQ[ncols/softmax_iter_j][kq_stride][softmax_iter_j]; __shared__ float Q_tmp[ncols][D]; - __shared__ float KV_tmp_f[kq_stride * (kq_nbatch + cpy_ne)]; // Padded to avoid memory bank conflicts. - float2 * KV_tmp_f2 = (float2 *) KV_tmp_f; - float2 VKQ[ncols/nwarps][D/(2*warp_size)] = {{{0.0f, 0.0f}}}; + __shared__ float KV_tmp[kq_stride * (kq_nbatch + cpy_ne)]; // Padded to avoid memory bank conflicts. + float2 VKQ[cpw][D/(2*warp_size)] = {{{0.0f, 0.0f}}}; #endif // FAST_FP16_AVAILABLE + static_assert(cpw % softmax_iter_j == 0, "bad softmax_iter_j"); - - float kqmax[ncols/nwarps]; + float KQ_max[cpw]; #pragma unroll for (int j0 = 0; j0 < ncols; j0 += nwarps) { - kqmax[j0/nwarps] = -FLT_MAX/2.0f; + KQ_max[j0/nwarps] = -FLT_MAX/2.0f; } - float kqsum[ncols/nwarps] = {0.0f}; + float KQ_sum[cpw] = {0.0f}; + + // Load Q data, convert to FP16 if fast. +#pragma unroll + for (int j0 = 0; j0 < cpw; ++j0) { + const int j = j0 + threadIdx.y*cpw; + + constexpr int cpy_ne_D = cpy_ne < D/warp_size ? cpy_ne : D/warp_size; #pragma unroll - for (int j0 = 0; j0 < ncols; j0 += nwarps) { - const int j = j0 + threadIdx.y; + for (int i0 = 0; i0 < D; i0 += warp_size*cpy_ne_D) { + float tmp_f[cpy_ne_D] = {0.0f}; + if (ic0 + j < ne01) { + ggml_cuda_memcpy_1(tmp_f, &Q_f[j*(nb01/sizeof(float)) + i0 + threadIdx.x*cpy_ne_D]); + } #pragma unroll - for (int i0 = 0; i0 < D/2; i0 += warp_size) { - const float2 tmp = ic0 + j < ne01 ? Q_f2[j*(nb01/sizeof(float2)) + i0 + threadIdx.x] : make_float2(0.0f, 0.0f); + for (int i1 = 0; i1 < cpy_ne_D; ++i1) { + tmp_f[i1] *= scale; + } + #ifdef FAST_FP16_AVAILABLE - Q_tmp[j][i0 + threadIdx.x] = make_half2(tmp.x * scale, tmp.y * scale); + half2 tmp_h2[cpy_ne_D/2]; +#pragma unroll + for (int i1 = 0; i1 < cpy_ne_D; i1 += 2) { + tmp_h2[i1/2] = make_half2(tmp_f[i1 + 0], tmp_f[i1 + 1]); + } + ggml_cuda_memcpy_1(&Q_tmp[j][i0/2 + threadIdx.x*(cpy_ne_D/2)], tmp_h2); #else - Q_tmp[j][2*i0 + threadIdx.x] = tmp.x * scale; - Q_tmp[j][2*i0 + warp_size + threadIdx.x] = tmp.y * scale; + ggml_cuda_memcpy_1 (&Q_tmp[j][i0 + threadIdx.x* cpy_ne_D], tmp_f); #endif // FAST_FP16_AVAILABLE } } __syncthreads(); + // Main loop over KV cache: const int k_VKQ_max = KV_max ? KV_max[sequence*gridDim.x + blockIdx.x] : ne11; for (int k_VKQ_0 = blockIdx.y*kq_stride; k_VKQ_0 < k_VKQ_max; k_VKQ_0 += gridDim.y*kq_stride) { // Calculate KQ tile and keep track of new maximum KQ values: - float kqmax_new[ncols/nwarps]; + float KQ_max_new[cpw]; #pragma unroll - for (int j = 0; j < ncols/nwarps; ++j) { - kqmax_new[j] = kqmax[j]; + for (int j = 0; j < cpw; ++j) { + KQ_max_new[j] = KQ_max[j]; } - float sum[kq_stride/warp_size][ncols/nwarps] = {{0.0f}}; + float KQ_acc[kq_stride/warp_size][cpw] = {{0.0f}}; // Accumulators for KQ matrix multiplication. + // KQ = K @ Q matrix multiplication: #pragma unroll for (int k_KQ_0 = 0; k_KQ_0 < D; k_KQ_0 += kq_nbatch) { #pragma unroll for (int i_KQ_0 = 0; i_KQ_0 < kq_stride; i_KQ_0 += nwarps) { const int i_KQ = i_KQ_0 + threadIdx.y; -#pragma unroll - for (int k_KQ_1 = 0; k_KQ_1 < kq_nbatch/2; k_KQ_1 += warp_size) { - const half2 tmp_h2 = K_h2[int64_t(k_VKQ_0 + i_KQ)*stride_KV2 + k_KQ_0/2 + k_KQ_1 + threadIdx.x]; #ifdef FAST_FP16_AVAILABLE - KV_tmp_h2[i_KQ*(kq_nbatch/2 + cpy_ne) + k_KQ_1 + threadIdx.x] = tmp_h2; -#else - const float2 tmp_f2 = __half22float2(tmp_h2); - KV_tmp_f[i_KQ*(kq_nbatch + cpy_ne) + 2*k_KQ_1 + threadIdx.x] = tmp_f2.x; - KV_tmp_f[i_KQ*(kq_nbatch + cpy_ne) + 2*k_KQ_1 + warp_size + threadIdx.x] = tmp_f2.y; -#endif // FAST_FP16_AVAILABLE + constexpr int cpy_ne_kqnb = cpy_ne < kq_nbatch/(2*warp_size) ? cpy_ne : kq_nbatch/(2*warp_size); +#pragma unroll + for (int k_KQ_1 = 0; k_KQ_1 < kq_nbatch/2; k_KQ_1 += warp_size*cpy_ne_kqnb) { + ggml_cuda_memcpy_1( + &KV_tmp[i_KQ*(kq_nbatch/2 + cpy_ne) + k_KQ_1 + threadIdx.x*cpy_ne_kqnb], + &K_h2[int64_t(k_VKQ_0 + i_KQ)*stride_KV2 + k_KQ_0/2 + k_KQ_1 + threadIdx.x*cpy_ne_kqnb]); } +#else + constexpr int cpy_ne_kqnb = cpy_ne < kq_nbatch/warp_size ? cpy_ne : kq_nbatch/warp_size; +#pragma unroll + for (int k_KQ_1 = 0; k_KQ_1 < kq_nbatch; k_KQ_1 += warp_size*cpy_ne_kqnb) { + half2 tmp_h2[cpy_ne_kqnb/2]; + ggml_cuda_memcpy_1( + tmp_h2, &K_h2[int64_t(k_VKQ_0 + i_KQ)*stride_KV2 + k_KQ_0/2 + k_KQ_1/2 + threadIdx.x*(cpy_ne_kqnb/2)]); + + float2 tmp_f2[cpy_ne_kqnb/2]; +#pragma unroll + for (int k_KQ_2 = 0; k_KQ_2 < cpy_ne_kqnb/2; ++k_KQ_2) { + tmp_f2[k_KQ_2] = __half22float2(tmp_h2[k_KQ_2]); + } + ggml_cuda_memcpy_1( + &KV_tmp[i_KQ*(kq_nbatch + cpy_ne) + k_KQ_1 + threadIdx.x*cpy_ne_kqnb], tmp_f2); + } +#endif // FAST_FP16_AVAILABLE } __syncthreads(); @@ -298,12 +353,12 @@ static __global__ void flash_attn_tile( #pragma unroll for (int k_KQ_1 = 0; k_KQ_1 < kq_nbatch/2; k_KQ_1 += cpy_ne) { half2 K_k[kq_stride/warp_size][cpy_ne]; - half2 Q_k[ncols/nwarps][cpy_ne]; + half2 Q_k[cpw][cpy_ne]; #else #pragma unroll for (int k_KQ_1 = 0; k_KQ_1 < kq_nbatch; k_KQ_1 += cpy_ne) { float K_k[kq_stride/warp_size][cpy_ne]; - float Q_k[ncols/nwarps][cpy_ne]; + float Q_k[cpw][cpy_ne]; #endif // FAST_FP16_AVAILABLE #pragma unroll @@ -311,29 +366,29 @@ static __global__ void flash_attn_tile( const int i_KQ = i_KQ_0 + threadIdx.x; #ifdef FAST_FP16_AVAILABLE - ggml_cuda_memcpy_1(&K_k[i_KQ_0/warp_size], &KV_tmp_h2[i_KQ*(kq_nbatch/2 + cpy_ne) + k_KQ_1]); + ggml_cuda_memcpy_1(&K_k[i_KQ_0/warp_size], &KV_tmp[i_KQ*(kq_nbatch/2 + cpy_ne) + k_KQ_1]); #else - ggml_cuda_memcpy_1(&K_k[i_KQ_0/warp_size], &KV_tmp_f [i_KQ*(kq_nbatch + cpy_ne) + k_KQ_1]); + ggml_cuda_memcpy_1(&K_k[i_KQ_0/warp_size], &KV_tmp[i_KQ*(kq_nbatch + cpy_ne) + k_KQ_1]); #endif // FAST_FP16_AVAILABLE } #pragma unroll - for (int j_KQ_0 = 0; j_KQ_0 < ncols; j_KQ_0 += nwarps) { - const int j_KQ = j_KQ_0 + threadIdx.y; + for (int j_KQ_0 = 0; j_KQ_0 < cpw; ++j_KQ_0) { + const int j_KQ = j_KQ_0 + threadIdx.y*cpw; #ifdef FAST_FP16_AVAILABLE - ggml_cuda_memcpy_1(&Q_k[j_KQ_0/nwarps], &Q_tmp[j_KQ][k_KQ_0/2 + k_KQ_1]); + ggml_cuda_memcpy_1(&Q_k[j_KQ_0], &Q_tmp[j_KQ][k_KQ_0/2 + k_KQ_1]); #else - ggml_cuda_memcpy_1(&Q_k[j_KQ_0/nwarps], &Q_tmp[j_KQ][k_KQ_0 + k_KQ_1]); + ggml_cuda_memcpy_1(&Q_k[j_KQ_0], &Q_tmp[j_KQ][k_KQ_0 + k_KQ_1]); #endif // FAST_FP16_AVAILABLE } #pragma unroll for (int i_KQ_0 = 0; i_KQ_0 < kq_stride; i_KQ_0 += warp_size) { #pragma unroll - for (int j_KQ_0 = 0; j_KQ_0 < ncols; j_KQ_0 += nwarps) { + for (int j_KQ_0 = 0; j_KQ_0 < cpw; ++j_KQ_0) { #pragma unroll for (int k = 0; k < cpy_ne; ++k) { - ggml_cuda_mad(sum[i_KQ_0/warp_size][j_KQ_0/nwarps], K_k[i_KQ_0/warp_size][k], Q_k[j_KQ_0/nwarps][k]); + ggml_cuda_mad(KQ_acc[i_KQ_0/warp_size][j_KQ_0], K_k[i_KQ_0/warp_size][k], Q_k[j_KQ_0][k]); } } } @@ -344,104 +399,77 @@ static __global__ void flash_attn_tile( } } + // Apply logit softcap, mask, update KQ_max: #pragma unroll for (int i_KQ_0 = 0; i_KQ_0 < kq_stride; i_KQ_0 += warp_size) { const int i_KQ = i_KQ_0 + threadIdx.x; #pragma unroll - for (int j_KQ_0 = 0; j_KQ_0 < ncols; j_KQ_0 += nwarps) { - const int j_KQ = j_KQ_0 + threadIdx.y; + for (int j_KQ_0 = 0; j_KQ_0 < cpw; ++j_KQ_0) { + const int j_KQ = j_KQ_0 + threadIdx.y*cpw; if (use_logit_softcap) { - sum[i_KQ_0/warp_size][j_KQ_0/nwarps] = logit_softcap * tanhf(sum[i_KQ_0/warp_size][j_KQ_0/nwarps]); + KQ_acc[i_KQ_0/warp_size][j_KQ_0] = logit_softcap * tanhf(KQ_acc[i_KQ_0/warp_size][j_KQ_0]); } - sum[i_KQ_0/warp_size][j_KQ_0/nwarps] += mask ? slope*__half2float(maskh[j_KQ*ne11 + k_VKQ_0 + i_KQ]) : 0.0f; + KQ_acc[i_KQ_0/warp_size][j_KQ_0] += mask ? slope*__half2float(maskh[j_KQ*ne11 + k_VKQ_0 + i_KQ]) : 0.0f; - kqmax_new[j_KQ_0/nwarps] = fmaxf(kqmax_new[j_KQ_0/nwarps], sum[i_KQ_0/warp_size][j_KQ_0/nwarps]); - - KQ[j_KQ][i_KQ] = sum[i_KQ_0/warp_size][j_KQ_0/nwarps]; + KQ_max_new[j_KQ_0] = fmaxf(KQ_max_new[j_KQ_0], KQ_acc[i_KQ_0/warp_size][j_KQ_0]); } } __syncthreads(); + // Calculate KQ softmax, write to shared KQ buffer, re-scale VKQ accumulators: #pragma unroll - for (int j0 = 0; j0 < ncols; j0 += nwarps) { - const int j = j0 + threadIdx.y; - - kqmax_new[j0/nwarps] = warp_reduce_max(kqmax_new[j0/nwarps]); - const float KQ_max_scale = expf(kqmax[j0/nwarps] - kqmax_new[j0/nwarps]); - kqmax[j0/nwarps] = kqmax_new[j0/nwarps]; - - float kqsum_add = 0.0f; - if (kq_stride % (4*warp_size) == 0 && cpy_ne % 4 == 0) { -#pragma unroll - for (int i0 = 0; i0 < kq_stride; i0 += 4*warp_size) { - const int i = i0 + 4*threadIdx.x; - - float4 val = *(const float4 *) &KQ[j][i]; - val.x = expf(val.x - kqmax[j0/nwarps]); - val.y = expf(val.y - kqmax[j0/nwarps]); - val.z = expf(val.z - kqmax[j0/nwarps]); - val.w = expf(val.w - kqmax[j0/nwarps]); - kqsum_add += val.x + val.y + val.z + val.w; - + for (int j0 = 0; j0 < cpw; j0 += softmax_iter_j) { #ifdef FAST_FP16_AVAILABLE - const half2 tmp[2] = {make_half2(val.x, val.y), make_half2(val.z, val.w)}; - ggml_cuda_memcpy_1(&KQ[j][i/2], &tmp); + half tmp[kq_stride/warp_size][softmax_iter_j]; #else - ggml_cuda_memcpy_1(&KQ[j][i], &val); + float tmp[kq_stride/warp_size][softmax_iter_j]; #endif // FAST_FP16_AVAILABLE - } - } else if (kq_stride % (2*warp_size) == 0 && cpy_ne % 2 == 0) { -#pragma unroll - for (int i0 = 0; i0 < kq_stride; i0 += 2*warp_size) { - const int i = i0 + 2*threadIdx.x; - float2 val = *(const float2 *) &KQ[j][i]; - val.x = expf(val.x - kqmax[j0/nwarps]); - val.y = expf(val.y - kqmax[j0/nwarps]); - kqsum_add += val.x + val.y; -#ifdef FAST_FP16_AVAILABLE - const half2 tmp = make_half2(val.x, val.y); - ggml_cuda_memcpy_1(&KQ[j][i/2], &tmp); -#else - ggml_cuda_memcpy_1(&KQ[j][i], &val); -#endif // FAST_FP16_AVAILABLE - } - } else { +#pragma unroll + for (int j1 = 0; j1 < softmax_iter_j; ++j1) { + KQ_max_new[j0+j1] = warp_reduce_max(KQ_max_new[j0+j1]); + const float KQ_max_scale = expf(KQ_max[j0+j1] - KQ_max_new[j0+j1]); + KQ_max[j0+j1] = KQ_max_new[j0+j1]; + + float KQ_sum_add = 0.0f; +#pragma unroll for (int i0 = 0; i0 < kq_stride; i0 += warp_size) { - const int i = i0 + threadIdx.x; - - const float diff = KQ[j][i] - kqmax[j0/nwarps]; - const float val = expf(diff); - kqsum_add += val; -#ifdef FAST_FP16_AVAILABLE - ((half *) KQ[j])[i] = val; -#else - KQ[j][i] = val; -#endif // FAST_FP16_AVAILABLE + const float val = expf(KQ_acc[i0/warp_size][j0+j1] - KQ_max[j0+j1]); + KQ_sum_add += val; + tmp[i0/warp_size][j1] = val; } - } - kqsum[j0/nwarps] = kqsum[j0/nwarps]*KQ_max_scale + kqsum_add; + KQ_sum[j0+j1] = KQ_sum[j0+j1]*KQ_max_scale + KQ_sum_add; #ifdef FAST_FP16_AVAILABLE - const half2 KQ_max_scale_h2 = make_half2(KQ_max_scale, KQ_max_scale); + const half2 KQ_max_scale_h2 = make_half2(KQ_max_scale, KQ_max_scale); #pragma unroll - for (int i0 = 0; i0 < D/2; i0 += warp_size) { - VKQ[j0/nwarps][i0/warp_size] *= KQ_max_scale_h2; - } + for (int i0 = 0; i0 < D/2; i0 += warp_size) { + VKQ[j0+j1][i0/warp_size] *= KQ_max_scale_h2; + } #else #pragma unroll - for (int i0 = 0; i0 < D/2; i0 += warp_size) { - VKQ[j0/nwarps][i0/warp_size].x *= KQ_max_scale; - VKQ[j0/nwarps][i0/warp_size].y *= KQ_max_scale; - } + for (int i0 = 0; i0 < D/2; i0 += warp_size) { + VKQ[j0+j1][i0/warp_size].x *= KQ_max_scale; + VKQ[j0+j1][i0/warp_size].y *= KQ_max_scale; + } #endif // FAST_FP16_AVAILABLE + } + +#pragma unroll + for (int i0 = 0; i0 < kq_stride; i0 += warp_size) { + const int i = i0 + threadIdx.x; + + ggml_cuda_memcpy_1( + KQ[j0/softmax_iter_j + threadIdx.y*(cpw/softmax_iter_j)][i], tmp[i0/warp_size]); + } } - constexpr int V_cols_per_iter = kq_stride*kq_nbatch / D; + // VKQ = V @ KQ matrix multiplication: + constexpr int V_cols_per_iter = kq_stride*kq_nbatch / D; // Number of V columns that fit in SRAM for K. static_assert(kq_stride % V_cols_per_iter == 0, "bad V_cols_per_iter"); #pragma unroll for (int k0 = 0; k0 < kq_stride; k0 += V_cols_per_iter) { @@ -449,65 +477,96 @@ static __global__ void flash_attn_tile( for (int k1 = 0; k1 < V_cols_per_iter; k1 += nwarps) { const int k_tile = k1 + threadIdx.y; -#pragma unroll - for (int i0 = 0; i0 < D/2; i0 += warp_size) { - const int i = i0 + threadIdx.x; - - const half2 tmp = V_h2[int64_t(k_VKQ_0 + k0 + k_tile)*stride_KV2 + i]; #ifdef FAST_FP16_AVAILABLE - KV_tmp_h2[k_tile*(D/2) + i] = tmp; -#else - KV_tmp_f2[k_tile*(D/2) + i] = __half22float2(tmp); -#endif // FAST_FP16_AVAILABLE + constexpr int cpy_ne_D = cpy_ne < D/(2*warp_size) ? cpy_ne : D/(2*warp_size); +#pragma unroll + for (int i0 = 0; i0 < D/2; i0 += warp_size*cpy_ne_D) { + ggml_cuda_memcpy_1( + &KV_tmp[k_tile*(D/2) + i0 + threadIdx.x*cpy_ne_D], + &V_h2[int64_t(k_VKQ_0 + k0 + k_tile)*stride_KV2 + i0 + threadIdx.x*cpy_ne_D]); } +#else + constexpr int cpy_ne_D = cpy_ne < D/warp_size ? cpy_ne : D/warp_size; +#pragma unroll + for (int i0 = 0; i0 < D; i0 += warp_size*cpy_ne_D) { + half2 tmp_h2[cpy_ne_D/2]; + ggml_cuda_memcpy_1( + tmp_h2, &V_h2[int64_t(k_VKQ_0 + k0 + k_tile)*stride_KV2 + i0/2 + threadIdx.x*(cpy_ne_D/2)]); + + float2 tmp_f2[cpy_ne_D/2]; +#pragma unroll + for (int i1 = 0; i1 < cpy_ne_D/2; ++i1) { + tmp_f2[i1] = __half22float2(tmp_h2[i1]); + } + ggml_cuda_memcpy_1( + &KV_tmp[k_tile*D + i0 + threadIdx.x*cpy_ne_D], tmp_f2); + } +#endif // FAST_FP16_AVAILABLE } __syncthreads(); +#ifdef FAST_FP16_AVAILABLE #pragma unroll for (int k1 = 0; k1 < V_cols_per_iter; ++k1) { -#ifdef FAST_FP16_AVAILABLE half2 V_k[(D/2)/warp_size]; - half2 KQ_k[ncols/nwarps]; -#else - float2 V_k[(D/2)/warp_size]; - float KQ_k[ncols/nwarps]; -#endif // FAST_FP16_AVAILABLE + half2 KQ_k[cpw]; + constexpr int cpy_ne_D = cpy_ne/2 < (D/2)/warp_size ? cpy_ne/2 : (D/2)/warp_size; #pragma unroll - for (int i0 = 0; i0 < D/2; i0 += warp_size) { - const int i = i0 + threadIdx.x; - -#ifdef FAST_FP16_AVAILABLE - V_k[i0/warp_size] = KV_tmp_h2[k1*(D/2) + i]; -#else - V_k[i0/warp_size] = KV_tmp_f2[k1*(D/2) + i]; -#endif // FAST_FP16_AVAILABLE + for (int i0 = 0; i0 < D/2; i0 += warp_size*cpy_ne_D) { + ggml_cuda_memcpy_1(&V_k[i0/warp_size], &KV_tmp[k1*(D/2) + i0 + threadIdx.x*cpy_ne_D]); } #pragma unroll - for (int j0 = 0; j0 < ncols; j0 += nwarps) { - const int j = j0 + threadIdx.y; + for (int j0 = 0; j0 < cpw; j0 += softmax_iter_j) { + const int j = j0/softmax_iter_j + threadIdx.y*(cpw/softmax_iter_j); -#ifdef FAST_FP16_AVAILABLE - KQ_k[j0/nwarps] = __half2half2(((const half *)KQ[j])[k0 + k1]); -#else - KQ_k[j0/nwarps] = KQ[j][k0 + k1]; -#endif // FAST_FP16_AVAILABLE + half tmp[softmax_iter_j]; + ggml_cuda_memcpy_1( + &tmp, KQ[j][k0 + k1]); +#pragma unroll + for (int j1 = 0; j1 < softmax_iter_j; ++j1) { + KQ_k[j0+j1] = __half2half2(tmp[j1]); + } } #pragma unroll for (int i0 = 0; i0 < D/2; i0 += warp_size) { #pragma unroll - for (int j0 = 0; j0 < ncols; j0 += nwarps) { -#ifdef FAST_FP16_AVAILABLE - VKQ[j0/nwarps][i0/warp_size] += V_k[i0/warp_size] *KQ_k[j0/nwarps]; -#else - VKQ[j0/nwarps][i0/warp_size].x += V_k[i0/warp_size].x*KQ_k[j0/nwarps]; - VKQ[j0/nwarps][i0/warp_size].y += V_k[i0/warp_size].y*KQ_k[j0/nwarps]; -#endif // FAST_FP16_AVAILABLE + for (int j0 = 0; j0 < cpw; ++j0) { + VKQ[j0][i0/warp_size] += V_k[i0/warp_size]*KQ_k[j0]; } } } +#else +#pragma unroll + for (int k1 = 0; k1 < V_cols_per_iter; ++k1) { + float2 V_k[(D/2)/warp_size]; + float KQ_k[cpw]; + + constexpr int cpy_ne_D = cpy_ne < D/warp_size ? cpy_ne : D/warp_size; +#pragma unroll + for (int i0 = 0; i0 < D; i0 += warp_size*cpy_ne_D) { + ggml_cuda_memcpy_1(&V_k[i0/(2*warp_size)], &KV_tmp[k1*D + i0 + threadIdx.x*cpy_ne_D]); + } +#pragma unroll + for (int j0 = 0; j0 < cpw; j0 += softmax_iter_j) { + const int j = j0/softmax_iter_j + threadIdx.y*(cpw/softmax_iter_j); + + ggml_cuda_memcpy_1( + &KQ_k[j0], KQ[j][k0 + k1]); + } + +#pragma unroll + for (int i0 = 0; i0 < D/2; i0 += warp_size) { +#pragma unroll + for (int j0 = 0; j0 < cpw; ++j0) { + VKQ[j0][i0/warp_size].x += V_k[i0/warp_size].x*KQ_k[j0]; + VKQ[j0][i0/warp_size].y += V_k[i0/warp_size].y*KQ_k[j0]; + } + } + } +#endif // FAST_FP16_AVAILABLE __syncthreads(); } @@ -519,69 +578,92 @@ static __global__ void flash_attn_tile( const float sink = sinksf[head]; #pragma unroll - for (int j0 = 0; j0 < ncols; j0 += nwarps) { - float kqmax_new_j = fmaxf(kqmax[j0/nwarps], sink); - kqmax_new_j = warp_reduce_max(kqmax_new_j); + for (int j0 = 0; j0 < cpw; ++j0) { + float KQ_max_new_j = fmaxf(KQ_max[j0], sink); + KQ_max_new_j = warp_reduce_max(KQ_max_new_j); - const float KQ_max_scale = expf(kqmax[j0/nwarps] - kqmax_new_j); - kqmax[j0/nwarps] = kqmax_new_j; + const float KQ_max_scale = expf(KQ_max[j0] - KQ_max_new_j); + KQ_max[j0] = KQ_max_new_j; - const float val = expf(sink - kqmax[j0/nwarps]); - kqsum[j0/nwarps] = kqsum[j0/nwarps] * KQ_max_scale; + const float val = expf(sink - KQ_max[j0]); + KQ_sum[j0] = KQ_sum[j0] * KQ_max_scale; if (threadIdx.x == 0) { - kqsum[j0/nwarps] += val; + KQ_sum[j0] += val; } #ifdef FAST_FP16_AVAILABLE const half2 KQ_max_scale_h2 = make_half2(KQ_max_scale, KQ_max_scale); #pragma unroll for (int i0 = 0; i0 < D/2; i0 += warp_size) { - VKQ[j0/nwarps][i0/warp_size] *= KQ_max_scale_h2; + VKQ[j0][i0/warp_size] *= KQ_max_scale_h2; } #else #pragma unroll for (int i0 = 0; i0 < D/2; i0 += warp_size) { - VKQ[j0/nwarps][i0/warp_size].x *= KQ_max_scale; - VKQ[j0/nwarps][i0/warp_size].y *= KQ_max_scale; + VKQ[j0][i0/warp_size].x *= KQ_max_scale; + VKQ[j0][i0/warp_size].y *= KQ_max_scale; } #endif // FAST_FP16_AVAILABLE } } - float2 * dst2 = (float2 *) dst; - #pragma unroll - for (int j_VKQ_0 = 0; j_VKQ_0 < ncols; j_VKQ_0 += nwarps) { - const int j_VKQ = j_VKQ_0 + threadIdx.y; + for (int j_VKQ_0 = 0; j_VKQ_0 < cpw; ++j_VKQ_0) { + KQ_sum[j_VKQ_0] = warp_reduce_sum(KQ_sum[j_VKQ_0]); + } + if (gridDim.y == 1) { +#pragma unroll + for (int j_VKQ_0 = 0; j_VKQ_0 < cpw; ++j_VKQ_0) { +#ifdef FAST_FP16_AVAILABLE + const half2 KQ_sum_j_inv = make_half2(1.0f/KQ_sum[j_VKQ_0], 1.0f/KQ_sum[j_VKQ_0]); +#pragma unroll + for (int i = 0; i < (D/2)/warp_size; ++i) { + VKQ[j_VKQ_0][i] *= KQ_sum_j_inv; + } +#else + const float KQ_sum_j_inv = 1.0f/KQ_sum[j_VKQ_0]; +#pragma unroll + for (int i = 0; i < (D/2)/warp_size; ++i) { + VKQ[j_VKQ_0][i].x *= KQ_sum_j_inv; + VKQ[j_VKQ_0][i].y *= KQ_sum_j_inv; + } +#endif // FAST_FP16_AVAILABLE + } + } + + // Write back results: +#pragma unroll + for (int j_VKQ_0 = 0; j_VKQ_0 < cpw; ++j_VKQ_0) { + const int j_VKQ = j_VKQ_0 + threadIdx.y*cpw; if (ic0 + j_VKQ >= ne01) { return; } - float kqsum_j = kqsum[j_VKQ_0/nwarps]; - kqsum_j = warp_reduce_sum(kqsum_j); - const int j_dst_unrolled = ((sequence*ne01 + ic0 + j_VKQ)*ne02 + head)*gridDim.y + blockIdx.y; -#pragma unroll - for (int i00 = 0; i00 < D/2; i00 += warp_size) { - const int i0 = i00 + threadIdx.x; - #ifdef FAST_FP16_AVAILABLE - float2 dst_val = __half22float2(VKQ[j_VKQ_0/nwarps][i0/warp_size]); + constexpr int cpy_ne_D = cpy_ne/2 < (D/2)/warp_size ? cpy_ne/2 : (D/2)/warp_size; +#pragma unroll + for (int i0 = 0; i0 < D/2; i0 += warp_size*cpy_ne_D) { + float2 tmp[cpy_ne_D]; +#pragma unroll + for (int i1 = 0; i1 < cpy_ne_D; ++i1) { + tmp[i1] = __half22float2(VKQ[j_VKQ_0][i0/warp_size + i1]); + } + ggml_cuda_memcpy_1(&dst[j_dst_unrolled*D + 2*i0 + threadIdx.x*(2*cpy_ne_D)], tmp); + } #else - float2 dst_val = VKQ[j_VKQ_0/nwarps][i0/warp_size]; + constexpr int cpy_ne_D = cpy_ne < D/warp_size ? cpy_ne : D/warp_size; +#pragma unroll + for (int i0 = 0; i0 < D; i0 += warp_size*cpy_ne_D) { + ggml_cuda_memcpy_1( + &dst[j_dst_unrolled*D + i0 + threadIdx.x*cpy_ne_D], &VKQ[j_VKQ_0][i0/(2*warp_size)]); + } #endif // FAST_FP16_AVAILABLE - if (gridDim.y == 1) { - dst_val.x /= kqsum_j; - dst_val.y /= kqsum_j; - } - dst2[j_dst_unrolled*(D/2) + i0] = dst_val; - } - if (gridDim.y != 1 && threadIdx.x == 0) { - dst_meta[j_dst_unrolled] = make_float2(kqmax[j_VKQ_0/nwarps], kqsum_j); + dst_meta[j_dst_unrolled] = make_float2(KQ_max[j_VKQ_0], KQ_sum[j_VKQ_0]); } } #else @@ -602,15 +684,29 @@ template static void launch_fattn_tile_switch_ncols(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { const ggml_tensor * Q = dst->src[0]; - const int id = ggml_cuda_get_device(); - const int cc = ggml_cuda_info().devices[id].cc; - const int warp_size = 32; - const int nwarps = FATTN_TILE_NTHREADS / warp_size; + const int id = ggml_cuda_get_device(); + const int cc = ggml_cuda_info().devices[id].cc; + const int warp_size = 32; constexpr size_t nbytes_shared = 0; +#ifdef GGML_USE_HIP + if constexpr (D <= 128) { + if (Q->ne[1] > 32) { + constexpr int cols_per_block = 64; + const int nwarps = fattn_tile_get_nthreads_host(cc, cols_per_block) / warp_size; + fattn_kernel_t fattn_kernel = flash_attn_tile; + const int kq_stride = fattn_tile_get_kq_stride_host(D, cols_per_block, cc, warp_size); + launch_fattn + (ctx, dst, fattn_kernel, nwarps, nbytes_shared, kq_stride, true, true, false, warp_size); + return; + } + } +#endif // GGML_USE_HIP + if (Q->ne[1] > 16) { constexpr int cols_per_block = 32; + const int nwarps = fattn_tile_get_nthreads_host(cc, cols_per_block) / warp_size; fattn_kernel_t fattn_kernel = flash_attn_tile; const int kq_stride = fattn_tile_get_kq_stride_host(D, cols_per_block, cc, warp_size); launch_fattn @@ -619,6 +715,7 @@ static void launch_fattn_tile_switch_ncols(ggml_backend_cuda_context & ctx, ggml } constexpr int cols_per_block = 16; + const int nwarps = fattn_tile_get_nthreads_host(cc, cols_per_block) / warp_size; fattn_kernel_t fattn_kernel = flash_attn_tile; const int kq_stride = fattn_tile_get_kq_stride_host(D, cols_per_block, cc, warp_size); launch_fattn diff --git a/ggml/src/ggml-cuda/vendors/hip.h b/ggml/src/ggml-cuda/vendors/hip.h index 12bbee4556..37386afcd4 100644 --- a/ggml/src/ggml-cuda/vendors/hip.h +++ b/ggml/src/ggml-cuda/vendors/hip.h @@ -158,41 +158,41 @@ #define __CUDA_ARCH__ 1300 -#if defined(__gfx803__) || defined(__gfx900__) || defined(__gfx906__) -#define GCN -#endif - #if defined(__gfx900__) || defined(__gfx906__) #define GCN5 -#endif +#endif // defined(__gfx900__) || defined(__gfx906__) #if defined(__gfx803__) #define GCN4 -#endif +#endif // defined(__gfx803__) -#if defined(__gfx908__) || defined(__gfx90a__) || defined(__gfx942__) -#define CDNA // For the entire family -#endif +#if defined(GCN5) || defined(GCN4) +#define GCN +#endif // defined(GCN5) || defined(GCN4) #if defined(__gfx942__) #define CDNA3 -#endif +#endif // defined(__gfx942__) #if defined(__gfx90a__) #define CDNA2 -#endif +#endif // defined(__gfx90a__) #if defined(__gfx908__) #define CDNA1 -#endif +#endif // defined(__gfx908__) + +#if defined(CDNA3) || defined(CDNA2) || defined(CDNA1) +#define CDNA // For the entire family +#endif // defined(CDNA3) || defined(CDNA2) || defined(CDNA1) #if defined(__GFX12__) #define RDNA4 -#endif +#endif // defined(__GFX12__) #if defined(__GFX11__) #define RDNA3 -#endif +#endif // defined(__GFX11__) #if defined(__gfx1030__) || defined(__gfx1031__) || defined(__gfx1032__) || defined(__gfx1033__) || \ defined(__gfx1034__) || defined(__gfx1035__) || defined(__gfx1036__) || defined(__gfx1037__) @@ -201,7 +201,11 @@ #if defined(__gfx1010__) || defined(__gfx1012__) #define RDNA1 -#endif +#endif // defined(__gfx1010__) || defined(__gfx1012__) + +#if defined(RDNA4) || defined(RDNA3) || defined(RDNA2) || defined(RDNA1) +#define RDNA // For the entire family +#endif // defined(RDNA4) || defined(RDNA3) || defined(RDNA2) || defined(RDNA1) #ifndef __has_builtin #define __has_builtin(x) 0 From 8f8f2274ee3601fecf6e2d57b52f701c81bede21 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Thu, 18 Sep 2025 00:18:21 +0700 Subject: [PATCH 02/11] convert : add Llama4ForCausalLM (#16042) * convert : add Llama4ForCausalLM * handle swa * half working version * fix use_kq_norm * fix use_kq_norm --- convert_hf_to_gguf.py | 9 +++++++- src/llama-hparams.h | 2 +- src/llama-model.cpp | 48 ++++++++++++++++++++++++++++++++++--------- src/llama-model.h | 3 +++ 4 files changed, 50 insertions(+), 12 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index ce83f24695..7ddec48ad7 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -2393,7 +2393,10 @@ class SmolVLMModel(MmprojModel): return [] # skip other tensors -@ModelBase.register("Llama4ForConditionalGeneration") +@ModelBase.register( + "Llama4ForConditionalGeneration", + "Llama4ForCausalLM", +) class Llama4Model(LlamaModel): model_arch = gguf.MODEL_ARCH.LLAMA4 undo_permute = False @@ -2411,6 +2414,10 @@ class Llama4Model(LlamaModel): super().set_gguf_parameters() self.gguf_writer.add_interleave_moe_layer_step(self.hparams["interleave_moe_layer_step"]) self.gguf_writer.add_expert_feed_forward_length(self.hparams["intermediate_size_moe"]) + if "layer_types" in self.hparams: + if all(lt == "full_attention" for lt in self.hparams["layer_types"]): + # all layers are full attention (for MobileLLM), disable swa + self.gguf_writer.add_sliding_window(0) def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None): if name.startswith("language_model."): diff --git a/src/llama-hparams.h b/src/llama-hparams.h index 116d728e8c..202cbbd1b2 100644 --- a/src/llama-hparams.h +++ b/src/llama-hparams.h @@ -149,7 +149,7 @@ struct llama_hparams { bool causal_attn = true; bool use_alibi = false; bool attn_soft_cap = false; - bool use_kq_norm = true; + bool use_kq_norm = false; // for Classifiers uint32_t n_cls_out = 1; diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 2be807a6a9..981e57083c 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -36,6 +36,7 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_80M: return "80M"; case LLM_TYPE_109M: return "109M"; case LLM_TYPE_137M: return "137M"; + case LLM_TYPE_140M: return "140M"; case LLM_TYPE_160M: return "160M"; case LLM_TYPE_190M: return "190M"; case LLM_TYPE_220M: return "220M"; @@ -44,6 +45,7 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_270M: return "270M"; case LLM_TYPE_335M: return "335M"; case LLM_TYPE_350M: return "350M"; + case LLM_TYPE_360M: return "360M"; case LLM_TYPE_410M: return "410M"; case LLM_TYPE_450M: return "450M"; case LLM_TYPE_475M: return "475M"; @@ -51,6 +53,7 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_700M: return "700M"; case LLM_TYPE_770M: return "770M"; case LLM_TYPE_780M: return "780M"; + case LLM_TYPE_950M: return "950M"; case LLM_TYPE_0_3B: return "0.3B"; case LLM_TYPE_0_5B: return "0.5B"; case LLM_TYPE_0_6B: return "0.6B"; @@ -622,19 +625,32 @@ void llama_model::load_hparams(llama_model_loader & ml) { ml.get_key(LLM_KV_EXPERT_FEED_FORWARD_LENGTH, hparams.n_ff_exp); ml.get_key(LLM_KV_INTERLEAVE_MOE_LAYER_STEP, hparams.n_moe_layer_step); - hparams.swa_type = LLAMA_SWA_TYPE_CHUNKED; - hparams.n_swa = 8192; // should this be a gguf kv? currently it's the same for Scout and Maverick - hparams.set_swa_pattern(4); // pattern: 3 chunked - 1 full + const bool found_swa = ml.get_key(LLM_KV_ATTENTION_SLIDING_WINDOW, hparams.n_swa, false); + if (found_swa && hparams.n_swa == 0) { + hparams.swa_type = LLAMA_SWA_TYPE_NONE; + hparams.n_no_rope_layer_step = hparams.n_layer; // always use rope + } else { + hparams.swa_type = LLAMA_SWA_TYPE_CHUNKED; + hparams.n_swa = 8192; + hparams.set_swa_pattern(4); // pattern: 3 chunked - 1 full + } switch (hparams.n_expert) { + case 0: { + // MobileLLM (no MoE) + switch (hparams.n_embd) { + case 2048: type = LLM_TYPE_140M; break; + case 4096: type = LLM_TYPE_360M; break; + case 6144: type = LLM_TYPE_950M; break; + default: type = LLM_TYPE_UNKNOWN; + } + } break; case 16: type = LLM_TYPE_17B_16E; break; case 128: type = LLM_TYPE_17B_128E; break; default: type = LLM_TYPE_UNKNOWN; } - if (type == LLM_TYPE_17B_128E) { - hparams.use_kq_norm = false; - } + hparams.use_kq_norm = type != LLM_TYPE_17B_128E; } break; case LLM_ARCH_ARCEE: { @@ -2454,9 +2470,8 @@ bool llama_model::load_tensors(llama_model_loader & ml) { output = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD, "weight"), {n_embd, n_vocab}, TENSOR_DUPLICATED); } - GGML_ASSERT(hparams.n_moe_layer_step > 0 && "Llama 4 requires n_moe_layer_step > 0"); for (int i = 0; i < n_layer; ++i) { - bool is_moe_layer = (i + 1) % hparams.n_moe_layer_step == 0; + bool is_moe_layer = hparams.n_moe_layer_step > 0 && (i + 1) % hparams.n_moe_layer_step == 0; auto & layer = layers[i]; @@ -6328,6 +6343,14 @@ struct llm_build_llama : public llm_graph_context { cb(Kcur, "Kcur", il); cb(Vcur, "Vcur", il); + if (hparams.use_kq_norm) { + // Llama4TextL2Norm + Qcur = ggml_rms_norm(ctx0, Qcur, hparams.f_norm_rms_eps); + Kcur = ggml_rms_norm(ctx0, Kcur, hparams.f_norm_rms_eps); + cb(Qcur, "Qcur_normed", il); + cb(Kcur, "Kcur_normed", il); + } + cur = build_attn(inp_attn, model.layers[il].wo, model.layers[il].bo, Qcur, Kcur, Vcur, nullptr, nullptr, nullptr, kq_scale, il); @@ -6435,7 +6458,8 @@ struct llm_build_llama_iswa : public llm_graph_context { for (int il = 0; il < n_layer; ++il) { ggml_tensor * inpSA = inpL; - const bool use_rope = (il + 1) % hparams.n_no_rope_layer_step != 0; + const bool use_rope = hparams.n_no_rope_layer_step > 0 && + (il + 1) % hparams.n_no_rope_layer_step != 0; // norm cur = build_norm(inpL, @@ -18981,7 +19005,11 @@ ggml_cgraph * llama_model::build_graph(const llm_graph_params & params) const { } break; case LLM_ARCH_LLAMA4: { - llm = std::make_unique(*this, params); + if (hparams.swa_type == LLAMA_SWA_TYPE_NONE) { + llm = std::make_unique(*this, params); + } else { + llm = std::make_unique(*this, params); + } } break; case LLM_ARCH_DECI: { diff --git a/src/llama-model.h b/src/llama-model.h index 10b1767f27..b1981978e3 100644 --- a/src/llama-model.h +++ b/src/llama-model.h @@ -28,6 +28,7 @@ enum llm_type { LLM_TYPE_80M, LLM_TYPE_109M, LLM_TYPE_137M, + LLM_TYPE_140M, LLM_TYPE_160M, LLM_TYPE_190M, LLM_TYPE_220M, @@ -36,6 +37,7 @@ enum llm_type { LLM_TYPE_270M, LLM_TYPE_335M, LLM_TYPE_350M, + LLM_TYPE_360M, LLM_TYPE_410M, LLM_TYPE_450M, LLM_TYPE_475M, @@ -43,6 +45,7 @@ enum llm_type { LLM_TYPE_700M, LLM_TYPE_770M, LLM_TYPE_780M, + LLM_TYPE_950M, LLM_TYPE_0_3B, LLM_TYPE_0_5B, LLM_TYPE_0_6B, From a7a98e0fffed794396b3fbad4dcdbbc184963645 Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Wed, 17 Sep 2025 19:29:13 +0200 Subject: [PATCH 03/11] SvelteKit-based WebUI (#14839) --- .editorconfig | 8 + .github/workflows/server.yml | 229 +- .gitignore | 4 + .windsurf/rules/css-architecture.md | 7 + .windsurf/rules/sveltekit-architecture.md | 48 + .windsurf/rules/tests.md | 9 + .windsurf/rules/typescript-architecture.md | 7 + tools/server/public/index.html.gz | Bin 1914087 -> 842295 bytes tools/server/server.cpp | 36 + tools/server/tests/unit/test_basic.py | 2 +- tools/server/webui/.gitignore | 45 +- tools/server/webui/.npmrc | 1 + tools/server/webui/.prettierignore | 17 +- tools/server/webui/.prettierrc | 16 + .../.storybook/ModeWatcherDecorator.svelte | 36 + .../TooltipProviderDecorator.svelte | 13 + tools/server/webui/.storybook/main.ts | 17 + tools/server/webui/.storybook/preview.ts | 34 + tools/server/webui/.storybook/vitest.setup.ts | 11 + tools/server/webui/README.md | 66 + tools/server/webui/components.json | 16 + tools/server/webui/e2e/demo.test.ts | 6 + tools/server/webui/eslint.config.js | 73 +- tools/server/webui/index.html | 16 - tools/server/webui/package-lock.json | 15102 +++++++++------- tools/server/webui/package.json | 152 +- tools/server/webui/playwright.config.ts | 9 + tools/server/webui/postcss.config.js | 5 - .../webui/public/demo-conversation.json | 33 - .../server/webui/scripts/install-git-hooks.sh | 123 + tools/server/webui/scripts/post-build.sh | 3 + tools/server/webui/src/App.tsx | 52 - tools/server/webui/src/Config.ts | 96 - tools/server/webui/src/app.css | 123 + tools/server/webui/src/app.d.ts | 81 + tools/server/webui/src/app.html | 12 + .../src/components/CanvasPyInterpreter.tsx | 195 - .../components/ChatInputExtraContextItem.tsx | 135 - .../webui/src/components/ChatMessage.tsx | 320 - .../webui/src/components/ChatScreen.tsx | 459 - tools/server/webui/src/components/Header.tsx | 92 - .../webui/src/components/MarkdownDisplay.tsx | 317 - .../webui/src/components/ModalProvider.tsx | 151 - .../webui/src/components/SettingDialog.tsx | 553 - tools/server/webui/src/components/Sidebar.tsx | 369 - .../src/components/useChatExtraContext.tsx | 371 - .../webui/src/components/useChatScroll.tsx | 34 - .../webui/src/components/useChatTextarea.ts | 104 - tools/server/webui/src/demo.spec.ts | 7 + tools/server/webui/src/index.scss | 99 - .../ChatAttachmentFilePreview.svelte | 139 + .../ChatAttachmentImagePreview.svelte | 71 + .../ChatAttachmentPreviewDialog.svelte | 305 + .../ChatAttachmentsList.svelte | 185 + .../app/chat/ChatForm/ChatForm.svelte | 259 + .../ChatFormActionFileAttachments.svelte | 121 + .../chat/ChatForm/ChatFormActionRecord.svelte | 49 + .../app/chat/ChatForm/ChatFormActions.svelte | 57 + .../ChatFormFileInputInvisible.svelte | 42 + .../chat/ChatForm/ChatFormHelperText.svelte | 17 + .../app/chat/ChatForm/ChatFormTextarea.svelte | 59 + .../app/chat/ChatMessages/ChatMessage.svelte | 186 + .../ChatMessages/ChatMessageActions.svelte | 102 + .../ChatMessages/ChatMessageAssistant.svelte | 188 + .../ChatMessageBranchingControls.svelte | 84 + .../ChatMessageThinkingBlock.svelte | 67 + .../chat/ChatMessages/ChatMessageUser.svelte | 122 + .../app/chat/ChatMessages/ChatMessages.svelte | 116 + .../app/chat/ChatProcessingInfo.svelte | 132 + .../app/chat/ChatScreen/ChatScreen.svelte | 467 + .../ChatScreen/ChatScreenDragOverlay.svelte | 17 + .../chat/ChatScreen/ChatScreenHeader.svelte | 23 + .../ChatSettings/ChatSettingsDialog.svelte | 472 + .../ChatSettings/ChatSettingsFooter.svelte | 33 + .../ChatSettings/ChatSettingsSection.svelte | 23 + .../app/chat/ChatSidebar/ChatSidebar.svelte | 124 + .../ChatSidebar/ChatSidebarActions.svelte | 81 + .../ChatSidebarConversationItem.svelte | 182 + .../chat/ChatSidebar/ChatSidebarSearch.svelte | 33 + .../handle-mobile-sidebar-item-click.ts | 9 + .../app/dialogs/ConfirmationDialog.svelte | 72 + .../ConversationTitleUpdateDialog.svelte | 46 + .../app/dialogs/EmptyFileAlertDialog.svelte | 61 + .../dialogs/MaximumContextAlertDialog.svelte | 66 + .../webui/src/lib/components/app/index.ts | 50 + .../components/app/misc/ActionButton.svelte | 48 + .../components/app/misc/ActionDropdown.svelte | 86 + .../app/misc/KeyboardShortcutInfo.svelte | 31 + .../app/misc/MarkdownContent.svelte | 625 + .../app/server/ServerErrorSplash.svelte | 281 + .../components/app/server/ServerInfo.svelte | 43 + .../app/server/ServerLoadingSplash.svelte | 33 + .../components/app/server/ServerStatus.svelte | 64 + .../alert-dialog/alert-dialog-action.svelte | 18 + .../alert-dialog/alert-dialog-cancel.svelte | 18 + .../alert-dialog/alert-dialog-content.svelte | 27 + .../alert-dialog-description.svelte | 17 + .../alert-dialog/alert-dialog-footer.svelte | 20 + .../alert-dialog/alert-dialog-header.svelte | 20 + .../alert-dialog/alert-dialog-overlay.svelte | 20 + .../ui/alert-dialog/alert-dialog-title.svelte | 17 + .../alert-dialog/alert-dialog-trigger.svelte | 7 + .../lib/components/ui/alert-dialog/index.ts | 39 + .../src/lib/components/ui/badge/badge.svelte | 49 + .../src/lib/components/ui/badge/index.ts | 2 + .../lib/components/ui/button/button.svelte | 87 + .../src/lib/components/ui/button/index.ts | 17 + .../lib/components/ui/card/card-action.svelte | 20 + .../components/ui/card/card-content.svelte | 15 + .../ui/card/card-description.svelte | 20 + .../lib/components/ui/card/card-footer.svelte | 20 + .../lib/components/ui/card/card-header.svelte | 23 + .../lib/components/ui/card/card-title.svelte | 20 + .../src/lib/components/ui/card/card.svelte | 23 + .../webui/src/lib/components/ui/card/index.ts | 25 + .../components/ui/checkbox/checkbox.svelte | 36 + .../src/lib/components/ui/checkbox/index.ts | 6 + .../ui/collapsible/collapsible-content.svelte | 7 + .../ui/collapsible/collapsible-trigger.svelte | 7 + .../ui/collapsible/collapsible.svelte | 11 + .../lib/components/ui/collapsible/index.ts | 13 + .../components/ui/dialog/dialog-close.svelte | 7 + .../ui/dialog/dialog-content.svelte | 43 + .../ui/dialog/dialog-description.svelte | 17 + .../components/ui/dialog/dialog-footer.svelte | 20 + .../components/ui/dialog/dialog-header.svelte | 20 + .../ui/dialog/dialog-overlay.svelte | 20 + .../components/ui/dialog/dialog-title.svelte | 17 + .../ui/dialog/dialog-trigger.svelte | 7 + .../src/lib/components/ui/dialog/index.ts | 37 + .../dropdown-menu-checkbox-item.svelte | 41 + .../dropdown-menu-content.svelte | 27 + .../dropdown-menu-group-heading.svelte | 22 + .../dropdown-menu/dropdown-menu-group.svelte | 7 + .../dropdown-menu/dropdown-menu-item.svelte | 27 + .../dropdown-menu/dropdown-menu-label.svelte | 24 + .../dropdown-menu-radio-group.svelte | 16 + .../dropdown-menu-radio-item.svelte | 31 + .../dropdown-menu-separator.svelte | 17 + .../dropdown-menu-shortcut.svelte | 20 + .../dropdown-menu-sub-content.svelte | 20 + .../dropdown-menu-sub-trigger.svelte | 29 + .../dropdown-menu-trigger.svelte | 7 + .../lib/components/ui/dropdown-menu/index.ts | 49 + .../src/lib/components/ui/input/index.ts | 7 + .../src/lib/components/ui/input/input.svelte | 51 + .../src/lib/components/ui/label/index.ts | 7 + .../src/lib/components/ui/label/label.svelte | 20 + .../lib/components/ui/scroll-area/index.ts | 10 + .../scroll-area/scroll-area-scrollbar.svelte | 31 + .../ui/scroll-area/scroll-area.svelte | 40 + .../src/lib/components/ui/select/index.ts | 37 + .../ui/select/select-content.svelte | 40 + .../ui/select/select-group-heading.svelte | 21 + .../components/ui/select/select-group.svelte | 7 + .../components/ui/select/select-item.svelte | 38 + .../components/ui/select/select-label.svelte | 20 + .../select/select-scroll-down-button.svelte | 20 + .../ui/select/select-scroll-up-button.svelte | 20 + .../ui/select/select-separator.svelte | 18 + .../ui/select/select-trigger.svelte | 29 + .../src/lib/components/ui/separator/index.ts | 7 + .../components/ui/separator/separator.svelte | 20 + .../src/lib/components/ui/sheet/index.ts | 36 + .../components/ui/sheet/sheet-close.svelte | 7 + .../components/ui/sheet/sheet-content.svelte | 60 + .../ui/sheet/sheet-description.svelte | 17 + .../components/ui/sheet/sheet-footer.svelte | 20 + .../components/ui/sheet/sheet-header.svelte | 20 + .../components/ui/sheet/sheet-overlay.svelte | 20 + .../components/ui/sheet/sheet-title.svelte | 17 + .../components/ui/sheet/sheet-trigger.svelte | 7 + .../lib/components/ui/sidebar/constants.ts | 6 + .../components/ui/sidebar/context.svelte.ts | 79 + .../src/lib/components/ui/sidebar/index.ts | 75 + .../ui/sidebar/sidebar-content.svelte | 24 + .../ui/sidebar/sidebar-footer.svelte | 21 + .../ui/sidebar/sidebar-group-action.svelte | 36 + .../ui/sidebar/sidebar-group-content.svelte | 21 + .../ui/sidebar/sidebar-group-label.svelte | 34 + .../ui/sidebar/sidebar-group.svelte | 21 + .../ui/sidebar/sidebar-header.svelte | 21 + .../ui/sidebar/sidebar-input.svelte | 21 + .../ui/sidebar/sidebar-inset.svelte | 24 + .../ui/sidebar/sidebar-menu-action.svelte | 43 + .../ui/sidebar/sidebar-menu-badge.svelte | 29 + .../ui/sidebar/sidebar-menu-button.svelte | 106 + .../ui/sidebar/sidebar-menu-item.svelte | 21 + .../ui/sidebar/sidebar-menu-skeleton.svelte | 36 + .../ui/sidebar/sidebar-menu-sub-button.svelte | 43 + .../ui/sidebar/sidebar-menu-sub-item.svelte | 21 + .../ui/sidebar/sidebar-menu-sub.svelte | 25 + .../components/ui/sidebar/sidebar-menu.svelte | 21 + .../ui/sidebar/sidebar-provider.svelte | 53 + .../components/ui/sidebar/sidebar-rail.svelte | 36 + .../ui/sidebar/sidebar-separator.svelte | 19 + .../ui/sidebar/sidebar-trigger.svelte | 35 + .../lib/components/ui/sidebar/sidebar.svelte | 101 + .../src/lib/components/ui/skeleton/index.ts | 7 + .../components/ui/skeleton/skeleton.svelte | 17 + .../src/lib/components/ui/textarea/index.ts | 7 + .../components/ui/textarea/textarea.svelte | 22 + .../src/lib/components/ui/tooltip/index.ts | 21 + .../ui/tooltip/tooltip-content.svelte | 47 + .../ui/tooltip/tooltip-trigger.svelte | 7 + .../webui/src/lib/components/ui/utils.ts | 13 + .../webui/src/lib/constants/auto-scroll.ts | 3 + .../webui/src/lib/constants/debounce.ts | 1 + .../webui/src/lib/constants/input-classes.ts | 6 + .../src/lib/constants/max-bundle-size.ts | 1 + .../src/lib/constants/processing-info.ts | 1 + .../src/lib/constants/settings-config.ts | 84 + .../src/lib/constants/supported-file-types.ts | 180 + .../webui/src/lib/constants/tooltip-config.ts | 1 + .../webui/src/lib/constants/viewport.ts | 1 + tools/server/webui/src/lib/enums/files.ts | 178 + .../webui/src/lib/hooks/is-mobile.svelte.ts | 8 + .../lib/hooks/use-processing-state.svelte.ts | 173 + tools/server/webui/src/lib/services/chat.ts | 715 + .../server/webui/src/lib/services/context.ts | 102 + tools/server/webui/src/lib/services/index.ts | 3 + tools/server/webui/src/lib/services/slots.ts | 254 + .../webui/src/lib/stores/chat.svelte.ts | 1394 ++ tools/server/webui/src/lib/stores/database.ts | 349 + .../webui/src/lib/stores/server.svelte.ts | 184 + .../webui/src/lib/stores/settings.svelte.ts | 206 + tools/server/webui/src/lib/types/api.d.ts | 252 + tools/server/webui/src/lib/types/chat.d.ts | 34 + .../server/webui/src/lib/types/database.d.ts | 55 + .../server/webui/src/lib/types/settings.d.ts | 50 + .../webui/src/lib/utils/api-key-validation.ts | 45 + .../webui/src/lib/utils/audio-recording.ts | 226 + .../src/lib/utils/autoresize-textarea.ts | 10 + tools/server/webui/src/lib/utils/branching.ts | 283 + .../src/lib/utils/convert-files-to-extra.ts | 188 + tools/server/webui/src/lib/utils/copy.ts | 71 + .../webui/src/lib/utils/file-preview.ts | 32 + tools/server/webui/src/lib/utils/file-type.ts | 81 + .../src/lib/utils/modality-file-validation.ts | 184 + .../webui/src/lib/utils/pdf-processing.ts | 150 + .../src/lib/utils/process-uploaded-files.ts | 130 + .../server/webui/src/lib/utils/svg-to-png.ts | 71 + .../server/webui/src/lib/utils/text-files.ts | 83 + tools/server/webui/src/lib/utils/thinking.ts | 90 + .../server/webui/src/lib/utils/webp-to-png.ts | 73 + tools/server/webui/src/main.tsx | 10 - tools/server/webui/src/routes/+error.svelte | 70 + tools/server/webui/src/routes/+layout.svelte | 176 + tools/server/webui/src/routes/+layout.ts | 3 + tools/server/webui/src/routes/+page.svelte | 19 + tools/server/webui/src/routes/+page.ts | 6 + .../webui/src/routes/chat/[id]/+page.svelte | 81 + .../webui/src/routes/chat/[id]/+page.ts | 6 + .../webui/src/routes/page.svelte.test.ts | 11 + .../webui/src/stories/ChatForm.stories.svelte | 182 + .../src/stories/ChatMessage.stories.svelte | 146 + .../stories/ChatSettingsDialog.stories.svelte | 26 + .../src/stories/ChatSidebar.stories.svelte | 97 + .../server/webui/src/stories/Introduction.mdx | 44 + .../stories/MarkdownContent.stories.svelte | 131 + .../webui/src/stories/fixtures/ai-tutorial.ts | 164 + .../webui/src/stories/fixtures/api-docs.ts | 160 + .../webui/src/stories/fixtures/assets/1.jpg | Bin 0 -> 44891 bytes .../assets/beautiful-flowers-lotus.webp | Bin 0 -> 817630 bytes .../src/stories/fixtures/assets/example.pdf | Bin 0 -> 351048 bytes .../src/stories/fixtures/assets/hf-logo.svg | 8 + .../webui/src/stories/fixtures/blog-post.ts | 125 + .../src/stories/fixtures/data-analysis.ts | 124 + .../webui/src/stories/fixtures/empty.ts | 2 + .../src/stories/fixtures/math-formulas.ts | 156 + .../webui/src/stories/fixtures/readme.ts | 136 + .../src/stories/fixtures/storybook-mocks.ts | 50 + tools/server/webui/src/utils/app.context.tsx | 412 - tools/server/webui/src/utils/common.tsx | 74 - tools/server/webui/src/utils/llama-vscode.ts | 62 - tools/server/webui/src/utils/misc.ts | 200 - tools/server/webui/src/utils/storage.ts | 294 - tools/server/webui/src/utils/types.ts | 138 - tools/server/webui/src/vite-env.d.ts | 1 - tools/server/webui/static/favicon.svg | 1 + tools/server/webui/static/loading.html | 12 + tools/server/webui/svelte.config.js | 25 + tools/server/webui/tailwind.config.js | 16 - tools/server/webui/tsconfig.app.json | 26 - tools/server/webui/tsconfig.json | 22 +- tools/server/webui/tsconfig.node.json | 24 - tools/server/webui/vite.config.ts | 183 +- tools/server/webui/vitest-setup-client.ts | 2 + 288 files changed, 25749 insertions(+), 11502 deletions(-) create mode 100644 .windsurf/rules/css-architecture.md create mode 100644 .windsurf/rules/sveltekit-architecture.md create mode 100644 .windsurf/rules/tests.md create mode 100644 .windsurf/rules/typescript-architecture.md create mode 100644 tools/server/webui/.npmrc create mode 100644 tools/server/webui/.prettierrc create mode 100644 tools/server/webui/.storybook/ModeWatcherDecorator.svelte create mode 100644 tools/server/webui/.storybook/TooltipProviderDecorator.svelte create mode 100644 tools/server/webui/.storybook/main.ts create mode 100644 tools/server/webui/.storybook/preview.ts create mode 100644 tools/server/webui/.storybook/vitest.setup.ts create mode 100644 tools/server/webui/README.md create mode 100644 tools/server/webui/components.json create mode 100644 tools/server/webui/e2e/demo.test.ts delete mode 100644 tools/server/webui/index.html create mode 100644 tools/server/webui/playwright.config.ts delete mode 100644 tools/server/webui/postcss.config.js delete mode 100644 tools/server/webui/public/demo-conversation.json create mode 100755 tools/server/webui/scripts/install-git-hooks.sh create mode 100755 tools/server/webui/scripts/post-build.sh delete mode 100644 tools/server/webui/src/App.tsx delete mode 100644 tools/server/webui/src/Config.ts create mode 100644 tools/server/webui/src/app.css create mode 100644 tools/server/webui/src/app.d.ts create mode 100644 tools/server/webui/src/app.html delete mode 100644 tools/server/webui/src/components/CanvasPyInterpreter.tsx delete mode 100644 tools/server/webui/src/components/ChatInputExtraContextItem.tsx delete mode 100644 tools/server/webui/src/components/ChatMessage.tsx delete mode 100644 tools/server/webui/src/components/ChatScreen.tsx delete mode 100644 tools/server/webui/src/components/Header.tsx delete mode 100644 tools/server/webui/src/components/MarkdownDisplay.tsx delete mode 100644 tools/server/webui/src/components/ModalProvider.tsx delete mode 100644 tools/server/webui/src/components/SettingDialog.tsx delete mode 100644 tools/server/webui/src/components/Sidebar.tsx delete mode 100644 tools/server/webui/src/components/useChatExtraContext.tsx delete mode 100644 tools/server/webui/src/components/useChatScroll.tsx delete mode 100644 tools/server/webui/src/components/useChatTextarea.ts create mode 100644 tools/server/webui/src/demo.spec.ts delete mode 100644 tools/server/webui/src/index.scss create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatAttachments/ChatAttachmentFilePreview.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatAttachments/ChatAttachmentImagePreview.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatAttachments/ChatAttachmentPreviewDialog.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatAttachments/ChatAttachmentsList.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatForm/ChatForm.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormActionFileAttachments.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormActionRecord.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormActions.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormFileInputInvisible.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormHelperText.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormTextarea.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageActions.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageAssistant.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageBranchingControls.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageThinkingBlock.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageUser.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessages.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatProcessingInfo.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatScreen/ChatScreen.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatScreen/ChatScreenDragOverlay.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatScreen/ChatScreenHeader.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettingsDialog.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettingsFooter.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettingsSection.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatSidebar/ChatSidebar.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatSidebar/ChatSidebarActions.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatSidebar/ChatSidebarConversationItem.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatSidebar/ChatSidebarSearch.svelte create mode 100644 tools/server/webui/src/lib/components/app/chat/ChatSidebar/handle-mobile-sidebar-item-click.ts create mode 100644 tools/server/webui/src/lib/components/app/dialogs/ConfirmationDialog.svelte create mode 100644 tools/server/webui/src/lib/components/app/dialogs/ConversationTitleUpdateDialog.svelte create mode 100644 tools/server/webui/src/lib/components/app/dialogs/EmptyFileAlertDialog.svelte create mode 100644 tools/server/webui/src/lib/components/app/dialogs/MaximumContextAlertDialog.svelte create mode 100644 tools/server/webui/src/lib/components/app/index.ts create mode 100644 tools/server/webui/src/lib/components/app/misc/ActionButton.svelte create mode 100644 tools/server/webui/src/lib/components/app/misc/ActionDropdown.svelte create mode 100644 tools/server/webui/src/lib/components/app/misc/KeyboardShortcutInfo.svelte create mode 100644 tools/server/webui/src/lib/components/app/misc/MarkdownContent.svelte create mode 100644 tools/server/webui/src/lib/components/app/server/ServerErrorSplash.svelte create mode 100644 tools/server/webui/src/lib/components/app/server/ServerInfo.svelte create mode 100644 tools/server/webui/src/lib/components/app/server/ServerLoadingSplash.svelte create mode 100644 tools/server/webui/src/lib/components/app/server/ServerStatus.svelte create mode 100644 tools/server/webui/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte create mode 100644 tools/server/webui/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte create mode 100644 tools/server/webui/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte create mode 100644 tools/server/webui/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte create mode 100644 tools/server/webui/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte create mode 100644 tools/server/webui/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte create mode 100644 tools/server/webui/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte create mode 100644 tools/server/webui/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte create mode 100644 tools/server/webui/src/lib/components/ui/alert-dialog/alert-dialog-trigger.svelte create mode 100644 tools/server/webui/src/lib/components/ui/alert-dialog/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/badge/badge.svelte create mode 100644 tools/server/webui/src/lib/components/ui/badge/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/button/button.svelte create mode 100644 tools/server/webui/src/lib/components/ui/button/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/card/card-action.svelte create mode 100644 tools/server/webui/src/lib/components/ui/card/card-content.svelte create mode 100644 tools/server/webui/src/lib/components/ui/card/card-description.svelte create mode 100644 tools/server/webui/src/lib/components/ui/card/card-footer.svelte create mode 100644 tools/server/webui/src/lib/components/ui/card/card-header.svelte create mode 100644 tools/server/webui/src/lib/components/ui/card/card-title.svelte create mode 100644 tools/server/webui/src/lib/components/ui/card/card.svelte create mode 100644 tools/server/webui/src/lib/components/ui/card/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/checkbox/checkbox.svelte create mode 100644 tools/server/webui/src/lib/components/ui/checkbox/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/collapsible/collapsible-content.svelte create mode 100644 tools/server/webui/src/lib/components/ui/collapsible/collapsible-trigger.svelte create mode 100644 tools/server/webui/src/lib/components/ui/collapsible/collapsible.svelte create mode 100644 tools/server/webui/src/lib/components/ui/collapsible/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/dialog/dialog-close.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dialog/dialog-content.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dialog/dialog-description.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dialog/dialog-footer.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dialog/dialog-header.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dialog/dialog-overlay.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dialog/dialog-title.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dialog/dialog-trigger.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dialog/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-content.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-group.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-item.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-label.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-separator.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-trigger.svelte create mode 100644 tools/server/webui/src/lib/components/ui/dropdown-menu/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/input/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/input/input.svelte create mode 100644 tools/server/webui/src/lib/components/ui/label/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/label/label.svelte create mode 100644 tools/server/webui/src/lib/components/ui/scroll-area/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/scroll-area/scroll-area-scrollbar.svelte create mode 100644 tools/server/webui/src/lib/components/ui/scroll-area/scroll-area.svelte create mode 100644 tools/server/webui/src/lib/components/ui/select/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/select/select-content.svelte create mode 100644 tools/server/webui/src/lib/components/ui/select/select-group-heading.svelte create mode 100644 tools/server/webui/src/lib/components/ui/select/select-group.svelte create mode 100644 tools/server/webui/src/lib/components/ui/select/select-item.svelte create mode 100644 tools/server/webui/src/lib/components/ui/select/select-label.svelte create mode 100644 tools/server/webui/src/lib/components/ui/select/select-scroll-down-button.svelte create mode 100644 tools/server/webui/src/lib/components/ui/select/select-scroll-up-button.svelte create mode 100644 tools/server/webui/src/lib/components/ui/select/select-separator.svelte create mode 100644 tools/server/webui/src/lib/components/ui/select/select-trigger.svelte create mode 100644 tools/server/webui/src/lib/components/ui/separator/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/separator/separator.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sheet/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/sheet/sheet-close.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sheet/sheet-content.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sheet/sheet-description.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sheet/sheet-footer.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sheet/sheet-header.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sheet/sheet-overlay.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sheet/sheet-title.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sheet/sheet-trigger.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/constants.ts create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/context.svelte.ts create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-content.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-footer.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-group-action.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-group-content.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-group-label.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-group.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-header.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-input.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-inset.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-menu-action.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-menu-badge.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-menu-button.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-menu-item.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-menu-skeleton.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-menu-sub-button.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-menu-sub-item.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-menu-sub.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-menu.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-provider.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-rail.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-separator.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar-trigger.svelte create mode 100644 tools/server/webui/src/lib/components/ui/sidebar/sidebar.svelte create mode 100644 tools/server/webui/src/lib/components/ui/skeleton/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/skeleton/skeleton.svelte create mode 100644 tools/server/webui/src/lib/components/ui/textarea/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/textarea/textarea.svelte create mode 100644 tools/server/webui/src/lib/components/ui/tooltip/index.ts create mode 100644 tools/server/webui/src/lib/components/ui/tooltip/tooltip-content.svelte create mode 100644 tools/server/webui/src/lib/components/ui/tooltip/tooltip-trigger.svelte create mode 100644 tools/server/webui/src/lib/components/ui/utils.ts create mode 100644 tools/server/webui/src/lib/constants/auto-scroll.ts create mode 100644 tools/server/webui/src/lib/constants/debounce.ts create mode 100644 tools/server/webui/src/lib/constants/input-classes.ts create mode 100644 tools/server/webui/src/lib/constants/max-bundle-size.ts create mode 100644 tools/server/webui/src/lib/constants/processing-info.ts create mode 100644 tools/server/webui/src/lib/constants/settings-config.ts create mode 100644 tools/server/webui/src/lib/constants/supported-file-types.ts create mode 100644 tools/server/webui/src/lib/constants/tooltip-config.ts create mode 100644 tools/server/webui/src/lib/constants/viewport.ts create mode 100644 tools/server/webui/src/lib/enums/files.ts create mode 100644 tools/server/webui/src/lib/hooks/is-mobile.svelte.ts create mode 100644 tools/server/webui/src/lib/hooks/use-processing-state.svelte.ts create mode 100644 tools/server/webui/src/lib/services/chat.ts create mode 100644 tools/server/webui/src/lib/services/context.ts create mode 100644 tools/server/webui/src/lib/services/index.ts create mode 100644 tools/server/webui/src/lib/services/slots.ts create mode 100644 tools/server/webui/src/lib/stores/chat.svelte.ts create mode 100644 tools/server/webui/src/lib/stores/database.ts create mode 100644 tools/server/webui/src/lib/stores/server.svelte.ts create mode 100644 tools/server/webui/src/lib/stores/settings.svelte.ts create mode 100644 tools/server/webui/src/lib/types/api.d.ts create mode 100644 tools/server/webui/src/lib/types/chat.d.ts create mode 100644 tools/server/webui/src/lib/types/database.d.ts create mode 100644 tools/server/webui/src/lib/types/settings.d.ts create mode 100644 tools/server/webui/src/lib/utils/api-key-validation.ts create mode 100644 tools/server/webui/src/lib/utils/audio-recording.ts create mode 100644 tools/server/webui/src/lib/utils/autoresize-textarea.ts create mode 100644 tools/server/webui/src/lib/utils/branching.ts create mode 100644 tools/server/webui/src/lib/utils/convert-files-to-extra.ts create mode 100644 tools/server/webui/src/lib/utils/copy.ts create mode 100644 tools/server/webui/src/lib/utils/file-preview.ts create mode 100644 tools/server/webui/src/lib/utils/file-type.ts create mode 100644 tools/server/webui/src/lib/utils/modality-file-validation.ts create mode 100644 tools/server/webui/src/lib/utils/pdf-processing.ts create mode 100644 tools/server/webui/src/lib/utils/process-uploaded-files.ts create mode 100644 tools/server/webui/src/lib/utils/svg-to-png.ts create mode 100644 tools/server/webui/src/lib/utils/text-files.ts create mode 100644 tools/server/webui/src/lib/utils/thinking.ts create mode 100644 tools/server/webui/src/lib/utils/webp-to-png.ts delete mode 100644 tools/server/webui/src/main.tsx create mode 100644 tools/server/webui/src/routes/+error.svelte create mode 100644 tools/server/webui/src/routes/+layout.svelte create mode 100644 tools/server/webui/src/routes/+layout.ts create mode 100644 tools/server/webui/src/routes/+page.svelte create mode 100644 tools/server/webui/src/routes/+page.ts create mode 100644 tools/server/webui/src/routes/chat/[id]/+page.svelte create mode 100644 tools/server/webui/src/routes/chat/[id]/+page.ts create mode 100644 tools/server/webui/src/routes/page.svelte.test.ts create mode 100644 tools/server/webui/src/stories/ChatForm.stories.svelte create mode 100644 tools/server/webui/src/stories/ChatMessage.stories.svelte create mode 100644 tools/server/webui/src/stories/ChatSettingsDialog.stories.svelte create mode 100644 tools/server/webui/src/stories/ChatSidebar.stories.svelte create mode 100644 tools/server/webui/src/stories/Introduction.mdx create mode 100644 tools/server/webui/src/stories/MarkdownContent.stories.svelte create mode 100644 tools/server/webui/src/stories/fixtures/ai-tutorial.ts create mode 100644 tools/server/webui/src/stories/fixtures/api-docs.ts create mode 100644 tools/server/webui/src/stories/fixtures/assets/1.jpg create mode 100644 tools/server/webui/src/stories/fixtures/assets/beautiful-flowers-lotus.webp create mode 100644 tools/server/webui/src/stories/fixtures/assets/example.pdf create mode 100644 tools/server/webui/src/stories/fixtures/assets/hf-logo.svg create mode 100644 tools/server/webui/src/stories/fixtures/blog-post.ts create mode 100644 tools/server/webui/src/stories/fixtures/data-analysis.ts create mode 100644 tools/server/webui/src/stories/fixtures/empty.ts create mode 100644 tools/server/webui/src/stories/fixtures/math-formulas.ts create mode 100644 tools/server/webui/src/stories/fixtures/readme.ts create mode 100644 tools/server/webui/src/stories/fixtures/storybook-mocks.ts delete mode 100644 tools/server/webui/src/utils/app.context.tsx delete mode 100644 tools/server/webui/src/utils/common.tsx delete mode 100644 tools/server/webui/src/utils/llama-vscode.ts delete mode 100644 tools/server/webui/src/utils/misc.ts delete mode 100644 tools/server/webui/src/utils/storage.ts delete mode 100644 tools/server/webui/src/utils/types.ts delete mode 100644 tools/server/webui/src/vite-env.d.ts create mode 100644 tools/server/webui/static/favicon.svg create mode 100644 tools/server/webui/static/loading.html create mode 100644 tools/server/webui/svelte.config.js delete mode 100644 tools/server/webui/tailwind.config.js delete mode 100644 tools/server/webui/tsconfig.app.json delete mode 100644 tools/server/webui/tsconfig.node.json create mode 100644 tools/server/webui/vitest-setup-client.ts diff --git a/.editorconfig b/.editorconfig index c90b171f55..0722ac73c8 100644 --- a/.editorconfig +++ b/.editorconfig @@ -52,3 +52,11 @@ insert_final_newline = unset [vendor/miniaudio/miniaudio.h] trim_trailing_whitespace = unset insert_final_newline = unset + +[tools/server/webui/**] +indent_style = unset +indent_size = unset +end_of_line = unset +charset = unset +trim_trailing_whitespace = unset +insert_final_newline = unset diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index f6da488576..1ea1300c2e 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -76,51 +76,206 @@ jobs: run: | pip install -r tools/server/tests/requirements.txt - # Setup nodejs (to be used for verifying bundled index.html) - - uses: actions/setup-node@v4 + webui-setup: + name: WebUI Setup + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 with: - node-version: '22.11.0' + fetch-depth: 0 + ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }} - - name: WebUI - Install dependencies - id: webui_lint + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + cache: "npm" + cache-dependency-path: "tools/server/webui/package-lock.json" + + - name: Cache node_modules + uses: actions/cache@v4 + id: cache-node-modules + with: + path: tools/server/webui/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('tools/server/webui/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node-modules- + + - name: Install dependencies + if: steps.cache-node-modules.outputs.cache-hit != 'true' + run: npm ci + working-directory: tools/server/webui + + webui-check: + needs: webui-setup + name: WebUI Check + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }} + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + + - name: Restore node_modules cache + uses: actions/cache@v4 + with: + path: tools/server/webui/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('tools/server/webui/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node-modules- + + - name: Run type checking + run: npm run check + working-directory: tools/server/webui + + - name: Run linting + run: npm run lint + working-directory: tools/server/webui + + webui-build: + needs: webui-check + name: WebUI Build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }} + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + + - name: Restore node_modules cache + uses: actions/cache@v4 + with: + path: tools/server/webui/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('tools/server/webui/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node-modules- + + - name: Build application + run: npm run build + working-directory: tools/server/webui + + webui-tests: + needs: webui-build + name: Run WebUI tests + permissions: + contents: read + + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + + - name: Restore node_modules cache + uses: actions/cache@v4 + with: + path: tools/server/webui/node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('tools/server/webui/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node-modules- + + - name: Install Playwright browsers + run: npx playwright install --with-deps + working-directory: tools/server/webui + + - name: Build Storybook + run: npm run build-storybook + working-directory: tools/server/webui + + - name: Run Client tests + run: npm run test:client + working-directory: tools/server/webui + + - name: Run Server tests + run: npm run test:server + working-directory: tools/server/webui + + - name: Run UI tests + run: npm run test:ui + working-directory: tools/server/webui + + - name: Run E2E tests + run: npm run test:e2e + working-directory: tools/server/webui + + server-build: + needs: [webui-tests] + runs-on: ubuntu-latest + + strategy: + matrix: + sanitizer: [ADDRESS, UNDEFINED] # THREAD is broken + build_type: [RelWithDebInfo] + include: + - build_type: Release + sanitizer: "" + fail-fast: false # While -DLLAMA_SANITIZE_THREAD=ON is broken + + steps: + - name: Dependencies + id: depends run: | - cd tools/server/webui - npm ci + sudo apt-get update + sudo apt-get -y install \ + build-essential \ + xxd \ + git \ + cmake \ + curl \ + wget \ + language-pack-en \ + libcurl4-openssl-dev - - name: WebUI - Check code format - id: webui_format + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }} + + - name: Python setup + id: setup_python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Tests dependencies + id: test_dependencies run: | - git config --global --add safe.directory $(realpath .) - cd tools/server/webui - git status + pip install -r tools/server/tests/requirements.txt - npm run format - git status - modified_files="$(git status -s)" - echo "Modified files: ${modified_files}" - if [ -n "${modified_files}" ]; then - echo "Files do not follow coding style. To fix: npm run format" - echo "${modified_files}" - exit 1 - fi + - name: Setup Node.js for WebUI + uses: actions/setup-node@v4 + with: + node-version: "22" + cache: "npm" + cache-dependency-path: "tools/server/webui/package-lock.json" - - name: Verify bundled index.html - id: verify_server_index_html - run: | - git config --global --add safe.directory $(realpath .) - cd tools/server/webui - git status + - name: Install WebUI dependencies + run: npm ci + working-directory: tools/server/webui - npm run build - git status - modified_files="$(git status -s)" - echo "Modified files: ${modified_files}" - if [ -n "${modified_files}" ]; then - echo "Repository is dirty or server/webui is not built as expected" - echo "Hint: You may need to follow Web UI build guide in server/README.md" - echo "${modified_files}" - exit 1 - fi + - name: Build WebUI + run: npm run build + working-directory: tools/server/webui - name: Build (no OpenMP) id: cmake_build_no_openmp diff --git a/.gitignore b/.gitignore index 595831accb..e1ecdb7a81 100644 --- a/.gitignore +++ b/.gitignore @@ -148,3 +148,7 @@ poetry.toml /run-vim.sh /run-chat.sh .ccache/ + +# Code Workspace +*.code-workspace + diff --git a/.windsurf/rules/css-architecture.md b/.windsurf/rules/css-architecture.md new file mode 100644 index 0000000000..10a183585c --- /dev/null +++ b/.windsurf/rules/css-architecture.md @@ -0,0 +1,7 @@ +--- +trigger: manual +--- + +#### Tailwind & CSS + +- We are using Tailwind v4 which uses oklch colors so we now want to refer to the CSS vars directly, without wrapping it with any color function like `hsla/hsl`, `rgba` etc. diff --git a/.windsurf/rules/sveltekit-architecture.md b/.windsurf/rules/sveltekit-architecture.md new file mode 100644 index 0000000000..c2c0aa07ce --- /dev/null +++ b/.windsurf/rules/sveltekit-architecture.md @@ -0,0 +1,48 @@ +--- +trigger: manual +--- + +# Coding rules + +## Svelte & SvelteKit + +### Services vs Stores Separation Pattern + +#### `lib/services/` - Pure Business Logic + +- **Purpose**: Stateless business logic and external communication +- **Contains**: + - API calls to external services (ApiService) + - Pure business logic functions (ChatService, etc.) +- **Rules**: + - NO Svelte runes ($state, $derived, $effect) + - NO reactive state management + - Pure functions and classes only + - Can import types but not stores + - Focus on "how" - implementation details + +#### `lib/stores/` - Reactive State Management + +- **Purpose**: Svelte-specific reactive state with runes +- **Contains**: + - Reactive state classes with $state, $derived, $effect + - Database operations (DatabaseStore) + - UI-focused state management + - Store orchestration logic +- **Rules**: + - USE Svelte runes for reactivity + - Import and use services for business logic + - NO direct database operations + - NO direct API calls (use services) + - Focus on "what" - reactive state for UI + +#### Enforcement + +- Services should be testable without Svelte +- Stores should leverage Svelte's reactivity system +- Clear separation: services handle data, stores handle state +- Services can be reused across multiple stores + +#### Misc + +- Always use `let` for $derived state variables diff --git a/.windsurf/rules/tests.md b/.windsurf/rules/tests.md new file mode 100644 index 0000000000..e388fa9544 --- /dev/null +++ b/.windsurf/rules/tests.md @@ -0,0 +1,9 @@ +--- +trigger: manual +--- + +# Automated Tests + +## General rules + +- NEVER include any test code in the production code - we should always have it in a separate dedicated files diff --git a/.windsurf/rules/typescript-architecture.md b/.windsurf/rules/typescript-architecture.md new file mode 100644 index 0000000000..a61ff6b98f --- /dev/null +++ b/.windsurf/rules/typescript-architecture.md @@ -0,0 +1,7 @@ +--- +trigger: manual +--- + +## TypeScript + +- Add JSDocs for functions diff --git a/tools/server/public/index.html.gz b/tools/server/public/index.html.gz index 0e3e1f9834a7f22c5c3bc4445914f20cc1c6579d..909fa1cceb81d4030c5a11b475304ba206a8d95b 100644 GIT binary patch literal 842295 zcmV($K;yq3iwFP!000020PKBxcN;g7@83J0g5x>4YdIv%ryle;XB5kEG!x3>SRO}? za&lT^i)@LnWs{ajUER-qe^q!i(2ahOl4p|Hne19@pin3j3WWktDE#@4mC7GVrPE;$ zmhgXGDGVlqkzcwD@Xy6E81+lj%hFgOUyj)Dj-XiFEqtU7~@F)J< zTloFb#fl4v(zE%r=Z7JcI+~Uy(?!Ye2MYiI0awxw=6-K6S`ozQv^4gv{Zen}O$L5g zF3tT*e_mQl8R3(U{zd7-@sm=B0>N}r3MQQX(66<;Zard&|kcKvRqtN_MeoVbJi%BT%+>Q z%O^o^I(bqWf{>R_`rg9p1Y>XDKMy|-zP=rgUR-#gzuPMR{ri)~r`5Mj@8gd(@2D1Z zuRb)6gKt|GA8(hvbuI9||FPCPntuMF*>Cn&?Phn?{@fe)K6kGUZ@RAz*8OoWIDRu6 zc^~`JepG(;3BP-dlhvn>|5)}K!_WO!_0gxR>)NOBUxV(e`t{lPyWoe@!Of?S?-p;5 z4sT9^TI=oUyVcv%>znSIe<1%XIR5_A?9)&ER~OB}!SU7Mp!@1@b#i((uxXsNF5Zlm zUKXvV*X_6O4+Pxmc<^aF3NJw4#rR

HYDbKmNz6*BE`ixB~s}Tertot$pxBwqZEz zz4@^C^zp2H^5#=;c6GS;^yaU_Gtf(PQX9HQXK2H9t$TId?jC(RLjD-^t$gCgtK&g$ za!vFHf4{n&9KRV||NZ@6*WR1&Za%#)#*^;phvv!YKd!os*AmA`c=prD8hFOu$J?-n zHhCZ49UPB8%`V>Du7CLWkMY~nAIE3o{DY{ z105s>pz);Uf4m(jKD-6bKQ)f0-K!pOb#GDEx*J^Y9ls&I+$=7d-ww|jqndv@9du8_ z;D>c<|A$8J>%YG`m~7oQ=#_5cALDL===rPS)yhBRzW@5~Z+fC{CMVOgpS~Rx?3)#O zWeu6DDI8~w+hMQS)qSkS7|Zha-GcIYygs=)LA&1Fkc{`7Mq`FK3OD z)5Dv$M;~e@N7s-G;F-;h=fnE#Y44`H?l#_@a{BGt_pRp1 z5sf3@y6UY?j?Ql1tp_)d#pc`7!7XS2{jb~I(|4ff9nt}N^#T1mSe>k2*WMnz10Is` z!5Xxoe?A!SX!li*_}l2Nd+qM}8g1+%{TT4CR|I#m9-#f`0|5`-L55BTpy_OlGLWUi z#=G@v$ZHFVI7a9@*E&H^2p64_eeV&<5VWYoZ;s6VwfUgFk1ecYyxpcC64h%M-{7+5_1@-nzGj zT%a9Y;vwq2UcWs$UPtXXz7c&lXj1)X59F}Na)xyD@fqaiU6bmOyh6Fx;MEz@An!-u z>CphZ{PF07^~(V8)UVJD>od`R7#HX#wCNr3@J8^x7lMAs>!1O?Q(H7VWO@nygEu5g zuhFm2PivCn<2uF=#t+J@2PB6L;0*B%Jb*od+(9l`f2@Z`z_mi(0e2VuA;$@~c>sQ6 zJg*0!^FtFfLms%zb?_B*Kn9Nn;L||$T^s!Xx{qro>kp8n*CazL>Qm%{R?vQm{#;{x zoQg4rc^3TuIlKBmX^`31jg#-Dn9KFtvhE+zJdmbiKh#N=ch{u1Kh*wq8j5-KRsA#c z%9Z!ikL|a?;qBYi@#nu^-F*I}bnQd+A*J;=D<^A=Lz3_H zA>{oUvIx03JvoBxEg?G?Lp|t6@cIb4^wkZG!8Q84h53qg4|q@g(mHvCaemc>Zh-EA z?hyLx8g(KceQV0w$r|!@)kQz?*lfU_xdrZ9)V+j$YC-NGTLa*Ld|iDy0?kX%0otLT zp<^X{i|1ODWbu45J z^&F$E?;!gs{TSo-47^4Dy4%DU246;y@xvO%HNG)!*T)!pYRvV(NAwYNH`+@wj=6>O z*=xxD05p8Sn1XDdN}YLyxdXZZx)S^%-FXK41>+XF9diM6BF#l4+t+d~=#mZ>x)r(y zbkH2u?AE#%8)q1guer_8S3>q*-K>EJ`sf|n_5po>x&pnKxGmL4B(^KeP^fS^) z$AM<(#VgV^A26;_*L#A8j$6NjY)G3>;0Lc;(9;;x&{@!j&~@Dw({pr;wqfprodY~A ziN67Ons4bF{KFgsJuc`0e#}LpFCi-ezKQ;Ye*6G=BRv2)zk+Th_*2sBq_+>DFEl+( z=ugPaG3I>C9j70lD?T*e{vLEd@I`dMDyakBVO}_cJYd{Gwn;YR+`6JM1HRE*gRxC| z6uf>7eS6f!SUrZ_0o?)Hg6wQz;}EWQkT3MX70m^Qm^Tj_r$VQ*+>#w+=yZYW2rYyh zLQX+*7jr((#~7QK>oBfqK7)Ki{+O;h>>nC?G?(M=8T#h9g*s}GCD>#nbFfihLtx$# zb)1r{LMFiz{Kc5Syph?C9>x{fPe>zMa19y08iFPoZ|{JY=0&odUMreNE}=u;0YA+{ zJ(}N%rZv)`vyL$q4l&j-o>jY3XhOR&XTd&&&57||lXAQ{d@5g$VV9wAX)Zp6Z38<% zwt@JEG1Vho2U`Yfl=bz^$u;U&9|9NbFW`ZmN8PY_MSo*%e+_#HdjE>%3+Q3UTUNVC zCqnn2pJ1<&{wIC4CR=+$Is840;nf!z!|UW2zJ`5#jqwGW((cpLF^u_dNwy^PGtD)m zXY=~B&AOfD8QT_3m$fVK1bQ3a7-MAH9%2s5lr`ASXP}Gb*E7tSY-`K)6Z-Iq<^tIK zn1etY>}ML2sclcw6J$q{ZI6D!+Kc8^H6}^U*JNk(FpmQd#vAL2^+4FduoF!CGF?x= zjs>mY3+5r3`>-Aq?M|Z!W0v#>_;LiB1!F+-HcfZIRsgNwJ*^dJUL_u6>fq*E)PXUK zZ%}oLaVgd-8M-319b3rNG3j%xJ&ut!0DrO11zY1I_B{0Xn4HjFz@XRsv3>F8gB&k6 zyV!G>oCR2;o_@giCEao}Kp)KBuD<1Q{=>(Eo3oE6v;OzjyU5==4)*1KhZxJ-?Q`kz zR+D>WR~K)-!%9w%Tj(F&OOg9io9(4QpVB_p&Dl>sPLJO}$6VLY*In31G!N0b_ciHr z!8^zw#vs{ju$^Exk{t|N4QtRkUt_&@1pAI; zZjCuWjxX3#yq<*IkQ_jk$(GmhgnA*Hr(NiBrI$az<|UbaY$=#$TQ8mYJGnV+_W!-F|XH%XS8PmT|jF@T1Sw4!ghxKpgj<@ z3w3`W+f~)kgnf&4(Hfi5uc0Ssyg(M$WKWXKOZZ@8uElu4d`;_L*#ESS#vTi|pZ7JO zyFefIX)sYXI<^=10&0y0O23F$`Om+e~`_;0tUU>`Q?cO8>5DKNouwppp6q z@&)x2pAOyDlwYjJy@jH*iKW^XH4e z5AXgGE@wnpSbF;OY30VhxDFPT;c7MnuFhmS@ppDg-lSi8N+&5#$KHGpOe%|cFzy5s z99kfIr!<|TaAiDQSElm-jZ;}h!QONEl&8RMj*Uz(Q&r3)0_xqDXbT=4#8`S4b!V%7TDz}~5i&)YsnY30(^XWpAlAN_tSI*S6 zof=;IH}UeE7AqajJoMwLGWS3GINwnOh~(RN^2K!C_vaPv)=oGb1$~h|n0tNVU}ZK9 zfqXi#E794+#Lk~;_+KpJbKp7C7gJ|)xR^px+;sp|W=BO2a2{yac!?nc$qWWVk}M+w9p1Z6fP=Nc#2dxBXXJ%Lzh7DV^QoOPS&sdA(5qYq zgXP?J=TR>v>d^&3MY5~Hq1T_@bZVtq$zZ%lt%%X!fUkI?+0Zi>5@1B5o1DnZJQqqU zKaO~g_P7dhdRBdD1&v&Han52WM~&0VODfKKuv44eCbLA9f4aQ9Oy;>OoGurnhLWS~ zVzi7Ae=#TNn&8~nPA6?W_re&(5aJc9Xghhh^raGsa|UBShGI$*wTSBwZ?U8k?O3Wm z!=Sd3NHeNNr)9YM$jpulgqarx>lhJAAG>&`vr?F-0o>fw*(q$*`Dy&s04_%BOee>6 zuAB8ywxbUSJ~8Zl9M303h~~s6PsF!3!GS&%tn_`%#+_Q2NM{EHLOq$z#|n>;@2ok> zhnK?$vvJ?&`8%E)V1gCDdebH7s!PH_Lt2P_$2yo?(M$ixu(!GOf8?g2LR%w5?T5Ih^u!FhpPfXB8wMl5}2c>!o#r6*3 zun`Hn4JM&}&|=s|y=B6BD+6u2U9AJO)S0eUgQ5N6XyC*2G&1k^;LX7*~M zJ@>~9GlAI*&!S2=?lfBQ#BsmV*pDZU2AyUjp4hk@by|tkHd1#JSa*@SCt(-trdTaID2lGvCTp+62VxcePQYAlPB_k{5w4b#ekYp6gr+kyg>0Yk^fL|CnJ zvNU@!3P;|p-v`aRjW*KBSYC!K4VvFFjTvI4h{j4NnujnSk`2`9EiYiEUifP$il^09 zxmK<=$~^YPtN;sX7EC(yPpKZ3h&SFGYtc)ZUr3iIu-S41N#TD>jj-gvy9>NVK{6Id zF8A4><1Y-LdL#NIS=x<0(S$~eKl}crw;V~G&dY>o-mBKzG-*0O7QvYKc)6U22{gUw zsxbH9r8f>ntIlU{{?wQnOfXWdX|R;Hqh}i$JhY;fD_OO$jaIZ5(_1pINbAUDAW~k4 zpDU<$vZ3yCZ4x$(|!-Ef#2Q=%g+NQx?{i#DD^UFq5)y zB%w4G%~TJTD>yb{B_WJ*me`p$hkbNEoZm@~)?O%+eF&y3WFKOsJd^99`t0`JySSKl zZUEpv{do~AM*c55cK`ML-c*j0h-zgeq*(p=eGe9G`TC*{xf##Ov$-#T zoZ=TBt|WtB%GfF|8u(BmYU76Ht3~kHCu~qe&_`oTb~M)^Wp)S2#V371hm8C??se=( z(sHP##M>$JNE~@HOg8GreTVlKFQ>g_NGtz4xw!9;Pxw9dGhsi5VOncI%@`_hb=MEV z87;a-K?q8qhwi7N@^Vxj`;+AzCyLDiS~%SY<3Sm2*X7TctEc6jH~9>)@Rt2xS`M)3 zGxp2=_`>g(rx#by$nmi@|)loRx`(P#hk2r#&VU5@_W*1WVcF#nsHJZtYm`Pu4%J80x z>^fnMq|aBseY%Bq6?Auk@afNEjJp8y(=X+pX+-=&Ti&uiT#9NV1oQ)qyOR?$hKJm< z^01T9z)n~iALUlOgvULJ4h$y%L)v=&kSV#-ZNE3R`FTHHZ}oe#8LT~T((^m?8x_s4 zxDs`!y?wb*L0#DRhpB}PQC2Op+nqbRLc!PGa!ykl&&y`bGM86j0D)hMkSH(KBUaNIVWrWS~y! zp^IsMb(ffQB&9leN6uGjK{@wjx?WM@=yrz2PZr?|nX&|jV1eQIwtD^-y^VDKyywmP zP)DB7o-!F5BRciDnqHt5@2j&ZG&)#_vq>PYP|w`iX`;8{fYcRnKo-yH=O7Ho(&N8G zBMftqbYBgzy*wGM?s}tO2FtOxcv{1H9RKaS;4L|ERtiL<=G3e#4}@Om1(33o=%-xO zR_M3ZiIH{cUBHru7`~Wd0=UGkWk*QZeO2Y45i!{N>Scf(m?(ok@2kqvjWV?DTg6ZuTQ1#w<&rvqUpPJumdFc=1jND-f|QVm(Ak%hXUQ8%-|ni{N?3e%Dh=Rdb= z=U<)w64A-WSzr_YO=XmTs%JnEvjkKl1B%)$pqd#_O%2t`fTA{u#{WZNB$)> zlKy1FG}2*+c7|!D!w}^RqZ!Sh%;|NdUb|cK((o4RAxdaO2@OtYM+t3CI5;@aDflgu z>_ke2dKKn0S}?%$OL}-Y#&SZK*x)Cfc+R|u%Evc0L%m6<@m&0oAdI7~VI+e3eYG;a zMY?5>J6TX6NdPR%Y(BV#_81C*I}fkBlI zN}~&)n$H=a%<7AX)fu47?Td)p8KBH?aG(gs(lL=r%fcj79%E`{puque1`-l*MzNQH0>{)DDE1VJgA5cnz0N>!pio>c zvH6Z9Kfw#qrJ1_D^sVikrBhTag%3;}h%qn1r_*^mZ^%7#!s8T63e8A4ccwgj&k#NCs(TflxOME16Y^igvR=NRa|vgc8dDA?-CpXXo@MSX|5GF&Rq$ z%H(oguo;>%3rMu9k;%b^VBvlyP5XkT^PhKHpNFuzBq)7}bO@rE!Jm}FO4nSpBaLM_ zCcv{>oq`QWB!oTkgQe29YzsKiSqXn`IHjnA0+ZAMdfo3 z8hN4@c^ea}0Ao8dZ7m=`A>ui(EanmzMnMiRTLcVz{&NfN0@Q%02&F{%ZP~ympHiay zUF@3M`IHjnqsegqPErsgsCFI;>kUgxh|`-3Y?`t{hiC}JE}LWKp+Ps$$m!DuDdd}+ z*_$EqCuag{W=*>S;{3UqRB@(9DcN%@L1fh|>fOzNpkBR!=1qqn#S1oNae)O1Fj*C` z{GdHqRkcK2yIGBf>lnf8Wzn-I=z$#W!q*0JBtZE~WKgN|r=?FQsER!!{?xxR$bc4UL4YRxO;-A){=A1t4_}XuK6F!34D& z*)$~F*D@fHt09}T5Kw?lndBiaXvdHjtc;3qN(6ureq-fRf{`t|!pIlhp#b*9mP3?J zXW%+lci8z?QHRCICuT=|CQ52$n(U8pKZ8+Y?C!F%5&h<{>U0khkbxr&RO1smJe}=I zh11Z^hUCo$LF3P=dvpQOJG91uj-x-c9O2J!i0$y}3OudUFV2_gIOM?2ly$~$Y~;tz z{HwT5L`%LL1A%wlv2i}8>qmeG+u}+2WsLy`}l{~V!PFGp=!z$*FWFs(~D6%k)o_6uY@mu7$3= z*!>E4o4OFFD;~;Y%K@XWaR3IFDWj&c1Fq3pQP#>epy>!U6__#s3x|pjGl_IDyAz)s z`KhyUNDJQvoTK4n3N^qu$|X4q3D>sLy6!z%r`n5 z2+18m92Mv!xP*~VNJ~x~BZL^C1oA8WgHg)q@Jz#oAv%c5Q4R+`l~XJxNHM2IH-*HR zMwG8EoVwvuu7sxpR{==BI`j{=HbFyJ!Ifg_OLl2thqyg?8JX^JE_Y1Xa z_mSEKJlpAw+Luxswa3yNK(s~EZgW+K8O*|VLf%++XjDWvCCUWmW7ZTw1mjB{)qhhBPgq2$Id9#T=LAU}}on8QN72*L;In7=$k0yo5iU zN)Q{FI$M~mI#V93rT+SAu1%sD_;;u`;pU`Nd^Zoy%LDHiUHH)VC^m zaVvmvqcRH^*#_|W&$!kI``s>pG!q0a`Uwzn+c!X@-*^H{`IBo<-h8xSn$=dVvET5U zd|sjeM}v%37%jk-r446Ds05}BPtV!$M#K8G3-6N|-g zk)cYPX;F*#Puc!Ff8Nw$<8XK1$f-RKbE=cOtgM-EbJzR%;#N)!op}{VGYD7T=Syrz zz@OUDEF)VFx+s=}t3)i^L{y3|O1MgJMg%v8>$lc^CLCu(a5DrxqkDu7NSPJEs?%Uw zYnVlBh^VB&U%MDzSc|}1fHdY@z#|th3$P76z_uLiqoiG25V=GvuB~Vg2(0;ugJ$$o z?#+h{1vkHjbm5IEZ8-#(Zr}jo{5hPA-M0j5wf)-W8@&*6NPg1}N4o3=H#j?@O5)z+P@j_&h7 z4$`PMFa2yvd`<h}MdA^iXXxncLWZ6m2o=kn&A-Hy!a(8OUf{*`q@OiPnlsrfhMz%V+=zFD!~wXpwEfYWpO!h+(7X zl361_*R(0$GjXT#T~+5E2bSgIoZcCXcRJit9z_dlZrqj(ggNs+mrR*RqX=x-f)v3i z?Hq+(r4V?|aI^IC;dDk19Wqg7%mjXi5Ro$|I+QLcm+gs|vb0CV0b+$^?TB7$ss(3M z+9YNjkv2NMPqbjikw^7KC+zM3wytuEsiTw;xRx48%rwL+5p~zd{2jNFeG$|Gk3M1x zJI*(kbqwQL&QW}yYu|zuNls`HT19!z-N{dQMDh(8BpDzygIEAaxUZi75ofP89Wo(h zr`)($UZqpvEN~i5bmE(dl3^N|Fm#|x$GKTBbfilMx>+!Es7pt>Suo^lIfEl^77V$^ zqFvcUvor3D+@TZ{?|jV24bTo@lFk<#F%*I2ngB}&=S9Hz3>^hDM>FqM3RunAELdjn zE&L@5z)Bi)Z)Cx8r_haUI}Ajs%!#A;0?>jJL%DsVu#R8zrU|eQ3+m?M<9newBvhK73Fltxo^>YCjwJPiOD**GUlr%<- z&$=f|P0xp9*ZCRkEi1_EJL&+{dL#pswF&OdM$(;edzQtU?!@Xo&At>1SVO9^Z^Z)E z5UcEKv4Az?D*ImSjP9>0*vt#8fQ%?eh2;8225(a#nYAO6wW*-YSw7g4E>lK;BIPY5 z0=NQ$nMvQ6)>U{*N2om`^re8KaE@tk98ObKMMrQ^bUA5y$c!B;(wsI+WPDU*ytu-@ zvMna#ySmZyX-`q~@hGtxJ%{&n;-{SA6(nNp>Kbrd=fpo66vrNm$E$JUxXy_?92dtO ziz=*fr}2Fgwx@9&$A50z2+~>@w;e*6aI3hxyTWc)uTQv#yj4+}R!|uCXwJz+x<}Wc z^UxAdgqWRSEyQ&@ENcWRqY2y40(lI?#l$#>9OV?_PGB@6-x)*Qh=wfVP-ep@EyEF) zi(nRzdAKE%(oHgKa}oRsHm?Q^$6oJ7yl3rbFCHh6B4~kt;dbmoCy;?y#EZ_xEMW3b zODL_*Mil2usDAeTl_}UVKm@(($_@5?!pPe~fan|rMe#-H8*f11Qvx6n7uIMeLwK+V z?~%KtLx}~2z^=j}*@RPxl4@}XW$a zY(0~yjnA~AE&yFvZfZt3<+Kdm=5}p}ZhdHzUs2vRr&+gSN1ZD$H>IqNPBGGHY&ir* z>^pMU5(Zybd}>BOHxG9ipWt@tY;qq$f<$YfsMFVmbfjW5)TV3KYo%5e- zztVr$DESq1o0rJtDJ$JJjXxSyD*@i{0W{w9i3x+;nJ2Fl9V}9pGv9zRHvbZjH5qxy zhn3=)iBy@On+y}yZciQ8>r3@E{;4!mn)uYeM($rFJPc5((2qR$-%!)xL}xc$ zHzd73t%k#4i_28#$M2}&kzty6jqA5VB-TGM!32{@B5OsuhJdM83U%dgsMT0KC0k7m z$!T>BHt=tt6`W1~@L_EH^}21NyXK(H4)*Fe-xZCJI+;V%yD2q6RO2LLqQf?$to8g| z(uJz3V$@34X~)ZV{0dky>HaUYM)FEeVNLWf8FLM|Y$$BjyEtO?Dd$dl!$rm5CsE>e zM#OjrGh~h~6!WIElB00FhAX8?68%H-?W2VB&BMECh+jJRqHQ(t$8ZX7B61|LP zB&yf&j3oU6o{<*4dS@hxm+nl9O1@ubCefR9#<%gnA6ZG(i+*~>w%_@qf8=(Ago2r& zB0Ou*MB_~yCKr+q1-fz_d`UhL=*o0*D)u;_D@WRFt}F*z?Kc6-(2)P(1Mwj)QOXd? zmMBC*`Hw{XN1_TzlrrA3B??>F|BXdh{c_U5E0zQovRKMuiYKH*L!%X) zFlH%6kN8CqN6Lc1l9Qry%PGRo%`(4boMSw3rJjE%tLRfk673cfl>LH)2t?$5#?g+- zW50)%UJRqw^?GD7^iL{61;OW#Q8EI?QJ0e}}EjXx#6pHFT=# zY6sGPN39V1O26&N@pr^dse+vR{QapXF)cb9^ShiiWAP7TP0F*ken$-zar_)@6cPGV zsY)GttX56p_3pH1y^WF$xHQB{Hc|>UP|kSqToj`O*-#_T;)k2ZCbYyWZoL?IMM4%X z0f8N2yt_u&WMkOrQVn80YL@yfIzKD6dru)?=&pk(Ck^x^p3|0*W<|kx0$xd);ywuI zIgtKof*_W{PW1q%*@y=-q2r4v5+&L66jladK4m6_FT~@e;yqsM+b@PNp`LRhQ6*VH^P~GpSx?ZIa7D;;yl_zAyqzrwcRY!} z$O`pI6qG&YF=G;S{x#=_)}B9YAq8m^g$WKd4`g+cY=k6AiHt{CA}UgT!(zd(Hli{S zI4i$8ieI{!)Mej%+f1J55y!`?y|H2K8M-`+$#LcGssd-=;yHM#M+7Izl2^zh9+N97 zl^QwIlhmr#BO~IGx`LF-=NG>Wp@};v+tZ0x3^uPn`^kfXHJc&dx1b>rBHm5TmND0@ zHed>(w}$%XFX3kF^Jq&x(wo)-RhY|)f#-V7H>bkL8?tykrrV^2p2X$+C2u*BEg;`G zO+!r344g7XvbNF?dzD0oR&{jYBlhw^ zyv7|0{Lj!_kKPwZIJ?Or46u0E z0SZvZEGl(6Iz2Zok{iXg7*g)^SQO>n@5#rv5jw2Yd;Sm?^=OaAc?+u3F<|npM0uC6 zlg>Nd1w3An+u?5%63YLd-_ZSXiB4dn^-dvtIngF0 zQftXTFBP5RPB}f3hS`SK33+uzHWR&PRH5lA!cNP4j+&f{#t3Fx(3CeDK%tU1w&sg9 zO}zPL?Sm>?MA{%`URD&>7!rM-#76MH>vDMl52!SFkD%0-U6Ut$XsdJn+7W<WWJI3p+`o3#fMoZz3 z--H;Nyigk*agMmRILwmtPi8TBv)3#m2~Ku^$wj_Xo6^XvF3RW^XO`#?O`v_x*QD@K zt`TR|veBL57$QF3+L&0m$mZJ!P&{g>9`&ipa;?&7(~?>XPD=UYBKJV4C@-n;33_(`SW$xlI%i?6O*HiXYEL zDp>30Hd7LDJq72+VOr#2v}039Q&FwXVmqBic*v{S0WtJ&!nB}swo`gBCBs#o6*jKZhLfl@msNu0PnZQ)ekSS%Yp z<)bP5T{u>zb|}ZPKH%OB0Z_l3|4M%Kw2c$Fj-!-W=$D;4E&~s99K6CY3Wb;BN!UT@ zlJLqm>eOyFJiy}{1iBLCSHn=KA%715Rh<8P{!RFq9e3nY1B{W59tlAXiG^90wWJB&DmZ`Vsq~_IZ)^AI=Ow7 zlG8-e=cw?Eky3>bOxl6`@xx1}kdZx)IVdYUrNz8)-HyMu`)$eqcc3x`c?^R&zGXpE zbVTPqOcWCsA6p#t1VZmD2sC20DE8)p#4?@JrC~l2Ie$6C*P5Op8u3*kJd7jo8bAij zFLx?RI~h;;_#mtBT*<~Ltub~(abcvmCjpuy=yT&!FcE!)(A_wj8zD0cMTyGv#Zny{ z_puTf4M@9x9WGgxT_c|DU?+0Zo1c7_46{f;Nrhl~?3W<>UzN7>(9b7irJboz&-qus zo_|e;VRY=3Pu!{_HZ-W{SJ=`ZS1P(!@yOJg#MX;Y<#tYdT%tlurhJW-pEF|@&NR}* zh1LXtjc0M+IdY(M-#)MeCvKh>yX67wkHG;4Ns$P#1XX^eT{2sMoOEjO5sr8$^?1^w z$h5mjT;ec0${;M>O_GiAZi?5Wmn~_1Bo;iyI_Yux$VrmbM;PVuT4Di0MK6gVPS*+_ zrGp$a(xYFNPIMClv3V?wsEM$}gk3b#2q`Egj?oMyk&qL+!GLh_|FN1Y39yE)DXFgN z-P-h#lu3dkj@c+Fr*1NZl**at(Zp0zXv>Gt?v{i^G!@kLW<~bp1Q`th5^{CN zK^z;q`U8i;;La@^7<9Q#BD>L6j7IAe4`mWufNR z$~aa*s2(&cR>8o736X^v0I4s!Da>?958GiwzjrOyKw=j|Iu1zO1f_tS8y%6KK{{gX zvEW9UcSj=?amoz~XDzu`En>BdrlF`rgc8A?^-?YlC1M6ZC#pyz9sf31M0@v91d>>o z8Z&SWMU63z@HjdS{Sze_Xz-TRs$2_Qd5|F;Q))R`lA$)hKl3H5UPWA zHZCKSOd2ks-w7Gs85Zh28>gw?t+i=3YO*YfBEIdA2V+spY@!rLy#Z!SZN+)vBpHF2 zcwb(Px?o}=q+Dyrk<$D(A9IQ$u`Mc-Aq97+VhFQ#s7&kyH>hIR4bR#nO2f(4U0SOb zJQkKL9#bx9A-OmrmlM5?Yn6gK5$MW|CJINDi6>R5C_FBcF%x5+N^v8OYm^MMDGJ4n zH=$255f{fB(F|UnY9(!T2EG8_y&0V)X_ZNQ6t_w%d!q1 zjSPFx+h37Z$P0FG{^mgGRbLm|vv|_j7AqYtO9M4)tSHE#v)Q8xOw3g=%-kxXG;if77FT z`TVnDg~-LAxXUEggAk~~;+p~|7mo^SA<SJfamVs);sULcQm|dS3f7d`B2l^H-mRR@ZYqeY`6YY9b-RD*|O_+q~|X;t|_}Mt+cje#ltZw zD;ygqZBv5kibsRtix*}kg`&f3!NzSXPUWej#c}Z?UZGSFn>2KLg|ub0Ioc`NN?Uj` z?itw<`-N{keF>ThO+~4LE6)enCgq>u75$~?dKjMy9Hv?XZF#V2RJHwnm_4QZt2g(4 zb4}XTVICJM{?D)KMn%$1x`ZsZZ?su396}_oD>a7ZT`7@5TM-(Lt^l1sg*(m23qyDx zygdJJj{1N8-#~%AB>4zHi;xiPQvvzxB`4#)O8Q<-YbPtnKkdY1QNg<_5fx6C+XPVz z1)_2sZ&7bmP43L%i^{G}(3?mZ+hDZoWFQf%<3)sIk-HNG4BFuXV}0iFQ2|=9(0(bD zPZ>L$TkI4VfsP_X8P)?Q0-X72a7{S0;n5waZO$|~ z$~@3MP5x*UAY4rNg2Os7f9ZPW&D@(M9G_Hesj7pr(p85p$)mf;!07|LnK{7ea##{) zD+gyWr4iwjI*zeAbesmvK7Hfj1&`X|Zo!#BeTaytfOa@el(9ky{R+CHVDgQuIPn-` zZhGPyY1xz{ck?6-d6z5`-me>RLpjzKV~6m!O^;?DV}?mjE;npS^4O7jkJYI+JXGe1 z^4moKbt3rZ#FczV)muiGbXNIgqcUz=!!%gX-^ccQL z4?tzOw?3e4gyq3p*50uXB;;{;9P=gJ027X%r}W6CJWH2;vtdc&vW zQAY7tc93akE1B7SpMA_sV;i%WJAQbMsDsWUAt#+xgS8X=h1SWUx z1;qZIfk2#y%E}u$nS(Ql)V*4DKkCk*H(wz9jL6z;Q9G)QMx)fKSL^lN2&ADv(3{BF zFV**3)x8>4H436BA({t-zgpWXHHhGYMg-DQ6gL>8zJE{xmR92+0%adF1s>2@oX}ZHkVD+rUywo1GJ0Ye!8Z3wT z+QXv4)E*Xs6#Zd!q9sdK=`<;_>P~79U~kb-I;dkrRvTheTSBIE^z$lqK5QKl%Q7U- zQhK%?Y3=j)ZnT=E26Reu&!tEXSl86|O7-1FwZ#M6RwOPJVCxYSWZk&iE;Vb-szZ&S zcCZGN?4p`#tH~g?9&wJrV#D5+Hg~HZL7~_(n4?mh=u&zcw^*G@CF^CBkd}W)qqieglelqZN0J=h!BlhYv8I1tNG9KNOMq z++blW99b`pX+SnG4GiU9T%0YsC|%Uh#s17|_-}G(5%K-f5PlB4N5u#K^2bCM;w&fJ zf=_7H)@AuJOrnqeJn|<4Jn)PXq}{xMpVuVVSj2gr>AG-?akzJg# zMlh`6g`h-x*Be!Xff`J_(FV!}$3H_DJ!^j+No{Va$#RU`9=3}H%Xx-MNGm7z&bO!# z9NA252tVWEx)1ZJb2yqF)SK3h>ld@3p<^Bzf0`NY}P`MZ_H|X;V zKF6E*;RbUp-3XZD?0uuzd6lyt8ZRa{-A2un#6!T<*IVW$oIH4511szdrKvL+> z3>z&MypOM3p~@(<>5w;zKB^it5%a-safyWGz@;}7WL<0viPnWT7j0d13mMmCw-I(- zcvGp@1veIdU2^kr5Eb2UKx}*@NZ~0q(`AtI!YcR4ll#A1`zu&;V?Qi~GkCLO(ZqWO z*fAO7z=V47X>*s}^T$D~0X$m*-5socGsLP1z=vUXMt&4`!#qPo@C*^cfh*M870teM z?{J;am21WYw#1ZPJDyp-YLx)tv$z;=wW4$6Rj~$!Y z4Ue6KrL|ih-`UM8keqCEbe<^MEd6C<1ggNlA%}!t%F3ZP*6^>!^1!C>u7BIc;k;uoj{|;S8)|v1tjF-iIU{^L5mCu}To@i05G(}2C zfe;9ECI?_rAhL8yE|*-=vc{bsDXEfHH%}`~Tx|m<+F$KNe4Q^wS$w7JEWVnYOR&{q zdXldu>*8#+c<$tD#2E)uEvCEpn!&rQUUBl(V5^gnQACK#;MVWU7v_bA7C|0F2>45H z9E?_-WdQSL5<-W~gUfQb0*-NI8I&vDY&OCQjT6e>LTOxgz21BN{0`;I@BP8lFMT*J z{|N25n3liyN1uI)z*su*mwx#W{@A1P335vBfxm22a!8m4i3JeV;IV4*cmuI*I7+Ft6i<@td^Y>m1)}e;?;)Dr?WqYU5B#W$jy8dr`)LmC@ccsKblaR$jwsRNdx8tBIp4ofl&UXV@_l zO8bz04lod`X>QQh8gF07TMC`p3mHwKhQJpzfD*3)iH|6_i~OGveM?v{B+jL33nmZ@ z*O)(SiG!S#JY3v(DpfM#u}(dliR|2^Xbnmn1-Q$v?pj5IM%>)bD0i!OomFUF;Ylq9 zi`?_zq?ECiKqKNn8{t(X5=tqGL)^8HSYSW9Y(NfBn~880A>^R4bkD>h2?<3Js4(R6 z!i$AQq`5GWCPzG7P4gL_n3DKWe^tCOIU34%y8?51+d^;$c%kE{82l22RxqQ<+>x*J2uV$o%d*77zr{@h{uu?}z|nM=GF+^& zpsg;th=HJmE4E-Ak5{%xc$QW!1{4^CkEAJxheZGMq(3z;=|5Qw&U=RP={JFR>)Hi&xg(LK zoK)h_A0xCiJgqX&{mI{_|2E>uB3O(t3QcYx+GLCyZOM&vdebW)>(ve*t*$lkh?g&n z&`+)D=5S>vccd52fMRTEx(1hZ=}AuGB36!EwY!b&9R+GmiB8KqL)x(UG!8=f6p-0+ zzE9=S*u1mwvkZ$Tka-d=OX7rfV;&>JR zYxOs4n6V{btnRhpn_zo#2V&<%lHKuL2r`n%22ul*_Dkebwe-^x>-Y?$RC7|=qXned zFJfVuKD09oTVAP~`{Jo>(jajwm)2CV5v*1jb?1PrV?b(3X+UCpMj?GR9-&r;eklXj zWop?kTRNV2ErdM$+;nx!z9&x{%Rn9t zY`0697r%}7-*jhJ>V?+_8PrG<-d?D)8FTiuxntV&DNFX$)j>w3G*k=Jn6^t0L(M0D zG7T4=(21(6i*TI%U6MxJ+0*E{b+T&z79kA~=~LEY2V+d{SgoFn^$)FhVjVEvn9GuozrJ@ont_od@`5n zPz3x?M3XoO_&G?fIat70@1;#&GXh-4eam5c1sKaK7bh9bC^K|;!IWZT${ z%(5|Z=u}!fsXAjqL@%BdnlR!!?P{OZY@yUW%pIY);DJD=aL`lHKDGnuRzjIf$sTQ7 zT#JZ2tX|@^R6Qh=8{olYsy_w6h!~F9Jk-UxemIHwq`o_kB*HIHn+f6BV!oQSM*h9rg zUC#38bnBu`2(>1_7@FctCBgU?)9U1^dS*gDyinS$kp^}jxyJnq%$gS#r{0;kZiumj&i z&SGtJ=|{2!PKRw&d56Sl$JXiHohvRIoZnkJbR1-p3@yEf)G5)18&*};VW?V#$&Dmy zlhDkg{V5EfCGH1@SYrVjxlz*WSPl{bWpwj>nxd3V-zd>#v!XHEdi8=%b95P76 z$_PinFu~*!ZwAV08nu0ujW7sNwoyr=QAcJya#dl7sD?%zH82q^;SB=wV8UT5WgV@9 zSQQ$;sD*&IlKqwi6V=lsGK^~c`5f_}R3*)JycU^n)M3JiS_F(y$FAlU)v}>Xq;J~_ zUvj;+FeL}OYe~s59BIf<&JdpBH0JCqXONg9+#F~iUAQ+RFq1ojiuB(x_)~9~{K;jY z+#5{dX$YxG<+E#ywzafmjnO>?BuRA)QbM%9OLzno_86^Wl$+H!hA5Opt4UQDgV-FR zyR0HK{`e5xZP_)rMrbrNgl|`JgtlU}#78Jp%^o!p&x)lDQ1EL1fItKtiSbD|1QGji zS$nwbJC8o{PYbNQ<$^9SUxwJUt?<~8$tPUGZR~162Xil_NUN3VmZghzMl=eYjk3p} z-5uu0+p?uJvbJm{7cJICIsTmuG)BMOIz8yOY?>UF4n+E0Xf@f>mR$Brrz1I zrL0!AY^Nw&td&XuI@@TfKf8sI)}vmn1h|M+R;UUoA&Jzm*T2)VoTTJj17-^3lnHg4Gm`vbw>?NzIC@D`lbuL1G%`; zw;}SD19|npf&E|`>}?nJeFye>V;l6lF7$gY^zCiX@43+Ly3p@$gMQzIUOj(pqQ}B; z3-kvr^eq?q);8$tH5dM-3;*6$_+8`HIc%G?t?;`>t$Wa>j9PQc&~j`vugE%GC22=c zZx1E_uoO+h4c%`dca}A9yDN7f=X=5?ViODA*pK!cXLJ7&A+KMo59=Li=?oZ|pxToUe(#{JRHw+uE*XqDJh}WPoMS+GZe_&}CiiUS zG4B{35Kd_a7a>GAxISSgVNP%53$eqpEdCRlvGyeJ)E-w=sM(aod|r!$r4vR zTr6f`=lSyp?{kW&>(6Bhu6$E$7`)@nWWQR@X@UcvXeXw$@UB5CMV*w*`|q&y>izpa zJbNw}BClNa4*K=}f$ehNuh;8)_Y8)k@E$@fmBk09 zvA(~zuSf`&7l?jk39ZVJkG;se`sMDWe_>f|dx&eNnmigI@$dH54F${V+twtv$T5XiBd^;WWt4IIy>+z2V^S4Eso+$k7>)@w1 zKYacvzx|1#|DU*b-AiOy_C-I>^%S;a95)`T<&L6FySXYVpdh05>g6no0!r=_SG#?e z^DO7d&Oh=}m4%4fW6$3iYt5Fb%8bm6jEszoTPAPr77hC@@SjG)x~W$?<4lSbdn&_` zyc#YtQfE2i4S5`p>YD8|xjUhWi6@5Hvq-CMa>H~E=yJ7lwH7!ji!|M<|IR#T62 zBty3UZ1g07{lR=wH8I(X_+c#H;7j+NLA$lid*Nh$89jV|xNe=fJ}BMZ75{LhuMU*& zQy(8_o|VTuWzNINQsq;_6?H4a%4Io^Bt0J=v~2ZxaaHJ@#{OeNUq{}o6QTpfTJpe* z)%XVWkztE^slsI`)r<2D@%&bus<999~}G#C*19bB=+!G z;C6JH`rPp4)E7ff2MxXc83c%`_xDfd!RJc)p7TZfVH`MuMs*{keD>!Ees8IG^7?M42s z+8PBiqv7dAFFzZ%I_B-^Bzv8SXP%R#P`p`)Ki#(%4_W&%lryX4v(R}lQpg)OjZz>I zFQ#uBi);TpUL05MbJ^6zP3B^FdC@F((x(|CSe`#UTwWW!@N9G*s@CFnO+7qmCC{E? z)@&G?wbG$wCgP8UqoIDIUkuy@ZY~dOb2;ohJ#-89Q}3bQ3>13N>%H@3r(C;EU8HZ* zw^#LK`RcB=yq?sfx2?-mEM<)j{8ejVJcVkfqelL4a$0G1rsdPUNjw-hy|@Zx4wBbr zflMl%D`aZ^LH+#Uuw~`);acl3Ju_#|fx=$27Z~5P5AHIl?radhkIZ_(aQ3d(oJ{8V zNG~-AW>16B=Hk3vwbGY$%UY(J{)c3&kW02(;o)ii;k0p@zkQlq^6#aQM%kZfdvsWuRt zn)C+cK`uSJvQx=vuh@&(gNM`5X(xKRyuBHO?DIZSv zGTydA@l3B3eJ%|B$>?6YeRUd)KLuy0@#ygU=5l=4v7)z^SG`mJ)v|wnc027xB7yp% z6XT_c$PG*PPn9-0b_A7$cGE1u~mqKs^cp&8tmKp z>Ee8^*1Vh6llIkNMAz%p?sernn76V4>neM5S*=FW$(vU5u9B_{r{!F^mp-kR_U4sg zvj41`diuT=ye(#zc6lqwp8@U=x?+(wF zlVZMk*&YqgCwHmH?8&;ds`s8-<9T5A}QP%i?|LJYQ{Tg!HFFRz!;cCYrj<+Eh3HHeAv5q8qaU6o70>0?clkXydQP^&v&JMqqdmVD!ud0_3(Ti z9$rK*?qb*D%SrSyc~ck-dsoTpcBg$2yQ)4tpH=$@*+Atggi zez@r6leSd|p4|>Zx4FB$%-Pv#E0#5$+TmGmG_e|Y;n7(>G+G)r9lteSR3_2t^Gz>% z6%Re6`q|n|CsJ4(7KYt}!-veEvuOD*YW2PAz;$QVxVY_&!Z(H5UimKD8r#oSCD|(1M z4@M>*GvMMB=@b^#Y`PoIKb=1epF1;ak{m29rsiHeFw7KY#zlE?*^P#8dZmkW@7BL4 z54y#R%4k$w7_rOBq?EnseL@bcC+3oO^jT(`cUvcE%(}Y zXPLTQ9n@>1(VcGA2KD-7DIQ;*MvLKUWWF#4f${a}sZqL2!qef-JRh|6-eFd|So|GcERytk$o`GC2Yr5lkuBc8quUZetzdLZx|56v@I4KvW0cIvZ-e61LJ zs@8Hhy{mlMe;=t{rF)0fX67dMFnlNu`oYm9-xu@%LGIZ^~FQ4BW4zI12 z-7VLnlUB8!&wbn#T~o(?awfz!sYTW+TH^FiSJTCXgMsZQ*n zS9ms-dLY*u8Y_An`K^P)?#)3vWhZBu-u%q)>jSLaYCY9!KbiN-%0sa> zJMA#`|Z^o~nYq-4a2crJ-c)=={Q`PV+lpoJ(@q@@L zQVawx4;~7g!2IqCp``Kj*}$*&51((!XPK~BIgj-YGm-m3=b_jQ7Y^d~$ebqavA-8? z?j8D<-GgK_pj*l8dCN?hh1&D z9`fJLABw>&pPRSEzahhC9kn_UzkM zbI?df?py84O5v&UP=^wt?2k1HneqL(d2wcSFK*1m@7SIi9U;4F3?UR(vO(Ah-KqymMweiv$( z$%D#$v+4KmwW{gCtkBC}_(x4UXOud7k^AUFF@A8@J&iq^_0gnIzi64|oD~hu`iq@e>^E@2r z*_G=_+&}B|&PH+n$6XF95v~?4m%ofET#$aA0-Z5V;OP`qTEcH6_# zTw!=Uh%YBMmA&Gv^)M_pX4Ociw%EJ8SQPJrfzEYsIXb-?w?Ra~{_N@?yVq|-lkw2a zL@y7!^|Q)okZ+VmlX7ih?KL~8sJ|cF^WV_RUt&TQ+fXWuQ;m-%dTImNt${pXG5;aTd^A1%b}_S3Sx zI9tS1PpM!juoo#_mikYZmzBl5bTI7{BTt2TDQ{#B58@Y>6)Seti3LleUMPHU&_4_u z#INqM+3N#ic~H8@rsMtk(3}K=ht0*@ywRJ(Ni4qbrzVHh(dl#XdUBwf-JubQH2P6v z)SfpFf_tNjq5q-j-_rxnhV@*k)`nfbl`<-K)-Zru7&`hSZL|kxQ6s8X3y1jwKg6!2 z`E*#bjH}CFwVZp1r!wbew>rl(m;HBzgI1#PH&pU;`5n#e-mh0XMu@6?WcyL_*u4gh|{&6I(-TSF9U^<+0XWh zch`EYnIGUL zo8DC?nTz%csbts6_8zR#>1`{08oz9npNFnaT1orci*mTy z?bUAQwXh|tC{j%KYJU#$yKV2YyEj|Fo_>tFIso=Md0*$FPp6=rDz z?WB{7XeFG=SFgdB%*%di8A=x?h30e2xQ$E??=A+philWWH{NHaw-lWE`O}x>hpmV53-zNBq;yMd9ipHOpAhs1;35Cg|bw zVI*_eZ(WX_jK)0saClJ9<;sWY{AoB^N_H~0#n^2*^KhV#Vh2SyCyyRN-QmsQ;64>f zFDHXkBX&DYE+Vy-m4wdlDO?-0PxmgTt>-)Ix|}f!;k*00ZuN2&X$+&cx%>3{ioCF5 zp&vyHqe1p#iafU-&RlnPp!59aioD1lsxKpMAG*=*;$iV2uL^I?RPJk})p@x1*r=5j zYq``cfa_QOXw)|-Gbg{oKXI*aE4y=7ij5=f{)c?4)>RKID)HVG*LiP5!kWsNaK3)< zc-DLq6Z_bD%mu>&f@SwZaI4*N&Ai$T98zsuBsAYD4|;lEV;2Xlq~8x6vw#fpYX%U6 zAkY(hRpF9OF1g%Qo;9=efB&M((%Pu#TzLuqIdZ;V4G{7K1S3N(`M$E7ha@Qe=c{z5 zU2(t;><44}q0sh9X^g(zgA*i$lu$5@56Mb3<$q4LV<*2UT}UNekdN9{17lQjDZh?R z5?7+xw{L&jduX(M!@ieN* z2e>^V6ixQd>a&UVc9Led-t^qazU%uxlw`TkV^D`ub00K|b zcz)B^>#f-I*83QR%OS7S=C9tjwZAc7Ts7;$NZ<>(j{W1IZD_$cwjR)MU0CX?Pu~&@5&7*wY~*7Je~FhmV^jWOcrS z4;jjAD&=@!p||ALKK+a66G#TmC1!+1u}0Xn3#(}2q_qwS4c%^25eF0Ar`0B%4@5)s z!u{p_KAuvLi+DhUf-LR)^1m3xs|rBGDv49#CKnsd?c;qoxFe?~y$bHLe_dglU0e9NfD+G2L5?4W z9C{CONQJx~`V8#wd$7YE*pbh`j=Tpu;(`4sY)9XN9reJ*EPot!>^;~q1@@<~eefRS z0~PY;uzmO*>_ZRi!%v|k{vPnS0zAAQ`Q*|Gyt{S+3jD}^F!HJ12j5?t>f(&-#}7W( z|Im9&UldS7*$>0=zt6O>feDBLpJy+;;szEV3V4=MFed&x_)H@kc!4P3X~aR%r*O1^ zDTo4|MxvjAy@4r+0$yhJM_AgxA4GxAa~@uC19uPw{)F@JsvDStDDX#|M=YHUyg`;& zqHKHkO#t{@6{SdRSf zgKVFJ*uWn|fzNXuUU36&5Cy!P$NBFwjcni%qQE~oqj4A;n1v|tCrTk+bpx{y1w63h zA3Q;cwX}g*$PylA5e`Jef1hgR{Y9;=>d^i{>~qb;-eVo2fQNN_2J{AwAqsdn#%Dlp zU=*T&hf#b6^alPQ3V8U#XFzXY3!;Du`hy&Y*WADtM1jw99A0q)GY|#-MCr_{Zr}l; zfcIqdDazi!1VjPvi751`x!lABWC`zK=-_kf^8JPBUH*}es#6Z$Tlb=XN{bPx?EBzS z;vhCK08!u%cnhz&fdPmD9?*`e^)qd3-~^(;KaqGihz%@36!??F6|cI1Cx`<7L>tXP zY~T)}z~}i6uegCXhys7YcX-tetU(m`BfcXR&IZmPORRF9KfwGZ1|dtVFrd#(@Zo!W zLKIMmC>%Km@&7*4#s)qi3j7mZ#6fIe7@~lujld?ngV?|@M1en2 z_3*kIIEEu;25I7KjBIo#0K6W3Vfa`@roNbhbZtTTuH2?4U9vUSm8?n z?!NHBonHWXe@S~h6u_T8cg~K#$2dd*b)G|q@o+SF7!7_<>g6CdFb+}RpD-s5Vgut4 z1w4!+5Dh>#6c2rHQF9O*7>6j}X(JYbHaZ^r;F91FHt-Emz{8txE$U~M9S5<2eTV{{ zHjo@R5T^hCOdA{6hbZt*SQH1bfqjSq|Aa+x5E~eYDDZg}CDzpjHX=)SnN%PU3d55k z_`$tG0C|6bd)Y`N96zL1KJ2m)c-Ngul<+W;NHB012!uas4iYdnxmJl1E9?pjFcA6Z z8Wb=#Ia!Gk9)^Y60dT=q^rP-S9KiwwgUx@A#5Vb5i4rTUD;x|&KP-X@ z7@HilM2QvV6+8&Vf*)mGa>;FS)RIO1z|B!q{lJ>{@|Ivc9)oT6;G^P0@O@X!*S?y> zDC04#`M^hg{oZ%meC@YM94r_;z_H+?Q}Vt8=W7p6aIj!F8o+}2Tq~QH%WGfG{V=X> zj)WtD!;dce_nkUldv)%I!Mwt;aQLIUynwNZxxDu8glHE8(+|Z0AKWGdj7`ktwXY|! zuy7Eo{-Xys0b>($dF}PdWUm9FfKN5DiMPD={v-|-#TFK$kkijB%1yjwjTb2Kuvj1n z2awM#%Z*%SjW?(|3S91B^+YX&O}tKs`DP8V{@xM{nOkOL8zrS_1G)OJ2?h#ulV< zBaB!t0NET)BP*aR$IMsbBlvn<4Kdkks(FLCUR4^et;E7Y+<=lN|GRA%*TxjQq1X9`HBrZF;CWhjV|y~-#y{(Jw$?2dIRy6 zJus>}ipX~qKf|VjUlgdkMcx5^Ew*^)_G4|-qqwB$?NE6o3PAB*a>1;S_v?uNHzLoxF+>6u&qbid)brPM zldk+zE{StPnUG!%p{!Q-RUGGs8gA>|Cguuvq!EFMc(J#~urdMBz0YW*$zB;~29@#s;f+*nN(HRn8vCO2?6M6Ry1!Yr(FDVZu5DRqv>ezRt6%DUf0#vLz+SGCq%vbq+K_`?#+tN?v$J~lx3zK?tR)?B*n zjaile_PZd$!JA+_7n~|-fSl?G!yh4s0Y`{fMx0R)n^>J_Cf-USW`{9lX>2*P+^}ZO zourZIq+x}(93~{LVP#kTdXpF(MAubpd-X{CLg-ibmB{($7czql@M0@jlGeiahUC72 z4sE3ionHk^+sA9@;kD4c5qYfs+u%1qkF15h5@E9uJVy!J@Yr>{>)?63UN^ydAC%X1 z<@Kz63YxeJa;5&dlBOrkk4TBKrW}r@d=GD!$k@!UE9dD<+PM3%)pqXl-alAZoo?u4 zCpUR-?yh>3yXR);&DTyl7bWw_13MJ=4ZnS#^lOxU;)ZGbqZ_zrTF3qPbX|0st{N>5 zuqp?iyMlThR^&CMe6Vztu0CFh?Lxt`lZSwRanllra}DJ*QLaU2FhLyr_Vcyv@*9uW zw!W_XwEK%^S|K7~H{>3H9~x5FVC+w@g4bMY9YAO^UI8=>bfEj^FuT?Y%M{$h!=(Am z+G}ec9ie(>1uL%za6Nj~VF=kE4J7&zePZGp@6ftlu1C^3JVE#eo$FoP4f_vZW3#h6 zI9mfYrM6L8k%v-u7M%P0#p4Iy;nH!_=fg$At^=y5gXC<9tqTXawvOxOK}-an zZiN3U!2S#B8h-~Kzx9=VI3He7kgG^iZ{%k}?79_8yD&dvd?isGH-wAD`idrHZ`YF6 zyY#ubig>%u+qL*tJJ&XK0CLU=EEyK1-?W-bnHlnk?XX|#=46iR@Q>A$UE*l6hCRGP z7*S_w$$jUI0ltzk-X4&=N8Yo=urDg#QP)cpQs4h?A`4&1OtPRftVdHK5(6@YI%aWj zFeh}xp=u1x%%r#;4?~(Zn%#+;GmcH_nrT~|=atz6g}Rf-`Uy=wulm zOu!V$3AU4sa+A0BLWpwl1AKQ)Ul4TGwIug0f%vaU-<8RhpU9VdZrd9r?VnCuu z-3eV)=GO(|3#(h1T+58s0X;0ydGrTKtlF z$-Uj)WeHL+e!VbP<@C3@DM3quc}u)sTel7S1!*S!1Kkp!|D;=7ocYAkVHHG6o(+!# zy4b7D4Z9xgc=VAnKDr;)OEMg=wpOx`jjpH4cSO%OMz}^#wGoapa7U08J2giBrkv?= z2KEc>m_Fd*oi48`SO3@c|5~RlgeZe_aGZ6^bCI&-!}PdWJXW`*H95B5l7Ln*8WtG! za^*K_zs+((v|X!mQ~*>Hj1v8#B+O9uzM|rh6r;}!r@n3iQ=Fs zvR1HNk(Nb6q?J&xLd2m%RZneVs6GfI>`yDCCYV^;pv}O{@B(1NAlba4`WS>}nex}s5QV?I=8s8Dj6%E*1V(R;i z3ZCxB3hLhbzk4Q0l0KKLwqg-b$1Wte_cYLNYCKnRJHA-P%B zFy@@;Hz-il3G--XzbdlJs%*uz80x8#t40`_9XvyfYT}jvewV;k8`_kfd9>Alerheo zUvD&TY<4gI_07*TAm9J%U*G(6vZ5bkr2z1W{*}X}1pVj%Za-_lePW^~wi(oIl>OH? zG!OMMKqR&$i-R1-)|bsn{OcQXizACT`~9z9?B9PqK02TugV9mQYHlUA#J7J@TIHjy z?QQ<}a{OQX2cX)MEwjrEe<zhQP6Jfz@zK1v=3L9<*{_>sh;r@8v#8MD+Rh@2ie)JFWMjvEJI=!&g>5J@%CM zb)w>Ndkjo&HOGS<1Ym0hhOyPO%x(jhUG%Jzo(0=-w@ZMJ&_>Ig(9c~hW53b-iPAdg z5!7mK*?P}(fcMNE4sKgL?8f-0_qPTxU2hZgE$m0QjKVMn&8?cLcPi%O1b_iWHjnL! zT1AtZp}QT>T3zpuSPuCuaOu?%wYn#*t{f4;S%FIbyYvoC0ZWcswylh0(jIU;aU5ql zuln>0z_%WKmBH>WLl++_IHp>=FB*`EPrJY1uQDC?F+<`zYQDTcglb#%{%hJxyz&0` z?_V!()!D~FPc)}}mVTR%`D=S>V_qg>TpP5_`rhqoeOs#!G}F+ML2Y7aeM5V)w5OnU z+0jxRZPw7{Q|&CsN|*ZyQs`o$Bw>Hso^GG4r}886D1<;pE23v5z63DB#1{^zGDsxJ z?P=e#*N5if>gocXB{KF`qWXX_I!TezUY+}qpj|1f{570x;!Kq}kUOl^|Dg(+JYM9;EKpKq)Y{r~DG#+sS1K#{z~ zUl=?UIGSj%3J{L&L zw9{ZBqE#A+L(MP}!I+k^6XB3H>?Uv_dN!JXAG4N4xoAx5G!h8^(FRr`7zjnQQ!5dI z!@kz*CU6gBO#53;9Ks`At9Jn=d>GM^4L~}G9coJei$=pS?FR6^eG49FdH&;2s|DGQ zxOU5agaXOE;EaPJ^M1FQ*;n z3!d(SY-*9q9Q+GsW!x5IZ?PTaS0Btdv0Z^t!7Q7k*BSKLhwWorMPx%jPi)_ShXaFr zTEVj?Tf{-l#@4?<^GS#TlM0Rqde^u6@2$CRqb&R*YgpsY!kXez z{HFPcLjaouz~b!tu>p3HZh(iEqTu0H5{K7tA&xO#EAPH}m z&ngDB3mnSbcHT!_7oP6Qy8w{aeRJ&e3Z=*5Kn;RU{|ZGb^`t7azXNzke6%0PX{ zHR!nc_3QEOBmsy}$e`{-sXJ+*Te3z!5rDjd8pjNnx!;Edo=#vGXA*Kem6;@fRGcnJ zewmPn(Q;4`kb;YO-2a*gzL*HFU}dg@zkk!;hv4qcj<3Im&b|<=G4;vZJvI^XMDEBK zotYRby(=>&Ly}Ve_wT;b9bg6BS&Q^O>zoTA#~{d$=mR?^%oM!0xU43Nd`a|AFkVP@ zXvIXUVhVP46iIc!#M^C*YMu1zz^;R>d0{6^_v@9?wJ)q2yl{=1C?GIzljO5LKKuvk;3lVmAfcakGsjo>XX#eT49q-;;r zL&sR$7`dxi&SdeI7G5%GnQ9JjCK$M9f&q~s1KCaVe++&e518}~0=4m!0B*V*H&~^j zQ}zq`GN*$E2nD|U9jLmm{_f=cj8N|OE3M+GG0b13iB&FBwzZk@j9rAu* zglml%3KUMtPG<`&cj)_0Bf$_bW4z1?C;TgOf6lbv1L0+YkWQ~(D3>|QZDajh- zXw9)hG;K~Q%-jBc^LJtfr4D@s&YC;P1})eC<8JIlHp*YHE#wP&z?6|-bDs4;0@}{b zC9!D$GxzKJCX?AfT(q@qS$ykou_0ct{Zz$*(kx!0Su83QoLK*SIboBA;$iZ_FvI%w zB80}bJLh(Ry%1pmuZRg}luSLL&`F*{9tM`0QR6?NZGmz9;%byrRR>>=6p1$MQu zAO)uPx&ly4TMrbWRU1Bf$EclH!8p+vvp0SAZ`DR2{HK}N)ihQc!)Jd@h+<%JqT0zm zx;2*j^$Y$F^QuUxG!9oB%=P!{$F2nQh3UEBl9$N|f1oupueV?HjyC)}Z zX{NpOb*WX0^=g{PjkR`Syf0?=ctGT`FVqxr%2`m1FSx6ADZ15nb@>!qlg0t=-)tAHCX{b=idS0{?>oySzjb zRKB5aUuEau6XSGF8`0XM{lMbrXlTvEcd!fU8tez#(|(6EMB6Aj6&ne|`wF|DcT?Q0 z4YS-BU}39ZvbEG3cWK#4QZRf|EG7BW#=4q<7Oa!5Pv1Q zvT?RzBuN-?9GO%JsKhq%wPhhLIp1pRZn`|qk(lig+>7~sDi;W^ovAw zIkDpe$#*CD=}`&ZD|9w@cP40+&_)k(8qO+GmY@z;w5D~S2&=pV&JNx}4E|WM0Wt<+ z`$t7kE?8F=n*pauqGantU9dI)H9*S0>JfS;z90Mh`?5I=zq^=v&XJ7WUu@~tVE|-H z7Xp!?={RbfV9*LMwj6h1jig%C)UEGfch*pd5potE`bTRLC!30j6IhkCNW8k`Kj{cVYK*_k-3eP2It0lheSb##r;bGg zo{6V~tyr;iI`|YDw5Uj#K=pTBsJ1pBsQUh26M&@ColVPzQrW!h9t)aZ#h}30ZVtQf8|@CnM^V(p1`*>6a1Rm#&;OqUc%HkZ;Egr5C&yBv z!{#96q$UvW8}Im1_U|FM6R}V*G>f+X9gL1W+X)@yFy8r_vsg%m)Z_}CGrEELlXQtT zW_rKrs5lixj^^*T}8nrP(EX5&v?S zE=N22Ac?@YE9QU}Cpy7d4ILodg}<`{ekVG>7!e(GRex5zFzzmVYcLiRb!*y1VOa3;s>5{ei}@ntC$UqtHICm#pLAS-GnhaCaR zm`6xFeI^y~10JVF#+bwq9BDN-cH84M&~rz+SgY0``2roba4r#A!qvU<6Gn#}%AY_T-+@$5DkT2FGB#zIyjJwhbYzf}cZx zX63BJ6BDz+elcHTCbB#16E%qsE6-$@vL7)^WA`l@knRggN!<_+Cl;xBj{pn891}>N z8sFK*hJM|O-Gnndwh@bQ;Jk%JK!Z@xL9f*F7NHvoOU}^UUDZ8V2@wxFFOAY}!C*mi z#%5h^Mq)M@vL-veVfS~+=36j7yiI5aR;C>dvMu!G1w_I2FVLOP=0a~FrA0@R3k4Xd zN_bCxHJO^_mHNe1&@e>|>0n-5cP3ZY$29rwvLoQ?iJA5(w{(~3X_?-iEnRuU^3;Ou z4|Cz1pP^NN@*gX7MX&B^q3CJf2Cw+>6P!XgV~rJKCO^?J>zu0Z`f^Y53)6bt2nF%Z z4xRR-F3bllnPL3?JNO&lg`Du^37Q=+?(P(nhhBrW=wwF+3hcNi4}Bp22-#GG*@N`D zFeDcN*PgTI!n4-Xw{_e zNB`&UQAwA2+jWY7J9glfCc#O9eD0tqrDYL30slCfz=|%a(M)2T%G^T#iUmmTftx*; zw_V342G>QbL*E{Ih+_g`$9y_%2&M*UH*l}6^YH`0Hd)H>PO4JT6B|x@(61@wz&Ws}6;=Yu;U;%!Sp1@xyIt)oj;G9;=@<&7 z{)w4KB`bc6g0bN5bH^zqV#HX&P=M=+GaC~9fbJ%mln{=35^eRK|Lpp8tPV|s^ zK&=QA5@@t!+g{Reu>fr}Z<{*hqJlUk6ug}Q>;H*^PhyuIEHx9L<@U+oNB1Yx_fR<# z)|w8!T2K|Zy$5}`ZVaq?11wt-IbO}?<{hfaq!wmv`@g`QK+q0mm8#cvBYHjatZecUh67t z(=)dW!Yy9l9`9ZxN{knc&WdcXt8&5Ti5}$~yJ8Ckp z7-7r1G{p$09$8gL5kx%~G~xTwcw-HN-%J;-_f3~wz_ARvv?cJP_xl9WZ{Drv$9q#_>5j*31 zkQ|Kr6~_X&9FBoONoBk*@KI8@h@{|#z#5_p#QgsN-EfuMRD6S+=VNX|1N5`Y#TO8v zbR%RGr$k=h^h6G;FiR=!(%erMhbl5`Y;b0SAhEKi|FG?!!o|n2#3Adp5MDP} z_;IYVA&BZTt3@#r`-tZmCtEDqRQL?=pfV*?#Y_}&LQ`H$5;xF#xi5~-qY11AQ`=@o zyENsY*=9~j=&|@hda?>4Ss1agPiYz{c{C#M$UtVIj*kE?>gyjMkq z^C(|k9?vUXDR8}}0F(2@;QH9OoL8lbDEDB6UnvD+K_|+v>qFlK3!&`_ zDiNqDUH{H=!T!bxD(A>JC;L23o{m=VqGbmx*QwTf%DeRRQV8I@mlB-nQIj6@2zAsC z7CniTv37i(jN zB%Iz(){S2Gj9zM&PRKGx5z=Hy9!req3?ukgS1{r|flis~2fl!y3uKd_;7<%v@sx8_ zU)a~&BLQO}j_UORn;f_ zSy~7Z{Ua;|T8D6LhD~{F&Jq)-oLL!_LN7qV+|iMp?}aTCsto0{j&2Hz0j=QQ2|O_B z)f2CMMil*y`U14fADc&g@?&A06mRu)W{&X&^Dg3a3J;vLhiBe?E0$%s>`P(ciE#5?vu!N9eIs!|2! zWa(zC_)?SR&~X5C9hUBuGM64d36Myop)tIY&Ql6;q-lm?0Yv2t4wR($3y?S6FRTcT zJ#s>XkqRu}mUL(44pd}^Ijbil15Mj6IA?I?^8FVlBkqU?Ux+dDi|CP)2=lIUU2dSM;7xHx zhk8)yiI&zVGz*M_G4AE|EoHOv9-q?*qYtSGmqhDz=5f^gaA%{1)n)c5#}$IvtKgx_ z_Ic(KAx%vvh&>hMpgUA(ppQ01n1NJlamysL97tX**fOb}6&>^hDsXIH6s_jF$HJ4A zUS^_XwooYXn7&F{F)HU_rT(%8A2QZyc#3XV}QETDTtREc*? zM+#ROfg((H{y#nZG1k(5gr`xXvw3U38GEJJmFJK0_ZWRN<~nRH)M(R z(xG^ff=2ci1kU^K&>Rz=*@#FOQl>@74dr4%&qLU|&S9j9jbo;|?$uY{t(+t`(3 z;6&4A5j{-zrehg7e2$#cpcQ2nKG&yB;6^Sd*P=D~?)ah*gs)#Gzkd_gbtFs?0ZuHH zmMP!pRSAoAgxT`RYC~iUQOEIz$MgR{_Q9+x4dKoM!;Kdp>^A^NuX%$M{aT))B&-AFsapN#pTwER8{@-BU4vg7mFP6M!_puD znOIR^ez}3(%dz;dmh9iZN#z5}mSb_@RxaUMDa2$FVmXA4j*0E=H$^gqs)@W~3|cnmJh@$ymRwBh)V1EpLU?4xYPA#O)W`b) zOzUV3F1PHwGM{}XW1oZK7vGn$N3jdMpg3EdVA@~{T^MmCyYU#)5q*cBTZ;%P)CDU&_`sy(P?ivVXk(dmm^lxu}ZSnpcmpQa4}H$ z7V}IN6jz|=hqew9D&bs2hAlk-aJ{Vc!ryH!bb|NW`7rZIEe(bSZG!XQUu{xU~7&^J#7$%D>=1w?0qy%j;~8w-z!+s zGTJ2Xs&CFSbmn`zjUOn|{0X%FX#V8NB_Xdg@QxixnM?N6wNEP)qcY?s8UuLQG=uJI z0P6asA`fwD@14rPnmasqEKC=~joT&idv(sN+!*8Fn|lECx==Cji4z^9;lrq{4nGdN zH~NV1PI;zKq&@ltfaU4l9wFFJ!8o#-aH~yL0|!cl6?6K zDA3_6P?iYzEs%^GI`ICy+> z_Kh(JfFX@WqH5Tbcq?~yECGOa0@zNXRaeUu|TX* z4j7EBL2P%<3&O?#RJk$9Czeo%k(&p6tQe;~ZUMu~q#$<3RfG@SAt-catf5;t3%sy& zGfn`&))kTf{9-9`q@KZbv)177rUuq1nj+PM#qs@9M0yY2z^8!(K>~zCubxR#;wv{5 zAX?TSZ;e;`kf2d0!Q@19h1i|&0Rw-UeJhipmwrLwp%vv>)BG1W-%omf0uH!$Z%1;T$0xZ}1ya zCpG>QZtGP$x-m!U;>P-9&Mrd68Mx>jcmxo*!*Brvuo0j`(m#Bbcrdusw&R7Hw*Uts zz!ug#1Pw@~6+v=O2llJ&;rH)WoSbIRW|v}y@RR&>c{BnRJ-l(9F|uyZ2wG5j@X!U> z7X%GaUvOB0Tx4^($Y#A)Ij+cZK@M3?h6^Qo1$rVt@+><+H+6y(fd;|G9K1d@Ut?rLCXon zDF|C=3z&t94~OQ5`h<;wl!?N|E63=#aM6ylnh6jirSvP_T!8!~{JBL{``igPiO#c4b&;Rx%$?ieOT_vt?e%1dN++qUb;}lO#m~d^YFMmO+gP#&i$6T^>XzbT?h`+r7%-`Z2`%Nk{`I}ef zKPeNe_{}Pcu8XSTNmLe3yt;hg0K^jmF&Rve;UyIroWRA7*0-* zkAlt1J(06Asp@Pi6MU`$y5jevk(Q!L=ZQsW2Z@nAcvIu7&K; zQTHhx;EpQ;~u?JkMvH%ICfO}5YXHv8x6+RFLC>p*@rP7WCgLWvaCx+~VxJU>8XPSsyUFXZb2A`X#x^Ysie$0i9X_@oV)CCnAuN0%U>GEw z?~&&Nd#4e`1;s7nPSkF*<%GJr(v#4Pqg$|3y21KnGiQEg(y#sZ@642MH&8~ywnuvp zT|1nb*2!y5-~rvIUcgC(pG6Togwk#*A4;S$o``)$Fw$+vTHX(Aak1Crf--NLW_SC< zN#^kyb$!hu*M4ZE-uk9likmy!yOkmHvj^}%mPjQP6>CgdU{ z@;oE5X318uZC~LAdRmRYf5Wtlu+|@epF|CO;R0KvDkcIS4+c!|5h?h(2|C2F%+Pox z!$H4NE{zqOIoO1#C;^euz)cZgD6rs5E*yuUIuS8F-ERrFAma!Ft1#2#T0d;HlcYuh z*X4G*($gR;H1gV!iUW6x3d09hO34*Qj=O8JlnD2q3d^QWzZz};sY?kWA^@z( zGj(L~heJQ60GUa+p{WdIsN-@#soTrC@JCeKB-q9wl7TS~Ciuf~>ouWR=BA_!lNzck z&e?dvcIxl~y5WF)hZP-Vnfo9)*&pE{j(LKg9-gk@Mz9MIup5`bR~Trfm_QCsQq|)H z&$x-NyDt}@1WKQzHul;vQREWgzRZ2{ql4|=!63GO9|6a11K=1A;FGtj!e^CDbj2%E z@GNk8vj?G#vRS+NTC6^}2C+A$YQbm2OoD>8zkT@*0qNV9ulVmfyqe*z!5#P%^ox_T z)Z-yGV{Kfb_chqQVzyU3OCD5kP<=I$+igCW9!&n< z-~RqJdHMeLudzFvmv4Ud^52^NVe~-O6RJg-w_~@cn0l)L*7EB zlX8PaMc}0rOZc$(pp=Ye5EPhevFbl-l0RynMIyKjz`dIC5pg;}pPhIlk3%aXJmIQ3 zVQ#I=UlsD61{iSQ@c8cj%{{~4#0z)yURhXjv(1h57LQwp&Sj;H@bYD;;dwV)y&7i% zJgWg47lk@1cyo>!gbwI--DQKWQGQ>!vATL3j{pa8S8GlxY6j?tb(yX=kP zql;h&g~I+qk}4^rQzZ+x^aMRH;?IT_)SX%ISQR#LiIPv!Okx+QyjZ}D@n4lyCsghQR z`OqV)ns6dwM{wy{4^JE6GsRvfCPaXWv#&Q(=z@EHxZmf(9fZOSz&9awj|Y&?*x!>A z%C_SqsT4vD`Eg?ngU(dpgDp6ysL1O3YB%z3Mr<$Q_B||Lz5ydgvDh-Wn>HgD;arno zo&E*U0q2Xp(Z=mzI(BZ#HtRY7C}biU#T(HovM{erhs<|C%@)#!E%eb43!QwKBrqGK z-C+TVJ3EvgUSqhznHDQRfDl*~(u8Z3!DsG^PdRQN7)Z_TQb`cx&;}bNM>5=_#YiXc zfJRF9BRY|2>@;h`Jz8kRj$jq1i8`WlI}R+=F}C_48HbomtHK-5kl`ZJ1pIN8xKOMh zbpKV9g$x7N9Ss6D6=c7~+Gp?@ocHx>lNoPa z{JvS2&?<7cK#-Jp#pwZTp(VeN4V$8@V5(P+3*;t4P&xWY{&mndY%wqt-KQB`*TawkL?T$pSx{5hot!`xAKr2X z13^rfoGiNt7+^kNydy{pNy!<(gD@3%4{a2J2!RxF2=n?~v6O|XyN@F>xt^I$^a)VH z>&tnwVd+IWNBq@~knCw^2i|&31mW)Nz*DltsR7@(@tyY{$8$A_q@YydR`>_YRUSzR z@iZv06N{|02_%ajlhN)Wc>LuH)p}&U4V2+t#0m*khRRSK@sLCcdC`^$c0fT4AR>t0 z7b=j*l1mCpF2{hsA|&S|fw74d*7D(o*CWasv+_=xac)$h%zO)hq@+O70U5N zfm06bq=coQcx)>o3nq8`*5Hi6 z7V?-@uj0EaWZ$*42Wo?d8|f-omTaD>u%0|Z5>X`^CJgj!?y>cGY`B}K3ccY_DKUWk zBKuDo4+#5kEFtWRm}tsgO0#)P?lyxDOe2^-pT?;(jWA(x6&{6BYweR961J##H7Ii@ zOZ&MFNfjYzyiP7*Ip|XzW7)-`7zI=Q$b^oh_Bpn{>Bly9F8IHi(6>M;U`HFV@xd*M ze78NB>!e0R)e=budSYwG*v#o1AjeGUD`WyF4Y@ziJ!qe}3$^(}{~G+sJY117DGp3~ zc(;KL8t9-Qx7KOGL@xVd@~fguIgDPX`yBxn*^&t;rA-AqoTDv#gby8#E}l45Qql=6 zqF`jI{r^|9tG8?j4g5A%nLfgexOxHM;apnc9{Nlv=J-e++Z31w9smIj4v$ChUt8TG zp%zf+nzJ$x6xIpP3&|QwAl0g~*&@=|Jv=}ywA?*e9xa8u`{U;k?cB8QwKQd8n9(wL z^dWzuHqaVaG#18;?C_v(cTKdEsXdvVfN@TDkEW6~b@CxNav3w0)Ra#U?=|W2X295)w%8pZMe?t9k}BOLWM@b=C?Y*`L;O0vI{_*C9vi>Y z5MQ_pMknsO!%#Yui^s>t$g@TBF|H1jg&iPorx+y?aj>1DsHDaGaiQH)w7KZSZk0*J z7ZB+(Yj>IZeMtWqFF!=CKZXpD^>Ib+Ga3<_WRWy+YMg^$gnX6Lrs3wq@Yy?-&?-&o zK^;GqqQf95te&$@+z81X^eMN8Hq;QULU=$JKT8Ks|0Idnv;tFXGZR?>^HTWMJ}%I_ zB*D1~Keb2Xj7e$*xbYctD4eYj8eaN#xc71Ml6aW?`vb1>v|MA(1_I=laG zLklYzIzSxa6U(})q$6>-Dr)gbebhiDobqNTGsaqvTF2nGxQrQ}i1SWB4OPfCEl@y} zLM~^CB2PKWF6>Mo1NT0^;YUWcB7p;be^)udPm!gXF0Txw2Rv~@T-L_htUJ&%$61n+1hajMvV$D%R7Sdd;ml?vi0A;-8pu* zlkIL^S- zhkVPFTWq`o{>*%W*-L~nz%O_o2Li?N@0i$KhOg$w@pUC+@O3=sNj6tt?d_As2@>@| z@C~wn3nb@5j0J8NrebK9O@~dd!B2*XU)E6z2?U#32PZ1sbA=BJu!jnfnB*8Y1&drL z9xv0``v(SY<|E;`&kqdJus_5_K0-o((Ne?Fm2%ZUhS2auL>bc5nCzK{B2q3$I?juw zi3~*ViOoU=c2;jU!Ib$1Qa&qr zC%da^;jYvQlbvQ4rExUEgz(f#@*=1eeKEJMfNYtq)JZ|dBy40=gU0oC~C*xPrRb(SMNFJj{xuJs@2^{>Rf~ zh+`-IiscNg5r>4uj@yjaANy^{v`)rg(Xt>Yv`v9D-~=r82y;qS1+MycL@_wGLiGV3 z46t8>ep)@cZGl-rfi_{W#BEW0w1|V_`Yr?!lJGSh!hr+=2v7-y2$09EECV&>f;q>~ zaob%OLYufwox`FP#Z5F`g&mYqU7%KZi(_1_G?A%u(h;9tM~u zhb3m0>YZcmhw{E&2gj8az0N?<>i|hW;VaD!(qdwGFK^HCqq7|ninyBtsTGbr7-YK} zM;o{9smIz{hvlIY1RymHB4v=)cF0pIL4gn9w8B-YSQwN*j9F?=hS0CkCyErK>~Ey? zqObf`5d+$J2CFTVa$Ge4hm%C2ODcsnPqBf;2P+=9BGA;}ac9I++7e?lJqGpBIBF`F z+^dcZ#R{~w4S-(n=71GV>zsHCBniR_ygD0Lcv1`F>hoWjXr*C>+9%b`I?WA3v?Ewb zpARrGB)x-|paDhli^nVh>BC_tbpI8|qrq+z>f+i6h7AhGVuV1n?HcVUy`pQx6<(*@ z&MC|>V`mPTO%o(W1<451iN=J|Obn zc`hSG_C_SS!wryoln7czqr3_^AdjY3p%20-&~b+2K0D+ehiq2jB7NF_6Vx;Ej*}xq zW7}J>tK+Y@+hB`bK)_=TC};J$f=+fTC3y>lb2+z=u^pV;PLRmZO2Bx?h(+GqfxOrj z%kK@T%=t#?v6(jcXQ+J7u&tRdsOXTFvph4s_R7+-1AaQhg3*9m;QBQsDs2_!3pe|4qFpU!H|3{|}RqD(A$hGjrc-xUe+{$}`%%vwRtHwzp@w}MLd>N9|q zD?EAR_t#e1cv1X!T?ChR@8Wl0AOxs`4Oi9?UP90M}QlSQxt?Xr}JO<{F4>~Ph`Pg76A_^+XQ zvdaCK2wHr+HM)YGGMzPTGYREHjTDIc}$3L z7kq+GrewHu*%nf8xzqVGW7r(FSOWFDK;K}=;I@$VB4g)v6Vhv42XeF9B#~Q4b517WSGqxqccof($7Au4(%uE@X)jRUQB-wF9I+%?%YlB=x;Ww=6xDcUQ)l>RC2a=O zr|FmV{R?*Y%U}et?ZhzG?}?x3pA)}fi*zMQ)@ChEy%hDj^j|9Q8NIU0+XI zA*eGh2#t$wIu%AhbQ`E>GrfVm`xvw7C??Eeh;LQ)7; z95#w>md~LW`u+t$l9s8>PHauIl7@=`OcgFga;R!CA@VR5WRW9&DijrONQH$HMw3O% zTL_JUsCZire+!H%c)@~%qNTL@;y9>6a8h;h$7_-|=$83;pB^qq3ez4EKjoQ`MVRW= zM~9eQV~mzhy3MG|#v6YsJT4ra!UZj9!1Ov>*g5(1$+PcOXO(Cs1(j?B%654$>?j|b zgp9NOZ{O*Xw!~W&F#N1B&YKYPpk%?@q>7h>A8qMCSS@E7N&NMos7#+&3G*KOCSvKw!4tl%zf0qg;{wf?#ds(4zM zJM02)4iE2K@7}yo+Yy$BgDhA_RqJQ1l;-u7w?z?M`3g{*l}udWE)k5vIs`<5P4ZlF zB$kcBU)h_sI$bulGqS_3rikH{x`h}oFBf-++1PK38`j5<)v+DE5&o9hvAtb=Pg*e1 zKI*n8hxY`S(WN1)u3AKGgCMk?+cTU_HD3MW$MRf^Qa5EYu}V{)ZTlLJ}`ahU5*YVv8sJ*4@@&3`@2uZ5_@ns#h9PlJO$+$+hri2r${Dl8)$8AEF z3Y)u)sw?_3YieOBXC`%vB*zvoVa&pqGWf?rs@Nf58P;|&PR^-dWE^N_V`Q#ueS6``0?L73)UyZbE=3f0UewofM((wpOH)o@IGOYGI^_P*=+f1 zM85X2hW<^ySbd`*Z)My*)|Hc+VN1zfLLwcE<6FV>DmnNR|6ER(g!qhWi7f3Fcu)im zmxSEaoDPbn(MFCe5c?(%BzGpyal*1_AWN1Ba2P(ml~u zPMyvTmZUA+V64?e__FNJ2q1GAGK>^h?pspl2}Yfs==esilw+QfC2+hlYH*M!VPeju z=F7zKp~=YftjIeQ)=F(YDCzgObxjt_cTETmMx>l0i^uj^A7>$-iTehg8u8c+KQt}- z451_qMYB5A6J$xjU-4X=3NZxgKVvU{iy!s?ybYsoIz+qlOzVJ`SA0h4YLQ%ajf^RR zQKW0ibL}VxouaO_=MRdmKQWEU0$ihlS$Q<%;>?c{>*0`o`-n(^KA~ReIZHiCygVMD zV~jGYj*~0a^F67`CBx05fHn@S1ISS5SLX`zu|2q^H}06uYr5%8YY2ky1kLsnh2Ua8NR~x6D+N(h@s)8`r5BhDacz?I1p^o#COZ|k}I$!EiVbG zrjo}Xf_+xQ1Nl|`&L($it0x^*j#dt_*fDU6X6z?ZpRn3QV*26iym-$}N+@w2#Xlt8 zgs2peb@enLAUiDnyhfFYLJJZDN%kDk47A&{ z#PtzrbnF3zn0Xk)5$Ku7F$}^+^ukOWdn^9hMAu$#Fy@F9wSX+=f)N~l*BbTpv(~-1deD0X^7g~mWb8)(1UxgK!`B7TD4BS5k#7I3!I_i-#;ILk(q7|;KoxIhI07odY&~$JB#0<%HgK~l7l*zCrG0npT`>l03 z99zqqEu_761kHnL5vRU5TEc6=UKH=($jju17X&8DrU5#WTz`sAdfxW_aZrmB39$F?(V-W>rVBiz?E z9{?oGiBS3Gkca}z;NqS70E^{V?HT#{*2HFU)*k~}Q#+mn&W7M_Id7@li`MAwIWjfI zu2AG>yP#oc>@kDdpqwT;M~vZR5Z5xP=QiRC4|IF|LG5aN^UJj_EC2gDGA<+T@F7~n zVM-GBu64e8@!7O?xK1q4t~bHE#^znYk^{IB?D6HtkEnNPwnTs0 z7_UlROtR!NfRm9c0&2Mw8fUM6wob%@AiQjpajc%KiI{2+)1!9QmC^L<%!KE}M(Cxo z6Q^{&0G2oJ0%A6~tL&-0qNlFrd#W+pMPBcbmLGsT^bhV4TP(`?z&xdru`emZLGP{| z6(v4r`<f=U7t5L013OTXj8t~Oa0G)Vdm6-n1w6Ono-Q1F@JwX%ZKSMV z-1+c|1cVM!v1BcS9<-wldJ2aqujxu^y>LS9SAN8+YS5dd@t}n;jFCN12l>{2h*Cl^ z-Y)ZmC*md@yoZ~STLlnlq2^8*JrB=(Sg zNkvoP@5L(%`9@+RCtZ}i^f$?AEDo2%1FpSQ1CidUfS~nTq0uL6?@bo}RU1k{T{4ro zqF)cD5N1qi3IXk=#$>9cD#RC6s!(O<;!;FVfGnUL^V^Ju%TK-+B|{}t`qv;*MeU|= z>ya2GrdE933r!6bkbk7R;4wJ74c7bQL?jp`U25BwQl0_#F$yyNhpsmGj2U#-FFQwI zF*n3seC-?^o#%N>d9;F;qt84AL{l@g%*fx=tV~;dT zsQJ~r(rzOJy%IElQWNwnmj9nPTQ?g!C($Wb_yR8yf-Cmj1fP$rJt!lP+acv0 zzR1R7Tuo?BmCN?+k}mq~qNEP_!sDS4<(Zc%K}1Lx=rwIyYc}7fn@gS*(Sk**3`<-l z=;VC#0%sz<1PZKv_m)w~?VL0!DX2F?%4rh`qiPM=TJNB6@E88>f8rv|1eM;k`>a`w ze;)Bfh>+lPBBI{IUt+ekm@z)Qi{1tAO|yJk&T^ckirEauv0^dLG4{1vnhEc777!BFJk}?r*Ozrn zDK;CSj3%=59v+jGN-7`{E)0`#k%MkHAT`zG z(`h&$szih_tTQG#5@{z`Jc}m~;Wl#82w8_6o4w76*n=A-uHu~(mty^GsVrp+IY>ejq9yDZWJV>Nq^vopAtv867o zkve^@HW_lT-BuY&Y}{%8!XwltmZR+Y-~f0dqpaG3oW6`BUkRcw7_56ab4r`+{74*_ zmI`I8h`CxaK*$o{M`Ym)VcN2$xyl0^O-n zE*cwLLEne<&FJem7k)|6mr2?RX*0*1{uhm!q(KJ#X2K{dP{V7BDxV0?ij~|{+7bXC zzO4?upKv#hM)TjS9i#Ss{D>s$9N^xwIkd#f!KLc0P3PrPgvmB4B42LQHNCPW z**(W;LHl<_;U+x}DRg-T&WmSHC) z*p{hR1ev4ZfLsY=dZNubMPAxF7WUJRSi%4kHy=aGy-BA(fJiA7QYoPlN?R&)5Cj$`zM{UK3cEBKVMs~y2|FM=rw4LI z5g1%`zuxW#4{p7woNMD2ALk_%Q*fv$*r^XgssKtrwZE6O%S_F?EVpF6IHqb`KjK<`|Bj95zB^rkd+f z01L2izKj=MbUy5ziTP*J93M802YkpLOJ;L;A}z!w(waTiebgecz?oAyuF+~8lgIxfDKTtf?!lvb6YH1PuYc_Q z@QfGhWdHce7i<+FQV^@{%acE>t&RpmXkG=Df>_@ld~%ZHBCEt~G13uSJYt<*P@+0P zrD-8~_2Mb$ZX*SL*Pq+2~FdlJKSo+kJGbZjxQFJ-| z5@jjkB|=b%{0jGW1|P`fBVWth?W_DLL+@Uc!ePRF{N>&k1jxyXeT0~BBkB}& zPXS~Q>?smG+1!(}qLeIEb`l1B4zW@e86XF1Z;3;d!xC0v%=AHU&Z5o;>Q#p!48*tBzXttoX z(JWHnv<`#%?uik;`26o>20k}KSZwdydK0ZTDZ{6mo3`r2O?~$H=l@0qJMD~i7?0bN z+FiWc3EgZlR9{bVWE1l{{;}WtAge>NUfZZ*{{G!#t?>QWtvG1jUQK$A>k}5bc4jIw2xv={=&z(p$JYmi!B0LbscatR6XOK<}%s z&??hHUip{a!c>k`?cL zZ*n?3BCIj|`uK6>+iza3NCCDV@aImWcjO1j6F6plrHwP>H$p;Y!K1&0#W?a1>q#*; z73nXi!02kv{Pv2~_w2dtl2u;uXpz)IfaX9mJX8c6B_0j=di2R%Tnw!1PKYM1*a5*yN8Cg)^+b{21YXx{hzeV@s z_HE2^DyxlN0KTPi?u1H4x3a%xDCB=l4j@6RsVc6iZ1*5-vIQQ>X~IRV93If;h^{## z>_ZTP6DqkM!TOf$4`<5VF0fUtYf4jhw}0%%gj%_=eC8DdSI{ix$wpf&imHNdHc5qdq)R;emWYo?p)8vF}DnL?rkC-AG|T} zGHFpsz|tGZ6x?>HC+&XdotP2)vVa-3n2T^hU;CY(m!ZLb)epjU-T;6q#vIC$4KAo- zE|e8?84DIkze$m;;bq~3C?nqZmuf3P!N2xp9eCZ!!JEt;5VD#cw$}e$d%aH#>+3cB zryn1nsAxA^_Cv=9_4b|hJXQZwS*;YT@9rOVJIPsqrcID)umAh?`ki&#-(U1jzPUWF zz4`Z@>!0+r2{)rc5#!!{ufXiw){z z>VYD>s2=MFdXd4Dm!o&5SeaZJTc>JktL^&hgIar;j#-Z@6AixVVG|bJ9q4fWa?g>P z71;CTYKA>OgBsFC8Oq!6{Z804YPL!~L1N^|5Qo*+{8Gl(xzeV8TpFVU_^d={&Z@&Sbsu=4ITGOnT7EOPg+8xH?)ac7_|68jsAEjnLYRk4J zRs{rG!y_r!23Dc=ij9YMeWiJ7ztAZ=km`Ar?Pj zk&&???FWjFWdhn_*?cL4@(4H&&4^kNO;g{No|PZxfB@KV&EOFV zP!_lN^V3DK04~#Re410vTB8&iqhNc74 z0j~37-88zWIxrFld#N}-6kN1C4eyzT*!K>*A0DCNg8(Kfz)&}HVTPL|g$ZQ*klkOY z=%6S&6^wQZ#YVa<)As?Po~H<4{FS2uUG+WrTQR;Q@|D{9{{HKO1F@~VetqXthDo~c z7oBt^Go5?A?kD#jA0JfCx9$Arv*$nY+dnVQ?XP{d+GdHrfeq~S>*Cb~anT{ORs2?X zHaxcfP_fRUOFtr4tQuu>g`qF>9jR87Nu^LRfgvgTU-H1()M&3r{>X3i>(a*z%fAuM*ym|)Zk2uyV7~<)K{MqTlUUVf+w+}A1SkBqbHqV z+}z)khzT?1{=tFOfI`mpPZZ_Vxgtt{J2rF&zRh@ta(neU$4!wP-Xss!nim*{(J^Fo z_Iy0yK-JDAp#zmW8?$%vQK)!TL{yxy!-vuLtS~<&|No{9XsH*tyc+ zCWyuP&5y}LXrUr6Wg&`rqL2v>H^2DLz5X#$95FhE7rt}&N4H|6>R}~rKkhWXKWwdR z{_TsuZ*F|?w=W*tyZ7Zv`W$7h}M@#zq8`N!&c5+7ocVD5c=0?dHSq#(LXVh+DhXkahDU4Pj5C(&E0gbae>Gv_L1i2 zgeaVF>VAVbspj3y#&HKtm>)Nd@20J2l_M0rf6^}kfL_>gBfwuNC}Zx);Ztri$VpOZ zSZq%w%`D1wjOr0^%;T@GuzxB9u(qP7Sk*zhg>l@rfGV?1rAK*ff_p`yQ$+{*1xCg& z=&moV9e)m%f-5`vmmd{_ZjaEr3J$5Fw!N8AD9k#Va)Cc+$yNGt0Lw)4<$wg9^6M2D ztj%>2QcYHpe}a}P(_X|`(k_V@H$7D@rTp^e9%;$H=o?O9^R18 z&<HOO!kLsX{5Y86e6pGyQlj!soz^cl=e2}@|@Zq z=XRV+#uT|!-Dn0nTT)@_tN0_d))w@BnM}CF6dGdjqy?zNT^YEf+bU^hvU5~#(WEl< zH{a3=x4i51&I6x;Q-MVy<#7FM7#314#}ukY@#L5N1-dARLAXc&O1Nm!imkc2WvIc9 z9k}3*CFXkkp|4TMudbG)m8Si{9npg^Fao&j9P4PfYD;Olytx%jCgDVa0*CKER1-Dt zJlG$x|EQ1yv47hYwT!NisVQ7Z4FdHmMzQ$)94R}FJ;iTg1H#vdwiy?e2*-=j@Q+HY zsUY7j>*Jg)QY9+oqt0NLaJ({2_Z8(7;BUbIEHRT=!pdvPJK_-nSx3u|*#WYZS@K<$ zU@jp5D?}bM1_FgLH%A*6QsRVdpTX|X>5NbA#NGX$th^T?mZ?~9|B-ybhPp=1Opo?% z^wk2v*k^Bb1hYuEA^UP8msh-)f;+KDX{C$nM(0DPPt>^Cq2AoNzH@l9ehA6yIt#u8 zk+omP!?QPy>tN(*($g^gcA5;=WG=J6%ntMMqgbX(LZny(@7nNPh8RZmzvi#*+baM; zt%X<8cHbWsw#nL=aW?$(!5Vo^8Z+OLk}GEXZ-S@iCPGVwg95p`;6!2-sp4Y8vc>Da zL+ZuP6+IoLX+Y534SbHvg5!qk3bT9Qlovnu&reSyB0{UJz^pTmqb#AiHq6lKP+7i zTg0#!vD(CJ^#aY7=66iHv-bC25cIac-g)%R<8Qxv@{jMI?mqkB`9ELmy?piKPe1?b zm(JTROUKD+|JQee_h-ZN|G+grz4&l>_1nhgz0dD|@#WwC{$Q2uF0b za$TI|#LTtzRx7lPkA0&pa<1B}=liE6ZcKgF(0^7fKY;l*zx>|@|E^txJMaBpsEEX|AlL4|XV*C6-+PS_|9;-+^Y8sehkw6l zjQRJ=+*`w(op%upa*Roa#m6&3FVE5*Yj)(cTY(*4!!>xYo}A&sVtw`a%xFwg{_IgJ zy3vv&DKF|C!|lLH3ZCo~1cN#;iYJzyb)LnO{d973-KchSvJ+3Lo5I3^4NP}>dN3Cyux%hp1mjeUxw2>A zP6%`KxP?#lA-M>HcT=`FvOE&Hq*ov7)kTT8*kXw=$ONC8mFSMq#UL@~w92I0i zk*o}Q{OET-@MvG3c0j;G__Xp3yw*LgL9oj%*z&~Apz}UCg#A1ZZhkp?WAzNTe132C zmg*TJG+A)!%lqXiZ=ShxDlVN2qt~~UzCmPhwVC_)|j}KK(=bxBrrioBF{d|Cx z)MwFx3lef}ed5-OyNF?@k5cPZFa8VJ$!?gv`U_Z^qg-zK@aW=r5I#FTz&Nwrqa4ZJ z7AVfe^HG)d+pLJ=nY;H&{LI{w<<&){M15p-k$v;(>>b`-$G`yn8pycegl2KwOM;TJ zpoXo($|mPVC1f+rG9osUlVHlAfMC!PLGBn67SX_-q@em5Lh*`Hi+Ezk0LdQ!iCusZ zF4!%0I%lX2OJ;gp>hPE?4mgk}ryx0?*b9%oSrXt{2%5A#hB~IIWzK4WpVO{P3`h{+ zoB&Ja=zXK>6x?Uj^Xw=R^vC*lZ2yA$>krsS_5ivG0_0en75YaW;$NWCjGkgE&d=3L zUVanslJK2_+6d3|IMdKpJFS(=!cf)s-IK9O^`t#m5cVr4 zo}3uzvv7FLFE%y`#@0%W=N>V{q}D<+V|e$iSZwQAzww`G*ROAa`>gUP4(zjj>)Lc`TwuaCgp^wbb@a4b?hxSe2vw=qlsmvP zwYnb7h47Jxc?JrIAVV>Dj=>f7F4+u39X))HyMs@FC(F4&W>MKt-qozgm=_z{i_U$mQLuf$U5rOc#6(=8sqemy0sSRt7YF z4&}LhymZ z8xiar3i8R0Gesxkf-B9d$2*}Kz59gHpLfmz?7L`*9Sf1k*4s)DP4!waiu@w-yN5l@ zKO{b)a@hF=x6GN-Waf&}6wRFKk6(Z|9EnjnT~gSof{;c>-&}Tk=8j%asi*xjqEr^1 zo~_bNu7#zuLKJ{Xk~conlAr)7siU ziLjb-$v`ef`IZVIfuPHW*ydHo%WiQi@ym6GvMt$B zgG?8G6-o*2`*vF1Vn=pML7O8w$k@c$_ksHayN-ELN~T6PgOUWjYSNtCr<)L+z#oq; zkWPOZj@}`k2qo^{KTHABBqcHyyT4qwy_t$S1%ZxBkH6Y8eHC@pZ#;&+A{aUp)yK--3a3BSk*`=8KmS zTwkUE)!2rFHt5rqFdQ_@TWE^9rwV2%1OeOIZNL5%o;+fSH!LCJeVN055@BuQNBg(W zna##`c2DO%?$yTgPGdJ#=jWuoH^%pq+C9@Vdp2}rR4pBwN@`YiwWQ@r*H?~&8O5v< zTmN)8go0B@N+TqEN^V}6J!$V-oj7y^0Tf@0y3Al1mcWA63`eMPUn}}>w81|Y{Z?>3 zo5&|4$R&(E&pUIce}$_20#{j$N4P9yDKM+XJHrZVWNQ{`S}CHTf}6CeN@_mu+_>Q~ zA^@0B7bGDmY*)+^rGkrPm~#Y-sgMB{WwHXMb&Aui;g?>*3_yg|Xbk}6&7_SYj33Dw z@x@M!p(%4=FuC8E)~=-&HCGh4g*2}rf;;@Vdl%c!>Bg|RSG$IofofM(T{8y#6Wv1N z*-j;wEl1b=jl^r?gRDsAc3-PPX9H3b)_$n~#H|Okfk**ZNm!-0E|5v}vVge8kgh1| zBEhMZXwQ-BHxSYq&Q{D*8!Sv^5kf~PAD!}V6e*-M$yp{Z;Ijh2@#6zlWn63bYtQjX zapI>3EX;F@(|=ON-9So_K$x>_e}dYUnw}Az{b4vl|+5K(hRrgw7oeZy_=U z2maub`!=DW^$d#rN*u}Xm8!5sU-*>>xmV1l`VI$>!>H&v!LuBzC0<|4ALbB zS)DyhE33?$vjYtrr-DLIEwtt8f_T&T04?S#2Q4UJO}WadrWz&9*`NsIvh8jf`b3y_ zTk@Jj$l+`~C0%9XAb(!5cc}HN^a>XC5ojRmEW` z;b-QA+?w?|&xQCu_cLTe7G4GMHzU`W!KF$paqK4%rgEW*PfSPRF%WB|Onk1)WzX9HF3 z*&+(st%H^cW|?uURD0Pp&+mr`)foL!4MvjJHan^cd*TU>o@3w=t#liQTPH3sQWFvl z>zAc_mOEU$sZ>A!OrbDO>?+mCb=^0J7a2H!3*p8=PSNYaazlD8h{;CeRr8U{8~lVF z!M#adbG0bvk$K9d(C;%))-=S&k5fwmP)y?1b?k`LMR_hkdz>fHtQBfhnO5wFK6C^9 znwh$$q`~FY_NC0~*>& zEOCc@O7)rM3@r3BCue3~+|E4M_2eem+>crCwn#=^RNb~Z67oiFlv7u3r7uEsrZ7rd zwY2&+d-ogBw%5BKjfh2DtHo$GVRt@OV4WrK^_9|w=aHOjrk$p5_UA@(&oO-LCaWAW zWqj1SoFSvXVHBu63DuoAr-i>$u}{1aa$rA&%c5*xRxh& zHc*P9K~P&T+);=L)RwMTK;k+UxJ&h)zxVjE+nApl^s zbHtw{9&#Liat`MgR)0I^KhwGAL)<}nY4t?INj*64KeQqVtL+0bY;#A%uta(4{HAq! zU#+h(nu$}VP(iz5ac*{^5M&m)oqZ^eo6|7YvbDyCf}geVr%g4o6VUzFM($eRw$0)Z zhzK>+m9Y)7XY0RWBHBC*^cNa{rvq`K3@hlP zeB77<{3amVMG`;PZdV7tZKl=YDoz-?-)<_i%q4j)P|^KPP+)~HNh=5;$*fEn&IuQx z{WNSOfO&yn-9H$wB#P;z^$a)Kgm1!x@8%sKOhm;N6n1%Zuw{hN0U9owP{Rkr{HH9G z-<@Q>IfIvFY?)%|!Y}|?MJhU9l2B9ho3BI|&kxT8q{mSGuyQynsGBz*9EZR2T)8gmY4l@Le-*cs)NipwEg;v+5m6ylG+Kli5}6viBc_Mq)c9The5Flj zfDu*OFwR`L8Njogk_e>OlnRGI&;$z%PT}N>Qe5R$_tckPF0lY|1B`96>}G zkci)MiNPxQ_Dbl^PSzG_MUfGtONz`bFNuO62IwYKTWXqPbiZIuvkfRpG+C%f1QUxz z*57|Pim;H+M47daL&b5BPgGzf?$Ft;5ercqJ3TA2 zXr!hGOEr$VX;{)jjLL`0$e+PY3)V0*85j?7&IYvI`f6K>I*X|`-eB70`)2Mi zjdbQFleV!xX5;8-kXGA*Yo2b@{7CRf#DJu-(a+NQ<1t6N;kdUpa}Q9wR`@bE z?yeFa*j}~kFxhjT|6dP>G$jlJ7G^XJd(y>yq@ME-T2zAyFmnF+<-;!ZHQi{g%WZHJ z))@NN=;rF}Jg^UM87;VUyJ($3LdSDwpn}!7;km9LQw={X`ONa}$B(dcdn1A;69}&TB;z8=!SCW}#v>G;u-GaDtn;{$J4{M&A=57!#>=JDhM3~49s+7ce zjo#K8y;t9^PSDUZmnFgLHXpJ5Fp-^a>szGc>~9~`HLx#3BD3%{oDF09(AK5HQcigp zH~diZG`bMH-1^cyOzcZW^qmHI?8!XV(}X!BJy`6XaxiPcXyp()&TZ4e2JgETGXnO^ zUA>V}m^PKedi@<46MfpW+wT~p#C+@R38z{4zE{(_?vS?O>Ana_r zk(Jc0%M})^{J7Rw&35yG@F%`6Ov-2Bp`9J(T|x4;^sF6?PV@U!%x1dLct&BDtl7ge zdZ6~qrZ>2JUo_r@1!K2ZQ~Yi3wWOuWGwtaeZcmg73I&j#dFoYu345 z5W0vW=%lbV=*Z=JSw4KKxoVpf2CHCo4$W|8D-4sqL1*PC=FM% z;WAX&IRn65r^t|Dx$*2Tlm1%$@J<7i_ z=?@|Jg4Bq?L|FO`k9dqv#6Y0LAljOeTg z9$st-hIn!VZ(#+LohIy;PXCKaE5cg{SE9c}N_j#3NqpWc%AJ9qsobKQv*V$a{U$tR z(LN3HQLB@nkvHV0*y5{;0&ao5o< zmE(#171rw2)Hbm#U&@SK?8<%Z%1_Cr7e5v?Xr9zXOD&=@Z91bV6tam%ApCncORO7M zbqYSx5_<&6Uu?z@yPEJt|Ng|_MFoXI`;&vURXeFv2`Q?|wvWe=RHCjJ)Ab_7lGQc5 z?~h(qlv`hoier&&lilAP2PQ!D%zkF>P_{)|49e#+!WU)n|ygkAb5=#%as0)`dhF-0rSoGFZuo0VsX7-mWl!<>*8<3>;!Ge z%miq!jlQe%bH2~yXpV~K`H-mTBfdF1nn&5a%%WKFDl^6GFW)0jRmF>}6oJ`~YzdKr zD;Y@2{RY-g5K!oA_tOpp%fn!6cK`@F#yBJ|Ch2}5ZUO&evbA~2+TQd>Y{)SE#?Et2 zP(H`|4DY4=h<$k!f(cGMflG&q5jGzef7I&L95~)iH3gUbtAE+mMML7IrA$b9UB_sjhrx1 zNP=-VL3fjIr;+pIq;`Mfeq-es@bJfU3>Jqs`hBe5#&?<~1?YEI4;cox;ey%MD9#i) zI1kW;(*x!Hx5;Bx<@ z0j~!6UIIjEwY42lO7`<-vSyEOwrZXBBB)bj?=Y#|&d7d)JuaMY9I`@-_7L|n*h0gV z*(eJzi0XG*{aO$yC4Rr{2ze-h4IbxaAt;wSRQ)SLbILi$|6)i17lUAMSm6Y>-26or z1y8r1oNe{%?X=jwW97y}AGUh*6nX4jOF{peyH74By9o@%MF8TIA4!+Z_7kzaz#p6v zK3u~CMr&075`yS$xRL}=<3fl-p_tt!S4pJUyt+wnjV*7!E5=u{wb)PyD}P(~Pn#Hq z*tnk?9*PbYs82s#z;N>Q)sv&zC99KioVF7LZ4U_A9uTzVc6&R#fQX2p1ssziGv2m= zycrhb%Ue=GGRWZ%y!BdU+mP10ETax-R3GmMg5%i6YKzZ7PpU2JKuFtz*e9Jx0bim6 zM~>HyrvpY)N-b8PHDtA%8G0aee`l-k*p`{inq@wr#%AKt6OBdz%$QS&`1)T@+H)%!OW|aUhQU{@iAfx=b4@GigKe3onQeva%#mc}_@)IXPPY_IR0eH-T-88; z*KUZ68Zt46kle*38wg3xTU|6N@4`@Y6bTRvPi<{; zu_?SBJl{ny5><*5?TAsWsJuag_EwhLg7pizOZoYE$C-qexg-aSjS8ks?xYnlxdd#5 z8ja|x*l69{Xj5yn;cTN>yGP?qa$3-Au(C*f@s_EPBD?qm8j!|_yjEgCjY9*V)S_FB z_v+J6`QCw4g|PK75cuN4w-<<@=BTdX$Y8CpRWv#DOiLWKEZ{BbA4yXuh3(NGFiR)j zmQ7Oxt+4Pwb{E+9QLTtt$VWwXTwC+VjJx9*Hz1O7AZEySn-pv1$%K6_;D(8Q)oM)A+9LW}7xLZNc3gc5d8-ix#Tmg2QG@wWCE6^1{bin(vh-Cub zh&nB(5VF{TpEsnaa9eKy-hs*`lYdoBG+Xg8;WiyLFFuf>IR&}C{u5~N`8CkfR7{MX&yFB!Bx%2++q7S!;1M45&uhPh%A0_Z zpxc$j$;R9x-zbzvlycREd7;A=sK=UU^UKkmN;RWZ4$Bx_FcM!s&c zZjr|w9g()mVK_vagawCJ;#i@HM85LzqxRXw+ff&r$UFMTmV5Ptlri|>CzBy)hThtT z(|%Vd%S|1C=jo7QPd~ep(IEUBpZ1R@;df^cf6eZv)dhW`EhIo8E88oZ$^sMAEMr$c zGIn)J#xAXkli77Kvj7JQjTNCSs8Y<`gi!&_PTw6Uvi&mO?8o8p#I>(1j#ASPNq!FD zTjjHcT5z3HeYvKTr;7;E(8>U81Y(|wxjCFurr3Ok^|u8)Qsep4O$G8sa#OFyzBoHu z$$}La;pQw@oYzDzIN(5)YC9*9MXZyPMa$~$TLF9C@+n+JM4ewpGYKXu2O$v8#t3hl zd4qU>+4&MpBJ$f7#;wyZ&-WWg2PGu5sFw)^RE#CThUeT&oErZyJD~omKLxR1VDv_h zZc!xcE(s7O9fzJz+QKzgO$;gm>yL#-`n@6-qza*#wiJED$INIZ67gjb!@pLr)G97& zLn^sKK+Xg`SysyzX0q7P7D08hpeX{vvj}PvOmXDEtL?Ks#DMhcW9%0p+^vw7kF=}E z3sIce+^}=Au_V^nCghI_^WM-{jvlP%D^(qO`afdKrbuwg_cVoY~`#RUhKA=P_cf= z6OnC@jD_V-K^n8mQlwx+?>CXq2$X$J$9oskM(pH~8frljs?e$IM0D zY!QZ~u+d}9uoDtot2%4T@_7?_HnbK)1 zdA)wI}``5>^Z6Q&bM6 z$TD0dOAMhxMt)D^pcPEc22~+@w~t9>k)dnnjf)KIx`Kk|BIPc=a)cTEd1XIZAHbp6 zFWR#}EHIQECvomTvhI8<-2x=rD}iK}V6ZM9UTj^?1IhLxknDK>@}OSDk?k$Uk&zEi ztL;hh+-GaN^ixZ$95IyB7;~8FazR}#9-c=$*abX{=d{enkBmqpOC;fo1~%J(Iy-Ge zU_|lh0T^)-jSR4GgyH0aBeV@^9V_q%9D-C1SU?3Hah)xoF<$02ctjGFPv`wrm`YgC zXFOJTix&4<@JDrvW9JPDS(`*)$=KSwk+G-n7LCEPm74m*vNO=N_{SGzliD>f<6+S}aNT-g8=5EF{z!1po} zlE4>^uK*Dg+-?Phtl1?x0jEMhfk%fJ=0yBcYQekOuaI5}awYL=^u0gVjZUTBj=|WG zdlm>gLj|ng;TY>hA+KN~uT*(=YW1g+%DM=bi1`Q9hx|SR_VX$1gBLl0i z+hDZ3*?%6-xB}ITFm6z;yP|)D7*4p2CpA2c3#K#$?W;EFQIETICmOU}Zk2rZ>^bc> z|LaZj>0zj$UJWFt*Lm-z_4opS0NupF$`eVqgrF#p7lswKNOaas$V1Z1n~91-{L~TY zSJ35dg&}vsQk8FUgqp{Kk}fyenv^kv;LFNg0&J&c+kdef+S=I~aKaW*6G-)zD8J-a zbx)_-+e6c`w*V5?=5`*|kBghuG1=mMK$D+CDR#{Sibwc@H0;4_h8qgIBhF9vNeyrn zOTsCs3#ea$&Mb^wtYMET&$rwAMD|w$6m^fENmnhtaoNv{Xd?tV>WuyLfJYq)T)!~v zQKeQcSm8G|0Dm?dekSOz;LdIfKHrxq&(w+#a^9LtUqhya5q{^Ndv}LHR5%U6d+1NEMxj zSd=Bj?+Bc<1!MuFdB}cltEsNRS>qZOl$`6bDH^R}(v-f-NNMoQ6nopHQ+clDHRV)j;VDNm$QJTFKt!jHrA#l>_K zEv%8Z0ky=wNqfwj+bz*p+?c?ZJd?zv@wsKaktNBsc>@pIEg@f9tjU5Z z;M)qMqzJos@|8e5I6zTx&tUM2K%GheWRW|^4MdFz_oDsnbn_GCkZsM8ag-URNc<3O zcIK@zK091Q^hBtP%YO|Ru~Qa*lW+_yf8M#$J;0fQl#37A(!P5^nCUPm&sj-bz8xnN zvJ=e^w^)D;%xewbID4nfYZp%ucr*}=bVhgyBq-$D+~Fy*PAK-9#v{n>ZW>Ra9Qy5?q7PT55_h5xCK8z`VLrq+7yJ#|IT`nH+CJR@u}FgbuXkF%)c*SLsDH6UP+`dA zbXNqnG$|;`rOv3|xvQvjJaD9*8VS=A&f+h7-$w+sd?YYWLMbCG&bV)@0mwqSM?5!6 zgWmC^Ni@NdyaM`*(~KXI^J*JQ_Fvsk-jzZlkFA8?FE;+dX@O3T2g47|C3o6wE#Xq5 zj&uuDLrV~Pjld$%3P*Z!^Zasa>9p5BIpvKUtbFxw`KyQPeBW1pB?GX&c7-!b{C}mv zaL$>3LpbdT{%hmBcaQ30j?h#hVa-b8-sfg{l6W=ptEO^qFn7$eDvxSDy_rsLz3tng zX%=BdZnn+{3kaa8-uN|aaq$+^F;>YDq98LVlwExRrXtBPlm28t*vATcuYMiD zvnr#VXdleH7D4F*2B@g>1l}36ehuwZezeg@YrJ+_ujGowO3b?3mZTDnX;kNe}OB%Jy#cyH;MLoXQozav#W|Xo>8Y=tJAYkCq@$igpWd<9`SoYofrWB zvpTVj{|rU}|1nXQKijK0u)tpFMmyAWmsi}mGbUXapxwyeEe?jdkeqsyaHPZHQQFxa zm1#{xAO9b9(VzP!@+zU!>$B!YYWo~8Q}Y~6p2^0lt&cfwo$CI3Va%Qs4f3@H^i>Ns zJHFP=?X@n$)$P_d60d*s2?){ab^``?pt4j$En(HTYUuX&Y<-`8dRg1kE6-F|S=D2! zs!w1NL+Tzac!Gq9c*8s7*PYh(VePk_dgHsD*1q1j)3q1R?YMc`f54?0ktHvPl6j$I zWtK;8KI_}w&Wk6{m71NK#v=e%iICV582umizO}2ZE7|t@`4u4NIKqgB({#pYk!@X! z<$z;@19D=5X-6OdiUBDSvW<=IZ@+U^)q3r{1vuTE+%v}M(J|WV{j621R@JQD`S}=E zjkE63A*48fB|hGI{g1Viwa1Y8K+2YP)@DyLcWdVQ|BPmC{?BOU)?eJrgWB&{pip)J zI|PAeovtA&OL!T&T-xt-4iNA+U^DCjBso%jt9#uyJ`l)>2fKac>Zw$VJAv}=hFt@w zmJ9fYhr3ER_Nu*GaZWyX%W0ac*PQ3q-4z17XfEdj7F-40zw)n%*5K=+wiXrF?ZRWO zeSx;(F31OC`UR+d_Ra##98n4YYCBk!?9sawTB>3yoKUg;ZY6eL`~7;2%sU|zL=mvQ zyAoX5K3SJHol$*bUE!mCTTgxA{thVV-K+D%KD0gU(HI^wYoJRMEmmF#gAaX`h>7~y zm?)siuC0g}mQj|U*8fm<;l6;P4DZoEpt%?Z*yuYot@au#q>SX_oy?ucCCKiGl@N{0 zL$2Ga?bz}ri0S(NM!2q=Es33ZKaH~2>vFtxVPSb8N|c)~*1m6M6=;@_MY>pAd-Y^< zn+k889^ghV7GFMj3ck8?%-^l%>lQd}JV4-UZmvqP0q^0>BUjq9m(B09%5Q`2iR9hF z#{hPf`2GDR%7GVK{{Ff7_+?i4&^;XR3(8gG{h117HnB-r=H7`b^To@*;YK(3o8(;k z2^rh(t&|s13bY59bMHiRzFl!SqqZadEuO&{f9CuC^7-24)?4irI?n_WL%u(}ARK?Y(Te7+#D*%(LCsNIZgc3#s_~Qh%@S z?n1&l0+qQ~q+Scv!GOpvIkr)+!ntg(K+VNR2;ix1MjJMeq8Tc&?TdKW{!o zp>Pm&ETukK+rei?)aox5e|m)l`5xCgSscyhEqvh`W3A-R1lULo<41@v5T@`bdfD4t8CGh8J!dyNpsj3zwj2_%6p98!$Y_1 zpy45*?A1^@waa{T8*{Pvc#VU0*w)3!#kUw%-(tM{ptR@KAG5sE9J=rpb1M&`wrJ@s z=GGq8L|A-Jptr?&+&)VtI({|ubG{9WNT&VJi&45J z5VGP|oQ5P6(1Mf>O4!@&m#;8-Ap-Otr}QZ6L(HvB`vA32S+DJsbjvxglENN`GiC43qUmdKP4hv>I!T!G1B?sSsP zf=cMNRuB_!Nf>QA2}rh{gru~*@S?1n&ki2RV7ri^g?2|fG|u9;D#Htzl2gK3DQm_Z z4_fU){*CJpzY8&9wwUFc~?Hl}QPS8sgiSXg}a zSWtWf`BceCWTA2(h3OMAkqqKOOfy_2PdQxK5&dv!@~4=E7Y;L*KBX)cn$Q;u%TXDZ zKcY1)r8UOAt>Z?qzjs1faR8J!XwzTN|1DtNei%z&?Hq4abefK!4?Rz7Kz<~8Qe$pV zkz#HJ=5jL#H;*POZ5|1A$mM%I;<<}cSR>>7owkOdO5_CWNNZWiLfT{odjw=p6|tM5}L~;VVVi&e=!dOb6FT<%@g*Zq zHL5mOU_a)3=q&n@f-)qSkOtgdiHxY8=3T#IUXdr|^0w}n7YArA=jI)AlFa2Gi@(aj zl3n(n_dhsUu{<`aX$nB8+oMa-ae|UzWs%CK{vmxIng9oQ_Rfi3F^~%X9409=$pfDK z3WyyW%t>8TylyQRqkQLrWu)&~Fs9(n1!EfSS}f-0&c$+$T)9qwnatP^CeU>cWk6h_ z*Utv*6J;_@qby|Diy_C#tf`}<*8 zA`I#;aiTE*lt+*IA0_FJC%L3!=m4005cL6mfnJVRod3N448}1Kz3=~cB7dj2-GqRj z){Z_35Jfwptiy-?NU^EgOx4?ei0p1YW%VVfXVFYAz;)%u=KZFNh`S{tU)&k2PLO6tc zw}_s#o&Apt0gUQD`;e@MH)}_wzn~yUfdKBGTA2X440dwFfS@9O==iWOW^q3-X1B~h zs1(m{$j?W#?6O(2q0YMU^Z2X{D^b8b$QM=C`xj?;8kbKQ$Lz;-{T)@G{jwf*$%_>_ zT?uUsDrB)A7N}!!(^Iq9>2}ktyZFi(kV;)>7*ze+@ zaQnlBTQ}xF16oWvEaIou>3v*Cw_4&%>6eq*_DZCG*HlNJ+bd3g|Cf{1?G*s;GRs8< zSGI2+?Emw@!Gkvs=BxYvTzYWezUCghSz0=QE!@(Z3;eyzmj3x>^k4~ER!je^zIo8t zU%0pQ;LV#i9}ecLZ}#_>7yi*+`1E$+VEzqYwdW*h4@v9ttIbT+M*VC2_vX#l*Nbxx z8ed;mLYA_fc|ixsn?vii$OP+_DhMg%c3m<^Dp!GkBHpFEx;HJ4b~3~ZdCVf{XPPg#|W^i}q-wo6a1UKzBy zHzyh;8`&Nnrm0Z~%)$-YwasT6-oF)7JVT0@|ALm-ZuWnlH4rMP7M|62=iNu35Nnuu zX5Y&`Ln_y;UqSKqY1v`m8w9R{Hzq;z(_9E+)3Pi4(8guE_-PFr)Mk;8c`j}8HzHh|c&Y>ycAyn% z=(B7Cnn-R)KUSX+)d`*mL_znNo5^GVF`%Dc@bvT{uY4WCPwr)VR7_pn$euvkXl?_{ z*zCjm_xDsMf5RWud!Ym*wCTpgD_+OZEZPAjj3Kn?mtmU;kP80|i+ZKM+Ocm|fr;WH zH>gz@r`|yBxU>xz387u{^BXb{^Vv7pd+@O4<6(T{JpfcI&5I7{yKT!EXt9iR$LRRE z!TP4Qu>gfEXG6(SbHlkYSCim9v#Rb;nOwm7o>8yf560_wFlrmw3j^}Sl;K|tRc-bK zad1KtX&p#H>l!!nb^UAKz!x+H|2=cHLU+qj*H5aP{9uCu_eM~}5v_-3jg#uLLL^MU zg8vHQO#L2fy!&Qj?ztpnG3c_`$k3^<6smqL)R-_@5e|4BokV%j0d#_O>$drzG4So` zqg`m0KOf{Y*@_O4ksTsi{t#&$t!{-wq;+)ve(MOwSr2NtLx;8i%ri$`0wkXprG#^@ zF$~&^0Jd5!=b2hZwMxhXO>rGy@s*2utpM2JiyB7;!+kV3V${Ky*1(@JHo&*f;>FxZ zKTJP7>33FcQWhT5VQ}p#m?L~i-|-HF$o33Ku*PuKZ@%vUnG2yqr; zcsuN^;`=)@12kK6Vv4X=r1?Yn34r~Q!rCaSABu6QVWujnk;^%teB@1*&VZc*PYob* zL>ZByyh)|^Te%FwUOS>mZV9Y6pQ~&F=k5{&Udfv)gvLeIBTplPM0lx^@payuPnx_7 zd&^)r*N=QJ#TSJ^v&wRy2To|PKpEmR7mW+?KM?B;5)j-BPLje=UP;DiK}^f|qsSU! zS6N_`BA>$fy(^7$h+Uw>AUg!x

0T$a83yVx&p>eU7b3i?E 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

@!Qm$7gQV}>orA--uN=f)Yh3>!4$YXo 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�plXH-A9pdlB3 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

TP@}e7{j#}n2|Ni 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

mDo2PE%`7g`xO`i%y_-Sa$rO00ZwSE?1s?-XPo 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 z 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 literal 1914087 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%0A$_XRbKC82UVbkt4xG(ZL{H{Blq2WTul!qU_Q z(TyBnuIwr$HR*|dhiqv~|(S5g`St5qBY?!7*yZ1m&s{j#n5A zqMp?&4Lx}pY+me~lpdS~!DmRi`J&-un2#R8!j2U#^NTvjDpWc_8;8xK>=J|Z#9(BQ zDznbvlh)!tkcD9KI;YAYYh*ocympB-QHoD&QqaBA>BEx=C74(l$D1tS7Wf75_J6c$ zbkT~QMZM_#Uqqw{LR>hc+TeDf2>=USj8pg(9LT%t;7K_4C0Da6vjGQ1j`ugn)Ne)ka}l<_G=CA+Tjq_Xr6PNCClUr7;9DSO_sC z$ga5G*3?UqBv?j^7643&4f!ZLVT03oaS=Wv?N2=I!A$8lWRN38_?2>SRsoEh9P&6+F2KN)Kl5Ljhy46|&uka=IQKagPsMq`$jI`4H+6 zXvexugMSPLn1mh@c1?X)7lh|@KD1N`Q-s_ub$6m{W=tQP5c8sx{fSC+54TmgDG-8KSfdx0HrW)j+F>o4RqS_Mx?sV zm{9K=x|kiJv+kq(vJRlppFR9UQ1Uk2cq;Au<<$F~3UX3o%bSc5id|C{u9?DKjoWm`iA^biLhhoxN~S zj9aYd#2($l9cQI6_g?A*mACui4 z$R#x4Q%77hBF~!x1;BA31o`${7Yeo?$=bkXLY4#EfMG$c zFnumumy%Xf?J=rqkhc$Kj{teJu`w)KnW=tw%wu1EFel=;wt*9z1w0KZ%gfY-dJZos zMMRm{9G}BGc~jWAMyGZF`cnvHr1DcNp>VvK_YNj^#30g?5!4Z`6>#LTo=D>WeVM?7`V zQLxIEO3^(>QvqoSAD*;M8Cwd9iZ%j}IRnqoKuet^C+OQKsW> zj%1S;Cv<>vwAX%w8`3~Seqd!5%axg*st?e1WwC~)D>IL(H~7o4YOS@1Z!o*ZKcPm4 zSO&O3{tC9?OMF&Y%u(g$K^3FQ4kgA@>l2igz=uPpiZ8c$;T}bDAE7WJm@&E7XQve$kB{4c7Bc=Zte^HSK_8Qx2Ec1?O%KNadB9!+ zYVr>KNAQN94_co@h^Oiw{0BRi6UY}vrRJr`7#gLM23U+1R5jo!gpmg9mLOP10vS@< z@$m)s>15t?@aFj4dN>1xSZNp&a4qL+FX~3r9}`P>&=K?vP>X2)Ns#Ec6_9+_jL%=5 znSlV?@oVrtZOuT}26ZlT&q1vv1w4Kj2PsBZ5#M+S#X*ji@b`@%uh0>ETyAs;lg8}; zqW(f~{Y!*Tfiwx2-Aj6TmEdD?N;}^sQ0lNZLr4Q+MFD{Oa7>{CD)eZkO^TQhr&2@+DwzIFItm5yLu;f|5D3KJzhB4GFdgETod*#+XoW!32ax?y-Mz zsNuE#Dd5-ko7502!-D$@gu*M{H? zd=J&a?k;Skm=;V>1!n%332_3r$yiztP|Z{`Y)tZ=${koR@^7eu+m=l?g)u(p3%eVJ z8{;-$H%C-%)V1CO%r}9~$yTNM6x6n|YtZXKZkWmq0D#a^QrU+*U}<&e_Qt9MMpzvR zKS)S@n9k%pJNb?~C8C$Qq#C>{Mphw7vU{~H@lXQ4;$OR<3wU|bgQmE_bPi?Mq&MJf zTGGH8TUYrZbXr^60M_5$%fCz8%Wv@a)yn$H_DcC^!O{X(wjk~1C);&=vbuu0II3G$ zp~7}uD~wL^KTPLhp;*+;bzy`!gYetyG)APvRF@<)cfTwjzTds$!}mxeGWkQ%;po@( ztFf;UMQz&$Uc%~-b*(PcuhQ12dkodIv7P$(P%zDn#zl2ur=EWQx+RW?1O0M+!k03M z^}=UMUmI=MFiF&o-W}hZ_R??OHU4OS5;cT=crt&-hbQythfaH;pY5NHFBO&(hgv-g zg+E0oDzXOyzu3BZ`v?ycw=A!;*-gX^nmC$GW(_QUqYA`u4%SGYc+owK2SjTO#Cw2* z`B@oMsOV~{a?^rDMFF@XYK@F*vQR)G%r3o9_;^V{x01`iJw(FSG-xrhtgFk3kTH<@ z`~fQ(KkidtwQHr+VkXq6tj2AAF<%%hdGdi5o_W3ig(d+~X$NRQN-rSd3+ksp<@J0I zMkdCJMy`Xy6Ukst=1nXd>i)eM>c&gxwOIeoGG@izy}nU!%9pFWybp?K@L4zt8l%Bz zSXLUexsq$*%ga_)&d%r!TFr#>_=>FWq<45EtUt095@Zyzd~t?u;?@cQ0)=!bZk=Gp zHsYtqi}eOt99l=Qsm}5~7KtDc19_(a3Hzsk7+zd~?MUs41|&f*MQfUPiS3MXs{bCO zf<#J2GD0AN0KLNqdRvpA*B#;_Xk$W=by@p1C#*o&S)hzT6w=V6p&!F38H}S}2`sxP zS{pt}p16c)KNd5qQfY!Pz!_FK6F5&_JNp7{J*?nd(EgCs(Jn8D;@y2$y+%H@9@Rw_ zWsNIyo`bY(W-?@NGOT8Rcu;F z1Q5PXXRF*zwE`89nVGWtxVfnp<)%piIk1mJ_6|8iax{Rj zr`Z7J*3}riEWrvzt^r}nqecDj5jH79Q@)les^r$MgmupGrhZ#~SuMfR)Fh)pJFVO` z?nzu7kkG=kg&Z~pY4WIZP`o0qC425JAdC;8uKQWs+Sgw9FTg2Wd2r*SbLj6JSB~qM zPqNXm{#dy5F11iL^O^tn4-+Cp0$FQ+!i*?dC>9$6!USp`S?lpnA5jxhGC_G4dR|6? zB^6oJ@3H0}5Q}L4F}TeN{JQEM3SfE|dj@UAEDH5HA9r~RTZj)XDW~FYcpLy0efVgb z>tDQta0J^N@2{>^=Br@8b=`eqZb&K*29!P#%-9Q9aN@I$dnKQt!#rOM(2|-$|bB98Z@&>G<$e8rlqtHo!+x+axE_i|4zM5<7(uqWFKMjtb=Yf5KdB# zAYkcVnnJUO$$P_-2IzeqFb{wqRf>gZdIR`WWWi5fY|6b}di+u$z9GVD+Venk4rn&R zSbQ;Hq$HIc;=6L|{9-sN17wj>+Plg9Uawps1+vKN>iNr57mKT*ZmPgRZR}MuBgCtw zHc`w%V`xr;j%$DwW5F0M!Ybk7357*{Zg|5-LwM(ZqBjvVPU=y0ytkxWc7WN&@v(oS_J-g;+P!atiLnF!h-9fu!}< z@k1}s|8#;d^$1nx{x8kWJgY)>N#%Ew*Fdd|64+CfGg9}TaB{kchTIY68SF!-Hh=N0 z^z`D}#CjUc+Xre$eCx|HGMp&}J`#*BTw+OSDt{oPmc`4)vcvg8n3Qy9|Co8*Z-{bA z13VPpmoLitqWs_g_y7FA(wi0!9Ax?QdoTU>|NYYYx$Iy7${mDfnrSBT>Z-{`gz_h&wIp-fEI=d^Q8+$QB};U5mqKG z?B^$bh;WYX4!7iIxs51J?Ngo_x>Agt-tq;!Hr;paTj)O&nqhY=Vu-+Yxi9K#Ms$(m@!8W)#0H5LUwz^RFFU9={Y#DrnpkKj9A=6PFumm_JXB*yci7}=tj~_Ex zbrj0qTjV_>2SDBa#600aAbf2f-uH%fCa{Etohww8V$qH9?JRIi1G!_e<*xHuD}-!JA+*99qHm;|9fvrWfFQPznW z2G5~Xg!)>vb$VL^#gJjthagr9;82`g5$qr`EnYL4RzdQr$&vFJbc)|XbUN|dsN)c( zKWf#l2d=`T-0H?Lj9=9&Y60ic`j`Y5GA7@2OSya4j1*;3v7X!nZ{e5K6K^4-?IQdW z6qN}^6N|&Nfth3B+Xje^r+lWXyM}CJ&bAHKRX?!wkd4GTN>EPTuG}s|pAE}IN9NXF z3@v7J8B{wko;30~WFd+yU19!2Wh2xJ5+Ma{CgT+Ncq4HPbhUGbcV`ZwDQ4c>7{q4S zMIv>Mn2eSt7NqcwdIm(N z-B<*qB&QlSUbY?<3Fah+G#NayOprcC5glP@3s|QMw+LimxoLh92N*I|b)-;_I5Pxm zMnyQt!6SxYEhf-mkqhvdD@+gcmwE-lEp)mRF?33m-X@?&9J zK6*~dNGk|oz-=niWJuW#Qb{*Xf;(|0vo?jQIDDLA3|4smMyuPjQ_%0xnN$4}!U~@g z3^T;naVxj(4I3BN^HJ>r|E|_tH=d3_X%QQZ)lqW9e`}M+mxYqrdfptvZLh%8DW1Mm zYgmWAoi4BG6?uD!9uL|nO)}%LJKYey?urWcNoYBonRLr#o2z5D-Wi7HuXUb^N!L1s z=@FUaZ!P#kDS>bh26+VrY2rK+on<;zs3mTpv4O(IvK4r||9U@AS!B0voeWAvyyVG6 zQ$>Bb+2+7dXsg9UWy%0Cu`zkriSip3S=? z{?UaBQ-Rp1L z)mnpw3$QN-)2 zBB7|x`8(F33Zo$J5nuXAN-4VD>#S7=X0i^F zeolB9)LalNiTnd^p)2v_Go?uXud^0Osc2S2I6?81Tpn%E}TEPaif-t*qriW2TA|`O6@u9^=2r@qec?nX#OK-P(&R+^=2fE6X{axf< z`bSc5R2Z$fR=~cwNf$jAy)8|$Ixcox_1#2#?44r%s){%ql56h`w*&{#9FSQYNI-28e5em^Hmfa4I_RDgP;} zN$eONX~Q!irndcnWIgIdgf`mX7U{w-bcG8c zOVK9!flU+@No*K|W=k8e9zP~^2_!k`IHHo7ATwHT>Nq?RMUstUweHgWz{II3G4eBM z(zuSN+pz=2%fk3SXcy6a$!ijHmH0wdH=VgU*1m~9gt#44*f#wOd~+ELQ4Z-V+R2h* z-6hz`Q7flA!AE?c%{H*FBh#UNK>(3TajEPdA0niPXi{w2#tWLT+Q?DI_MResmZ^&C zBPo8P-GA(qzGdZw;Mi%XAT_*fooN*bb5`C8E=D*l)pg&|-1RC#Ts zhIrw!9~hAs5)$K($3VpC80tLSY-I6FvT;QZt(^S@&!l1-&^Gg1u{b9?ts?qa3?KZE z?P)aM56>6BeEG5{fisKK5gf9Ltx0&XJ^gv63oy6pD8I>QrzZUTl6;J6Ms&HRLOLi$ zl)BiuCkV`O{YPI{U#5_#{oU8q*7xef)ejQY@7;q3J0$@3M@iGvmpcN@FJ!E~`KdhB z`JEue|IUUE>nUor8#zc(F-q45TuDQcGB{1usamdMt@?66*Iu z7{GLPIZXm3OBJq6uuwyZcT$uo z)ars5R)4ED*7dc*aESqq?tLN?)+v75f{yl8_Y}jc4Y-gQ$U@1)Oy(0O?ae<;P?K&; z&PI*3`fya+L|r-&^`?CUBqWKl()zdm)F)iWfq{IrFuT4U=0Q`Ki&jSf+L-}RX)Fe6 zwz1p6tzrceAg4&Sk=ZLk7A8DJWn*fgSuw`bK=CQ3hNnaQs`T;7-N~$liG7)hC4G8R z`G~=ubR%pxc+L{<&Th^>21QAolzw}m-)b}X!f*Pn)l6b0HRdQexS`7ldUg+FX zlv(l{Dfyur$l#P}dmJ1NI~O=1CNwB0fbN{vP$?h?iL)694JDAaV9S(mm9?%+a6(1T ztTL8q=346;xNuq$aBxVdT=cPHhc1uUMS5`)S0CN?l(PPP)cys+X~l*M-5P{Wye#ws zVSWL^i7lrbZ7L$2q?;qdp2@alZjIK`O=R(!@evVV_pB|~nAj$wgk8E{Rz={4AamMf zjg%0HiZ+p34+zF|-bhXNYM4nSkC%BCSz5&+VJMeYQ^7%kU%R6t&LMyBkou0bDv^OR z%F(FX_0-axM{G)F*}H1lMdza}iF#qpBsuZ>vbs1h>1q;XswE$hP6W|gO|-- zYBW+k(%Zy{fu}5img7zH7svhm4`$!+BX%(!_TcZ1@na^Hf{mse^rD{(L#!wYj>^@5 zi}vC1B!n*mT^*{OQ+`td8@njKiT|R4I!X!q8#i^KBBpXrft0lRS>@eS2}cu|Tg9j& zfuH-+51S?r2=I~2G`xwPQG}yJF=dq^^fc1L}aS%lKc&C|4d zu!Q&N_QauVpI36FmNXeXM}`I!7=sf=I2q%19|f}NF~Vx`morEGE$ieliuZAfs_DE} z$Kff-R}8Miuu!;i?-YSj8RT9lNz0I%d&;7i>CAkp$|u`QR=Th!Ox|}C3tFT4cGPd$ zbb4`cVoo%OSAN&(ZL zT@dmaD$Z>;D^#hZCUHE*St5ooN>^<*lN6P$6(>wG)ZOkw9@WkW&4w05xml!Gp|2Nd zkjgOy2_S`yCd!e5WdLbXH>^m~1?-^4To=8Tq)+4)FdI6tePkSVP@-e8TzJ2n7(2@H zMCw&IqNMe@kF%|uK{||9O+|DaVVQe7KM*}Jh=V2)S4t$gUd#F?FI18-;NK)fRi|w+ z$|6nsGVXkgk7(jJN0V^%vi|7valex&7@P4zbcAE_FAjPVMaFxSgUPUnQDUZ^kn9+X z%twt(a=>pA-#kL6iwR78!TXw45xkr|%M9X0*$nVY$_CrSFNz0}>ARw~I9@=}dk*IK zDH*z}BX@69jgLuFRi_s@Rpy!26f>h#+e$xWG?B_<&vI>6wO#lojyAQ&w^cAkx_$V_ zgrGCc89>57cgF!JpRd`YP_`B~5YsvqJk5k+qJujPzYIq`Q!t^Gc!}B6H;t$9gQfr?&I*YB<4+`$Xd(%9rcuoeb3?516eIY( zB=^y&cb|zX7LsJ7k$0^ZRCp1og?A->uC!}zDj}Q+01Q5%P2y^0MJM9d!@Q!(s!nw4d!bacs3WWu|w40UmC8?YgEIx(t>e1>8URLmuQB3S6~(e_QtWDI@R z;(UJ7Jq=kj6Z0oCydfnx*krONs|%1g97eX_JKeSzAf%BC?K{!cHNTIZSSDH{VQECr zHdRI)iChOUBr)I_d7vaUp!~2a`tL*J!V9cIdR=+!aP>`kb$L0}WfE)5%Trx4vC_PJ zPf6(o#fa)JpL&qh|e`s@8bD^N*nGI1dOWv3SmwwWd*j}8n`zl$v36L{} zU*hA0QX$%6YrYf5F<8?iH(Wbt$QzEh*dUX%@D&wkb*ZHQrt^qNnKdbB_(I< zI|DV%>GFVf7S=-MUkoDA0T8KZo>Y&DOXW-AUF@#N`n`+S#`eN>g@6GT{DA%AIETg{s4i!)NMqI*wfeM?VBN-Fi#V?wS+DXT6xY5SmuD~_)_96w5&GZr6g|b+W zABSJEDnc@=YlCBC36GQ1s{|Kmw<6N$l6pZ|{p0*83gr=~mHSUSb2Ow138%5n0&C&nBnSB>S|o)PQtwk~z9UhYibS_ONicnZD)?=D-@;IUlnXOy&D#ApS^ ztPrSf9taNbXicTBll*nIO55D5c{J=ln8KKt*No(6yz)AwgE%P`7b_kZxsqdniu(7$ z!q3J&yg6egSK{4j1srCu|U+`BDO-H@9##tHFJdd)SKZ$Gq< ze+J}cJBB7taG6hT&q?ZyC|l#>uV`N1`r9%lAe`J_V+#9cH))GF0Ze5;jQ(~fV~)#Oyeg;blil*U&tjJ(byFqwP^QFv3U=yQc3}{g*J;s zU~yTS7F%N}=QYO6cMhAIJu|uZGh5`ua>Bb35YvSL-gutL10@)t6B+IF^7ehP%{8}+ zhLEDCkjxX3tiwuLBj}SLHU8v?=R#>-8o%$5VF; zDvWs1dXY&H8h}bd%3ceFc^$ly%og?%)90-hHdoAxOxn;FaoSM(Q=PAGTXJ=-@YJN7 zPo-3N0VH>ATG8kBRZ7OVxSU# z`zycGS_+1Y+n!igNT_Inr4lk;`UwwTeA@=W+f8LI{>(O1F#L71D5g+l z2~saEWtS#8(yu>Q9{Z727+W5?V4SiJ?C~R(rMU00bQ~qn%5LB1mx|g<5vNickewdy zvo;bd#76uiWs4p7w;0i+agw39|Bm!8S0ilf^qiz?F=_ZYLmEm~5d(l1u4Mp>rv$Dl zah@hgIF>p4B^W}JckQ_$R)`l9j_hnXxdc&B47;1xHrA9D+qyb83;%T*+#TPt8P>x**~f8GRKScc_eaQ zzj~qzm_W{~GIoEF&C?TznC&n0b*L7F$}48mnS zxkd)+Z_|sFU7N3keIlyHIX{)hkicI=D%1U?UGaDEiVwIaaaS#(duYBu6*c3~l++y= zTo%WQgo<}NVH5e|gJ9k!^3Ki-f>Favg`>b6k)_126SD11MlPF`!M8q&_15b*&Mp<{ zmQ4OCkXrJ>p$1Y%D)$qmGhGqbkP>MkY3Nj=JPv86Xbj6&BoOmqHkQ0NY$TNHy~u># zYVjAHz)*LkC-eU9lR^Fs_R)9a3NGei(M%|BD-(y>W~4nD>hBE%vSuEMfOXo|*94x&U(IuBbx1dZG@>jjyPOF?^L;!>m^vjbv682P6R zWB-(n_D`AOZ7=*Xw_gJJZWNKC{8RL5o=O~Sw9~Jz|HXVZYy^w?z;bavppg?{THzBt z;I@mIcy{FB@T<1N55G;<$mPG+5C3~ z8PP#&eKUB830oz-OUC~2fkIiYfL%*8o8Js6h>QJ2^@ae`Or z+=TuK&m@+nB&Cb2RB9sD7N+m@K--NK+Qhf%pir)$kzgvJ%1{R~JXI7akCTB)rW2tb z>hew-MK0P%b-^Ynnbi+_W11FtcN2O`Zi&%Fgb-<$Iox9~jNnYJz4wf+7OJEC-o*Wo zWU<)PV((ku!lGN98c##(*k;P&-lpjj8RO!6VC9Z3Gv?FHkDC(uA+B^b zzL=c+Cfl(}>>Ro0m`i4&y7mVbu$jEsi6Ea%?6{k{ill?rKPBERzR4xF1}A=IvZ|)i zHL8n(6L<0|t3yQLGj_$-BsP{PMdM&zlniF+oWM#;_R)Jba=UPRclILJ=zjd?xS($m z8Ce7EN6t*rQm8z1+;GS%R1K1=Ub`$f#r5rEsg^&=J*_FsCxN0N#GbJNzOIv^HX$%7 zXA2f8Ehxl3G1_c{U=(Rpt)v%=a|3v*8K2v_x;UNW)%AX}Ck0pXB$A=GjZxwHI{kiZ zGvBJq+G!68hFm%_g51+fQng6zd-IA+IOHH&9J7nb?cPKw&1)3+FG&_hUTHpCuEDSm@aCC#`037 zQS}#hds$Mw)Yl4)rFx~loT?@ld?w1Su1eY3a=lPnt5w!(b+@e3enUWBsjf7rvsPKE ztt9IV!YLwYKVC#VnCh~IX&O$Zuseggt^}OcRw|9upt^(OVLW`*dW{8Z)GI41wQNCm ziP!bmsj<{x-m58)PMPp{9JjurT3=l))K(gmdV1`punQdp(W8k z8815AQ+p!M>S-{Jgv)8Rwp3YL(z_E1lda`aqqRn*q3Bm_jeW_` zS5rgJr$@CFwx-%j)du^{shK57waS_*U9YVc8ntR=DYfr%h!V4DtZK5c)bLcx(xrNX zf|?dUnpV~;jTG_7rA)K&BTbyxLz;rD*C0@}N{Uc=$&!Ms%er9eeso?qfLhl zu_A_6K#3ZawG>s%BSdbyS@KiS1higf`gPFeb^?@a(?fRhh>oA){66%i>d>1*$;b=j zU2?;A!0w(;ZR+69vh1l_m>i(DvNQ*yQ?GL12v*O*?6Bx-Lhff%mL(Rks<{?$qrP0L zEUnJP>cAN^^!}=O>v_1HCHl}ixV{R)uqD@0C*lkWQ?IPmG*=>whFdj5Vpdiwb%XIM z(3s`Q>UwJT=g}CB(PcfU1~kU0=Fphc%91{=tF;C|5Rx+&mEn|FS~K&h`zogB%nI01 z(}V`nS6@=YyOq=cv*o&8SvW;cEr%PDovg{YuoTNHmF4vmMav^Vkmjo9maDZjU&Smv zf}vhAtPx}mzI3@Z7i&}lZ0mZ2^@gWjnm&P(D;fuuIF;5bE2}Oq<H-YU>QPt`21RE_2VnPn~<*%YOD-u} z0Sa2^Qp@R7{F`O^Jz1t&4h^b%2~bq}_ohB=bZ~c(&T@F5lth-J>`5tvWa;MMk>-%R zP@2esHJ0Hc*d(jVsS{_0>}9klt0;HedM;5}Mfy_Gc^#D#^s4Tc)_gs2L}|ImQ!ztN z)U@(Wxz0(j)()wcC!rmb?RlQ4O)h( z0#_Zi4;w-yhQFO1VzH}6B=%HGlO7?GYDD#Qct{xNC6{&bfot6yyUVO&qSpMBDEt0* zr9`f>Xh6}sP@-i}S8Mt>*6M<5X$68ym(U=t>w^&5z5=CBtAAZp(RyXwoYA7-gv(z| zuZfprp$A+s@EIw@g#SQHesF11NXc6zz}1yd5;tQK7XTVvl!L1deCA0^6|iRvqI zhNjt?JeswvTKCoP>bvb$fElWuQ)g=(bP(_CBI%vu>zqqakB9eo07 z-MU*c&)Sx$;S!mwtoCQJwRO6uUr%C?ch;5-j{>tPXQqdLut~Nvh=g}+BrPUkSDuxjaO-E%pJ(XPU2^F-#U_>BK#T*e( zV;M+~`Wf57R|tWcTx-R3re>CT5^PjklDT0^Ls(m#i+K_m!f2INeDxeL5G{(914YfP z3;^>fm2O+66zyV-s#>b8AqUl~ELj?P{JawjWR5tIQQcaOEJz8X6B2Q21vPh?Ce4rr z>&8|hsNhy~h#5Vt7^JHgFiB$kn3H#ceA|xPdTD|Nke7^61szud4eN4B8<)d9t-#kA zMm=5YYq%#rUHik-Q+Pm)hIf$)QCJ$`3m+eB1g^(9Kp4Uf=ByR&5NdwREXXs_aPl-^7^v}+cO9GTA;Hfse)@=9YaPRqzTm?yD+ zHC7zGcFdw0UA5TcP%gS9T_(9PRoZ@;N1$ePkflvp=!PU0 z7=1168DK-9Xi3+A&uFYcpL3Zk4>R?r66XFrZQp^>(j2DP zH&<{xN;9P%CQIXnsHd=?rTu|i21{?_8KrZC4Z&W*8AqE!XK_#+v6+C%sGjmD1!1R#LM?a7T)-POCBf6pH0Gz6Ro<;8b!f zb|}NDhSP=KFQNQOnfjkFx*YRmJT=5uM2QG4q}!2RIArKFnW zDxa&Q(u0Sv*08NE*JsLg`hY~tEO6Yh%yX%z%rOjKxeC#oAmQh~ypda9+Go()`_r=mm8n6FWeq7Ff}hC!aoPYTroIBgY)o{AaOJAgCc4?@W^ zp8q*K7Lt1${g9~i7ouy2+z!|e4?_==^&bkZa~;H8Un+t8Ji&FhJ5y;XM?C7#gsnGH zSez^F%{c!&q-h3wGeh;{)ggE(k~_&f8sve$LwC%%P(Z-;lc?OtxrVrUt)^8ezl~Qi zPMqSlf!1+#CW-m02hM%9mdURH{R_!!XKj)Iatq?`6{HLIVK7sOEyrSGHd_Rg5y`Q|LTeB<=Z7lK>1fJS%A)E=zcf3%aO-psGu0GI9&)QIRej{Ap60G016pio01A zW@Pnt1(IfPBrp|XB2J^T864~Fjk0PfV^z%|KBj|ZF#uaYq`yiCdiW?xg6*`ftMHEV z5g!fF8pjkz$WmJMnK8S~Fu?eUk8x@dz;jMmt-zne7rcHe7ekIlWpKTq(?b`DGpXl|Le2$)w3AbTwV1H1zkpvQbVaX#19y)^BlCt;texKPyOd2J+})` z<8J>>Ndk=K1&3ca^YkkF<54794mO@B*x6o7=3vh+>=#Y^6|yvklhddp>o^Pq6N5x|GA~3d@3Zi65W+V&T$Z@rGN|_x}}>ON`#ih^daN|5h6_@9dlZ) zn3iKi^RGpk20=Boz#s}TG4s1&EG`ATrIJI7EG(!MMx2GFcpObgV+~ggF>-iIuD{<+t%Go7 z4A&yDu8Wp?HeF(?nLr;Ktgw7LKLn1h8NU}f%sH{v(xQ_SivqIg_{U|5D1n=uD-s25 zkefh`L-J`9^usvOh%VTznITdDcirq;^a%~Y%`{J+ zryoMjG${Zu0(Fc)quhkB8}#jxw55CUT}siSh0)Hr*ZKxL5t-HHzVLf33v@Rke2b1u!Nq85#W z34~vFt2w4OV?>etrX23)@&Z^f{+D8WO4Rxbsi+73+;4Ma8L;vEgqw>`%IdP~7@3Mj zkqka2H-`k|`D>)YQdmKgm55^^r-CN}6~QEq`*Uh}3~voXX~dbsRkqGDyczC>j@)`4 z!4HE>O?M?eR>X46t>G4HhzS)HhibQK)=dDiXLP(61w~`BG?(EGeT>;_@OPeio(wAM zTKT3@N8zZIR@lu*pt5WYZ#q0PT`wJ5hepQeXN0qA;3e%6z&qp}AUt`==#@Asw9~*` z{+2BLiXOaJzubBr7ObxAAjAKiNF~E^HC=6nJ<}~Il0i%`ip0L!3~bflK9JeEUT-= zWJY#Hx01t=S!qeEa#(TG2{~qj2Co`BzGMr@R`b~95TlKTRP4P(kItLJ49F@B2--BCvdfz%#X6IEs$~OOtQ}qw zWl8wdT;VJx<%DSAoJziEmZ%RrqX;yZJC-Ht#;xZIWr@3~5~VdC=}LFw)XS*UQ}99x zam(HYuej1*h;khbx##N+9+<{`TJ+fDbjTRhU6&_A;l!)VUpk%MDT)osDeWkQ;5AIv zwRHkIVAs-N>E5iwmPR2iKJ`t z8HiHNt(uJzhW|5wCNN*NuQ$V;S6Vg8sgxm3Jx7eh8_Hx1fJ4KbjZ_tLN|6o2LE?Pi zshIXYz@y5j>?Qq_IJMud0fW}BS$qESkFYQzYrZ8PX}_l z!q?L=W08h_!_=p3x_O@D`Gr$d%%EXzVTXu`btH~}zyk$`+FMfkn#7wT%;AB!o>nl- zpkhXEf*|Ks^RQm1!c3fyT=)^AaZDQ#@&!iBv^Ji@ zQ_m3?;~;ToVe&|qcK7kuN%LL8Y-+M4x-a}kAd>TNUNEMS?#r#^Nh)QMX{p?VAi{ix zMAeZ&d6+4;q9+H-vJo_i#suS*(g}QK(5+g{Xbj05;nd4;Uy}0L99`mlB0Ax@_%GPH zh#yYW`YVZ!!{hFM)i-m_T)?-xO>vH_E00`nu{(MykOj^tUQE_bGP=!4d_3)Et%G7q zaP$2A26xQ)ErGt)viy%`X=^Y`^(w%fhx=Kt8f}eRB}+qy)X+Or+$fZj*nBSD;?r%E zqMm9Vw#OVD90AP9>$K@*drV3~^iEE-4BLYsteJVaLBgkH_d#maq&Wb%ah*SNW))9@ z-ZppCj4ysS@{yBvJf&cAH@x5N5-H#6szp|2=XsfxgsU$b-+J&i5U#zkz`k$_s|+UF zrc=!&FeJ`4+AB!{hdDCsQ$E8T3MG$KVEJk~QFBJ+!{r7N-|ypvd}wMlKAuV*P55jW z&r*f!$RCv(-L3d{0^a{d0^a|+$M@0c#a(=#<|8ii9T!DqL$W z*Cu73Fei~jLO2z@w-hWH6p=_@%=>eD4oGO0@dm@q(yf_w@)o}tC*3^%mk~y(WQ$k&tEc|iBOlA2b&)`hKte&PH*mp^8lcTf^V z)SgbJryh1`p1TY1jK5uq6Lvrmi`&#hP`3FvCCTfc!qaZKbWU#W(ArB0(ZHR1-Ye&# zlZK6+t>z&-s5cDqb38+S*H-4eRYlysqlCI{%`Ev5#Eirtbur1D`E+gOH)yF_%?aCu zdaf8@1111MmsXJFX90(Cikw>Add^J*#-m_e2hq(b+S$uS#m?r|a#$x=Eh7ucJ!8VH z&1bqtX=AV1z?ICc=ty?bg9!ytdbo^*afW0^4;I_pdYQ}S@Br7>_vmaR^CT5uSys%s zq9T5xN`ECS({RKM>s*Nbm(XLgtF2Z*yr40L+~yrQBUkHhvyIIR!T(K$v6VOzfGAPZ zN9&)%JZ6R{Iyq5Jr8yEmeenU+k;WoMK?zjzS;RaIyLR;ayft^$M1OS-l3VW1y;FYM zKkhzCXacBmm#dima56zG78i>~#vz1!BDH2}e&hmdqo00XIduC%Oye}spLgS zU*(sVOT>G(*Nj{u{xpYKB9m*BzpE>tC0Y_Rg?msY+GvKOPW~jbArwNaZRR4Ui@ZD6 zX0-3mn&!{(mCwWEFMo=lnD|byyNG4WWpuu3=#C+MRt}=vYe8mo@c&D~#y@3-kecLv z?YEEaV3V3dR8qY7EuxZ&teD3%F1K&E?K%E{xz_VLk`qsZze)7*wD()`y1K31SydwU z&*}{A4M_kfcc?Ajez}=2J@M_hZYB5HAhMa6=x?;D*xO(O=c5tuZRXUHUT*4g(QG5!5QkdYp0^)YO|^bhJH=1uExeWm#dA90Fg{HiCP|wOCIU) z>stP>n1t#1bmVa>zV%uTkVNxz+F&VG&Rgu+D#N&~q4El*3BOBL&?($r!-?M!PY-jo zL8Bm77|)Ck^=+x#>pAA)U9dE13qn=ydqwM#$samHDiYm?v6gFvO{Qv=4oT*Eb8)<6 z6O#K0=3!%?!wr+I##_xJBAFyV;!Ps?p?t;N-Ol>ypf$PFS_v2*|ut^EvT zj@!6#?4xm5oY~j58jeQph>_U_R+I<&gv-g#vC^5uX57UaoQ5sE&Bbr;=zqG zDU2e@JmeN%PKwMG{CETu1UB>KKr|PIG6Ar9Elnvi(w4pzR<1!q3pdxzV{`iG{V9^# zJDkeR#^?5^@ce!7_I)ru3EozNr|*NU?>CP6?eVzqtXBxnnQdoWcr$7b#>d0a>F#6{ zwok7B!+0{9%BV_V`D#2p3rD3ZFjJRmmIgt$-1_!qX>!sX>qg6!BVs4?3;7xx_ow5N z<{-b+$6rSO_!tbzH|32dwn+4oK^KeB6XU;Ei=LQD;)z*>t#8Bf#;2%kDQvX{(|&*R z^RU|~RGVQ%g>^iBUEbWJW?)Lvj$4vTx2L1Q)6=ub#S3l&7^kbynOo(weFl8CrUS~J z*mC9a&CT=otwH#u@N?MiZMV-DS?Y0olKxsvJwA;K?}igV*E*gKjwapVpcDeME7pOL znC_mxFFy!3Hp+V83f)#%=?*&K`OD+d$A5e*Z*-4Kc3|(zw$wOLs`$$YXj5!_uhm+t zEiB02u)>uHpC%{rTYi z!;WHnQog=!mlqZWm2mLyX*dl_?J~<~>y00HS z17nhrGu*{RDL>DM82sGh=%&VT$lmDP7)$^`!}5*k^s?7_dH5^4xbi8Syc!KB!^y>2 z2weSd38)?%73_Nc?^5~drd&C*1aji7=i)FwX&$f??{}PFkgS z^Q*BXAYI-xE_`;F+LWI!Tj`|)MDbRebjoEtva8OJdqwV5<&u$U z*wlpMMlI!JV=}t9nzY(q+TDqr0qX@FYIhj#QG3EM#HvnCM#C=&pz21VWs=3@Db+wf zgsFQmJnEIeX#>^5q#}c1L*KQjaxl4J39>V1wdR=moc0q|7z`CoE{GQrSgWIZ{gJ?i)~>_qx+x#^`WA- z$&K0do$#0wgpJSXFu5qbx(tc~vxTOMSOhvmg3-4gcUYtZPWq zdIskaeL4cKCSmEa7hFm2&8u)Q6`wb5@RR9N{J8sR8a;m*btm?>Zu`~cO`x0q`no?{ z-Xv%HsaNU;S7)Q}Gc4C*waU#&>t5}q1wD)~p)b_)HM;>8q#O*?2K>@vM?<5!nQ5K( zA|&Yw=vr_hH@czc-?#d$Z|~jfS0=+3gm{h~v--hX^|sGBa<6)Qt^U@6r@H9#?*aM3 z!oBWzr@f;(s| zrKh@L<*a)azM=B;(@9CHzhQ-*Aki>&&6sgYWQsgv#;^hfh597}v%>ILfIBId85L*Q zq&=F9f9_6BO6b=o?PgKt5_05q%-j7ZFL$1PD3;3?!fzIy@4noroV7>eP-?4_aG6sx z>@x+YMa4MNq+PK=%Ts-Y>RGT1DyPT`?N8zLb@A<>HyC~y6g0mMnbvK+?#W6BYzOVn z-A`@KxXMw#dv-X)xoTm7`w2S3FO}|iH$0k-!pFkApHIr3vK2wbP~a&GC=-d!vd-`b zEFM@KdP<^Qo=Qb&s?95wX;M-6+v*1srhd^6D`&%TR~EljY#)w?{pp0wXTSBs<4LQy zxUT*uEPB*~UgS}D2IN^CsiAm(@H#3Jo`*+|ho`4)il9a~15M!Lqdn78$YyZ7FRW*2 zq9HV?jE4OXHmNurBOY8|-;>7R*)1iO&rMxQ_NvG^JepsYlL=e<9|WNcDh&jcOgo#K z`yT|M1{L8_g!NK&Az@_z0<({Vz=x)S9N-Z0GKkub(I>7iMYg*Aa7F_k<$JSm|7uVX z5_j_twaAS8AODbdw)KzR_R%+d3Vj`@4+qmxzZgV6n^*GBpdy-(m8G|%zR)VS&Gxj@ z9eUdwoJ}VO>NBmz56vsJ=WN4IcnCy@YEPOExtjiAWfG1jvKhLk;TvK9HjBJQfIB^F zAi|k3I5Z{NF|srT83KrE@FEwQ@p5zI`S1Z|yL=NN+i?=v1R*HO;d40sRJt;IciimL zRt_S$kPS~VRtN=MME)z&OuLkRA7&q+JvT@^&xf-zxm}MXXK#w?e#amT(hNq zx&HQHxze7L5ELpCv`r;=zSM-ayNL;zql11%-Eho@%5k^PeJ7>TK78~CSkADl<`q3p z%9US--9f2XU{mUe{B+sk5S#E(i6$ZEhnY~RQmG8&J@l>A*H4HR9EN0(e8XZ7r<0N} zwpUW=hBkydeWEFzB~G&7Z(qMC8A{h5!VfZ$$_W;T@o^p~^yB@j{>?)~m$UK5;Oa!3(qr_WW|uAsLW9Z($Q%P|=nsD#4+q5na7;F@ zzMD=?hNJGK`qKRPi1CLbHoI)-=GBd0znrUKW!Q61)vY$Wuv3@}^;il}z0cHEgNgTo z;R!3!t;jv2i_Ib;1Z?z8@UkaN!jF5=;uI@M8qY3&`}$c~El~of z7U-pizdXGEP?Q_NubtLa`>gw8c+q49#uwaudb+K*m3nb9{PJel3kTy@oc~I(*`#Cj z`a~Fj$+H1G;HME)7FT!(J9NDwA zU@|;A=rxzB>c?3Vf7Rf$JCI-1<=}jBbO1mP+lO5?@dZuD8&)G^Vnkk4sDE(=vh=A? zgVj9aR6an`og56BD@*nTM`*iG^;*DrIu79-qgU17coZVc4~{Mp?>eK4gVSk$(ghQ_ z(@4LN#cGNjQ$6Y2ADsiO^=Q`BOVffK!D1~qZJ!@Z)Vj#i(Ud)PD(iK2@eHJAIM9%% z1L1sSy>5cXy?B|C8X@Ij;k#GQ3cTQGDO?Pv1<<}Q9Sh1WE>d){$EV?$rokYj)X=yH zre*NtjeHY!OlljVOojHOprwRy0emT(!bA28KzIs!cNm_uKZi7xgBrz`gMxgL7W;fH z$k`DT*hXKv{XW%Y+c21k-hJ%?bTh0J{>4O))#T#@vaLofUkVzYg~JObF;T6`C&f}J z_5!j*e_~Jta+SiK`cP#us2dBN?pQ!66SwI3Pnok)f)<$Omy@n+e)Ca*Qjwdm!;lAs zahDHW^r)S}m-a=a@FYBLg9gHd7cG`I3#|0ww+e6ha{<=sC;lkRUHld#lsqcc1O^kY4}u<$7yNKt_opcF{7$%)RHWMGll5Hev%#^F@0zNybq0Y3q- z1?wt>A225|`4-E{Y;|`5ONCTpUmin`#$iV&Q+mr5zw03DMrf6og@s|IAnIt*7Y z5{qo+1#U4UY4Wstl&l<>b!c~fWkax@(Tq4-Wx{gI!p*7~>1iZ}77>qmMz?!99P$z1 z3P>{08-*$O$p-Hf_#x#^hn!!!Fj%QZ!5}oXD*hOTXEZtJUle+LJBvrDsaWwv_q5Bz z^lJ^0p<>Ly!O0LARhC3H78`=IV2Uetmxtuwm^+0<@4z^UhA3tlPLH@d=$=kbQ;jHT zPnVWa=-oK(vKs{BQETXa&6;JpkHFCH_Cls=fsm!j#dmKWTZl6ohNplXfn_7JYwf1j z8{p_fgn8+Ysv61l0S!#q~1hHn^7C~Sj*6zs9?0qpt$NJ1klhzmlSaZWRK50eEf2vQJjC685R$e z)TT{Co*4FEIANyl`J30MoK3@HSjGHig-)c;?&6cz|I+B8!PA+_{1UULeumPR!9E5!6o8kIPrG&ED4#J!v0D9+)(Fc9fiQ)M%d4Ab(*49RqAPj*4rWWQ!; z8P@6dADVPvI*pDH={(wI3@pLDDc*@^MPgB99@0*zsdNRx)rd2#jYEO=DoEA-ac8gTw%K;_kNtf#Z3rJ^G~Nzp=5I zZtQ(?zOnb~k^|qo;zd)v7Udbg_%~~BLSdw>Onb8|Q8#p-fYv+N%SHit z%Vz@ zmkGQ`;J}k`d^GBw(OU2V6}{d}F>H73J~v~25upYz8l|$5pj` zH%9%SN@=AV>d*LOk$PiUk!Po;NM8VkO&UM&xtY*-?gZ6DQWnEKeuJ} za?0!}lcGK@{IFA_1!%#ZK<-A_(-b&^N5TCpyzVPtZIHMFv=9P(;JV0+ly+lnnrF>Q+!IH?^u81ljt~lz&=#&7Vs5Tle@+9`W(H zC#bYVJ^6Zd)4b0>_sZqwt(}2>acA49&bFnqZ8}RVBW4M9gJle^IEew|wj8TFWsS{> z|DcvsjgC!?Y3+&ZY<+;nTl*j;QIs$zK4{I}l}gXBH9qQoddpSqD@*E(3wUJc_Q|{( zqULT70+sXl^RwU)hixFbKlRTG)FM2|~0GwhQw` zb@6B_^02hr-s^^60vXZT<39X;*wJH9isnb%3B0lXt!!c9S0m0ek4G1fHx8YmvG2eo z4V~~liZjF&wi0vkJ1jQ4lsu>V;bWEgGf*(7HWrY!z56lV9w3;9OjhV?|zOY$*Ckfn3`^<18Yye(gy3kjqYBv>)d(bm>{;9imseDI)G zKG#%`Q3zkB_qJF-f1U_eQreRhu?JhZeBRpA)^tTF+51x&igfWv@#QUOpgqu{vu=|O zm_A6M28kiEGleU7Bzxt2{}H?vgLx!_vD3Q&k`}#o%>ZL%5Z(DqGx4qJ$y@5pR4? zjaPADJNvtn56o}d>}NJ}%z8w_mEs9z{$Fx>CJ?x_6A{|&a!~!IwY{*AqE+ghn%xtD zPTbOu2`UvJ5(v6vB^VZt6Heg~M@z&DX}BqL6S0F*PdJPWAa>%@+tgq)NYP&FwXB0a zndMa8xQC3!PrVVZ7McPsETgD$gEv?QM#fbLZGo7(R{ zYhxRS(Q-tHDaY3D!~ly|vF3q2 z_#wuna~w9TF90+TeIW2}YXT_bl|Rb4yRE7|8_3_!IIG~3)b6}Q+s)5C>?TUPSlk&- zwuaL|ho8>|EJC-VY{c>7cRCy(D1L_*y7Xb#I)42$9ZuR$&yT_o!vW8`7u*~q4(c+D z$7pZDB8S$P;cgGnol3`#rhN(aeTmM-@RiYE9-~73BpvTc42?|V?b#=s=o4dkBP>0S z+g;@I!6!^=Y6iR0qZ8>;G-Zi_n{|>Fr-uoUNXr8p+(px&1|UYf5jrF@a%qOqqp#$} zD}3;kH9|aey6TX@*n)E4JFzmy`kZs*fo-;2YBK1xZG#1@XYxU5%K0J&60vEF3gRoG zO3>0kEJQNG^f(gDK#@^CqpdnJBUH%EIR^{!tuq6Ab4MA7TQyz_|wKoIbp$Pp6;9 zy+c%KvD>4OS)nJ&%cr#ysNcq%2@Q*i_K_zNG>{{_qJ@-kvrv4H)T1G|rcUTsI1;Hf zVVOsbl0EqqQH;v>A~L%tJnA_WlpBb+*2g1zuSTZjTQz!t8mKaEZR^=+D2i0wI@fPZ z$joE5+@!Uap0k-~-2Qz-{bMMp{i7z2^&-{d{BVG)NmYGx@oE^2I5n13vGUEk(htB5 zk-4NsP!=CCacjG>fc2bb(a;}YaxFec_JONM@UHY8j~mtI5At*$e;f0pxE(=^F@6-H zI8Jb0NpujBy!}A?aUgcz1bC7L7h&s%U~7_FSxbshwHPnYOFe{!1jP4(-lieyz4)lx zR3~8stzyxVfnLPFZf$=2N8#gxEmX(`;9a)&sI_%{txh$o(UMjTrw5;q*Q^>$AYMrE zD^o1hdav9}x3N6|K-bp>)pQ}%zvZmn!9!}8U(l2S=eYsn#@3{wX*%A}@<%}nxK_l; zrzQVHZ(a*kYpH+LJGFeT!q&OO*UVf#y9ggzTQb&Y3H!G!{eFDjD4!z^ICX%0NU%sM zf<>uPv)zauPt7q}`j_xHSMlZ>q)zPk{Z?iInn}67=0|HV*xZgcL1NpLc7!ueNR21y zRuUU$$FJc^hJn!nG3RZ#Vh_h&owjQj-Oqv z9cyFasKl@JvlY~J-6N%8(-x|G`a$%slYSV<%7GY%0z_t|9B8EqRXSb#z0u3<{_x%6 za;;trlmo1&`ScQst=p39{cV~;D}gSI=mwl2bmE+>gvtT7=#_GfRW27{#vvvDvoozi`M`**Y-+3!pOYtvnw$3 zK2rYI@`Uf}Kr~|)>fg776%B&RLF=lEc%`k6#X$cR0}?BR$LMr`w1&R3Gsb)!3v9l$Q9XU?i$)zO7_Ed|`JvcI5;hP)*@VU~ zw#Gy}RtZT|t@9Yq6kH386PN;*c$6a`9ncnpH0zJlJMC97oOzg+1j6pnTeUF+G9N7ZqyUr(%rd-IfS_ z{z-o)erB=|;`xg6ldOcOA!ij@V zVk8%H*A9`__gjqW-cc8laikUG?2V|K&LlVk2*-$1iu7ExOOq-+?1V^0Rry~fD1(@b(kuR|dv zaoLnx0Ed2D)*!FdMvPQNtFJg4cUrwfc+fZ@KL_U<7ls%M*-vjHF?zvB#F!7BycJ_i zToBsHZ;hkd@J%}q=*oC_nppp&M#hw6W162gSox@-70ASiin>`CW5Mx+7Dc_+s&73Y zLm4-c4>kr)GeB&f*a9kUJr5r2l|e!=f#UvPm{;mUKsOc_dqQlkuX`w!^clcxq57?s z$Wad-eCl(GCApZzMfu9d9f?m5h_OpXU>T*4&|U*6wu+`qmOaz2H@A~W(Ud2<>WWpf z1kE@%C90Vvr;1)}e4;FQWvci%j5~^c+OZ#n!Tuf_jRRL(hmxSP7!XeZf!&z4h2UBr zq;1p1#yx(ikt{5LKN`vaN}bEXKffP{l_a?*8FKQmGMf6h!X3~BA}D{5n{*e~*K}d^ z0X^ZBC8I_11hA|As0A*WC4aObcJ;Ht{^H`J4>96Fdo_?uhk~x!^zsPP%Z(uSUc`nW zHbq2L-U^(>(?H=!|00b9!QvvcMnfHCjrtiQQ-X*8QIr%vw@Yvr2>{6cGPFIh4D!~H z=|`cZiEu)~60!9XB1lwFR&Aq0cojg|sD1;lWgw!Q+ICuBEK?&`XjuB~R&`_hn>|6C zNcI!c$T{4f;mGwdBW{v6#0;QYOf+5IFhi=w0}_y!k)I7VG~2f0IwhfYg%+>}!Tg9b z)8;`bK%172o>+7-L0^;?%5lP9IMk1p>fCsgBW6 z>kSG^`6)wk?Qr)esfkD5)2x7 zC2@EV-*eUu6x)zEyJWb~8l4eBAFT>#+Q14T;I;;FQeCHxygb8U^3YXWiEc?#OGq!E zPBMehA?-V#GL0lx+)%UgBww_>xz{`i%d+RttKME0X+vvwTdibO!^HP5QuB4@4 zmY#w-229|r{1$*-T=fh2hBOo>v;tNGZ|JxUDeSA&sv|Bt-$QEuZp z(*3K5EM6^PLKJ0hZS8_YSV9~+N({!kvYBjXEsG=|nE^>qBqUK0^=$h{_Z9B%>pp*H z29)egw(j0rc8S1X=FIuqr%(6SUxWVv;<>DZA1>P^V6IRJFXsxwXsr4ry=!jCh=RFk z%tzOF*oH=%*~X!5c2w@A934kV4;fd3loi1+HN;ExZtXycZW_F2480_f?mVcH7 z=_BS5*CO+VD(*BDZ@S5}vX&3i(_-kcMbF4)Qqrp>9#zpXy@PcZT`St&V|@Nxf` zfBtlWZlBH7cKCO=gP(x0{_HgX@|lilPlP~>(2%LBbB(}+!$W$H*<{Tn z%dDQy9N(YjE#nP{#R-uo_Lp9rovUVi^WpCE$;W$RIGyU-*`zqGV|mL#qPSA!vScShHVzYai{id zKmArAMu2b!#kux1x?ns2pB;|Q61nAzZN6O1uXv6V)V@wo`6;`SZCu(U*T=i+7;nMd z-Pbo88#IE7Gf7vz=E|c-U#n$y1*=rUA2HsoELs~I`^UKlA3n5h_Ae_#ILXw_&EC}~ z?|Ri-TO}`2Af<NNO_usoxLyLD!-#ErYHt zNUX`eTmd(PPr~PRGtyxLjk-9-mtxt68GHwfge`$mmmMapv66`8cYy1KEC8j&Jc4xy+JpMqHUV91LYqVG?Kr?3x(V7}j; z57U-FK*MnLfB)xyGV{-e5q|nWj4m8u-xAT;zdpE&fy#IG`>zz7d@)@0qcCJ(SEiA1^_yeu-hZMlM@N$r**Adg9-I!*+Kxe6 z3;6pTp(FZc+;|1-?O6k3xjW9dko8Q3Zif5+quki5IQ$3Jcchx>jnSHD2d7l7*GDsb_H(?Et> zKrGw4b7_r-#BgBs;3jsTJQr`&FYX@TCK zO!Xl!W%tQIvO0cy^uz*|RuS)F#E-wmukq&yOAJ59ukmNi8~ahwPG66~U95 zM!}aAmq6OTGJpX8UJ;;0z@Wmjv?|glVavBL8N!g_Wb>O>^F5`3+j_Cn;*`-KY!2OT zZGcAhH%~lpj1TV@L_oh(Y_ETTj7mNMGeMP)xEp$YHpI+W1ehNgL4Ab~(P^*1DjqF3 zRDq7M8zWxPz_fejXo^4?_b&M%G*ZO*k;Waz?Q839f&|taA-UFf@2SyZcioR$iGBA7!Bs3d_n^1msN&+E`z;hzNkyvyD|Tv4|c6Ru;CGBHSUJ z$j0jwc{VxmzTh?1scYtxuq|6(<@=R=d~&jRbjj{@MWd{`>B6pLOzhHKoGbwlLGLTX z5_?&PDYe?Ed&{`Y8|UMU(uc@ zl<0>voZObz-=cq!TirPk;t&r{RJK3SKhaBCmLzqc$cKrwE7g`>7>PKO6=XtaPNaHF zk~2T&>v4ZEP`yK(i|}|$n!hhJMo%GV-Loo+a{44J$U0o7cx-Z_ZufWzXSU40o!yM4 z?5etf!;3BX{Nr&Lu}{6Lx1C4RryUw_)d>dPsq6QhbCrnNHN{nZcf9zi z^gu9Ile)-!M-5)=BrL(k2B;cqWqcx)ad?VeXot$s?8G08^)iKd60S@TUr}d614f#O zRG(nc^2o2^%EulZ76IFF_huuZKTt-;$I)bPke-XlQeqQo6rB$WR_!n%d$rfDsN25U zN8fy05!DMCR=sP9fQys)_4}+g8F{=@b`*P$)(!@Iy|dWrc7N@C<05Y*M) z2J9<7nCPZ-_=7wV$DI=~sE2VDO>Rf;_jyA>yIyxWdcA#@fgzEEG^3M5Q4@{=oDZgk zf96cU2f(igty}dC!WDoFA0lpgvbekBN&P|R+vO~7LipiBv^8U)%ZFL%J<-{)fXHNS zFYM3t!^4L#@zwA-w$<#)N2dEWn@_<-arS#GP)^`0MzMdGAR!>L_J$)hXvCik-`FeV z>7MJfdD-s8>BU+Ot8hdVia(PtlUPopjykLQ3yNpW=sdi9zvB4Ytbx*&KoZl@zOKFscgwd^m4e{> zeojpYLuwI6fRTy{R}fHIP^D1HcB_C2U21-FS5wg7f}FFwWfOln%1^3Pd7!_Mo1l>F z2&Phlm|)E)3C8r@ai*Pcd3#sNI_KoVs~aH@o02)V!s@7_D;&C6T{C7;3gz&cdCr6h zu-24%9qJ+gRjVbUt3Y2PfrCm{dnmbaAPv2|v%ngu{$S2OVh_R*((8A-J7y*E7iX^i z5-bOh@iJu&XsL(~0TZG!K>dbO8KmytF5-pbL3AVb4 zlp3M`wGK47__a+|gxEhsE3liqC}_x$Ye2gHU~N-Gu3#8Yfx1dln2yaLQIqX4SdGcE z*6QdtS8#1~GnkeRg+vEwTSTFotPalL!Asf=$PU@H)s@m<+BMpRPj5-n#-G)+6C#1XX(;%gF=h>;Pix57 zi^n+n*FV_kAS-<6TFuDTqTBkAolQdHr6!@y#*ks*9v2A}xfhlo6S z7DL!Yk7y7Kd9=fApFQGW<-+0kwkclLq=uP%;a5He2_qZEgtKs&4X8_OhIZolmt0g* zkYKJm3-&vK96bMk2WeiOn6*GRJHsc!EBgEtn;6X?_rErNB42??Y|kNJH85wtWrwh2 zF6dr?JUs-4VlzrOLu>NGhiec|YRHkGQjZ2nw%&HFk5Ow!o<$*vQudC_SuV(K279eZ zCd+_%<`>xE%he+51XuW^C$R$STNa9#5Og6fBlVk^*^_&7Z}&Z5IdYt)ZiB@r6WMs& zMSnHUOO01H^q|jT`gvJgL9yqGWdxzxH<6bLhpu}JI%fNKjjiqf)!9xv|9_nArVIQ} zob6$}{>HQYho(+j?p4v8pzc(FZM~ml;POcGPe;-FZgJwe8*bZEwCvAV1WDmYTVNbg z8^>FM%vc?RReY9E26pLPVFm$jV(#$r4j{I9t^7`g5z{GUYy9{WYTn;p4A&0dV|Z0; zt-{K~Y5D@|egE5Zh&2v1dVKq0vGXm{!7ch13n=qlkSvDZE)FlSHPm<-_G*AHXWy5n7jq=u?Z1DVkTESCJr^IF8oQ&q1WII@^%}0yY?Lyp2k^ z41L7Pb;dmvXeOCH7*f#b^F@1D*l2}mf|<4Mi}C|LXa*Kp;hO4 z57eDIYxXV41v|aIfI=3VCbrXmRZCS<|?c_eJxTWWKs?jIbGn`gA@Ss zSZ}hx&jZ}N2zxA(&Hkg!P2nHwuDJK=xIn|dlTeH#o@jXzOC7h zEY7oE+vdqatX?j1i?;;GrK%V9G_LzxU9FBpvmCb_@holEi4K3?^c< zB-4Blppshvcr(FD^~eeqYaeojIvk(BB17%srvOzzs=o_;0kZ zFaDiyH_jcAUAZk&iHPO0&vB*V;Cg#3U@+ebEW0WEMC>Et9LCNPF7A8cHy7Upo&73H!)|#As zY%gg*3>e_uW{7n$4GI^X+yQ5oZ{%FwCRkwwQjjjA`e?XTN1Ey-%nBS^BO+OvzuAO{ zzcF?*03A-Cvb1z=Hqse~5?_PQes)~~6mF+v-CU-#9+F%^nYQs#tlCazYD}VHO*GBA zn$lZ@m!GYlDJ6=zX!fOHDAMU5pr%R+L;@fh`2p6$31FWlZuK?}8aJPuy%L$enfYT& zExig4Y#aoGfBl0>DNYB4`#bKm%;}4acoG+|H5YRE`CIWjl`R(cl>gw3hMz5Beyp`E z?Ian7S8kEJmJXNX+#`k2Kq z$z386x)cqA6;54X+0!B5e|dH*1<-kxJ4jWf4`pJ~0^(@NF|?{~{>X}_+l~9GC>H&R zy~;BZ36KzTqbQ8D|LnRrDm+v782X@^wSl^G|9rU4`Kbs@(0OaAhYh&w;x?bTolX`` z6@!(A6PqbKzdbJkJHw62VN~B*xF7KOB~WNxAv^pnS%_7Az(QJm#-FNBxRLraZY>X+ z`~6kuPiK}utWhIY_0uSf@2!}EJmY=H@ZxJ=Cn-w}+ef#Tm+d+gYa~bMTWEof!ObGg zEY(rL8uQQurj&`|4!Z8uTl40ifO06-jJb>-VB;g$xvIwX@w;V^18YFBb!A%2Mj0)@ z*pfNm7c`7rog33}cZ`zAQoUKqMSS!95RREp{AMC;%Nn_P+h0?T4 zhIN4zf6oY?x5^dYYVfMO{j8CHV-7#Z#Eb6)U=YBe)cyVQnu}^wANdbwgVTt zM7-?p7|#LcHhW|Pf&xohvdgh}+$4Ts%D3qB%3Li{2vnN>KG}tJW>8T4iXrfL@>bAB zCINz2h&u~??+rfpWd)(l&K3_kuBFlV`{BH{l>C+?RT@7?_EV$0JvC|u7_n8eDrwE5 zM`OB`&^_^AS{ksArWAKn7Fl_A-n~O&!RV+$^`aG$S%iFDbi2Jy)Eiwdvgn$nz2d0m zCmB}U8J@ibjAec}sh{luB(bXnyJsC7%-!G`g9T5mK14B@AZLuR)ba=xZj+h_Zb zf6-YZTkrhAtVqo_x4P4fO~Y0H8+t9&xjpFmLAE=$%lv)XltSy zmvLPIlP)0_;7oEIQ-Jb|3+x_p+Cz2fqRbX7H!EM{* zGF9LnOUZ@c6T+@b+)v;kPWew?UZ)u`!cBzdutD-YY)5 zRU92C0l*X6GkGIYAk6jI?)ty_Puw1Dnd@(5-_{$pK#GcZ31Y_5} z0yy4wB2)|k8+OwLu8T(JD|JHb{Q0?1ROjb8uO;;h46`W({2cm3KpZT9^zyz^CN8Ds zrkeDK-+6a;Tc<~kP>JRB&+w{IG70>iNL$Bql*sct%iismDVm3C9K8V)Itwsu~%!x+>X3Co~?EE~9VZ>NQHRM|p>v;28}Ppc~2&@rr?MRR^pT~h@|l=d;IT+9ySmrYJ6dalT6W-Da!}4hYbfO` z$`0PQ)vg`8_tp+lu7$NFk*sH@eBe@C#BK;T1wmfOX&%tFtH8q$g@QrE7p0a))L7%p zR3paP+K0Fvt?IEr)3lVQCnE)5@!bshY`zNdP|fYTz%jH`;c{~$3rOJ(&3E2szKwm{ z0VvEA$W>|g1;Ramte$d>TJg0z*0w^3tEN%IR?fj|xcQ>gHK4}xVd zO9bOuBV}(%_TYpH{k=y8>&hdU;8M1O5az}F)C4HDaNso1lOLisJ<7)NAb5UI;+Tk5&Vm5qQ8MJE@ycz=7aM>?&(tCf}H8I)_hHbVu0Rk ziRSyJJpsJT24N83ghDnXCguw5H^K} z|69fK*TB+{Ay7zZL8Q%Af<~@64>md81S@#Zr#J_g>WW5990WQ(;3W8`!%I>AQ*{X}iZTeh&PzKZm1yo3tUXr@R6k%@^g_@b`-`3T8++XfSIz z_dOY)izPV6*3L)=DIKb5GC%MsQC~`H3+xgl0#Yn|5dam`Iu1Yb>u4cm`OQjekQzG+ z?U#XtmfWW%X~qQ=?Lk35ds`;gF7iNmDOl~QQpnGt`S{IrxP&76`!b~sxXeJB(+a7u%=TPii`XFTu`vtcW8E^3cJH#& zMM}5g;h$3>8*=H?)$5K=0A~Fi-e%1Yafn9g-u2!;T>nO`{d>P&xm6mkKbbPy|32>x zZxs!HXUpx?f7h1B8noY?(PN#4;1&yYsszfM>*itM(YyN_<6~u1QX7}O<=LxCPB7A> zmb4VWtslV(TpMaKs%qW5Qq#^Pbi#-@g<0Pit&f{E@x^q1E$)98rRy#J0^{(ir}5?c zKfLTJznSIbYZQf?dOYbmMK+-%WbUm{IH=S3v8R6oxzJIs+?`MV`)gRUwv}O7vF-+d zG^zq*WNXx{Q@fA(obWsAn=SJfS0?a5)l1KYn0Kk*tyvpW>{e`L;MMziOHV!+vZ}^% z(TAnK!xnsxHmr=AL#1erM+`LJn^WMVtUw_3M{*VWH^mBsR)wUkNp0p8-D-0Ha~A<$ z#$rc0%mbmD#$sc({Gh107V#O>r*t9#L7gZa0fWb90!(F8T7(KDx7`!KDa!Lwk1#fb zrSi`@`|Of=YsQWB!$YIjXZevMy+Qs6+6%LaL4@sOXWqwf!47e{(2|0e7^Au-Socb> zScdjASvD`6Ss7TH2FmAT8qIqqV@&AVr#Wd~E*j6xZCjkY&r@j)pNqKD4-aL~WU1>tK$=a9Mnx$%(_lw(C7$NtLO?sbcr! zHmzuNi(c%dTp7n4;RFscR`YlBM@}JUmu?;$`qAGM@D~q^1c|t5zWC!IJ-gk++@mP_ zxY}r5)dgPVGS!KM@Kw(yO09yGxkIT7hSoF&!sj0JE;UDM>9>fNB&^>;YZc{A0> zA0U3x{_3Ja3r~POV0VoGPaWIdVos+nwm7IKL+lx>ef=t&=-wqO%Z1!|Kv26T*4B=u z4jpCKkcibM50Ys1nf#P+)SHb()YF$GZwwU9Tz&P1;QAxVgz~)}j zVB1J#9)c<2upk=cL6Vn^1|T98@&O_8^(?Tw`0F8fQPT@s^7rNi$O+EMl-2~Yb+qZF zvZ;|OQ|P5@j1wW!!z?UCs(Q=FqY#_3Pk;`mY>Iln%BHFZZ0zTLB};p*+9`s$-6$nl#YLHq7IzwGsIwubB9%i)xwK@@w^ zfg1eX`U*bgkkgDzc@g7v`bG}~_+tEu_$Oz4x}UkNq!Ro9wdVAC53hucZUD#B?|*aI ztN{zFetXCfm|mw1SxfW27rLerjWZ`6VYA0eVpKLO(SP%wh={9wf7K&5Kb?^Y-1RW! z6_b?OH~AOX?Me`TvxQ#JQrKv0)x(F4Hqfgb#d(0tGK9bMlIZYCSr`)dDRJj|Qjn-G zNn2|rV^C2HgD=RCM}p~17!JYBAt_Qy6CRQy)rl9Zm{pc^5eVH#0|AK29vq+D+^{g8 ze)p{Fq5LZVObA+UnBu};VLjBUsBcyS`oLZKdRTe1&7Pn{2=Og-R+`MF zT)x>X02HhjBN)TczzAWqG=+7-zOVPB5B5yf=|a|4I##^)CBgOtqTIfDGt_kUIPN1^G) z6qhmuIgsYLq!iC)X=Nv%B3#auJiek=14WuRT)%5D+ z4c_%e%)kY~_&{nWmiC9dWI=q@mqA{eoDq6DXUkD`$#&KnUF_gdX{UAD|D3dL2l;Ty z=4_8534uMCR_escNfk1Hlr>jCYD<0zNB#E%EacP6#yoAL8Thu{R|9u zcu@n7%0b`2=>WGxa7h3|OwB@A7E4sMNcfwLiEgX-KZa#S@!i!tteRw+1d^;R`br0hLk23jk)I;@r{YgE1{z>xkcQQEM@V!&J!|n#ozQj$`!Nz z1gZ@~bcN4`5E=XZBa>H{qE=RD8~OF}Z8%2s2EPN~D)dU+G2XPe23@eHuwB`sMeIOBFQ4)e!5StZa98AAB(a(2VQS zDNF^|G5c5eSwWS2I01Al`xj zF7UL2t$qaIlKWg4(v9C2r7oj!6N!6X&#%b`bE!1@v$H-2Kt9`|2TmozAo~~4*p|CN z)caN68c}Pp2$xh%WyjBRa=qVQw_M;?yTl%tPDPjplf!uQMFm!04(X=}t~RR#_U7z@T7w96{b;Jol&L>G;uDIioSdIB{lmc>e4g>r>V5aT z>)sLys=h57&eO}`DH%K692p1?6vok{5PW*v--k#kqW_NlXrE|a=jVs}I6vZb9l$id9-8R+(>~l2tFiHU?sr^WpRowYO+yhI`XMpSFE(?nm#9ctm(_uKy5^^f{7F zi}GG67Q9RdLs6M2>?`@3BUjzuYe0&XUFGXe1El#qiL*7%mi>D)nPU?$lM$SMok*u#|NW8Bay3%W9fxS5RGY zMOq7c4x99nDh7BpH+Y5Olzlzj)i!6cn0|P;b_Vxg8hN-J+2*n&o>NcV{ZX z9w6N69+pz8={ouMa~nQqp@li-dYjKHSKLAfcF^4X^!f8uH|7`mj?YFW1)tMw>{jVM zYc^8qtHthYv1^d)5Y8UxG3XrU%Se~atE(9d?4oNvu;FWERP*6h@{0HL^!8#_r0YP+ z%ifoit~Qm@be*RPn<`2Y8j{oqElr;`N6eQaOovBDXOrQ^#=C2N-oy}W))*!j-{MSg zL(vhhL-Y&9Ui_B34QDYMK)MyZjN1ZLPri(zR+)sF2O?{-nMmYuic>QZu~e6q_q?gqD%D!p)~W|>A}DqR}%t&Z}S_tweu zCr0#vRG|l0l&|p~gbG?qjPiQRG>X=mJ-zHpu|oZ$Z>1pBvzp&h=cD??;m%?OUGNvp z0T#fiJ+6ESDVAi(@=;$^Kfbc$)kP0p*gq_-2|X{lqM`njQi^28f3BGkQMp6P80dMz&m%7?K`8KYn?9efD^hlr2b;_~RxVVb@Pz z2?NQqkJo=~-uWLN-~DFtia))3@5j6vOragWGvL}t!h3&wy#C|li{9g24~xXkKW+V^ z)-7ID;nr-~31P{X)MzbQIah7{1!6S9qxjDxY~-H*E6b zXZuIL|INQctO*Kv{Pa)uN zaE8IVE-#C}H5B2FFj_^b`WHno`o6o-v_$#AAMq#c1e0x3I7U(&-8~h*1>6r4SL=r4 z)z2wu7NSliq%qe2ui-mxN7lz1OO+rV-QB2+#;@+${YEdjH%iev5_k-Vi{d7^KSE-1p7#?bo3KD9Ax^Oww^&6r z%Id{Yb42fj*lPD~;zje5WZ|U@nKwE*8Glhqha>WrgWdt0R$ZeVSQ_+mS@!cUYcd3Y zQ!ig_>g>s{k3=b(zZPC7%T-aQhB%s>c(M$j0ZsM8^g=R#!JoZ$Fuk8@EM$j}P_TT3eg8vI}%3yQ48s=2M_VsLA=?y?NcD*{xUvKsPKfGP!G z%nu2yW2c$rM|ZTl=wwN)4MF^wOl5iEHNTl|*U+2Lo$;=ou92>og>5wq5ntnKufwidNk6CrH%;{9kEv zq`e{G%pfCuldTFZ^C-OaM%o-YYnlSX$rjPoTyeCb^l3!|SXQB$-@i~agzGM5+plb2 zi!L1RuC7f{C2$n5Nzpiy+QC4oS1fu$ejb~mlQSg(Lcdbg{0oYdzBF3`=T|UpzQXnS~EoAA{cn1y6 zN&BGN9xa(gQ+S8y_ab|Pm*DfuX$^cym=)r0F`yD8#hz2jm2!;B>&tp6%F@r;TGx$n z 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 M^=1u(V9+%bk~Hp(o>j1 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 z zL3*IQeh45;AR;}8gl6vPU=NWt3wB*mU zcMSPims<#03y<`@CD(ZWqsgf|5DgP-$T2)t|A_ol+uqe4Gq|fh9ceI4lQWQV)=du+ zhjRNx7az$tN~h;r#a+JD#)^6THN)cV*T_vRx+Xv1A86{Z7IzoG^NGZeQRK-~n!q9p zuOs6COMy--$^Y;Mx#e;ZMTAN;VYsnDDc2biyOe|1qXN7S8ZjaRR? z-|jAL?fTfxq$l0c*b~(yB=LW!ZDB;&oEU#iwgP! z<$Y=O^t%JFK0>{;D{7^TqCt3_sjxY_KGEKTl&5cyzF{Gwy3l3jwVpGuzCt88xRQC` zpd;K$4mp^q>O4(W8He*<;N6KScQf{;mN$35r^Jgs7QaMG{C4^}T+?jN0^k0r(Q zofCbGD}rOekd;2~xX(VfL)iTUn&?Q~4Emij#OUdFk6~3dq$k$CHtb^csUfS{Mwn@Q zdtt%}X_Whx;SS3j%raVWx&&>T#5YctW;*h=#i7(*wJ|Up!kt5uOs7qPKruD!8HiE@ zffzh9EY4KIm8C!x9{~o@?Qkp*vMmFa%xHa>>l~L&v2%;Z7_HIpQJulO+@F3o)FC{NxVzd)?VC*xThu-9E946x6z*-_#L479A}l7#!oT_CooDG>_+}xyf>- z50wn(uQJ`!t>!M699XKovJvq>#f5da*3YML51lsi<%|rMQ1nnD$Y~?T4P}H*3!z0j zb3<_`70rs>6fRK7zI+|aGMYQ8no#WeWUi#FvO>O83?oT71sB&waUtJOfPa~+16>Wq zJwuXBXCl|J_>`fm5z$0P7@=vkQi^iwy5=)nlR!+vUbs-s**8~Wy(B7f zLO@i6$xHp5qO#~!7nGL8Tu@M+J`O$}2Aia1rrUFU5F>>0@W@>0_hP-PEhY&+k;d8Z zbaA1+-+a;7WAWy%Wuzb3;U>LghwCS!g~fN!U4{41U1RQ2aD4tqj2ohlPx2$R&{9q# z=$4I^OmgWy8Fk0)%-2Lqb5+4T&*~~-hLX4zY)<~=Z=&tbX2|dHy)?>}G25uboRo$> z7MD60g|yHub&}HD(|8dr$>$%*N|W9e%Elj^Z_#K^VLkFaE-oE&m%=`m>>GEdqBC;G znm`ie^0kn%+_j`EccuI*ce8(-&0kv!a~Idb+|>!pq|&V`kS8zdg|5Ad`eE)?y0i+J zeEnEd_^okA@rTAeqj$+aPRRPN{;Dh!x}^aH4pdkfgPj>yileER`C~jDWO68ZL(k2IF>OQH75I~z|SWBiDX(|tl3$MvX`+W=fx|{LK&heAydWRWXr;0 z2l%uqB7SJ;xhN@t;|;5mP>a!uq0I>S&C1Mr|7qi-0Y%L z?C5U4v>V;!hKO;ej@=O|D0`H#)}@^=7Yb~N5#(7*r2><*y9`lS$eDcP${cs3%UjON z^R7oS9f|ur^=d!j*CC7M_{%Y!f%rdgU6+c`vJx#HL3$UCSy_)_e_$!M`i2vx#(h0ZZc*wWc7Q~%r(})O>5(%AeM%6 zd-~^CL6tFp6`WOk_41|r%%t2*mbom(cIrK`sPWfzd*XY!vL@H^=pLq&i}!#LiE8Df z5c7t-sgdhgfNZ`v|M*g_BX;gpN6!}YYT*^>n0Rt_-G#CtsLY@e?6tmd5D*fHk=<0i zv1bJR95-dtJ8K$1cD$R7f}zYhaVTI&wkyyR(wxb3afy?`q|BayN&U=RGCq;npNgx5(`_+tF0Y*7%@VLaaxt4iR zKF%g*<%H}O9>zT}yDS`OBHfBBaoQD^H~mT&=A70}A2o=gcxKV>`w>@e?&LMe_;(oP zP(5MyWoWq{R6@otmZGBQi;YTcc7=9I*ZZ3AO&e#em69UYO0Lk!qL%lqo#fLC<=Wdy zt-UPg76O)4ncHQ0ExV&L6EP9)!OXdg5SEGV^tWRDiCu{sJb)<~qMYl$agkql#)W>_ z85g=$XHw=CopE8%uA|H(TTMsCDJgI-S2A(syw*l?(F>P+T0Q%`B<(vvztiqrCxaxk zT&Gw`bggR0IOU9Htm{$ppNNu?DL^ynSDiN@q~|6!g{X^!-Qir`H`0B?vo{Ur)5yV!nd-9$+5h_Ut%AohHhvEDd?cL=JP(N^E)Ja`{VP z6gPEckhNS_q>T{98`Z7b_hczQYPfu;m=(AeR42bLsX~6IyL-Nzx9^gwUdCce`P(FU z8&J|RH@Dfv(s(tjoGi>+(7Zc8%AcGjF=Uj*9%MCMxqwZJ?b{ z(zf2#h22_9v5l_9T(}IHl6q}5$B=0+1L83th9NrP@ucEPQNf zLB0u!KE1+Sx$2F4h`I87GZcQ7#rwwGDQ$`Tx0)+X+M?gCcYRli%gkLPF0vWgiXuZ) zuB2SQlErGi*t9BIda$r37o9d7U_%JWC3+v*JR2vfB~AY;EEMk%R{G@EJY(7 zSTr9m5HL)LTq|3wPMPd!AV#D)l}wli>3zf~8cUQLKz?@c)lre3`mBu4jfHVqK=ja1 zf+Y_oA+CHvS^mDh5#a0OBoJ|Xg3{s|&uU&U{zZlieuX156wtozOWb%SImmd3Z)!pq zaXm+hg9>-F#5Y&I+q`sCc+{Z=1Mjw?%c;->*s4ZM}nv%o7Ov{I@2GvjEs)6Rww<|G$rvU7njO2D$fQ5gQ% zh&-(jnr8x#gz#Ge)*TxyMRX~QzGhIY2Bwtb2o?ApGp==nFg^|S*@0^_e6~k8nPPID z%3O9YiI5l@sZ-?cKA6q9cc-y7&bgcl2^XA^cu%8Y#s{{$vttH+26W8cc!|O67@zmz zi^m{3jA}us%0+!4>2864`v@Im#STqhs@Kla3Dh@qK$(9E9(vj6QxE_ah&re3Kc&XtPV|Krz2$<~5l4@r(07$kF2&eqvqB zr`eF4jO>`2fW*f4H3>wg~N-We35twt8C9a+CgP=f*Xh!R*% z7g;i+AFAYggR_i_DVJ?EPWTIv2Vo6VPuZq??Gjf=Pyu_<%rNPI<`du^wqVRehrk9g znNzliqwWCW3QQ7NyTfq}8wy|$4Vn$4so}u}XSIDj+OPrW?UAB?Rt888v@o9?lY~3U zB^ZI6L8k~#)9kznL za;ljo+eY-ms0Ei9+2743R}5#FNkdr+<`KLQT|RRlx1{e_$Vv(NxWLMy{5ORImt4>97fpNqCDucO@Rl zd_yZ-EH?Cm%&1J$?=nhS<)Q*rt;Z$onBu{}!Xy5OUob*r#HSeBBdlr8GOiv_jIP>; zjM(ad5=$pmCS0A=c^>gMb?j%{EH-sa?xdP+W~x$=H(*K_ye0eausOvKJw0WUX~R z_yh6im`q<7P6x9tSgT+fD+)0!2zeUJ`Uo;(LK58|npM#LEiN#jGq1jEVe)(txTrO13%(8dA$;#}mhR0hI#cs8-4u*-4W zGo`kUDzJD63gw7fLCpscl&=o~i&mZc@BSsDVGpKDixADKFMhf^bpXT>#DONL^u#40 z`vmYT03M&>(c^146>`|{IHzN6_Rc#JY)u^*;%5&kX((=g67z^eyucZdhTf>8H&i#{^1aB*Z8wXjn< z$+lKM5gZCh!<0;5qRon_ggB`^?9ARqsaJCLr)pjL- zy=}}dF7!B}i~|Qf-~T)-K(rf?KMsYp1>dNspJJo;>p;2QmqoC?b(gX@Gv~KKz8X>J z;R9{BRzVutKr1Bzj<$^ZhBZmKTvCFu0(F;qrXdumkC;KzTWhZ&KELxQlPx-Ft*cRX zlD6PVIHOrbDO`wK*`a!uoi}R~Rgz#QOQ9=4tmw$yti(Q6pH&H_=Jh=_=auP>aPE+n zh4c`gub-mJi4P;)DqMkmm~qy9ptrkzu3j}HYtE0)4xz#)akIPD*hDuhsc#)d4*y~L zk;;arbj-pCYHW~6yqJaqBl=1bkb-Nd8oL^#F(Zy-+?%`<7o>&PA|E29M&EDvvfx}O zNg2OG+!?@+p!4Aw#88p=O6P*;5RrUjni3;6{0Gc*{P~Jsys{)B3QEZc9TEmu6r1uL zdtys>BsQ{aMGDoFbBNex5KKnB=y0Dr9Fuc<^PYtqF>4sub?%BB0xbYKgm(&6Bc8x| z(lLVP015;8fQX&dghp+7;!UgN!E;<;CSb5=+alzIhQ-ietW1T*X6uXxP3?z#tRJtb>Fl;uAj&gL2 zm=7e>5S!FrsU?;dZh-6zSXog=QPL;)QjO)d1&A}g7 z7Sd4%loaMJf)cUhdP+_^)IzB}uC(%V;#a>1hZqJeb4$;6;M~G2BQRp9sA`5|;f2nS z#S)ItfVTPK6Q>casE@$(ZA`ds+3H8Zjewp7@d&Wh%|Vz8J4ZT10#@5MxxkJE-wqAI z)LBlQNYwK|V<|liY3xIyU}Qr26fF``D^vB{H6NWn#5;mw8DmF<#Fvap*2*j!N_@mMqClAn3VBVM{E3s zkImdi!Odcxiv9XU(=i1*+mxywBu>$A{t+91?lE`GtVOYmm7>+ z7?dO>CRr$=xKS%*v`Xk}I6XZ~@DYo#*pkjD{#k1F8P4o%X>-N+eC7f`k-V%sKTHzZ zC<36{IwU}-s4h%|vy21C7#>E01i{&T!hwqUwC}S0A%b$7(!-3HHxm2%*Kps|LMEKN zWjSjtkFCKit717ZtAS@Ha0C>rqufHVX0xTw`;k$mE(*dXw#Sw_pZ1UAN}N?s9SKS8 zqZ6h%VRGZAKaZgZIlwG{UXlqAid57_D`cjiu@i_1he04paI+CA6r8OKb%d3z7|xie z$ygc0@kkgC3&}AHP0aJCmYKyIzXC{)bhz|bjx@2=4u`-h(6xG7&C15^?PJkx(M}s0 z!<7^ZFI{`a3rSlZ+G0@Fd}Ehb@lwcEDL=F-iB=zlLUAO(Iyuq_k9iqUrkVfW#GY8j zG07$`v=qxDB3w8Yj~ixknZp0c#CMBX&QDPPtCLJTC!`~?8!>MhAa5KAWn@Ukt?!IA zesmcbQ=-8^$As^F^U2400Ll!gIsdm-*`w>~TQ7_AGv^KSL~hX@i{V8J_?&2d01gE- ziKr>S+@_zJu8YV3$VtM4stG8%!vfH9wA`CyD|$132`K5nUl^%c+|mxLb21J;?!14#6hByZm1W|~F1R-i1 zfOC-bp5CjxxN{CTO~GUBPw#=d0^A29oNY0~8WHzx3&ckt%Yip}giXp$AnoT|Jb93zkLhd8asGUGY(9Qzxp1?6uZ-(Dla}k-!7iJ#Gi)g1jg?^4B}`jo>MX;!MDB{ za-4HJ)7=znJyhh6>Ajh+UVa1O_zWlBXK%h$z5@GCuiF|_-Z&KUPnAzuRy~-}s?`UT z7xe)tACFE^wG4>ocjro3_9?v3`k=H>A3Ot8DpP;m{aPP<%O3vq47qQqb>z+F%?={M z%9??6IU?hU>`LHdfaPO0wk-WI4N?Jl9`v%kSzYNp2X~AIjO{CIVHuyaNFII6pq3U^q}Y-^1_;x7r1k?R5CMLe8ypF;(_;#HW-*u z+}pQm4p2>#B!2!`y00Q|c6#7DQvk9BAmbuD6%JKMxa-W!mu3c~XJ4asIO-?WBz?lP zR0PzfUB*Q&Oin(V1nWczvf(R%lOC733jUB0C=d>)r~=Vsv}0;FC* zp`wu7JNQ^X5WnX&{LDLw!nDgbd?0t|{aTv&eUtFX&}KOZ^RTPSGnd3VAsC?GU%

WL<>c@4+Db)s)C?W)8^b@_LAXj>-gNf1?SU8*=^GY@ogX^=E}ci30u0 zLs*$dt-Lg!${fx=-7ndd4`$x*6OMW7Y+(#pM6kOc=P3kN^trY!RIz;uRZg?F3zwNl zBg<8S6`2B3H9iM3TfE?u_*`%5#Dbm7t6^-a(eKdvMk+XEpO0*%b5FtaU z%*HoW;A;Y>twW)qT0a4!f6cHUW3}x*d93**IB1%O zHiU9i)X<7cjcm9?EM{%khC?{17JbLI$9wS+r z`BU0-_fnr8$FT_?KXI3uUtM9z{A#$}!&QAWU$U+hz$TPPgJ6Ra5a7J5K+eHE{=A%- zybrgVO?#1!MZmwE-{f~meplsJ-oWxBd9lmC%I{OnEQMDFibHPJ_$&3rOOw~Q%BRM= zlgzqhTrD5Y>(f43=S?0zl?Q$D6q)%azp(-5e|v~Z;CEe`VA(f{KJff{)F=;^rBQeS z`oWTR2UG}MfM?_Nqod(n|H9uV+Je57A3c#Ln-W=*>J`r0qQ_&5IxU(fp5I-Y%fU9YmfzRGUUe#f`IiLSQaus0C; zThi5%UN+L5J{_?;;X3Vi+MWJ$&4M{0x&w&5mA;d?Q@{{qjHbUN9YthNGNv5ZkrCxwmWRk)X)2tbfz^G9wYZd=5ljpd!@$*}3q6enIg z%mBh64q!P%8EI>0smoQ5%%rb$@74~QeLr>w6+oO!Qbc>GPT)a0TQ(wA=~lCtWa`* z-Yw0IIsTFhCAq4l#vC`ekb}4xbA)!niP9)>iTpm3Ok0SM3!+>= z_z3SuPp>&E-x8L}9|Xkv_f3!&N30g0zl?Y`z>TIS%0k$m+Ik6vQBv7@rS;M&;@Vg^ z+xi|!uZQr|Zr})A&oropE^L|Q&3wyrlX$2=Z4sSK%1?JT z8CQhn0;-{F(x`S1$b4(Pqzrb#?kt&Zvb$gZy!=*r@E2R@ zOQrg9=KTTGmf)qMjD5w3EYTsr~5sHZ+(&mlVXB4UARn4Kn z4%;GO@f$}-hBv!_7yHGBW=*TeR=(qCGc|4ZAO zX0?%R@t)t`C}h%!B@=X+zMZhl#Wu!Vw+Yxu8n{@10NFw!kpN@FTW=aQff_)Kqek&Y zQosK`O`He`+xM<|E7K_A#Oa%TcE9iHY}{lU^xPK;5oPnaJ`OWSSN&w#gHXKzv-u(3 zb?PdC=!L3$)JfSaF5`%(hH$+HQ=HrNZ|4I-+`W6<{rv_YmaPqdodc?-)K2zCe$Q6_ zIs6H35b?X37m)C(0Gox9up`(vjF^oS%@m{X;MGNOa=*gWZ!&02+S7c}O4pO-;hzEY z|ISSVKi)1S+Aw?ovCK{OA{KX1oC;+>?USR!SpOK%Q1$|hDGrs|LU`$tOliC^NGh68 z_0^^K!zW9_C(njYR)$YjhfiJ(pS&7Ac|ClxF?{u6`0DNO)doKsFNd$!hwG%TzZkw- z9sd4excP+15uOh}y=Wksw(;VsWPut4ZHsp#dKvqTh`9VW{-d3M{?w$4a{ZzD;;M8N zvk9NaqxaCSBNu91#`EGTc7-^c=uc-rQ0Z4J=)x-#Qdpju)ARmu^?A+55$?2-{cUJ? z|9(BkDTvW5tf$!X50n|VvBnAj)86@LsGXL2*X3Zwu3qVn+kbjmv%mCTz0dCEpl96p zJ>RP0*z={iunJCMhuNsiabc*ofny4bkbLsj307_2--xAS!Y1Bz_x70B+b+weeJ$?Q zEwedx22cFdg?Y=T%qEMa*(rs%&!vaD;fY}uPa09=gxwSB7uJ4^7RL;I@DfeUM1Q4- zX#aTh^}7RxmI1~>55VHNd}e>1WzcWqwzJUri}lD;#~!pj&|zA1T>@8VY(1>*)NYNq z_svFWbNDmEzUt%+27EINxxez=A&RPa6BlX=K}11D5o&sI^#e5}-DP*?>#PlXWz@}Y zFKrd;vp4j-i#b{7xz%lfn_V12O?>j|;AS~68u#;FA;ACG@P|Yy9F6Pv>>F)!k^Mlu zRB}uuF>av`RT!i-L#vhea-Q;Z@eECt717*i9Ni%hTTBOG=r(1+*=1hga2(cnYfP7axo1|C#b5%8{d zXAIp%nw%rNwS~8xnb6P1xrg82P}(=+f#{Bk#L)4|2R`*3*99I%TVA08MI8ml%DVmP zc{bo^vt`*itUITUQ{!8F5#e=^W_l#8R7WW|=?`5Jf_ovJWc&BVgx~#lIR~78_yR9t z_0nWtK>}*}TP8GeBG@2CGr_ELrs90pp>=dx)hAB^I}M5rCZfJeI`$Dnhey^~PsUP^9qD5oV`4z?a;no+RqEoi`w z-MgJg(;{|SuRGaS&0NX6)N5eLK}3j=^}6}mLT~dfS>jH1sd6zY+p~NMA4hAz^$dw71wi7LK4 z>7bC-I!H3l|228ZYgO+2liu=gu8(<>yemVV;1mp8yuRPrAnsjHF3s{iKF9Nr@hj0w z^IeK*OJ=C4HDQ99?`2n-P5f*9jV2sbjuQlcV)~*t9E9%iIhpn)?SF0ukc}%`f3ilEU!( zZf(^)?qo-53n9E!?M$9{+dvlR)S4{}L-Nty^Ut0+9JjNXrFqM#{xj`M(>3Ih*35yE z^%XwR6a(zV?KSxwJ803X^f^XxGzE}6Lwqh|$d%6h<4(42@aOCZajtVYiO#mu)pv~T z+!Q{lcOMY<%}ZoWhjN|ubUG7WSu;MyZ6{l!y`8`pJi6pGvXY70q|ICG+N+Re z*XE?M{&a8y!^7u!(NHw;sXqo=b9iGi{igXqx>x=fa6b}Ul)rdwdUIHP0eM%u(`Zc3 zgU2-5zvl++6AvGG#|aN-Ego=V_F;~*z$x3U8-j?`FsQ8;I}7c@Dkl)pDG%Entv)#kacG03uXDFo1R{rztlT@s?~(1idKsC`UoUe-!ZpOQ zf!P5%;|&7q>z6lh!Y7PDTivz5C=?|QbN3n z5&+MIjb-m{Z(ql-?l%ca*h|nkQMd8H&nzk=@kd`M=T_M($!?!5^LA(co7_mr77Fe< zz7Xk{?TNf0HnrdH|DR}yYSj|ri`df9pZ`b3WDbq6FQYZIyKjw@uSP;+->Dx?WTB$S zK+R7}F1Z7mZr|UA_P%4h-5|lcg$oj#0$8B6i#)%&okj_OP#*urAr>#90M+H zzQWE!d0U#+Hpz40EqdU&)mvQI#b1|L=ZLVxaG0(Q@6!DuAEj84zm1Fq4hOup-7j+Y zL^&aY8?OpIR^Z9{tci2~Bca^0D;Rs5+1H%G=y}Z_b{0-^f^RL{`;p{>(sg&`O+xaf zCpIYi`hsf+X8eWpuLO@+&+=9z1Nv8#k;aK(9&6*-S>I^xUkH^X2pY#SyS3u-iWm38 zxMttoAR0<#u>}@KU^{dJqr+d9Aw8NabThQI^H&q6c2QyAHiKt2o-LBHDa3M#-~M(R zn?bIo#`o_>+K>|?$*l?}HyCwzLkrkOA|fLH$ZSjSB9%Yi$FQMxKhJReOLmidp3>(+ z{&MD#8m-9vQW0ck$&pWIDz|soH6{UAEPuaTN>U+lnimdYn1n)zJO%;{i~gcgXf!{U zc#XQhb#G#af)%l*Ridvamk}qn0{=$~zOtr*azv zXMN#7g#>Qn42P&piw6}F$sNysaMlILyB=X6^T*&uV0e4G`Vj_vmlKAu=jWzeM@m#; z#ztedO3s`q3M-=UpmV`#c-Dg|EATX9kSA>qNJ z42;{#L1{B-qx^Sl_nf^aA$ayl_x=DC2&QxE-_;tj_c2e~+co!4D?JV;Fgtno`swo8 z`jaSKO4~RHqmN|gZ`VZMrxQ$GQB=&8Fg01~jjTdu)-~AVI({-=3pF5uW{#X>IA%I#>4V zjiuGs>-Bfp6Y#5b=Hl7%+Vbls%b0ipYQuq)IC|^u?h>G_z+UaltUq6Vy!3jd8h{oq z@AfSCx-$`niZPYxe8c?3bOy$G==&CGus(_$a1liDxjX^}7It?kT?NdIO1eNWS|f_5 z{lGq0-&k7PU{lyufE3!Rn&VM7<#>dJxhbN^Hc0}$J;$_S87hwVIUY+~XK-uFE6ba2 zM;!*|C*AdGeNgth=&?h$LC2$>0k0UL702%PTk%M7K*Mdqkpnu(nIOI-=thDk{{Mot zm`lJ=WpGy~Dg4$r<~#-n3`<8;kd215KX?d)c~k0Y}mZBgLv{S`}l6vQe-U zYK_IhT#X`yZn!9Xl%xm7qOY_MD~?CbF4AAI?~4@p;+?QhYPSNh{|+d++X*71wClcg zSF@cxPKQ0<#_Gn)WxuaI_3@4S>_%EW-&7?)WyF6MWsbM&v0Fou*2GjX!C6W$_SBQP$wACkbq0*7VBvWSXVEy0fg1=f)a+@z03|vC$UOx{1OMo{A-KiBv5Au! zM1O<1w@WlYgUC_v-+cCl`=~P$Ho%Wd6s0OUBE}K}+T6kBa>QGX@pW`18w*vUge7v! z+UZQUX8hGNQ@UqZfugheA46{)cIy#ad9(B;Imsw;L%E_^9n)^29gsC=8|0)*!Sfx~ zQNc-vjETH6C~qE_*!uO6IrYsOmb_u!!b%L7*g>wrT4XAQ3~f-(TiA;yW2Ps1>z(Ry zUK&+hkuP)p?|NgiD2H7YN3^=uc(fKpv0sh*y3W(|e9hfphy^Pqw5TG;>smMg6|N|Z zL1oaZc&l|}w@LNhEO-?D49tDB{h|!8+q6D4`!ti{~T|=cf%r-xD$N zX5-Q3jNSEOLECL#gBe$B>>4g#IKv4JJc4j9N*4xBz<0WH`<|tlD=7QClWBhg@8AR# z<)-EPP;HqjV22mwC=+&w zPITiCM|{n1kUwO2@zK)T(vR$r{d6+ zEo1Zeq$XP|6nDD#Kdw0*5W_urq&`3ap;{$mhMuOX%O-GeFX(j+iwU)@wP#QNdFLmb za^yH)TF<-1t@YKHJGJ4~&yzb)QhBb)=j1_xphmux?Txtq-^=uvMIWC>dUeH>)k#Yn za$ioNzyz#KxXSnNY@JEvBh^v8l^;BduM0>-ukdFa)zhRlL%prCaqhJf9q>aBB8-IlQE{^B$`K5difPkT z-1PK?NX@!?R*s7@a6tE4|JY-dHWqgpm5uL%{gMIAN8ZISjJTaSP2zl3rQM)VQY<7l0ofUq)$DDKbPavCs4JxQMtO@VBnj>xg|Gm3m&IC0$vZ~_Ra!qOe$>xxaidwVm=axS-7_f6w z39GnCVh->?cm&vsL9J$I;SOE%?*`RQ+&m1Au$A2ti%<}IcuC@rNDOx?DYc9SVRn$6 zXD9HiKu~W%=DjV^Pfp7+L|GxK3ydfSsA$q9(Ma$}?VLRf`3TGvb3mNwpousJT00Qx zD=$Gomn2|Vs9bQ%Rc?E|KtLmhO^M|9h9i31&?B~Xkb%7gmLB_EQWhH*cC<*v) zYIr%jpi;P^l6|E}Z0}kom>};Njg138sT1-W>|qmE{G6ZYYKBcDZ*t!2xO_CGZg5QV zG3X5jA2tTlXHu`*GtR4usWABu?m0~#m^*L2?&hw#<)hfUdX9-juQ<6UXcwOypk`W> z?qP;Y#UhHkw-C%b`eQbov96Vjo{kOPj&*#S_?t~Ssh7};;NmsQWynQ0RD3JBYDK61 zD*>bg6Mbxn-L3xl&h~7Z%#@`lA5O1C=MMJ=UkOKb0>ZF8tI7}B7aElcFte>czw*Zz zRiO@bLe5u*N3A5|(I9#0q+f*9@XG&xAI|@E`0FpV_$4iauNwlJb%!`SCh!?p2EFgL zjuwZsgm2A#?g~Zxas8wZ_<}UWc+Mq?e}`?Yg&!L@jnzuLx4~BDY-iX%CJ@~5nM*W> z0ZDHbi7I!72#!n190rFz(M+t8Op52m=$Rqz@|rG=C==C+v1?p0+hG*mkn$u|rEDR@qGTk|Q`aeok0REzyr*M@;wuva(CKC|&^!>4>5)h%iB-0qF+!%%pg$@dZ zM%QJ0DS(2Q#PX^%#-s~txbN#&IZ0m-GmKSZa)R0KR~6V#Ma`&D>U(Uks&*p08XNs8 z&7iAo;$Gw7qmR0YoGhq#05w3$zuum2yn2~cHeca1GbhxgVW{x2{`bu6AQaz7iJufj z;Y(lW%9p-AL!>$nQGH<(eLP=}r}8~{g3UqeOHovHD{A`ij&0)HTCu>M&nv(w1I(-D zc=PQ4rk%9vrYiSxv=pWM^6Qg3)6>9{X*p&{bVlaq*m6>WWD}6pMi+eE+D<6y1*Xg*i#%-%9$eavu@m(h#|5ZP zf$ur;qBJxdY$wZPV~q-&a|QV(u8VDRNz5rNq}zLCyyG9}mg6yhuV0qy+a3FaszdZo z=tz5F>i7uTX@O)2Focskvl_h8*Z9e#WJ z@~4H_#ri)d8&h|)ng4nJUbRNzj$$eoWdIJIj~*=Wi~IlFvA>miwT6&bx3V-;E8Bw| zG+GmuDD92OOu*x@x$lk5eXp3?MJr4fhS*bbB|4px7-Kl&*NILlTB&)XKc~v7F1q2k zt0-NH9}KM+{3eJ$G81fcN*4E!KHq8VTen`qv0oR^`nGDe?!6SH;5PWtc#+{FsigsY zt5dpMv+EmTWIB*4w)!|)Emx*c=yO3}#6#6-dvaC{CI#YSb!%f#!HtYdwm*y2dYTb& z(4sObWVqRGxL5WMrJ&M24DnQcYw<^$nD>*08d5O;oc^r{`d6sv{X#)7KQqynB_$?06@j? z(N5KDP8LPU))t9*ik3>ZTA4z3rLv=Vr*hRo%J%jz?rn-ci>NE-iZc&?-uk%#9UOw% z{><~w=uj0@d(O@kxAEH=Otk83M;B_<@rt(qu&cNK6$Hx z(A`q2g<^7U_M-*&fb`-l`J&SXI|VsQTcb1cT%e&~FHllE86>zv;KB~L)r*|c;vr6) zv^%}0av*&v4T3SsdzQI^i7wAy&Om2YK}!C|k`VE6$a9XIUkUrj z&&bzcu>JL-ag7s1_{_cf*>a}fyY++RY`=capVQO&2|p4%oYs%^)UR(s#kLO*>whd~ zN4@$6f1R;R{XM|6+pZH`UpP>G)%`kLsJ_k{AzSJw^L_3O@ZncKM1vCPKz*6t^Je{G z8D`6844FHv`U^dueMabkE28DhG07Rxe*HPh49IHgzwvu~T7SF@9dUe0e0_J@P1Kk8 z&{6CO_$KvTUas&z+pYhpjP|IA@12SIU6cyzgNsb3sov6We^BpSa68eZbAA;HxqiX} zBRl3tw)gdw3uE>BG5v9oUF>yRgZjorc8TJ8{ryD-l2?CukzFF~&A-+0Zz!q^5o&DBAmA5<)z;NhZ zBdZn5$~(R-td7kkXO&pvlan3&$o1ji#t9e)t{tzIcgVaSGGKV_)F;Kb${ceNk_bzY z$!6HS`BazE?wif#s+n&dH15pb6f8NJu`!wE5`5JrC|~qE=*HyiQ8qD&mHYy(4P)v< zOYIB_iH|JtsF*lmiGQB=iplpZ`KK?x{Eg(i8(q2~`wq=STme6oE?|tw{;^_?E;e3B zszsM;`>m}PtsSiwKLLg@OL1Al271wAnq&F*9hE1I^6xu4jTiRARPVQfTL~FHBNpuH zHl%*Sw%pN{7cL39s4ibSKlSxPXE4nHQwF13gr!ttSWGmm!@)~tIr*GN(40oT<0^^~ zMJ8q_o^DOkD8nd&bU)%P%qZx^-Ru3kfTGf!A^n1ar>`eJon92itTc6C+~R~~DR%=E z5KGdc+L5$?&#`W+mxEX6L%VikfuA@{QI$P@zOkA{`u*{t(w$~TW5VWe;?c)&`yFWO z=u}5=1LV2hN92v@8d*@}dsT`GYD~4D8I}2!I4`V(@55QIH_(V02VCK9w74$*+}J97 z-MNt-1~UB8uq?03YL9t96f2rV8T4cymyc9$)FcGFeR$>C z3;-H`Q-O~A99S(B;x0919Ug$?`*J4Ri zV|1LG4yUH^gsctj+`L=}*t5gV7#)S`yFQ=EduDfRjZTi!uV?VqB1acV=7vR#7hUc zbU3mCp75cFCxqxtz_EN^LXYca8W+HcAVzudO&`CB`?DCp>1rew_oC&(zBbRca%;B5 zG~1@URTi-uU4+^;xUU=^5bCQ{9f2}91*L9_2}On^D3rG7*r-tcw&uD|>QY=Nwo4%} z)XQRrEijaIXf!aCABzq${v-3TgwRk))U|X5*cr}^lDabJIp0cEick(k?$*9$Bla<` zWlgwF0cLkW+Ns0J@FC2MHZBk+Iv4Rb-oH>4-jdKA9t12XbEI*9o8Rj8A`$8^zY!P1 zbBXkIHYZE)$P1pO;R&O%JK|a@e$wC$%_h^q37LYb2{;~zhk039?KEtnve&R)Ck%~T zSPfyi9?dO;p&hp{ZMRXaf^7=fIOc%9rq0#Qf_eG6aW9FFmbvWM54o1nPT^blGIiX_ zoz38IR&V?-@?m?M-9y6s&Z4T;`;=c9=MIZX_*k0)eXCcM#Y($6R6&*UjCv{{ZI#!p z8|Q;u6Y>#%B_MpYkA9B`NV&0oVpaAC4Tfp_gb$&y19t}NJhz)b7MG3NW*N8pCWjJ)CX~XZe3vA1(|ZKIH$# zQ2!5^B>oK>!$*%E=@0+xnSVq41#PQaTV83c%D;c>pXwg!pFQaLe@@7;@EF`}_TN9< zG2YwkY_cPr_O7FCjV06A6u_UIk#k1imCqon`57$Xp$-EcRNy&LB~O4`8MX z-1ffPZOj)0Bo|158iZj4Fi7pAnQul8=W%;`9cJc;#j@{CiSu~RvkLhway)Zp=m+^= zl^f)-HQbxHXEo^en>EPLI4Z(do9Me>XxbXW`yH;{I~k&(c@HhXp8MOfw@Z5?oZIjd z+!d5Sdgq-36iKA-IV2GHY3B;%K*eiAFR|Ng@|T_sF9(Oieh;0H{o|nmY7MV?=lXZ1 z2Cs%v{~V%A)-p8^xoM76r9non@g#aA$1Y#XlGkdoYv?MHI?dreT4243+J2#mlFt-v zH7?NV#+#>ahR;?vUo8(`qgyb1{BC9V=IzGntJM$7!{^8xhMSw4wYu|bf@0DS<{!0G zP4`96Jp{DAtWL-gn)C#nLo+!@JU25LJ(+hkr?qE6MD!|^vEa08XKL%-PW51TAtT}; zQ_gA)P4y+uFztOuB#D+F4-=?I`olIlac-tI(O9Xdu)KD>mn-@iSmkvj4Lpb!%Rjlg zsa^kiW2__Kq}*Wt0cAal^BY*Yq`B85tOa&zF3(Rsi(Fazr7H4ZvEeS9DZDz5&9__P z2(y{S=EDec#4U5l&v|s%KHgXR)=~T9{0cpt!cqHAe8uZvdJoO1v((V?Z^a(U5A(Qe z*rgZp%#~+~~TFC*Uzc z8*RfRImv$l#+2irSK^Hu0&HA4xdyZcu3E?f;b1e40w~U09+_6Se<&X%Hq3eC^#;D8 z|je-0v8c}Ux9v*#wr-PImeRMyFOP4 zWp~*x3dwEvLIX#?q($$<$@6enZYUW@G2M8f!636Z9f_ePM136evp8t;lnQg(evMt~ zPziDH@;7cNqpIT9q^{#wm*cmZ!a#Vjj@nQ-J)_3I_PH`?wg9rMk}(Ku1*xZFE@K8O zRvir5xD26*WIF6Up#i(;PW%4Uz_yKkrF}uih8CmRt(I-Zz${G})Z@k!3t(H;)sXfu z(dmZ)xpL9`AZO9%#>IfHVBXAjD9TriJc~mYx86h|`5prFL{sPlX(l=8Stb(ReG|?c zMpJZzlwViH9)c;Gc4e-b`xB3oE)Uci72pP-b>nK6BAE&tzJGXwV16|ziqwZ zeFQ0dU7SaR3D(`M)y|H(Ob&-X<-?)=)ehvggHF(`jn_^R0g3$xvUt#YsqnId1%(mC zO7eB2VbR{6XWoM94I=_dfh=zwhydPc(1+|pw`y;!ok(RiR?54I$2G&WUEGO`ZN7oTM{0=&zd;l)c>xdH^p7w?t7urgUi!D0417dGQuj{md#`vjkW<-y2V-)rXqUm02B z`Gw=wLvb`6&x1EO6t7!b{7PK+zQdCWhXm-17w|ULSrd}v<`lrG2G}=jQ$5Y>woYJ8 zu-@Sv+krt_63y82Cr+X%QFr-%@Gv7t>9A;Y;60&sEFtmn;$dV9QJwN<@Rak+nKzrX z7rOw=2zStyjhF$<#MemW8WMxq76^`~)^*7;z)6o{<-!MGza9C!C;2xsVik<`MXdq1 zcA*Zpf=L>^(tdP95FgS~ZQ4@)pbQh>`lQcV+D&_I;ixt%H#%F4qy$^BO`D<=tV- z+zv|k{I09<9bq+RT)=*mQT>5W_F5b6x+`DC38Z_qJD-rB1#x{&@q%mt)7t$PSR0GY) zKNhl1O(iw?=A69M*S*s~q?k7DJ*|)m!1S^opI6|LX`7no5;{3Wizy0$eNhK{#fcAM zZSl4nRc;iAM?|i7p_r~|Zrn%iHgytGYqE8=CMi|*oyM8${Gm<;_lfHrvy3Bui2&wq zjF+yZEmo4`DHicPqV-aNP?0g^nc}cj7=|x%-eKwzS3cFp?d)lvp+4DcO zRVS%GEW>#xig>8V3vDn4!Fg2?{b4OWccP^6#n}CX*R*uw=%TWnnI!J_Fn^E|f6S*==L^9|L5#2NdiVac5OJ|8v%+9^m`3I#>~c#3 zX(K7_ywQQGQSD}w1I*6=U}GJ+Vrj4rA^X-Jh_X6C9JQF(hFswV;0(EBVQ+_dDIL3H zDDKo)I;Vz?3Ydvhcgzzn*R>^>n##9nar-6HUTV9xK$W*{V&On;JEq&#S8@AHpg+dc zPEMXnHQb5NiWNsKps;_F4$jpUJ|oe(rAt%u?BfO*LWhE|NbQveH`SmA5n_2@m(08G zmQ7xq$Yi0gV(X+P?;Qd0T*9X92dNOHRf!WPzv~2i!1u%IGLIff(c0DpAf59ATS|of zq8?C-WnN_t2^t}ZS}b1vn3)2DUF(8deD=(Naw(r2^7~hnIZnJjt!j97eZ|f5x~272 z4Sj_N;d~r~qj}I;*djs_p^{F!+1t)e95YM$=yRyb@C<*n&SI42e1b}uX{pGaF<$7F zi^|l!y^%r>!K1^*HKP zJe;+l$Vrw`%h0IFt4(PMfp9R)=XmR?cUK%BP8Zs-R57T;vxDLzveUJb`Oc&f~!(!WUM7*Rs}r7$_&Le@RjahgxUVvaEQ9ymeHE7%~8G@jcjPLF%T*UwB6({<&bn&G1!k zg5Bo+0x@}A*Ke`SQSN~%;B0>G=xT81-0_MgC+*1kH=P7cutznZOc|$A6iH?5DP(wK z(`}&k#dXQ>`q;l*o6|Y*80Eh$udUV1b(8W}J}TQs={Fa7i^RQzza-tgX?RvG7iq2% zbcALqXjJ3>#YYe_Hx0R#Xn~dNJy;>D9Fsa6O6{0=Dq!yK3c?BWfE>P`?7ZR7@&q0u zQ7{tino{W)9gj0&XOsCqcpuXo!k?yz4hm(8nQ2(`@y}Db+eP zHM;IDVA)+X%nEw7YsLx0?{|^3?6WMOVW9>s)1yuUER`wCdaZ^Fw^oHw>6y~mX|wS+ zECy0JcB1$+hUF->@dvfRH{sXMy=;c zT{{WQJ0G6wK(nbxEp`@1QoFt9?W1EnG8_-qS~$3?c6-x{$04b9cNT{WzK2h(Bg(aH z`h93SDY>>djWfDSJP$~7pzVA)IA!Ge#Bt|Sf0};w`|IXnrgtX)@$%s&@2R0?w}rD^ zV}2=^)Jfv4AHBl2`PK)17rG2I?+=tAKZEBTD_}ZNt;XBr;7`FRURZ?%N223gOA~Oh z@RsN1z6f53I%3V1=fNvcImEXWZDQM<#%`N;qbq%{@n15merdrj&K2X~^JFep4bEwG z;u#)soT^MWU zM3g>4>+r+nN@w{^<`3lQE&T2ly>qijZiNAYr9ZLYQ6(leVn~asjuOlgjk(>o>h8?G zN|6|*4(+a0xZCq{Gk=>Q0P{rbZdExl+ZI`cE0bVy{TeRw7;6icX$O(>3!sN4hA$c|KoTtIPKSGXO95p=X<)}W@DjG{rq``mv+B@-s;c( z^2^`;25*^hFhmB*dTXSKxQaK>D8E%c%M~iE*V~=Az3ct%&BA6gNT2HYB4P9v3V!N0 zKDUf?>I@d+Q~hzf%1fw;{B)YJu{2?CeG+8?LLNS;As3P@Y3CDY=%;?d@odL6W>8`4 zGRUzODRF0z(#lp+E>=W6w^k5##hjm{doDJ{S%L^(zwSo0?yqqGH`-!dr|LL@rlvdt z18^&?#<*;D6sa@Y$dw;gTIf7(aN577>WVf1ugmDCeu+BUql~u|(`PJ*Lh6>59YSWd zs%Nci$sPW~FoRpoZq`O+@vvjWQ9j%ac8zt7jkL7{&!Fmlhr>B|TR!n&%xK@mHAbB*0=7Lup7EU?MCoa;@qiGgmSO>g@O5lS%w=Gf!67d5ln zi2_Loh>o7#zdR4 z5#4#U>u4cXv9Etw<5DGO@W?mTWFEL+l;DRO6gxL2Sn3cpB!8{?62rv`T z7-D?)Tp8=2mtbh|a-oB;{`4Ia6~qdQRr;=7HNMVrc2|8lH4L?0`eqzU+O_3MzG(Em zh@zvEfxoQGoE8DJ26FxS8K}21CUOoxiA=8B11vnM^q#<1s!lXu(nM%2v&N@GoVqPfo-UTjt<>Kh|{%S?s9 z!LnibGJbT4LFt@28+Hw+&y&?f_Tk(j%c)Z?&^ynD+>{hILm-`-BfE;cr+0Nzc{xP_ z4bTEyFMe`#eK1pO^CA@vE@nW2u-h{*|UQ8g4Q) zwnUgET9X)aQR7%?)#*h+l1!cM3(muUL)jg^C*oo#-f;z#AKI)>ZJZ08%CrzV3K4E3 zW+VHzOq7t@lP#2;Zn%v_x6!pD4C7jSQ_+rV`OP?eZwWkSW& z9_v!PG5md$UQz}PNbsk|d=)bQ?hE#gON_gOl)!UhRpXm2ZaSp#OWU2}26M~7L50i? z`W1$FfWy(|S({(oC%$E#{1934^RBZ64vB&ykx@pmM=8YCBpJT>L;}zpv3-m(jJpeb zus1a~Iq7gDLs)c@wd0(eJ?tc{#hfxc!5*|Ee4#@jNdRqfk~~4=5ironNmVKM>(C<1 zZWxA1s6v*Atzy8O-N8V{chSQJ$5;C}Cr{ErAy0mKTVEylzPo0b#?@WXQq8BSUUk6__qQ;`fwx!Eb|x8Y~Su4v|y9so#u zcbBxWdJ!g2`nEBI6$*@67U|>v_?XSBmOq-0=39T6oa8qw)BRsZxt^zZ_yo6My!c(U zQ0?ZrJ*!;e`dl^_-p9MBRVaKwx4TlLh?q1B!~|OU6XeEp))un?K7hfvvv#flQf4(6 zuOL~0cP^|@_+c1Bv`HV4xfcqh}I&yM=&C} zcMF2K1rW?Xn&=>Gwim4dLFlnL1zSRszZcu71FoMAb(Ey`To2{7Y}1PaD+A_AV0QSFsjLR zefs08`n9iKSgL=-!wpkXXW~Qz$j3|$2iw#0bJ{gi{M0fXcPl7XhvSi~_ntKw8!Yf- zpf_45pydyDcfRNVPlsep5eD#S+ZsEA9s~)MjQ7aXzOf$t@qrZ-+ame4wyZ+Lm9dd= zM=3f?U}8dgB+*p)YJ!zRpc;1v;gGiGaF}o}5qqTCu(E88OitH*$K_)8b=3B5TRcO1 zeARR|m%Vo55hQi54N%EI#5ok5cn^y+6}d^I_Yvt-m3LpRIkee&?Hthn2=5C}1-v5| z*(PbzX@0FL?_n_5a!4P*)5WSBXqbGjakvmL;6&%mAy7Qc94#! zFD=)iTc2BynLCYsH{0vM7YYlt*TZ!XGjZ@34t3*GpRbAK_FlqcjeO%(vn}3Q74_Ka zECkl|OLVKv7T(zDP_iQ*qW%2z-RpJ-UD!m=*KJA94Nr85SZ~KE*9?Fg(UU}nejK}U z*##{jWIEAc=zcs@Eks1>luT}zwwYK0(xRXRJmITQoR5ok@4QcZizM?*WuuqB6G8^r zMuuqROsY?C<_49IW19HrIN^ccL+3R=!Iwg?e+J8yrShn3B+)XyY@T5u@}_GsPGlNs z3~9%1S6CJY4e5$6UQu~EEuK98H!Ja?XI#WF(Fpn7KgRse zlR_$ssZ`#jVi&`zkXv1{%hPb%;`)BS>Nnk&@~Z#C4G5zBDTiQrOKK$7xqT}?K1vcu z2-*V7X!GD|9jyUF>m`hJOyxfzvWbF(b38%RWkul;cx|!CsuNG&yz;wMeN@~?ck^ZH zK=9FU6WjRn9B(i|;Hge?$`TQ1u6pm_d%qJ!QDgVC)Cc04_AUM{?*HV7kp?;MMacz#6bxM#^eq9|q%qr(nj4&1M( zpR~X4-R%%I%UCJB%>%dv(fJIZD9oCI<_(DA1IB||%EkOI6e)`6(O4N3(Fa7(0rSjZ zsW+px;IRPua9Ms4uz5iRk_5bpF17P_Uw!=px^IQv*Wd383p#8c;cckCu`l1Mg=?t3 z-yTVGS5y7C#|7(vXcX|>CG-dZk4mY(Hwh)yAB1<@+sP;X8zf4 z9=67P#WR6a&Y*Wlb5400eKW2!E~2y5s0FxZfHKvy<)m0zgjgfHfzom?njQ8VS54GxW6ncV$6A-G z-sP$xGcH5cTxlHkDKHb)^Iz*e#Yc+NTXV&f*uGpebVm{rS*1LA&QAe$f4tf0%JjBNI#7kW^p4FwT~_kPW>cUiBz1bChrRaboIVY9gv} z=ADCkY09DQu*r`_;Bb7tD5!~@MxQHJMCi%Yc+NAg%$CpqIn{YUDf)cnOi&%OX0*S# zie64w8g=wB?g&V$kD$=|O(0agP+jcTO5-YLyU2kZ{?b>B*a&N^pv+!X;VQ@LHxsk# ztAvbLNgczoYWbQ~&$VdcLF_45(h&UBIH;#w1-OZa6XvApQ&Xo8KLpFuP<*rTfna=N zR&o=p$cxwgh`!=_bW?$oY71X&Ad{2sx4@hUN>1fZkL2~~s!>kH3H{f|!CXPX)>##3 z!cYRt-G62(rns_xDP1!O6?AozaMhfWgVWTXDIAm314ZA>W3E7Qkm!sUG%LVp%k9|7 zn%)ze)f2&}gPI3CsGs3YnT#ixt&FMRBs^UmwEQ6j1=jM1a?2;O_)IiT01AFF?u6XjsJRw;JR_V@7JB^C|C`Y&?p^BL7%iT{SW&+$JNkw6 zPyPIkc=Anrn3f%&qR$nSqzE&RU;s~xVegkwR$k6S=@w{PB}w zj{bFk@Bq%6b7$StYS@)zw-HP=<3$I%)CPzUazZgBum}Vb(=unI+(avO zRFxP?TUwr%ah8C@X5-UE_0$HnNf+(&g6H}WYnHiGu|NX!IuMtc$yVj+kFqqgvtYoK(c_(acO<^k-Gt=d5JqbzC zX|3Yh@dO2L;Olhg6RNq+uP=_~j@c`zE`1a(IP`MuMjPR!N1NPlB9pphZCrTc+z0+t zsi4AFL`5KI z2=p2xn__^B=|C7}b-ODBg63R1h)FT6s%rv+-hvJi4to3&cr zaC1C1-mHasn?^G{({?*gP9wqJn?^GD19tGR7x!3mljg&avmWak`3H0*=rj2>)Fm6b zYUrmA)MH~X9SZsI9XpwMBZOy8+|o15^KgdRiMJsGEzGcV_O(oG8b>^IQfD;9og78U z2uE^a2==wz!I2`0Kp{ddu$7b>UkHa{3axRAfxB#VjnqZ6**5^#2|aRJ=EYv2T@!od zcQt1@QJGZ(eNj}tz9xP3?nz@CN-OmrQY27BRRZw22}QmozE5dha`>G({4=PO!F0<9 zck&O?I6m58eVvr1dA4)f{V9dn6{K~2v}DJEqs72*Y|yf#VU!k+1cVI_qG!xcqIVAC}%HAKsj;k11$b^7tz?z}MZEK+ASG zAXiL486?)!xnN7JB6)7JmbSR3i~qV%>;7g!OKilG6Q|ctZ7(R9a{T%axqXZG+rdbm znp=HNVvoO#gPUffCuw4_6A>u0OG@`@0@3phG+B-0OBh{`KnGiS%{z@|%30WSH&=Rz z6TZQAL%tajSyDWvN(&nV%-|McG!mPh(IA*Qf+LJU3tYbp7YN0Yb|Y`sg|3s`Dr}Gd z%nUFsx*GC>L0C8IBodHB5}DeNe>tU61P@)a^3&fw#(vl!+ZeLS5x61v;sAUxjeNku z`b#SBWZA9=;igU19LSOcPOT4F(~TK({R|CfjxgF*>daPu}jqL;uJ}T z!?h2T;hA41HHRWW2|w>L`#Qnvyb&@U2$=?p4b_Pkj(~-jRL&<%D?`S!6M`L~+KG-< z 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ℜW(uzCrotv0rSuo&|hH(^n_P8r0QasLz@?R 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 NU5aZY|gQXUcXZ9== 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

9qcmF1RuMPQop- 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 `)Ir@NtADswLDHXIZCE9XD}>Sh+FxIBH{A&|$l~ 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 +h8fht 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 jpxZ0^zSUt!Hxa2gcB_B8& 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

~xvV;t%Suf_EnP1KW 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Ⓢa%Y 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%0AhER&R9RWiQ~%6@;Hr z(bJacHkKcs+jW5a;;^lX3JMvQN^#$(+^PB}e3V>n_Ilb4fotyHDkGg^dYx=OC(`)X zy|WK2ikXUYhoxR-7P;T4FuMq0UXD~Dc&iVsB+m8Y}P$zdt)uIf0v^r|Us_wFQgPIQ}> zY>kLmmCVzKNANA2!J-0*gR|`C(UaZ4*`1CItk91Aq_(@#X$zjemzeR@ght-t62{Y+ z@Gs5lj+Clh?ny&ik5SdI+Rj||!MfFYo~GIpbq<3`Gmcp!cmmuVX|h-HWwP3m()m~1 ziq|Xb4>i&c1oQIOUd`m~*6oAu2xtyNiH2 z`7Noe-iuvZT$Do!7Q)*>>_tp}6&aX|fiH}d{ zV>8xbd-1iU|6EW_G1?;J_dP@2m#f?AQ5;W@_NtJeLuon_K-!ZHR>NaEUck(G=+2O4 zxNmxiqS5f%t^S63Z$MOsa2It$6LFW^JB#Y579<_1Bwf;A_=l3FmQd8AJVivl`mCPR z{&U{*NQ2VZ`x^AbqgYO-s=q)$_P8|U%RX0`jqjo#<7Bf89{Y)cLV$NAZX!K(*YQlq z`r#U!js8>F%5(~*G=8pv=GDm5!qeVW0Chv1zI)(rdvORW!&&tvnlPW=e&S2M2Omy{5E%vQUU z0gZZ|mM3C+z7&u;y*nREJ3m;g0Xy*o33-&?DqPt_77!sH<0VvI8fV0c`;Gt#5?iy zkM=(Apt6JtqyjubD9#ettmA8N4ut`cT4TY`t5d*Av!!>KMH2Luu1!0g_q~PgiOdw7a}s(@U9r zZZ_~k_D4(VU9dzJ$Db-2g_w}QTDo=NEZjYkGKan$BgUByH|9x~AkfmUE5wMLuoMo5 z7MZv0^l&|Kr}=T=0l3f*FNoGVt$#hetv;psXErV=sc`O5DjHzfdwpd2HLWa^zUfVM z*iR4@tL}F>xDnR%I2<=!C0NkQeoGb`GsV(9OWk&P7%SuPuyjzIU`-0@*O=e^ELihY z=Fv^i^Ox1-8Gqtvtx47sx<|r%iO&c}owf-i8PBRARb< zx-h-am9cro*y6cOtlm6WERaq%Vd2?}r(Cbs$?6$S<%@d1D7&jgka82DS!f< z+HWC1wj?@~Cg6?^op*39oDw_WlR<4usYA!iOc8c|6vg3HJeKEo#M)MVbDfmpWcrcn za-yvvwVmD|Cz*_w9mwWh=QpS#Q@($%jz`7aTweQPeMp)%It0L|&FG##phsUw(7!06 z%%A>=69Ve>7fxsmj*VY9AwV7fEtSCE2q7n&wzDJ%XivT<_xZEZ3s$!#{*h1t2p{-a z0HeRm48ZGxYC2tK;HCqL0yvskZRDqd|CX@I3JO8R3@k#7W`-=yw9u3ZRbu8y{*qMT z*55Dv;Jv;t-HaURY<@XIc{$(%fv7t?LA_dykWrCl+;H&yec^j6Bz|AmlV6FI`4PU7 zDawo@<6UKR&3Z4d2uw>>MD;&TAm`&JkxbZE(H}@_R#WkJznCUwBv~9jPtD~=as>$2 zSxVv8^}Z4;`Qaix0j*=@ukMRHKbqLf@wH;L;jp%5eu?5M@d7>!T%fb_`^Q<&5-juE zS=VK*_nswKimxOK#F~m2T>dbFd&rdAuS>rr50xPCtsB>M_LbJ*>kGv)Y6Sa$=K`p~2$QeDasyH;?Ie0yb)V;f@7#d7BNDXPzE-FMlx{0? zVGHg?du=zJPSKKjiQ-Uf>@bO#3oThpP8889j^$T2ng{|iNe{rsXhK>6!_R->sef0dn$ryESzj-G zU%V7R#kQN%+kEMSSR619wt}`T_GLgeRPkOnHH2oA3#G`BL?M2}h1pcLO58)_T1XDc zadW{Qud0nsA*SQ!!7LT4-@odUf`Uty9@fd|IX3CN575X8&TFQ*)0%?RcHD2(y7=5p zKxhunEo>eGDl4qji(r?1j$@o(kH=$l&)H&m;ZZYVv^2OaF8Mp}-_Ge#a~WcQoaLE8 z+b>bt4Z*ft53PH36*gPo!LM(I@YbJ@bO_?JO3#tni$!ugK&@AOW@m^`#<4=zD?3oT zELc!0xlvZQ@GEF|d(>+y^N=AG*1L^2op*OT0A^xJ9`!}vjMyKX^#hi5C^tj!>_pPY z!S?HZGu$9qZtXw2*Xn3)UhDFXNG3(xnRQ|CXU#wR*Gj~I(-JsN`JpC`uEvAv-VU0y zSUiHoIu>i=YJjKd(pS-E+T!eczbpkS)IuA4OhMlAZAn7DL$U{w9K8wwv6tnyyUeRN z%-^_IR^`c@HmmgD%BB1mhV#MOlP1BwZf8#>cU!&*Z`XMFcqCl=gfKkD#^T7*Q`Xq* zZU+!Af7B`cD6gTPJ-ukQ+TEy70$pGeiwJgxAsGd zh4cnv_<=ySsV^TPc1nPWc&v3ub!5C!Hk9xhNTy+@)Pea1p%t3VeSXT zozJc8^9)tG%v8M;PCS7GA6zlIg1lZ)Z}bJ=0!${8okhy0-k8GOrq~*S8eDN3tFd_3 zo<|-my_2NYzDi7;2zXmnm*Zhq8B%zqPvwKT*H&A!^|cgtHXTKo4_=e3DX875kfAdB z1~`FPgr8$Wg~56Ep*O2h>LW?3z>eY7Qn>;oPkPBv7Fs=v!}CGxP&Twe47EQ#N1MNM z4^U^R78tk9Vf2~zyOUa7xL+VGg>J4a`S4En1>mv7y$6=9(_sew>X^?sF zf|`3x?OkmWP^Kx>Vh^a2aj)W{*~YjH*+jy0p;VBh^z{g-jZUJXW@$4g zGm5jt5?WJ31ToG#D2>(EQv0me=CRmdJg4L6mx5GK_vc26#h6}*J?it32MBiP*HcBrI%XZBq*d#DQ?C2thvcBd&--yk?K?7Y z^!-k~#sh!uH+*VDcLvI1ob21Kso7ASPUGa{)+35+k$Go##L`5vQc^C9m@hvm&Gt|f z+(XCLeFry^!(3x-Zf}+JA`4g48cL~t7K6%;osJsFM8_*YHFH(fN4-rKH98`FRe7Jh zFi24kk!RMM{Wv))Q&(U^)}kHTDcR+4eTHwzJp<>y-wzA1UInz(1KzL|l~?PWpw+dw zYS#G^Th$sRtvk0&uf;x8Y?RJAd zA!ht-`s{P@rA*4RUGL84@+3Nb=PhpL%3&h-8)s5nBIaO7pRTY7C%A7=aSr`T;=b&= z_-63ck`y{R2gO@2ys~wJXhj;N8)Dso9djzvYs0-%_UWt8!Z9@$sZG=*@%NP;-7xTq zP-Z}G`>3Jt`LAFx8?v_ zvlOg?2i$Dp-wW#)$d^#PN=30M{f$Q~iHK{?-TN|>kMQv%n^)PqbH+P>9`(83pS1(l ziD(D0gz*UOp1j|*{I1(yTm-vv3xG?QlqbK40f2Ozk}=LQ;83>%$Pq#IcApFuEqV0g z)L{TXXinF?>TL)~B6So1yh3#vSNXDv7f3Dbis0vgD1D$f!5_Uem;4yntjn9&X(&YVF{i>Boa#t8eIVfWO+bQx1`4!`vu! zEU-JM7L2yftUvzox*J<(Jd6FnGt~nao%aRF31Z6hQR{122OR&Nh@(jQ=g-wSO%)Ki z0#;|G->a=xkmmzgLKxY+!E!(Pqwq2zqwc!TJyhU#ll4AHmTt<;eR&IB>0@Iu4zrJ4 z8WBKZ+1VcGkp5rV-mF(~ZEOGgF1d?PWCI4wKR0pT8~5E!gbldE7%<=_%6HFWR#ol2 z&pGd#L{UmAt;KSKJ=-zI9OLZeOH5MR_dqW!X7!jB7K1|pBe%h02Mi0^lkT2!|dE|uah_(FT zt~!l$H>S*`(vrs4?YY}cDO*;X$2}w3bK=P4>P6(w;U&hQ#=v3Eh%Gj(FnOzky_Lyb zKkd!KBtDn@<^AFNIy{^SDoG&=c{{GHG&i02a`WI}a^#CV5tXA*OS4~*3AxzqpXq7; zI7jsjg4yaT%WmQN-Mtouw3`cq&%S%E5N_(O6ac zK8d$1^)!~y6nu};!R~hFsNKR_3dr!_(|2F^NGM;TIf$FheqB)5P0fdk#jT($b~=Z4 z27-z2XkycCRl4r!K5we{6B6Ar7uJz;zg>^(DNDP3*_TM7M+%uFY_G#c_o$Ls5Z%>- z*dFQuIFQ6%MZlo&Y)6f^FkD_fB{@FUk))mC?sDW$%03F&^Jjh97lFCHvX^VIY=*?Y zugv}P*(@(mOS7W&v{)dPq#QPgUn7FyI*H6x@9gvPv3*YkBE(i|qNaxx+=2R{qWf+P ztL-$TK~j7SoqK6$n0j{6f?*$nhCU@oK~HNQtB&GybV8<~ksGmp4+*-PxjRgFP^3IB6;}JcINVJjiF2!y}gj+4G6)iIS?mna#@tb>zDlJpB64KaiVyRuj6}YMv560V1 zFEis<^Cm;~q*Hn8_5lsv!k*5VunhmR! z%+k-zKR6V1?6eaXe==20`$5u-y=7I`H4muc+1xNIRa^m+%uR>QQQGg4LRBZkl)ZDr zGc>0N0nD=R8sKR2U1Wi2pN}RY22YtSa@Jf`{f+1Mo|I&nPc2I>e+=8Eao)>CFsk5z z3)prJlk2-6qSs<;B~93hr8iZjQ2A?}TPG1s9aAn{?Y7QikUdIyB#UZfk;6g&(N6Lc zoo=skrsn+f78sXzybcX3E+zx%@9933UXjwNRX)*i`FbT}PFSFn0 za69-{lT5Fj?Rh{+x1UE#1x5dMuVk|{_HXSx(97#3ex~826N&7V5ZMIT;WFiX#0C*S zbn9ANCl0oq%Y*;^uxha<8%-?BwXr-|SKVJw_dDbwMQN2+z4csEN2_hh+m>(LiDlNy zoztK406Ctw6e(%!tl90(9u$#eKPb<&qOIfo-F8x%+njSlycsj?^RZlk0B^HYxl z@z?8Y1J(R!r-zzEY}ZsNKQ@p>E^lV-%~6(5mZS{JJbxMlKy^~e=ORhwx8$WY(Ac7L zB<0G8t2eC22@DuBjYzt*_#0H`A^wQ`69f+&ZcX_h8{N@6XbJ2-L${FxBa1tKKq|%4 zNtLO>8ui9v(bqbWxa9=@i2R5wiV53Ip?aojYT|{as%^uH%T~I_E`3SX3B5URZhZ)* zpxp(*EmjJZe#x)m4eY!wIuUu~A4i?^%gQ$$`oN!`&?6@{pHaWC-W3|8<2AX)t8iB} zlyjyF?=r5>Z`t|mjP15v9+&opKJ6OjAc+aGU-?N;peR0F1Vp2Up3?M>h=cgidU)TL zmL};3<1!5o<>K#L?Y=Xy=htp_YAjj36C^Kee7%+kW(PY?3l47h5h6kkn?)Cs(aw1r0<*cFba-&& zX!}_Z(MGGDfIEi$!FyW{K^zy=^1*uH;^S!0MUr-x_ceWkg=Dg(^d7(it_>^Q(+_T8iZU`ZR94hHg572In3&Y6G4o^=j+e4F zUd^~RrPneUIWq1Q?tys=BHBQJ>pw_ZlSox$7rA<7UKtll0EB)Cpuf2H^>)Sh4>SO!}lFMrcLzW`#wC6G1H<%dR zo#OV7y%rd{#1qLakORiCbfVl2_tE%}x_A2&cV~q}DU(c$6GDNDtyzuPzN6VlUhvD> zUZQudPKQ7Y>W%-7MZEyRW`~Ew^PzlezvO)kA0I2 z_CKmv(vQ%=Wb-7%K-uU=n+AQ)unH-mdx;163e~{2Ao)`|hQAHBFyy=5G}zPXHAqgz zVoG6a+8*3VBSFpSP3AK6qniXRh|4w}Lnhz?{AvsQd>_PNU=(8jV(WIu5r6|Fo&s_a zqT&G*QZ_P65c~XE9+drs7zo-TwiNq-<;`pfL+_#r?$$Iqzg`AktRC;+9EjSHX|f7g zKWB~Hllri;SL+Kh*R)lwo==PY__TVNO#H)jy;wmtO;vY`BVbWJnzKsLsP{q5+W|HXCU7i{zHSw;JLz zTFTg{?(%*}iU_Nb?1>19$4=@LdpfD&#YwNab)={J$6ql0MhOoM%H;g=)XhZ)D5RB7 z+aWZ&#7C75Lv=k(w#}-Wnhd<;@Obx!EV&?J`lQ`0 z$kAuEO}!7H3|)&Af6*W8aepp=Ghsm{OAk_?KIE7V;D-&*`u-iKALINyuNI}eIFy4! z5#?LSIr9!UaeQJ$5?Uv=TCHs!qD|UEQ8~*6DJ6R9!?e4{&pr8ow7XE`;oL#b;u0_3MS>DqdcNJnR`cEbfNQLfC7XgNVjSwpux`cL+?c9phK%Jym6F{OVR!@V1RlR=$ z{JVu3!cet{(i4~GJBMg&1A)%kxm7Ot;A!0He(C^c;{{>J4x?s-<-4lfNgTPTSU^FR z6@rtxa?ZpDrgk&k{NYbyjRwZI2zmA>1%;F1~c6Od?;WI2>rC79zC$ z@!|aNd1bK_xITQzJ&~L&CKTwr_X zxh(|maNk>-Cc8sjT(5UA<6GMDw5%(gkhb>QY;uUHz5ScV62<9k#0TUtR-Au->N7&) zEh2#|U=_D^FaFw%-rEo{6b37mx>A3T8hnk1LRvjm523v&=crqFbsJeo_0ro7#K9gS zZGFs!I)b|%74MRod`?OQ2rXWU4{_XdR;l6O5s8Mcja_CkoT@U?AQO!)htC6PgX9%) z3}^pzO`LcQ`lw95cGwZSodf#HjKfQfK6E_R^}X~-(#qxa5MxfbR=cdCcJ$QVc=jMW zH=-V{z@?0nP6ukMZyKLPW@^-j*d};vd%3_paPK!rulp;43Wgh}(z>-57GiM_rY&?K z5?Yrs1?M2?DIjB(zPpG`U=8wm#ANA)Q$HEh<05&LvU^w+LXL%TcfYq&qw+-jB&OkS{op2hxLOil>cqd-R*6ecfg|@uxo=eY;15o$<)5|DM zWMV4Y4R<-Ml0so_S8Mdwj}8H&4dr?c)^dgN1}&8;M@Mr9N!hpEK2fKKQ*Mh%h;G|m zwZXVzh{mV6d(~NP zmrUC&!`piMc0Sm2Rz-5TdoACvy>?573%ASd*1jybtT+u%I(ZWPQ4WaR? z^}4_9a!YHExotmAC172-%H4soFf>S>lTmyhqzV#9$b{-e2V4({d>oS?uJ59A5%0#> z4)CL>&BK_c(;*Sxg;8$D$=*q|05Hj+lMvFtJiPQ&RyHy-GG@!4iu`gEPp@O`l0*75 zR;%ZrJG{Cop)ljf$^LOOhIMNkHhG0RFT6DgR^XO+z!}nES$ANP z^M@J}rg0_-n@GVFU!E>9I0rHA@l6?H-g*>qImA9yac)-0Vq-?xf-n zMf4PxXA;^y(xl4m^7#}XHeohMwt=v?oTaOy@9&+kmR|1*LG4MT==;l9J|h+I?YBHS zYRN6^LsE{IedKA1!Sje+5=EMQA%tkQUmIv|NZ<=LY!gdf z!RkuHc#<$>WzHTPb|v)SXAZIgmY|e5J(t}Z0Qky4k;c$L=#z2CQ$DV+0tY>I@sWuifWBRT9tE1^%=+@>GxbXh$3(M=I#qZ{nYxgYTlGW>~13*W808`$=eG^ zdLc3HKOU5~cetq#%CFjQoy7+cq}>)_d5hE@ZR2RN|! z3u&CF_xij|MEWybSaIJ>=632!nwk(TrS$P7E@!<8!YyPotJI(}Dujb|+W%gjwW6 zuZ{F#($7ykx0loqK+XgS7+QcIY^|K2IrCcEpbkQ6p<^iS5N930@YyYx_5@GTNH*SI z;8X^fBH)rp6N5(;9B6AAb$ zr0p=?@egeDUtz|R4~e4R&~boQOXP6l8~{KA zfXVsWqM>#`mV?+2Z*8` z01(BnXP8RA&#(&$bvU>f@)s8X=+4^$w62Ax%+Jugo)e_ck#Zp+4hh;BC0-phY{i0r zjpu{X4QQrNhk`7-1b6KLskDgTXNAdjFJ82Avv@DYM}->|AJD#Us40Ur_cqsJ25P`3 zNXd3ncbOr2z>EA1JU9ame_*%&0E_>D4da}@Acaf7-TwxU`$G19!AxUW{5kKZUj6|y z{socyg7jxl=?ppj!l!?rr@y`*o9b{`2m=qlq0Z%s=X7U47NOo_PiQL+z_SN&j1N2# zZlJ{vabGGn*lq^1yHZcPa-WoJU-P)s=6gj&%B&)Vm}T(0IBsTeA+ln+_$~>a4EZzE zv2buQnJ@2*R~aqqC@<(Ai%JgP^&p_WX^Sbyqg1wN57ZrwkAvsrRh0N^Ygq%n3t)Y( zgkj^c?>w`x?8JAIEYB)F>!AjF#bBEppy@k6$Kru21dYR*0ALDCzBhrl~r2=hk=6+ekjVXMtw=psU<_CSHf55$e%JVn)^;doT1@8U}rvDpi zJeTor=vI7tdrM1vvQaj;AtR1m3bgMKAFk*fJ1hgBOJuR2-J1aCBdur z92>#JU(X=Jd?@ZQL*XFi%0Wr%z_!K=dk6Fp&p*RB{TawP{U@;F_Z`1&k_P_7AOU%; z3=Sa8KfuFS1dOv%egh6C<2N)F&_^G^br6^?j{R{U&tfA&g~w18FmWHnKK5)N-B~-~ z`r-oE9DvOt-8une0L@&W6RBLS8~P3?-eTovrx$mgdxSTXw!%U7Z~|NJP_`T z_P`>N{Ww{6{e{N<1y}@B{0p}H(>{Ls`VSEJ7lbq${{hAPTU+=8CZ5O0U+rp5(zzPn zRc0{6U_eA418H`LkvY+X+8y~s&}+;ORHqh$4QUqB3WOC`DLzVcy46cDF8nUbp(iNV zqt3&U?S(tW%oKoDlxe2%J@s<%Fa}E=nH~QP9L|tLpN1THcTsb|Cmke&_qD*X{uS8+Xb*|RG&9Zt@}48U z3WEL|+a5I=Vhg!Hx53=QRwB9=xX!gBIGqkzVL~oR8Iz`h@lb~{sKAZ3hViQm^k&PA zE$~S*l5rwRTa6&=4H4*heyCykp}!6G-`?|YZQ^I{{6cDf<^;fUXTb6=`0B6r^fTW4 z9hg4DbpHlI|Ld4f&M@M+f7U`F0}-=Ta$9G;9GWW-imZb{Do;8FRu*#tz`@GMc% z?E-Le(G?X}sI%^1lc$HAy$r6EHNY@nz6L-DT4-Y@^wr#*gcbTQYhBr^I3|cWFdWtH zv}kiRvI6AH0I;Uc;PU@|eijXte(=Bj-e>*GhxdzKw)5JB@a9Q-plPZoA0 zf%l6)N_j|v8N$HI1j!f`=6O z0hApUjXnKK0LQye71UJ1(WSamZ3XGS@STtQtC+N%4W;j7zp25g%M*Yn)L0CYbufwMcS02T0V z7BUlfAbBow16d2b9V5v3%v7eOCYgp!aM_w@3%2b^w&}B$7vfw`5FCckAc=*yuPD`w zx5NmHxr^(`1a=B0oKg!Wx!&B{la+v0`vbV ztJ$XcT?PP7quu-kNfy6$H^Ae+$4C7CSjcH`{^VHi^Eaq5nt- zE_)h)g>(G;EU+~yP zuE_WUlbfhp*wHr4a;q9_RNqjA6E+YP5dbGg>}gbLVKNSD9I|@D^!YrNkcC4zOhIQ- zfh99U*$Jp`R6Wd7=!?S+AfO&U+W{E&e$Ov|+LkQ-K)-+Y?SFw+{{pbjrE`4o1&@o+Eij08kiE>E6#cAvU#UFK0eLaeW5`P=E|`67wk(D09Uy z#Ms1`D59)zd5uJl8VS=*QXpbsG-)KPS9FwoyIQ=Y>kpmj8ch(5*v|yjPDjizR_=M zIF9%NewQJ9zY-_mkjGOTT?l|+$pPC<8z`(#u#UFtb#7v-V4nL>-AqnrY@up#I8f&T ziMYe!ao;eAJA=K(Kj9xS)Y(6RHHFmm@Kk^8HRYFG_QzNB%bxvh5B#m||6Wu5T0hOU z1;*gN?7hFn_3!n}^%T$1eH{cX9It*^*lXmW6jcsgfHk258|maXpfm*W=v4XYu)@9l zt06kMqYbpm4KyZuWX6(DwG>+)Q6C?Dh%xZh})d0jH={tG~@{@D2SM2Y$CXlt+en?AN;LXI%J}r%)IRrt+IV_80!EpxUBsaN-lI z80hP%kPl^U8D!!V)pYX2x^FCCT>+%dlR)+}VYK(9LvqqJzhmBdK?+yrL%M|BgE7GT z+d5r_!G*rX#GDhN9og7zAM1hb@p=v!m^{S;Q4SjtJI|M-G(txCjK=K0XM;UJDMlD*hd@DKJ`ULlQG5+ifV zI&!h+kzC61(I&Bd+hoWhw+r<99(H7jHORnrhk}Vv7oP;1AxchS?y@tk3?h@aZ^kmu zG?Y*ry-X({PYOxD=CuOW@G3$>ZUVR5og!9=drDMD$x)bl*G)axbulk-^PEYkN)C>( zCz@Q2^+)OFs0%0;Q$C{kQO>3yo|Lzl>eW4XXd8%yu_W7Un)Ym_W@%i6uIJD#0XZ&w%SctB!f!(tJ zp)5M^4i>U^QTH4(2q}!y7;DW7CWIV2eP@(g3J#s17PO-{bRsym%|I~)+7Sqo5EGtJ zkZFpYghA6rN$Lka?kuq;2Z zB_UFJ+UDU;z}ld29n61rJ;?!kkOqMV|27e3f0&J&;XL>BBF5e%_Vq6L8h+8)p5xIU zK*aJD^s`FKmD#=o*9Tzg*$!?MpwIyg!a5<~vhOp-k3aJqyM+`gko~&s#u(R74s~3HMJ+;OXpPVV*pmGy4fkh` zfLGD&pBTqPerQFk=dtz)t{}FUOrgSe2_guvo}ANP&m`t=kT?yS48fB;!I^`;PtNNA zLm+END7Te_1R%Mj2>2d$CR;mh0C9ev?6e-)6*f4p_$ja%51rD2II^ZYFC2vhNZNQ1tCyBPmC+S?6g1j*v~pNz%&0YuU};V-_%?VC z@i)H=x2c#T{CM_Z=%Zw%!q?(^CQ=>2DaD#z*+Pb$;}GDLqWy@BA?uE9atxiyYh?}9 zA?^Y81z*@6<~ppg^o1QPb+y3OMUM>RI#;%DMS-mfU#H(fq6c;@4Zk;nOUePZ?YvzC zzzIRr%u|@xmEqi8Oo(O7{>)!(Tlu?BJP~|jYw>={kH((w+e&4#($x(@%t_RB`-TB3;5wts-QZh zh=85I9I|~Gp{IM%6cOAFw=)HM9(z7)B0tc_*$p(r(eIhOCG=8w*hqoV2g*moG-qiO zw3~#0yfLDIff@dekC4;+j*l1{zrMJiwu60wzu7DEc=uyV{;V1QvJ3xeGe7+mIa^9m z_tMloLmSUw3#qVr&x`Dr!YUyTKc!y9f_N8=L?jV@3c^@kTZe+a3pQ;tx7t?9!XxVa zjhp*Xu$XM71G=c=B-S6X))!#B=~yqmvDmfI_Y!QNJ)hMY93m1v%-PR&L#lzT&3-oc z-QZ{Ixv$?6djx-c-&3|=e(c`wbN{l5e~tfh8~J@~_L*UC;UDwv*U$5NT$z0nsF%On zaXzW%%3KbE912gVnC;9M^_;w*5izelMD!KJ1^Ynj(y%!x*bp5yWjo|GqYof1)dcUd zm#CP>c!Mcm1HTZ@s?SQq`VH$8Q?SYNq0B9mm#fI8oiz@P`_64it&`V>V+?7gGs+-I(7ZSEr_aj2_8Wft zd&XaV^=G{}`-xo&Yx+O7(a+lCw=e#0cC!hp$IqI?03cSucp?~a)t&{cA>dP(_W)Tv zQ4FR)TN}tk8Vpi1> z{WYJ$AC-7QVMG4K1|nVIG@w$r08>D$ze&IzD&_I;Q7CNPaqQ?ENo*|4&dowWN^}=9 z{T^*Je)a zFxw-sVY_*x4GC-+?0NXWUUNxpkBI*&=HaIP+8gQ|%J8B8v{yjt=Jq=M>8qph%Z7l@ z=jZd!81|Px{#QBu&A&6u<$*oixea4~=+|E3AOA4c#Q*L~`iGz7k3IR_b2EDCc#k_E ziD(_0svAY}vA=W2ja3LZNyMfe;8sA+p*@T#Sp`oR9H1&p^` ziM9fPSQha4WQk`(4`)mI$mTtKZAxw}J58xh&5@(eQsHYndp3)iP?+Zt#%9P>Vhpxh zT^#5D{!`%YGYG}+;jR~8pCJ1I()?1myvYpKVAzHc=KXaW?HqQvxW1P&U>9Q#_Hm5@ zbGXXnJ*5eAEJBMd`)^#!SL_Pd0VqR#LqhQH`!i;gZz2eEK)>gG|NYJg5s(OubrM_l z@|L+$+_HyXYS9Ww??DVq5XnA)x^5;%{UzYUPC+ig$Yr_a^pA`iDE(!l^Xi%Ln)hLT zMbCU>h3-b3{eu*Bnhhbd)(%0aW@Xl{Xc76!0lg>exj(({n|xH1D! zV!1})dfu3!mB?Me^|-&nDKotHro#kOui(4#2nkAcU@mb0Jv=auI7<;BY$ zmPjjf*!LjbK#kAyhZJOex(v$?>Px%Q3wsTfUTo^!p(GyE0f>Aze!SK$F| z=P=C*WWN>8Y@l2qh8!RD}+5V1K?J3w2!ifukL%|ys!ULvfs>`Z+rO8ICzL} zoWrb7HXrmxjJ%1OAU1G@RjRL^^EHt!{(@eT}11zal zET@C83uruM&iDl!Zl{bwrMQqk8~Z%b4IX}L3`YleoDG}h6oZrQvlYt$-@XgCTkZx&R6ja+K741o1X!Re+-P< zYnUn_W6#$qcou-m8ROZp0UvS(WIUu^tWEyUxlWfS=;2sd_ZT~m9Re+RxJhF&?Abbq z@twRHTmk#aajk$vXFR6};6H~MO{`OtB_ba4qT`DsbUAoImb??<`p`u=vbbLObw59c zium_BK)Z1ryt88dE$6a9WE69^LkVoJdB=LbA9K$^ck0dSd=Dtjv9EjvW=lJUQ&VtS zR|s$uRpiFAs5@MX`|^U3x;y6ly&in^IL#5!bim)u>W!uoU$04ml);Xfg(Pc~HJ(Qb z@Z6ZF*aT&%Ca6adfdnF+Lr|f7ho7>&L{JKoRp6s23aO-!n#DcD9Op{&P^sOPaoyQn*ClFjdVKv`lFiY@1UF~ip}izNyAKeEXXp!j`H4RCf9a4RUk zD-V>w4DSEczB;t8f9nfa$TGQucVygdE@!lH`x@i>%F-+p7+f$6zIBF}NVEr(FO*>C zcMILQUXi03G$>QQihTgqf1bho@9*jM0K=o6e(v*EUqJhHF}(>c-krhoQs4fMelzhl z1`KG^gq)BnBUCd>0mo@T>J`pOkxA#*y4C$aLE2$TJ6A^)TC|N=QlT^UtVO(8!`2g1oaONbc&X|dd zbUP?p;O|Z-yio5y$0R%-j(fk3`!j@JsLcS!5#KP^tH^cm*W#HNv@=fiwE^*MSNl0j zMg~Cg3gNdsjCkJ}l#jMDm!I7}G(~AEv=JNck8*{T_SfgR{i05B-S-~K_2=(%```1< zZhrsMJP!SP+rfA7ND+Qx@SP)5<~l{aRgYu0Soq5zZ4r*$D*bJMXhHd zv`36FxbF+&OOBOQ`7P5OqI~A|g1_nboE05()N6bvrZt_hv>oP1DE(rraM8YUCuI(E zdGK?e3Nb%OsE1Hm!oWv&N4?gX7V82Gyf?^s*iE|5_Y&}aSkU186ujTOZ;R)s@P3@a z&F_c##0CNq#}N=P053luZ*W}vIX;(f{5`Ird||Q7$B`3{y|(Z1xqRVyz;V6oa|`2I z%;9&;ld;ak=+E=qggVAEWA2^%UdK@wFIT;RaZQILuRf1oyfBYn^0#09H|5 z0mk+ob7%QIcf`32{rrD=z6sB#3439FZ$$9pdw!ko2mi%;pe$TafBwt&{5cLY=qHOB zm1~s-)xlO4-L^pauP}Dfije*H?~gtVK+Qb9K){2FAY#)W@T}Hc&j0N^f#(s-xvmg# zouh8*c?@N+*P81kE2DqUeHUX=qm?x@)kcihVgXy~I~U`aLcvEAAchCmqJ1z-h<-X> zBYfvX|L2+x<2C-K+vDq6mY{axoyuzdzIhJ%mup<+jca7oKi)IO-{E6|9R-fT6RX78 z#+c_-C)5o=VfxH(63RxJ$JPJX#^$*hZS2R6arjsQ zb(jhG7@i&UMFC}+em{%zoQ7SW=0B9Zi^%rb<|y%9UY?>4Xf}!amk_C|e?3Pyx8G#8 z7ym;YAd2Ms90%BK^VklXg7N3^dbTV6!*k<24ykuvJBO|Def<1$ww3aw8zICM<_bI;`WM=iRieYN$6mx7 z3fmNk8W7m}))njl(TVjEZ56iW{P(|(&1LK3v;F5>7G=Y_f%-Eq)i6qO1|GcXciZ}} z`?>MPc$`~Gi?QK5&JzE8?mMq=n_qR0s5TBs@@T*RUWWLt-)#`i)p?9}zU>_EMw+qD zzL4jd=ayK%Vc)Tsp>ZC@t$#hQc-jAc-n@qRFYkx%-ALcE!86;-!j+b=o$xH7yB*Nb zp~$rAZPI1tS6R;Kc=@1N(=9QMfbZ}<5B)Q9JB=fCVL-~OQ}4=sj0 z$-)*&IP?eKERwGci9YP$-C&P=?Z^Mvf97{VnKtwMg7!M0&tg3ZNez52?mf>tLG#!9 z!Ioh7_NhM+faKV7c`36^au_j(&utOo%WM-K^q=GNvty3$=WAVe?k|uwg-tuJ_h31( z@HKfjzS3YXx!?Zu-yEO68_yvCRX2b3=DKz<)(Ws?Fm5{N>lmk{*^d7G{dm3u>QkHT z2MEmIT-e1}?>i-a7hw~_&G_>>>;-hQpWmS!2|MoRcjM>$asC}P!+ietcLagW=YM~X zf6o8@4!dDqzYE6v-7zHmzH5y6{X=)0<~6+iJrDCkKijY0^V08mn0My$A`a)_-G9!* zyY;Y#ur|VZXPgHg)vxo$5oH9C68s)R4G-7<{EmXccmDid&cFZq`_K8x{Co0q{?G3} z=l}fvbN^L7| zC(h;IkHNivpR1s4+QMJw&d==qITyhnxbOJ4a#YYxZHD+=F2(%ZJZ!vgxp4B&`M=5p zQwHw+=iG9BZtu^zSUcl6{+x??#_021ccRZrI|cc2CX$Je=7_l{^cD2|0`nZQ2IcZE z+tDSN*;h5rJ`ea{E6BSuzvn#cxI+M+oBJ5NXg|OAX#7~*;T>fA2`QIc&@|LLCumzF zIL$_lZa@Gta1jpYconEzW! zLJjK+O#t~Uos4*_IX@5{RLHes{r2men#thGo4=p?D*gZVAAUchTomZN|M?6rA;qAe zet+iCr4hRP=QEP35YztGafF2{Ebmo63xIFyJ2L7 zIoj-Pjz>9totLP$p1IFY0{?M8UwN>Z7w$Wk8rs^|uL=9bXR>+ULduvFJf1mDJ^p@% zVolCg^G|fqe9njZeL`v1-Me)seK_PzQ1y=a*@&t~60{?z$_Y(P`$M0tYGxK~M#Mf=Mo6o~>X?{LDFA0HfCWS|8 zJ`TbIN*Kid`ML1DhxvWsA;5F^^Lrxv=z?*7{*3$7$e)<6!~H;fm_OsaUUNMr^ZUvu zA7*|Ic+-3Qgq#!p9?x;t_WT*9=C@pM9QVTxaXx=W`H}zWdBbl#Lua z@C4@Y9?vP;C|@)IoR90s`Tc(0pZZhoryS*r`Z+N3bp{Ol|8MQ%r{2Hs^?fds$M?DX zey%Tkp6d_gk8;Cn89LMwIcn+RIdCuzU}TkpNHoHENiF!tV`@Y|Q@q9RcZs&75nft@Hew6v=_r3m6{y6XZ zTyuW*@9QAwHP;i$i=59x=Jyu+UyR<*^<>QDgX_QVi|?m?J!k*-_V}6K8(WsfPy3ti z^Bpff^L=oB^{ajM-}}$)2+xhrcz^28c!Te==5~N`{Ij1&AguP+e%^mE6@9nDV8da4 z=`rbWKBMN$?b`@!=D}b^i+=f-R_pdg%Fo+~!+cfBpjND=%LEV@HzzYxm6l$G`K8R(}T?;jw?V2RZE3 z{Q??!cy@;SK(XMv9rs_C66Qik!6+cJW(XrzIEYn{Yor3@O3hFz%~A8tqMfsGv0y1B z=M@2D>?`ZI<|D%&JX=1!NykrbiA6l=tIsy$>BEvhSENi`YHFFc-tA!A-%kV}yN_|R zrr5J|DV*|<(}6c_cAx5Lxj{%@q}63pYWHM!?0k#-ki!yEI39@8hqGBr?&{^AcbheF za6M$37N=bst?UK=0yKs^oUH75W=?JT35UvtV%{89Nhh&-?CRm2liR{~F7ZGQ$6^8W ztXGX-6C9s=T7E&RnKMg5Z2hBVdPblqTF6F;%j?9r-tV*Z3jh!+c_v9r`(w5sF z6(W*O7jK93mSFk5R;z=1c?5v&x1HI_LeV;}CVkv^VmJprdAh%lOSahw?ys^+7aio8^uMW>r2Ao`($H@60948^0v*h=kxKkjl$ZbPR%~|k#(e4;0aEt zFKl+NZIuV~)29Vs2k*r=8Z=o|_s5xyRx-7(-j`|7PsjD)z?@eX{RExEYfUVwCdlX) zG|hP;@UF_qU1k_ogpzg!HaZgIq{SB@NrU4v0HS0)Y_}x+gix%ng^!d0r8Y~JS(Amt z_WZeH8#+n$yWw?N(2wZz;gVqo=r8o}eU*O>R;F|lzqP;`UElicxwBS5Hn?wMg0g2K zoJKz^uzZLBh`h;*>-*CKX}?HrXQGnj8!Mkcqj!XAyE=}$U4Oe4e067Ej8TI2ZtLFh zx^oCp30@6OwS}ftX*e1_u|%RfPe2E(~z;JD4sO)#&O zZwMHCq$^+42R2>n;V?{bt=Vr#`|t{c`C^GQ>e?+{i>IBB3-tZdUymeYv2|jcXl5 z00gDJV>|QkBETW?C<^h8RB?9~n-tQ&F3)EcxvXmg64lA(*qLXbcYsd#Fzk->`}SD) zub3G$Z(6l)XSZ^%#?fC~_Ajb=w4Iv8eMxMUZHZ}Ovkiv)w7W-#X*i}QVpz6KcBxi= z`|;kV>_H1>ZR>8jaL`A#9ci8;PiBALyhSf)vk932{jxcpUcRkOk$d(IH_Hw0;l`?R z5?0VLyZP5-wLN{Nccm5VERSt$uuDBi-X&Cl)1=I}@%Ji(a1DFA6Iv_OvegigrSS3d zrzUK@S(7P|s6>J6_NNLqVzVGcp&x2t((2oRaAd@aeb@yd%w$7XskrF$%65eRaPEbX zV=?NE!FF@+j%`0?2uB@q&}XSGr?qTbBU&CHA5+?x;p63QZIy-y={j!d=V}@V=NWo7 z(C@YLX|^wt-dOHu=d#FCfuwR1u;E=h82xKKtn{-WwS95-p!f4Y>S$43PxKOKEFZ|@ zC4pi&Lm`e|400yMba5xI%zB$6H@y+*Ay>1G+6eL6{@hbR!6WD~+Qr@qn?58XqA-tqxwsnzg3s=`gC?Y%TD~$ZlY9p;`bDuv~ zT6fyl^@R~l!Q}S$FnF%tey2L~hI5c^gpc#;wiFmMu8#d|nF4Yj%wL&2O;`2P@=uzx zu$mCN`1Q3?AVH~Xu~!yA1<+`h< z=SC>DT(2q=;0ErFy;{^wBi<_rLl*KnqJ1z>XyHBun@jtKQ^L5ekN#c!2Fkd{ zZwI_NsJnp$KJKoekSw{!?copl;lMxA(%&vBc%z=coqukd?OnYm%NO+6#`lulX$V*z zruG?APR;v+rLLInb+2}hYvh1Wrrv_x2}t-_S~X#Em;Bp_&!G!G%Ec{CAeB%eH>_lV zB|1mXhj_EwZj6L?z^NeoFSETFW?p`hjiY__gRp@X_s2E6L!~zmN^iujVe89vDEbjF z(c^N{X2&Wj*2`tfgmoLbN+MX2ij)rhK*~9%T0pd zRY7XSJCY(6?&*Y;|SL$sB`N^M}P2z8ZN{f(KSTWBk z*O4g;BW)H>y1a&6f=QC@`2i< zI)B{fm3QP;pa_uV^@xIFkC$4aGyg7o#|o0QtZhOvxc)j{CScs}*-iKmiL#t0`iZf>*%{yRfXs92Mg_n=D?dQJ9beVSM zomCcHPu^E7MY)YXOYG=RjOroOYvSsiOKDpdA(0#U7e4DZEl`8tYc zF`$(M6JmjD5e9gL;-f5{xn4JU{*J-fHHkzzcTb45s@7Fi&jo_TTi|s?s0ptnHxBm( zS2b!hYQX~!d^j?sXM+dvgrYM5@P>xG$iq6yLJ2uiLvTB*B)Qn$jbWd5J#k1Lo6T_> zIg8smJ%-Q2nqLGvbwgg3DY1>OJ2Bax32iD7KZ0B{yRM;Nq&k2YouiAjBPcdHQvet5 z5~BVDghMQM&*V%S{Bk2ThGtwuIu--%at_X&p4!)JYnsZXZn29F1Nfth_w`d5p(o#Y z5T80FgT?iLxkYBh#~a#_C-D%|;icIf%Duw7$J-5kl7IM*#YW1w-j4FrCl`8Miq-lLZ`N8xQ7tK(+@8aI=Y;q$aeq{r=g zI~E4}IX{Pc%-tb)ytu61C)!OkXwQ&-+@95avAK@OZXw3wnpN{na`6jPKu};#y@XQ^ z8%QC2VK~B;vcyYFMd`9$^LZGN-0pnmjpu=(wif%StOKoe36X;N$d{|jSzC4Pv4##f z7saI!=WAEJg!J~Kywj&M(I6yxOCL~?y(?y7>Is#8a@)s}4xVbDW3O(oa{^TG$$%t@ zzdd?uw^RA$^D}Z4l6r~<)@-rcQQRewSyh9A=L(_9){R6YNgyn+^|~a~I|x!@ZYU9Q^(e2sM)9&dq8_#(jz2lX9~z6E)iem}O|3O%ZD zKd&W2Bw`O}74dP%B+bcnA7KJY9qfiJlr=?MsC^Lg*=8$J-px{l=)=3hO}nHgM!DTz z#`eL78K6d>tBywE4%G^J;s}TfD(M zUqL>kO3uJ{zG4XGDrOX)2y&;sw#_Zsw(7$Uo8%+D^*#bk-eh1pgHe%xOm|s$w(rx? z2n=yEx?ZO_EQi?F6*VQ!*>k-rnh%d3tGbK+Dx(lKk zZykAjQ{!Q}rpUE1`O9gsIxR28;>CR0t_`|+cfdSA%k`S-phJ8q-ONW^En%#}`>kB= zVU&kh=bWtkeAa_%JA1toDmq z@)eTV28e9~_i3iZEpc8LFgDIuAp62zZxXM)RutMD!5IooybA~;9K`kUvO1nRvfyJK2*9=|ga><%&pO0HV9;&SxLR|> zMmC|sO|O@Rx^j2$APM~wP)K6jYYVp5N_lb%eyi>4enn7Jmc9q~1nBIOYIMrocp zT8H!C8r#J0agSB)2~4zQS)~&XhPq3(OG4AcJE0lNt$XAElDC3L&Nn0R+9;7zWS@QC zn^>X6Y=fSCfxdmy>^~~MIT7pwuaIb$%<^?xh zN)T+}rXS^H*ZA92ig+l~SdpG<917}wFgKB#oc#p>j4-kZ)-{_7#d$Hh1BqO9p>3AW zP~UDTW%<fkqRkQ$ly>78{;S2AbFyS08j5SQ+}x9jI48b12#73S;DLwkY2 z`cX$h3EvxWt?GBT`y8?*Z$Rq|83V~}cRe?0>b|e5sXGDw9KLMh9gYa+G!r#KvfY-k zHnJZPJ>`J6tlY`dAz$cMWU0d|E>w${l2?09JBHX*xMH`gv5ezmaP`mLH@(9ZG!R;L z!b0Xp@XyaM?VQE?Bv5f=HCj5Iv_oaJuV?rej$1Zw3}5jSio1DP9Yu9_J??}{Y%mw` zd`zSF`7s3RE>elBHZ8k)Uv0If=vIEhhD#-yFv#X5i8!)U>(k9LTzJ)r2(MDNMreq9 zxN?vq8Xgd`r#+1Q!Qs(i4z=$+;f%-p4Q~2wOUTF1sVwpLLkQm94gO+T@yRU6yot&q z&UrhDF1f=U$xgChtgPOWCTZ? z*dP7U5=qP7TE^44mHZk$G7}Og&LPOT%>$7p++9oM&C^>>Ti-YfFB?Bih=fC{R0>Y- zBhsTH>#03tx7Kn_es96v8c(llUhP(^1jxj~TR42Vd=xK}-J9OSo~l*pE&vXcgk$(w zg{RZemydR@9@nK{4fnHvxF~K2DfaI#Q=WHsp9Y31k8!@0T1ayr`a99FGirjh4Z3%g`pTr&U?D{T(g39 z+wBlFFr-_N2jV=xZl79v2RrKC_*Z@XIiE+H;C8x;0KI7u)e^ITD)%yaoIM}-n#_zm z(gc}C52rzwoAr%75w5Ye;|vLID!Fh4h|8ph^LiD4z1rOPn+y%~eSlnm{Uhv_tKvWh zXJh<0@$ll4^(|hBTi1V;`r4T=ZtX|jh#F-pydP=2Xv{$N20wm>ygq!!q+PPn9IJGfzZb#fT-5JRYdicNIP2%854iWX-=*C^v_>R-P9Ji$Xbi(89$Nn~oJGEm z+8ccFSo||1VH^|7&2o~yUwFPeU91NFYYX|T6G4-Ge27}_P`LYa1p5^TNE2-ViE`{$!qF7}HA&-+$}DQy_c zw1HuWWZQb8OE10`sSHlT{n;<&RC%xq+gzp59z6V9ako3g-}_P!oU$hbovkVZPY^_& zJltNYeOX_~*QS-@adlp;m*qAxxruhO2UqSj_x)6Ww|R5OhCit*@rJQ@pM!=avQ~G$ zDsn@f_|=18uRgiBBM;Ab0E?x!cS(Oa8%^T3M|pqhY-nNcd+RlA`SZpZjujk$MQxn6 zo*q}r4;HA=`L3-I7PHGewv{t0Y)(S-z9tvx+AZGheJn4a{Oh+R*KP(-PxS5UaMq)3 z|3V;)dF=MqDb$3{JFlxcL!;jw>k&3qh~&ifw&%g=e=F>1S~)sMNglK0?av3ff@Ri! z{Avxkc*}y~lU>rA%d**3AS!>vjM;~K^9>i3ZKaRRc@yt<Thw#i=;wQEI%=^# zSjf*NO7cM7!Qo@V-bi;7vrCTt1#ZDEJow&hj`IV7du6wjAIbVL_)$?C{aGxkSt#y-BH9=VIDrtD8Y;IES>G<>u$e~9_ z>-16TleosNtjXuMz?7~F_}gFlP2Iiy`cexO-Kg*9<3en&KoCyS;j?vi=kTOS-NGlk zOB#3&p9oh|nA^l@oB9}v0XTDz&IvF3nm}Dv`Hcp4}8Qe95nKiVz!0G30vo6O7_sKxGWTv|tbgxgh! zN?fd|1+y*IrbE2=z)wCqbYui^vU}q!Ei%iR)Q)c4Pw`ZbhqiFwi{qM*KAbk`r2)% z-oS}&slO_2iyhBYzKNI5;x0FjW^*?Zr8-(WzkC;fL%hzRb78PVVwbt^ot0YbS+WW+ ziKIjZ@??BlABCxj8|}XBC}WM~&&#{H!u5It$LB#FHXkCsPY;jk8?$!A@gj1IHKTK% z4VUk(507z=YitougST)ur&gEB_@TU-kXh{y+POAXr52W_o7Cv0eIy8(s}JXEV!d~- zoqx43y}tGbk_#imGT}Jxj{B)=`_a-q@hhX_R z0)O6S6y$J&x723OO+#hjY2$8I(p!&~>)`#1EvL zflYBlTJgdtZf;$1cJj-CtB!_n@2=VD{I~*Nc<(|jB8AAmV>ew|_J=#UvhMvp%KGT1BO_^~y4$Rxrra4juaM-hl)3w(bh_8!ek_^K3I)E$Lf8MS z;hx=-+)adob0@_j9jukjTb15*j-Ytr8D47lvBAR2S+x@h^^0^r?p6zD20{D8cvw#N zVKj|Ny6E1$NmitB5o+tXR~iJcZ-(nuJsjl~yFRCx8VJOV>NktyIav$uv?{5Se|nnt zyZIja*W|;omp7xS!U5U7F8BB1%}Rc_6BkpRnQtPlhZJJ>qD*ARLf=G>M!YSQ)unn? z(906U&rQdi+6epB1@XCMZ)SRP$roUk(-b-cCAml<2Pa9wQ?6VB&Xg2}^D`&AY z?%-H2uMKk-<$KK?;n60C_X_~vzKYleZjDEKD0cvq2fbevw7)olzhH?=X`RHI23yIj zoQH#lZNE6|T2ETO4&q_iUXNEHlWxs{M8}^3$#C;!opjYsg9DH2yVCZLEP!#Puym@x z-2yPd9IfgtEH4dnJ^?X$b=s!gw!T(&fwx|b30FN|*{kt7z-GIAcMJAgua1KBuJd99 z_ms13cE$T9pYC?EW}Th8TI>xwPYbjYOLz=rewByhy`#n{O*SHESVB_+E!xxj=lie^ zSadK1>x9@Sp);p>KHnOjINQ&gJ~ct3WZPxB^2JNBeh(6bMCJSSC8SODbWWEiv699| zApi`M$uVRjx3s%l8NEA{I;+LnYb_xe+Rs*64Uma4ncaoL7%6_XF{9pVR*zDpEq6(> zs}Q1N0a$&F?4r>)2q#fm7r=ahKL$uY50}(pU=V|Z6!5Z1(%LO)f0<9Vv{vZT*bLsG!pRd;~W(xz%`vo97uH3;LWb$B#D*5LQn-D6 zx>lW5M#MwO+w_1 z^`nwkowr;DN1X{yySle%^LA}-bwM`@p!NM*dqo#grZ3uFhX);yA30d8vTb!-hw45( z$mhT@pEOMm%_0@C9tc2RSH1ifW*8^tm`tl zCMUVx+XS=RicNL*Q=@&Tkca86<4#kE$8wcC5Bm0WpCkk$-HF^uF8gRzm5U+N-@xOa z`pr(L%gEeu*?R)<#>?ErwVTRZuDpBH2y5K7PxzsOriN|KUVAlu$Iuld5QCsgcwfSx9zgu=xiBUSqCY61- zed?^$>QkKo8roUPs|Fojju-c>^g1!!Gy(akzXv4#RQt14(UT^ovg^45H?0)qY?N6G zt?5#Euh#q>M6O-;y26otG4EddS>3{|vQ!WmXD`~7MVxj5VyX7*wjv{C`*2orwP~@3 zD(uJ!4mP6L8mnENZR9ab>iu&#jPk?enNeo9tWF&5!{rRh)O2E8JU)BgmC-g+X@&Or z_5GDWsO%1kr0eDUqOm!?ug^1-N9>A!B16li+fuOB zVd%R;;`^V0KD8ZNnvt!pClE7v(?G}&@ScOn8abh`IG9z*@X0QR>3nUV zvqp*cR^RJyQ^25bdOm;#OaEt@xPB0q4V~RRAlu@P zw_5np@~j<}L-M!_a8Wg{T`y*&$btIL?99!y2Hso+h%(Ke&d&La_8A1w`)FzBd#VQG zzD?n-k>Bv()aN%8QFnli?^aigSCs>yu-*FL-N|OUVIN9bmUS-3JBV+A7RJ@p`_6mq z^J$G~O|~m?YpCqbT=c0@nT@m@XirH>dh#=$kS}Ejn3({xOD1${6KJwOg>HH#-n?~q z+!tiFI4@PSbNn4 z#H9xzC#{O%YS*adm6FWO7)eO53PcEou+c=uTEcJ^CDgsy^PB&=4wG=OYn5|bF9;Fy8^2KMT@o*!@FP&5mw=G2#@Y~;&w@g=e{rVX9*d7`;=jrYc+1Zu0g+%gn zsxf)%CgoSV`h;N4;x`-lX@Vby#}2qxjzt1*R|-56GNQC-4jvC zeoxT+C^z)ZREvYSdu+nU$>B`94ePuD3FdUat#*i;WS1vCq!J@Ijf<{2hPtP1xhrF2 zB5l&XAK8Fa(Dd^1rXCNUwteD|?H`}`bI*iO?g^`cmn6YP$RHjU1PANS;EJVpB^K*d z8q^E(%1;*yY{$MkY!3ZsYH;v`wg82Dw%cJlnK_6>6ac?%4*GK+e?oo;Yb(oXey7*5 zeWUbJzjp>fMeKs1EF&^e*4$n@uhVh^f(MU~k;Sy5F2mWANa(zG;vh|)PZP-nIJ*m% zV%ZD4l%D3v8KK--cB&DF(%*z#f3Yl=xnGlIgy<=1Pw55Q>OA3*YBz|w(|inGzj4`5vJ|aqYESiRq~B+3q`&xAjhUc$ZO@B{BD9lx2=h{#5VRY8;WGNbRM$%g%ZpgsQ!SR@HD|$o3LFw&%!NFXC3? ztdloA$=zr_Ps+mC726BnCeH^1T<^$NUN;t$;yv|D#Ey$hw;QzO-1wPR?4dq6(SC}R zhjhNNP8uFyU%JoR@@DN1Q$rkG7HDseEQ9xQhp=PBI=k$dSS;k@mL{8fJ#DiItA4~( zWFfj?2YzreoNwow1j1gs;97$)BqCl%5b~E7sb1x8AlMy?)n~2i^GBHiK?{aOs14T1i z4zRE(xw*c;n3e1CjqPb?FUp8y*oN%~J0Ci;-M^mqj5d!SSBpxcowhsS4?8^x%6YdWWv|L z-a4j<{ULTA)%Aya7_IebbA2G9(?MJ(2mz&WALTBhN4Wd*Xdw^slWiY2xRbDCU1R&a z(#Q2~%e>5hybm`&mJ9^zkJCd~XJ;eYUXAUcm)F)2tOKyE6t-v%>_bTIA8p}&fDJp^ zM{^x+=xV$z3OYuY434dRU&me!|Fg0)QAX%!GEn zJ>DannP-^8{WH2Yx@TQ1u(C@y!4UVTy{r3>-F8XsBU=8xF0aum^=oMv20@FURA%`` zHJeYkclBhUm|DO; zeeL?>x7iq;9Id-j>%FMJ(k;fFl4I{^YW8t5F3Y_IbTfBWAENYDx7Jy)%n|!t#)Xry z|E)^yL&gqK@`4sY^nqnIiJN16pq`FDyfFQq*?c!O(4)0(L7C8tMtUO~Ox!(Yq5< ztJp;T2ngG1iDCA(yVD2anHy2Eo5p4R46ldqu~K{k`Pu3HRccQ1=1`+#y9L9={Dhrz z;ltOaep=wEzhB%HFec!jbXkikl~@ePxHT1Pzb^=!;SYywI=d>gx^-(p2%$=S!Ga7$>&pEjndNH{4tH{H1uuqC~r~u728K4+RzwVBv>y zq4vhd+^)9T7I3a&D;ml(Ja)N`ZYo^eivjP?d(CClJq_=hW{CO5MgC8an&PP$6YB;3 z`Sv7LB7eFmSGQXp6{|UGp(MyJS*oHJ%M#!r{9l~C*_x`@mInGjUeJh&m-L;0^v#{3 z0s^9<(meh7F(Ptjon3V1f1H_U2&SrNu{vxX9MO`uk*c zTPmIR1}dudsja&sZ0oU1{Q9gyXO=Yg2gtdmt;odDb;FR4&VFS3;LpizIi?C!t z%Nl795}3hlyRa9&kX!d%w(L9AUxTwrbmnxZHiQu`^5>$dRH9kwcLEOE>uf0{e!1BV zZ}xHPM#by)u%+%?$mrAI17^z{EG$Zagy>YdYd{3iw%4tjpN{LOya+3CeL5G%5ngcX zWpnvlDQ-RJ?poYTA8Qxi0CZBH$96#!&KT&Vm|ohX&0_O3_{;Z7T(UZ24-t}Yc(*Et zo`9?I*)P&@Uaj6d0N{DuCPRa2@Jrs3Whh(#w;X z3cE^~P4nsYYa34ZuON+gE?ai^@sI(-6SepnnhjC39sKsX2u00254SD&jt-uFm| z6INQQl;|n36%?zb*V@^*LQJ^yuZzkITZmMwFU31oPh-7-XXTd4%zL{1JV#5eij};{ zF{kvb=v=O@!%~WcvzmRX*HeuZCv6s+=VLSO2pn`idh+5+Z?(aQ`+6^tX+OY3I!s+9N{rb8R-u&9^S!OBbcn8I>ia6# zCiiTyEGtkw!Pq7EgvuDKi^+ogdK$`o}9y*|pN9Vz?W7Ay9yxZI1PMmVNQ2VD~H zBYIydwF+5V0mfy+m&#^3)n{~~PR|f}D87h7k5AnS+K^_W-{ZLn` z^(4K$x_YhM+B#LmtCF9w^7aKxm|$K?H^S#C8;e7JIFJWWn!@{`iOET%)>kEZC({P9 z&){Pik`NKMq-@PQz;hp}K13L5L40W(ng-rX3Llk>kyU+mx-B=W=p7u-cQ1#>eFyb- zTxEK?n^jVTqk3#ZYo}s^K1MV_vz9eRzwINv0;g`jRP~j!(TA2;@(kITiMU!u&Sk-C z3+uibPxp;~i_+y*jQaIw%c!zbmEiWUpIm5RzXNGt0|p%ttTlNwx>87Di?DuE<$iH- z#0tP#NvAfeQn!hY-zGNQdNeZ3@{!M?Jff};t`ToEsV(^}1MIaeZIL5u zS3ts+))3v=>5v)i`9(8F>o)2b)E)|>BQOu>K9D)$!_qiy^7wdFw;z9%pk^l1OAK<# zn!MeZpi|gERMf$U?UIh)jc&JWz1eP_tK;@|A2SBdy2jh5WSa5h6|+*8?9N92{CIu! z(!XfAU&`!%xq;7L{Wp)+{o~P!d(eA-d9<@S#lK`}{}%@B9@d_-K<@o(uMJx#d@Y|b z;B50_AI=HQ075{$zgO-JbZoGZ{d#heBw429{LyCgybN8xh7~r02`8;GMqhfj*xzd*iU3x#^dpIa|sQ`**?~(((evT+pbO;@%#E z_j=3n%TI2_is_DumTr}!mR#>rQa>-%E&^Mw8@IrB$N6HIE~`%5km~ZLY_<}SV*M>! zv3U9yQ>ZlHj)veZ2kq)wLf^I8z@tg`$F=pj2LdE{@(BTuFxEicxgRFVpV2EM^&U#p zn*TUMao*-nv_<3vA)NU9^IWHK66I8c3LEzQN!?AK3mkYL;Oz(5{ry?wAl4=}$V#Ut zvt98i{bmgeJ~ZCCZ=%%F3AwVzfw~e!PjJ^p^Qk1VlTBrd*K}nxW;kUYwD8jb>i3fU zOp*olP$h{~xN^Uai}dKID-BKl7Zj2m=2JVJ0E6pYl1sh6YcJ1f%Mq<`%a1iEv?^;S zLU-C}nIx(AqZx0|_QTK@LeJ(ju2%wJbpWD%%#=>zb75~|SKUqCx!g2eR5hPxUYP;7 z_MLxELjWe^hnM@O(?g$zYt_5#Bp1S=+%g1x>cppYVTgB&1O4?3 zplNVh?94MfECYW3kTDS2J1@w6)k)Eux$*t+pB($1xZ~!M9zqZmgygxUJ9%^5zL%Lc z4;J^+lgi(pWNGUVxm+v@MOe4zXsV*!5%c1RQtsmuzC6~s%Py){@a+9=>=v-Pe{Da- zmbh<#{4r==rn_NvEO~o87>hS`-!mM#eOo2}eB9@Yzl_zA)DMKdyTIH5Na%g@j4$=8 zSi>JF$XGj~Kh;}A<6H~utA6oF_uQ{H@_O%98zxt7u78BY4@XDIW514#CqB;E_+qt z)^(7*wz*}p08hvSZ7kCL2g-Ycr7jn@`n0%g0M7KKh?vgR{RQ8rRJP zLFR{aeCjV@%_F&Q`18wS8=Bo?5xTT=mrFH!%)s>D4??L&aTXfri+b%>iaz8IdI91OJ zF!pWLr`_W%Cm8+Hul3q@HR)koo81-Z;)PwXAf#@j1cd)1jL-O`eU-a7BtG;JgLj`? z?3WWmm8;F!CY*=JHs&tsDs7tpv1#1nTP4!=lWRY@I!XRe>IA7IP}uRpyL=^Ohzq~_ zz(wt+Ykdn2yO{cyI4W3>Wm4)5HQ~>3v)o+aG`QHZ2QproqQCl>a}%}OhTC(XI!=38 z3^#AU&?)bIMm!%+*Yd=Hgwu^<$GGR?Avip)Wgk8EGA4xYr;!iY<8@Z+Xe7E=Y25Hr2?l@NIX7%<9fS)!;8K%1F>;pZ z!I^%F0W5sgg8_m;xiT(AvN(sDbJjj}&B<@-dNalCZKC=h9YAgxw@P` zV4qOy4WTPA0ap&3ym#|OC|(cNH1v-Nu#lZW+W^;}?AtIz)Z%@Vqol_f{($pRol4u~ z12IL=Fn6eY8tiE^Y5^%g-$7T%&66sGnDsHMTDm=`f8*M|DGVk|@7wW`S=4d~#uKx! zvv#z$qaX1f`}m69s#yC>djK0{v!w~Gh(X4p`sngpfXZGDGJKxEOo@Vx5})fPrHpNZK=E+O6Q z@|2E|yxvS^J+6GJL7bJZdClI1X|<%ucM9{F4IzYPK1D05k~T2!YFYkN`onH3!fk^% zVj6mV*8U*wFP^8~3jTP3bz9G{#cez~61|?ZyG^!(WsQYFlAPAqQ)vz)!#K1}^`T(|a82U!+bM-Ge=#5XSB_4V{IdrAA`y>eK+ zCzb6D4NrD~_JOitj*rnIi&ivuv}25&y8P@&R?->_my#&K;8T?s-j3JN@jEE1LHe|2 zuN5d?q|YlGz4$#Ms#utODP1G53P@sdVYuNcj(6)}ac>qWsGWxQ_ylRRJAm+UL+9LD z-UKGS)c|u!Iv(=-Y1mC~x*W<~fk$Kz#4);%r|}z7~u! z_YlvRPlt<9Up{I7rmIk}SuUP5`#zrH_i|G_!E7Gp5pS4+X9}tohFyD$Vr~@44n61@ z1%Dl;>7qE>n0lC5AVv`Yz}n#JFKg8pADt48&qugTUghJqK=R@rgW_}JH_zH?xJ`Gv zE+D293H<4xfOv^t@p`Y!rl1}K7!Uj#&>GbUVtdsfx)le#gkjfUM-R3gWU3< z!K~!Aj>p~Q71sj2Tn1`5$pcU8X5Tz4_cC>Xu(O1HKv6GB5EpDU5B2y^wXb~4;amwNlUBBg>TwuC$=@veK-8Y#2`*PNM$~LZ`+tM+B zKvUHX7`V#~d2dsUIVcQ|ICTb)tEUIDT%|?AN57k`oL;$`bJ;-wH=Tw zQ-$VPg%unCMh1M|^i8(A*gzb>Ab8cTN)*o)^ zU87jKidW)Pi}o%ik>atc%3Mm2jXi6z$?j|a2-PF9t;gW)X#n!6Za5xK&ris?Ug;h% zz1(C}d`EV-(qQ02`|5sC>`sGK2h&YF+!7+uF1I_i+|avzO}yA_vCVGTyIZ~v%YmJS z<^vvXc7h)x-U1BFG+$nei9VENX0o2hKb|{jTbY0=OYpD_?#lA2k#98b7IM1rPyBjA z-l7r1hc!u8AG?5H3x8PHfQ^0VI!DR1uB?+CfTVnU1qaH>K-YM-I&s~PYf&5z`aL|W z@7q>)ATS+;uU0c8cv%G*JbjB?uBH3V4ER$Rcr~mW?~zZzyGk)6{%G|Kv!ekstoe=%;hoXYBT{et5U4%`TlDmrInzjRLJJNwPNAKtd)Gh?jHh!a(|F_Xflf zd~W?IKex|@eI0ZTaJ?-NzQs3~`v?u2>uR~XYMQcRYt`7O&ieQvJ6(dH*zKSYPoLm| z3qRE4bsDjkOA?`2tMZ!enmj_gzldACHAU3K?dC<=Pd|E(4oq;jFYjD2RNkGdn}13B zaKr@lcozNF`?8qg^b@Vg1?MkvDWWhN-_}IzKNr{gtckHZqyp7E+_8=~pFK^k5UCE! z*xR&|cU=4LZ4Xig6`sPWUZqQMI!0BMoZm#$fD>}-1K3v>)s?H8y@w;chiV}dVk%2^ zbvS3id2a#3zwus6VyQ6M#Q-CIWgs-GX~uzZP8PY)RUT z4<5=;$)X?i*?3#@wq^Fn4kGiZs%OA`qQ?d5OcTu>UzaRwdxg3Jv4fclJZ32e&E+Zz zHkNAZ4BZ4e)!t6!W5@RB6mOK9 z^u3x^8Vf%@*0zzQ!RA4C{A{6$HNigmTV0@yZ1wkt-D`xgul>alDs;S1FZso^uXJLay{3Vq0n{b*tGIn>O~ zzD%g=b_}W-AO`HC=-wf-aP!t-Z7x?+ZXenqWdVaz7!Mh3>_0YTlv$lKywsPoYFUbT z06|e3oxWxPpuN?fcwqy#VLdR>yJr5m&KL+>D3m8~cDQ`&Mc!@(X?$IY2^T{(ih*K4zU`9VY`l=vjCf+W6Ky1Bsy zHXrw1ps3J$c)sxeTE=*ijaR9SOY7xaH*U)wUNF&v-SN_<4vaVzedI^?hB_()JC<;7 zO>Ju7bw@x_;^g%r#c5-2`n$Voy!sMU5e;d+HXh~JycF&F zlPm5vfkl_othS%qE5fADf<66S3;`IRx7*cLW3$z9)33C~W%_rsd^giW+n1}9y&b9( zpt);qZt_IPzgZvO~mH#oQbDupS&PBeDE=NLSb4h1* zym(u7^x6zDbm^C&dSyfT3_Jd=ik50%oW^XakW1NQFWB(P+nLbYeUhqig;`!;))BE< zoOe$q*zLt9dS}k@7Pgmzu!L~LgVirW5iQB))tCUtj)b^fgEKf*;3Mb)M3VY5fQ284 zYJ%#?yD#=JEz;uv4NQ7z5X$=sg}x8qJ=*I{Y6Hrn5kN^+JI4y(nMu3ubo1?Pp<{Qy z-4;GcXNERjG-Z?eBv=`kNL;iai<^~A7LTk@d;wXZXp54kSNq1f6BF*-L;G&05cyGT z)w^9Cpvn&yE&nNX6t9X~`2CzgwSvQ<2x%5+3q4g3&QD5VJ<{D>t`;DT1DCmN z4#WL;R<=R7H!dPoP_MEe(`mD;g_XUh?Z=_Eyy+2@Yru2NF^|z~m7xU-2ey-uRx*IM zNa>4Bw|ib$2>4v#pM?jXtsS}+yQYZIpxcGvk|L*mYo-wOfBOxJ$G1cH@5`EsOB2En zk<|pPo;K66J-rC_09mUw`&r(63G>zuZNHZ+b`dQ=%Zh>XfH;!#sj<;+(YbSBps}?9 zHDIDC6}ahkdQW%a*u<;YVbA^z?Yt1zU2*kV_NXZk6fuN5#LUmB1@6INXN+rk|M2%J{q#4%5hhgw!e+#Vz+qs8)+kcowIqQ^Vl5dZ(Wv&4!P3VKP z48`|qY*!FnTwT#~yfei{5e?%Q>GfoU7_)A~c4&w4vRtT^_+CP>mpuUrUHIAkaeAb0 z*NcxQR(?bikJq|8x7~ds zSWn>y&BiFiUCV`-XplZ z*6l_JUh4ut;7egP3r8QykK74BF5s(P%N zhn-g$_$9ECf2?c^`~ToQe5923qEp{&PpdZrWZvx%U)2Lq1E<+V%-dX@&rS7EA>VY3 zn2SQm%KiW=M(PkIrw6>wm&}^@0M3|f+$BW5+m#%MF~9x<@#FE{^6c4q63*^ZFzo#m z(_ygC&x+4IhjncFCG7akf(D{W#3op9uD&(OQts&8LcDzn;&>tT_gm*DW6Op?V*+TX zO5JO*qg|}^-AQro-sK(LpRY-@Ec0`S9eJWgXR3mi54jh88EFbpPegNaHI>JsT`M>d>3zVMCwKp3PeCPS zjk;lbxT-b*e<{*SVI6t@4r-0IsNSnn2PW*nCg@kKRv_5{Izj<6w==s}c&yxm$3kKZ z98JYXvQI+i1j;A`;L-;&Jn1len9iELhVfbcC=XV7SttGaWNxb97(#X+2Xp?t0S%%W z1rU(NOpK+q+!L#+)%HGFIx{;qHaZJL3g-5<5M(UY2YECuGF1>jG;zpeE&z^dhTVJewLQM_`c!xrAefH|!rYW( z#ZPF3s^_A6GVf6BSG%=2#!PG0t8st^Lts2p>v;F}4TLB+=>c+ry!;%cGAi)hmqWL{ z((O}QY+Tc$kIClzJiJ5)VyOH0vH2+3`^p2cqFTWxp6WwP9em9_$NDRhVmf~ici#jL z!bm;V92a{;UO8#aO+xS|SvBhOf@NN8M?v)daSDt(lKbs~hcN!$%r6bdCIFUtn@#PV z&nv2~yq?hOl@m+(6;;EsW;5BfE&=o2mLV~EZwNKRvwU0D5YyNwaMl=Zq&SPwjH=AyR6N)&*Pd{+L23c`uyShrr*H{Y~gB#jpkS_yN@V5I_SsSfNR>es1$v^Ctxc zVyxOk4G7q8M+DQ_emqd12z%n-a|G@X{G(>Qb9o?yx%Iv0AL}I4R@c_|A$%2YPABmI zB3waX6HUzS)+O5?+&ScdNT2B7-e* zg$t88>odknElwwB=ZsuHT~Bfp-)fNZnJ!8-x(*A8&BsTs>+gaT6jKIXd#?G?*+=-=LF8ju5)fc_t>>~knYv6={0d+ZufLIXf~*f z;nw92ZrSdWqjS!8u%39g>A}99uR-2iPs%bRAF;9zE^oPxc@j#FTtoo!fw|@~vb*5~ zXb!1A8N!i{$snFfzf>=FL0s00I*ZW)T!Uo>Wmxp*aof~V;>y)QS#Qs&6E@(snQF$6 zFR@n(eqnt4_?X_gdVuCZjo(eEugm-PJZK*xO5e>X#=IEN?6h$U#ZD?-{TvBW|L~ue z%)&(W*=*z0dhlx98H`4?L%dsEZLWO-Q9EIUA?(er1&}nG|2qY$dgt2hIyg1 z$nk=JjorNO!a5OrtJw6ADc(KqeP8YjITPLO(m5?KDWsPh#f>Y5b(5PX5IDhVh%LnN z)002h8S>Y>0-c5nwXSwY@TDR#1|U&rr|7tNUgER29kl@%=I?*OK^}@kS z^x55rBlO}n%Bma9Z7-#J_H_6#4zob_IjA;k`)Dbf`pT%sd)IFc(`ztbR{sino;s>q z7*jv&%A+7UwKA^I%(NxsQPEgR9q)UWv!6y&)5rVu4+O8}fifc|#gin;Bl{)th* zP5FR#cp1lho$j=T2zR% z=A3B4kO!qhwpsLOwt{yq=+AZos^}^vAsPREZCBj$dK27^ zl|SrZ^z;WzznAImX1u#wbh{|io?v4d2w34zaeymbx#MDMZB77Pea^+YZ5I1odXOi` zD-N{162KXI?}H4r$Ps3=``4jgBv#5=D&@ZXu#UtseI(EZIfM*U)E1sFtg1DHL)VxM zLD9|}05V9q1-gUY?y}%yMva+Z_1Y3vJJev;_y^9@ZzOFT9ZEP8aYo&qr_^{nmudHr zt_H+Zf<5Q)S8Nq2j Bt#ig1xt&h*M8leJ_1hU*&IE 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 pGuBcpz@Q$&h39b6YrV>^ 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%0AKy$DpcN@+E2R| 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ൿZX~BHs=qz^8m;`{iGY}Ay2-!bFcx_ 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

GQT4;n1Ev{Jb@0DO^TZ?F!`0`L< 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

lkJK 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�=W>wb_STp|dhBx1r<%^m8Bma&0G2{b^jDDxFD%IPx9>0yvN zM4wxjHsGXlsjkmArWyTXIp60#lamh9?>aqq_(E$|w1zbzFSl4iWFg1R0MOF7mPrl; zUy|QRts;IxTbb#s_<8jU5E@SMbdQ4xs0TJee94arj|Q?KNB`8#D?6lP867X* zQcr5`TjW~=7gDcUMt<#hcnEjsKqdpjnMCxF2-aImB0aDD6fbsH%9tt5ahCh=qp|zb z&#QGU#drPNwKex8=PPBHcqTkc->r4(^bh$1ScX$$b<5iR!`i?7tM$0MdBR`lzTj~0 zj!?o8GPw1|a24SaSMx}B>9l1o9EiQD zJ-!CJqsRPwY%L=pTJPvplhePwyhcsA=aCWl^vQI(S}BmYFa5@1d;AiQi(~a|iLsq8|p1 zU)&BQf5DEM$f}{$BX&{zveRy&uS1PZG|U5%Ngm~TYX)t2^z1GEicHq< zgZ%+K3e64f!ul(lk^g93O6Y8Mk!XAreTqYLD1F}?YYzkP2<8qKC6EA3jmodVQ_%O} zCS^Z(PjqXEGvz*|L zj-exaD;hcs4rOn@Z^H20Ht27u<^h(Xb%!$$X1$V_bd8P2+o6&9rT^_*Wwec~L8$ZMr$ zC^<$5??$*^^0R0&t2wpR!1nu?N3HXvKIdsz$mdGZaZVkFd_!uRsq`7a)u(TTJ=}s{ zneFuqY^{51tsVxoeX9oxT5v}0=xqNwftx*9&}cBDcckv30dW8aD%oS|u>tY*NY4Mg zHFB`&@x31utXajsK$reiwPx^bp)QJa!teR1)Ur<;D(&N*(Nz3nW*j+*&f_Yc0-7He z{tudO70>9b!H*tN=RjRc_gW`YZ*=O*PHphWSs$C8K!bwT9DFgaPkNA`14Yy{(AzD8 zY>l=Z_ZLl!nAeROfAhMo2|s_GdY|U%uHzkrJ{zxr;qI9K+aO+Ps1@_&Ab6Wlu5=%U zl?m=6IbGXie5=iSVGwB@MU;p-tKfImKfaa#*z|MuLik7?8nB#k@w@2Z*BA}RHN;4? zm80{N8&&mBRqLd2N7lC>KGvGef<@vFF8nrPyDJ?+eQzo|7*_dO#g(Y^p5=Y?&$(#Y zNF7bzF>2^*sly8Q!6<(@aas^t#34FfDA>_60lfjt?y+Cy=$Xm6gO``>mV*%>nB1E@ zKC)-WFqB-)^M}@UxjZm&sqj`_kRtv9k1A_1fu?uVvv*4;%GTJ|l$O}kcH5i9r1lw2 zxRj!AkH7QWcGMhuoBAU-;o~r@FM4HqdA++vD{-4Ty^vb``Ss@Ggn1#qNGNZ;;`MQo z=C6a4MuRo(>RtOyB|QC}<}d9uPu;%i_2;Zf&)~_oNbV=I+K3ZO#cWa!$P}9o#}DnF z4=A?qN#JOH;|pjuLX+T8&F^knUiP5g>1SoU`EnW_+s8cv#&gEyjULA`qneoQjb1HA zGTpp#?PUME(l@!8iH^vf=(ARN_@BJHOP%d9WA10J$*C@@X8~P$&8vEbu7RAigns(e z_0JtLe{LwW8_L{epkJFOpY)x#aJCt@+tfbr5!0w1ns%8yQ`Qbu84lZJ@q&sTf%0ca zoR3N`#r%v~shanDr4MJ+Z8;$`lty#ueKoA+=j))+ZN&M0+l>_Y`#x>Amo{+{WoU*j zH~d?aKzbN1Vw3&$@RFl~s9wD7((}eGQq_7k9BG?V>6$R7kG?gD-?W~IV0bz=kY3UQ zmCoq&Ux}+0%!mi8t@r6U;kVXyDgSkvwbz}wCANZ)`nXV}pMhYg_Nvk?!R8g}wf5i{ zM{+!g>%&y^0z^+rYg7xL?5wGGwI|F+xvB~M=q#M;rTm=q9-rr-YW+U3gL;0b^)tgj zf~cy-1x^J8VlOos;#zoRs*Xe<{X0?mLJ!j|^O@Gz8e({C8@(OW24o1!i<|A-g8?dA!~~ z`vKbI2zGQtqatIj3N@advv|&(KDcBa^{7L^T3e@6H6EtVF8#L8K_}nT618y4#?!1w zZX5dSvs!~E&1~t zn97b;^Zie8@{bZa-p<73)>L%DC02i4WIvbGnQUW`qK30 zmYLUdIO@3R$1nWwQz|T{(x(;+bRf{|c*~93d1e)j z-BYDW9 zn5PwH&a9OBJ7p>E?O5`z4{&ikFG~^Io^p{fb-X+lt$+u~bCYj$d3DjvgO7MiF!Y>4Gc{t^T;8Nd8=5=un+0QDc=A57P6s#0J4{exZM99$4+<1GKCYc{K9W>x-$_n}T+ zX^&nwr}xa55v?tHJp0C|cxrS0tPnonPPKbmW~!uUp{jnJ?+=(;`ul65vE#*V@a;#EX8!9K!h@E+hC6;Q`wL(2?|v_L zYH8ogdzbMzxbJ^6C3l1fi{sG5A$gMF)sCq(4t$~xy~l!2jKNd%Sts5AR@d}ctP%vogWEO-Y)g|ux~ zyAF^5=Aduysk@3v!TU(*o(&$n#0O_Fi(D4WTa9F9ufPY96|{mZ*NbKFBnx6`)q=eP z=pa}DOQEdzE78hBz4eaRCA~uzk7dFWULDz&J%SZ85Pw3R5O8od{Lav=0MGw~=pkX; z{+2WKoBj2>#_yo7_7B(*`Ag68OSj^a^9g*_?>cthyvC)+7r|y1ZuHb%^YqR&u;*2? zD+r{yqdE>(fBb&ggv)Kg1KT38s}8sfi5;yx*;=QxFK0Hr&Y+b5={mv@<7^#%<8Uvj zy~6*xH05b%Z7XjFT-yaUoDuYrEp+F}R;(_eCmRQFv-oa&70M;=`i`(sthInh`tThv z4CpUkd1l6OdH04q!9mCCvu`JSvOhRW`2At8V~vfC1Ll1g7dXxkPZ)S$A;4T0JoO^+ zG@`9(V>N>YiV*M$D} z^l9Hjz)V1}f54`J^9yS?wnX5sMgJk$ek4Z^HW~Kb8Y~Xzg>Kpj;=WiDb&hZrGd6NX z(f=-+IdUDL+ZEf;V6_pe`tmDdpAxh>*aZjQ?AO?X-}$3UF!;#_om!%eO8VFv{MNBF z0wx1xA==j(c=4g}3enP2$525ZA7MulK3;bTYM^D#VXjw4(+j(YrZmD8pcR6j$kEud zpV2P-9LTW^cwlZx-3)Q2Is9b66_LDj*lXW?UfUD97@TwDnCNMJ*>9SF&=2GebIDh& zXfv^Dao@A|F% zhW-5D6Z+A3{^n@?><_+uMnfO_HAi|Aw2_JR5et2O(f4CzTO)r5{U67$DF~)&uI}~= z!i9y{k?xD!@8xW|%~k_m@?!On>UeXEVbkO9GJe)8imR9B7&4W_7+LNI9QS7qBN#`_ zNx#{XzceI&=|c>-XW}dW<0dysL4FtnPc(I|WE3G6a-lL1I{NOCXQ61_qD$oENmChITtb+d>xg4Y8NN zYWEV8oQB3?4E|J;r?12pg%|*HPjW3^N~1?=fdKBNq)8Cs1BS1;0;6ynw3M=V6VQ1exeG{|GDcn?{Jj7xlKcG-KNKuu7NF=X{$gy`@w8{Idsou>#d-AS=Uq17Fng!`&)u-Tw!D z?=ru@pM^L$bfazm4S)C$*C4>cfp(s>zjz|;pDhV1k?j}lUbn32^rz~g%tCxuqE8>`4etE|r$m4t1My#(pk z;Mj}xg$e#}a^3`%1LGPZG-og+{oB9gnT{hJQ->}3gid>iIXqO~_8GWZA3{HHYe)g| zOh4am14A0sgguaPV+Pv8o}oZ%Lvc7-br?%d5m-ka2^_;K1-eCwLk}DV#2;FAWw%RYio&p(1^}8_H#OEAM8M3 zmpUYW>?`gy%-0zA-j83yhCk}p_n&fg;sX2QFMq~FBr&WAe1t>Ujzi21+5soIg&jlu zCij?w-<|NC6J2Qdjiv$oq!{}cpzx)kcE0j0iO&dJW8gFV%D=V>Xi%eW2o93O#DAN6 zufXKBh&i<~xClo1Nh1Lu@V>^!5wl^T;{}`}I8@9HhJUMLIsCccd36|qi4~{^J7S2fi&!P;taIeB{a(fcVo7O$+7RL~RD#DIuEp%xmxteBxG^|E8F`zSd%J%|d7XUtgnBcm{X} zz-2^Y0)*SR)$#$u+k&r!no=JPJa9z8Pc2;7JM}`Gmf)vT5d0z0juM+C_ffAD$OsE&ZSNJVEQwUnurM#v=C6Qb89a zFC3uB9rh3Z@;*QRkI10_UlxFfo=QD1=ODKPvH-s8)yO4}6&*}3fA?MpU4Y{m+D`+& z-If{?TsOG=bo4ij%OAV(lYchkQ+)45h8W#o^M2z7I?Q*_dhJGsLMe0mUzu zU7Y!(P9p*Nqr?{g+@U_+cP?!kz-)s5rN%t0iL&V45j@(g<+f6m;FoZpk96~KM9wkkhidBX;0T~uoFjNWuFVeNA`!92l2OgM^L&WcTw9+B)CzD zcFrf}v9xcn(Lel@sOJEFB;>d(AK&@BA78^Se8^WGJjU;@KJk+e`hz2cAFcgW9^P3W zLO4xI?Axn3;V=g?rFcdvDE5yzc)&Y=Q(>%Q*{z-D*5oe%IoPd}Y`s9_`JAV=HO1gBD zEM1^yMuF3Ah)y(fGEq@V(^k`lH=3`jhz_BdO**HcD)TREDHS_}DV<)+?~KfOTu&4Lf3(S@;$oCU&%zT?45=0o5N zSii;ugdBPs8Un-%_)cor*+2F$=E~nRNIv#2;vB!*$zeqJ3%5hNK&Op|4SXcJ3W!xN zb)VRCSJ-nPWF*3%8Wpz$tA?0r1GFU5le{@{{Mo1SFsZ)nVvwO>UX%vS6XemtH}{P* zLs`V%ZA*mhz%hFQF#NJ;V(12En?>I;n`LpbVVgrgLqC4BVWvK?{KU@yeCT#TGlS?_dcpriC93u`&so3(%i{ zZAzUG?}YLU_#WWrBJm>qO!^x#CBRM*{PKf?dynKjkay&f-U9o3@QGt@GQ?}a9ZaE) zd1&RH;2&Qwwss*}Fa3ax7$lAv_?@udg5L>vQ|vdPmy7r)slQ)Z-QQ#XYt0zAyuf4s z$#n)V3HYBsJ|L6_P%LojeR$-+0f&+fd-lUVWQsop3dasrQx&HQh{brN=&Xte8fO+wgJO3L$WLZoi zA@eb-#ocJ1K{3`#5U~dp9{lvcfkY~Qu5IvEs4B0hB6B=QE07CY6K6%23c*PT($(m} zjRc!(=Id$5APv35#>D1wJvfK_yH?K{WQf2Rv7N-!8p}B0Vv~2P%>hn-H!F1N*+%GC zJbc=S#kAmR`}oVh^1xw-Asis$-LO_l@P&~17V|#lclk2RuQ7a5@a4S7I+Fv}L%6E1 z@MPNTs9zF%*dOjk7~A-d4GLV!poc%KA;4vWlf#B_1lR!L?ZdsHcSzPp=vH9?C4_;AC5F7I(MxJ z8v;B=XJ9pvgEh6Di`Q-p#cQ=3j^S?y#S8pdsFFtuyihDp*X82n^XL5#cLDF6$t*#u z4L)P6v*I@n;}`E!`a6e{$v~VZfEWZZrZsTuee%RH3OCD(MD(bL2Jo;i!2WRHq9eSO zAAdLafC%<^IqV_7Fa+om&}jU|6N0N3I(^`9Xl+nafqQbxA*UO0U%5CT?3Uakdz+u_YIcNxv%E{_rAplqic?INxgJQhFe7{Vk%E__U28IiCT~F}hJc#Z9 zft{h;2a0OMgRSEIk#7PF7vYHkRuDO**f)Oj^`yVBkc2B0;|z1f563mpZ5}=Y!w1Z_ zW@BHFBPCRzZZW@WHE^;6a~vBvz!>~%g`69L-y{BtK_?bijg>A_?Fhw?Yt-{wyP-~AuzZZjGaf&Aa=oMOGd;!(T5fd7Lu zBk+GiL~Gc~e)%BafB4wzb7%@E5HKbC9Lz+Y`QC)z1Ka8ZxRzJgUZ zhw%K5z5koe)xcc~NEVsnub7`KIC@vlqg{*hVU7n533)rf2Vy@;@S(z!;0cj>_57?y z1k?Am7LmNkkKa6d0ci)2*2mjC-;LrjQf%KepoMv zJ@b`2O2)6{tX{YWaMi~hFeQ*bgk5C-M}vC-{l$bQMb z=Qlnza3%lZjr;gKB-A1F#Fw;T(5Zag^6Xgw5gqcM1-n{p1N;+xkx{s;cgf7Bxy))4T_SVA@hKgiwL0JjWW zjkI>oWtPE3ur)Sea+;C3F@zsa9P57mn0g`knys zWl*Otx5UOKd-&n`#K-n~oSyjUke~e%+k7KG=qtX@!gkct*$V4E@%ICI{OtqTc{adD z%QgwXmBn957=3Z~I!lSL70_1*_p&XGPVwB<-!!z#u5{e)R%e048FFa4bo95qM71p+ z+UAw$ZlMmpIFVWbI{7|)7aweaO?dTwu%Tm=p96=~gm7$p;KMpNXQ$qLL zFXMy*uHqmQJw|jv8{EqzBn|vd>C$Ixl!+gPFJ7=D-6@W{S?)MYX=r$?827Qx;|0*y8$RDwfquXnK z8)8_9VJvqZ;@rsf4qE}q69UMBsZpzj(BUEe36f7yeDO&9+JAgu?GXJ-VE{@puK(Bs zDrD@Cn~soL4qha(_8W+q+?F!9h`^Owg~$g(ju&{62`?0t$9!%f{*M^jCw|9WN&F7^ zHRmrLi0`@JFZV(}+_SOtODpbML-3nN{2LP$%Z;6ly^Y$J;Ef6N+qpI0@m-ap5bSpw z#5XcR^F#wkY`EO@e1PxIZi85UsM{p4ul@u0C{2LQi*G!XjhsA8w_3v&i%sxkWd?iN z)bp8oxZX$M{PF~!hpFBZPV4g-7;FzDZ&Rvwaol05CF6I>Kt9_HhJG)6aUOi~zp@`* z*-txv-tqJOKj3t}a__%+Fn@8eg8>++y)-Bj1+0U}JAsrmG`OK@9O|BC0Hv2e^A@?W zW8Vc^KJbU|J2t&n#HES7-CH@&4Hw*TWU{1N%$LxWAbNPQ=WHclJ9%ag-{e{quZ`AS zrDLvJG59MLO}DmN@be96=^Du!kFbX!xHX6_5eLyRl;z92w0X7SZ`&(o>^lJzz z!dW4v;03XS)4n-4sXZGsO1k>Fb{$2j9vw72lx^AKp7r($i7Z=TD(KK-F@`R95?9-8 zc=lQPYKS@Vf0=Ge`0c-VKKE$X<>N%wNkG>L27uHdBmSPl`Gev5r5lU2=nMBpeAZui zgwQWU-YU4t!27b?udxrGkE7T=@amyJ-l;A)bei~Z05}u>3~q(v6}tIXGJf@E(P_}i zxAE?f#Ar7$oCdCVsA$B;9~Fs7fU8AG-PNpj+|rkql$!hg*D% z?*a97ASf6-vC$GX0^`caV8R@Zxf{7CsiZ;I-rBxt1=@la4{eJ4pDFUm;l9B7mufWH z>uO<6-fpedZozTYdM1ysAUGTlKjbPi4X!%?dz}*6P(9hx5ni~~*X;IfJGH(kPC9ZU z>M(8~_F2Dp__qfQ!Bktz=$Rx@3<1R}be>JO+;YIw;y(eQzBp7L|BOh!Z!Lt)AN#0^Fp95*U!aRXEQv<9WY&KGkW*day z$w3IYxhiNY{>2)6@__Dq5GZkZ$Xei}_ceIYHE<9+7vM-Wqh4q3xPcP~p|}f|EFotE z(CP;t%@20;7q2_{JNPF)*k4ye&No?m!J$q1Dou1NpZ)DZu~ zj_Gs-xl28O$W9LyniAzzp$S`J`n<}SUZrDNw}wAUvQ{MlB=7;s0D5vyak8_ z5ngljGm`5idqxcDSHitY_|Q7cH$-oVXrkKIcGJ=6X6zukj(!d0bqBPm$h*dQ^aNqK zL4GySF$HIxL~qDF;O3X8$hH6$aH79BW#4j`Ke^CGEr@-ZiBxn4K!zk7WFEgn}qB#YBN)-4- z1G#8mn%HQH=Mol;e1iEAwwOQU36MBCV#>fu zeQ}2p{*{kL&T7;hd}!5RYbichf@!E7UVhElC#^~`xU^H`*gy{noWGy@8dG3@w!-s@@`S8AQ9>YTg9kUPaXTUHFw)_V(NcuH+)_!td zNvwM4(_ic6U+o6~XhC=me)(-mm&B0|pYL-^d{*F+1y|SCI}G~(VS??dkcNPGJ2V8W zPs$3;a7Xq@XgyDJ5>F&4&XI^QpVnPFM@Uo!Rw((GL6}@I`?e>AW5CBEehEL(d0% zG(?kV$cr4x^|rrxF~0E_zj!e|c-W8a*2}YRJ>$U9XEaIPRQflX*>av6dmu8_h6_r+W`a28JBw`l(^*OLV7 z;op4Mzs>ha#s~O`m(W-T&kx~SgP--==l#8}`^nEA^1g=o{gapSOKbFt3&@2Z?swjr z7Hnc*fQ6=*2$5$_$Y5)N*Me^yBkOC}k%1zV;P8l1KJYAHL>eGy`Nn$l$Z_?-w_;e( zsOF&=a>o`5`9T=h{~mu0af^NPoqY52@G0}n&jX+JAGlb0EyKHfVj=LZ{@|W|@ezIR zv3~X4_rT#|qYZw_E4;?YMZ|b$Hlr5USBUuk4StvAB3^Ug_Q4$sSQPBC=n(-JUfmJFQk zH{R^ude6VlWrX$zXZxS(%dm7z|(mfulbw&XgvIS;EhQS#_hAdkRTg$^ub^7;cNNCLWi7U zL>-8K;8&bA(LVf(gMXL!4Uk9p$%XmO4gP4Bf3#c&Kj;u^cLvSGLHCyU2x;N7FC(17 z1IHnr55v_Zm?TLzIxoO{2!HeZLEXT&L->Gr?~Z&9=!!KvUt zli1~FKmWrO1xGdUU6Hw$U_Y_n7%-FV*0cTw{`0b^f$MQdy!ZI9!F_N4;3xkH9u!6l z@SxcZxEZqE5B>;{OMJi2ZQ!>W^0q&E7>Kw1nh*XpHWY;T-#GzBipAXI1=N4_h+&6o z;5P!9$&=cH7gMX^1RU`g?=|%L&O6R~Kw$g0c>KIm1Fqo){ulTJ^Jad4fh5x$vlkHT zf}YxX!lWX255X_KFrj2iaxAHs`Npqd$$e9Xt&hI^rX+vh%V+-KL>>Aw@@Rdm!F*ed zKqLk}7x)Nmg`O6?V z_2-{E^df?nl1`9mM+_5s-(GBXOSr6Edo^D!h;Y8$@*;=1$yp%90&5=9J5Mxtn!_jm z09Q~P!9KFUL6S@a!_w$w&I>-~f%bY4pij7tpN>E=)*itr!24HmJdMRNST|^DaYAoi z4p_Mi#<3HHfz9t89b+u@%(mfy&6REM01+bqV!STdf;k}G-T3`j&Rf6ak5_rN+*3}% zD>|Z+e4!~(eAqcRUwLsy-+9hdAvo=mexh#Z^D&vWYTia=!j7Qta5?d#Or0YGLJ%!& zQztSI5&%{tuU@?)6DfVA)=XoA+)v#=x9MWz?o+*#%1SsY`twvSU>EB2vO2nvp>tNX zNaL%aaCO<|O9RVB<5qK{@NTd4VHu0O3Ei$R74IMas&*6ieQ&Oqhvkkb^UOWdp0&-F z^)k}Y%>u*KTa?jvrGE0Z4%Q@i*V*R1lEFlb7{DsX$BY=Tt2&=d#8a`NxoNbGk`?DM zQkK+f>ok+M#dCep=23R**S*BL+t+Fh5avegm5m;A{ri2}*r&zuJvncV!D7Chtv2^| zG~cqL%{!+~;wamUWO%jtu??!H5iOhc@gX?5QP@x9e0VF*W@h5t+j@=zKHD5*Xy=7u z<%iU13w52JuMX3xcRF6X@)dM}x$Ev7J%ca{)r>w!nUy2N&NaV zsK~hboEvx?hJPNx2@bd5?M)&MP+F7su8Ml*R~( zBDa+lJX`Y1`>E6%Ge=|@10)nM^Pdwkm0 zBhS;JANzHDBK4uf8}MR)LpR3zZB42t&jZ2`_wUK`vDKlMkTk;a(Ej_O|8Qszcx=D> zi&{fx2k(#m2mMlVf5P(xB{Sd}h(8zai}sn2@~m3m+C=PSNZu*RV}9yi1d`+T{!JiI zprjzC8v50zeIT+q*lT$Hul|n=O7usK@U{^C7Tn)OB_rP6F0p1|T-gKv5_$d;u#`kBu5AQS7-%t6VtAX<*HTyFk>^|3jp7(t$LC3pYF39sYpZ@rd_y0Z~ z+6VRZ59L{9pZ9^&=zIQxPi(*^497$J!z7088T!K=ygk?#qJKbw6vuM>Deq7}A*pX9 zL*O{F5oJVu!q%C=g+}gw_`Kg=)CUjoW3r#dcm_@JFu#I&_eqXXpQoik0|$rxk;4zy zh9&AlwekMsc)i3ifO9t9k1t7mlkw4h>JQ@_;1z-f5fj2IDc7n^F`yiTUOe$%{P`bo z?g-06OO$g4O|UdJ2zLVRV}Mtl3?d-RMUqePhhLHb=r`ZSn+D8!K6Ohz+Kk{u(OhfGHB%cGO; zTYfYk0$ZV80_@t@!h|H-bTPopD{eW9k*vR!cr4FTNbDi*Yl2UV7K`ONSk4-;ih*38 zTjDidU*SuNkp%%kCZMWaMEivRXfAQD*&N9O*h1GR0TJj}3-jcfDmU#&C#|bm+SyAn zXNX!1?odH9wZwv^trkJAFNLjNXlavfpjfWuR_eIWZqMly3g(Gcdg-CpS*^Cxq&L>u z6{#n#QESlV?FI9ty`&7fs+q=0MbrB;{YV#WzklhaRUZ4xRUdKHD7|n-#@!m!FGUSa z1u1C`_?QPTFkR2;h_?J;5 zlWH#`ielen3p=4$lWH!boSJQ^>^0J;X$JWjE~c{S;!aJT)WKZTmv=)!fO|&03u?XP znAba@z$lfj1%*-BI2!RYM!m%F6xUO3d&$ltNG!fC$zmi;C+~~&;FM{*jkpEdO`n%& zwwlkU_bPg>=F{nYAKe%8=k)fDZj1SKdds5gV!oeVw^9C>JJXtq(#2e#R#kLf%-+*- zAMF>j^R&1`yYp-{&0mqVVqVku9tr2^dwQOpz4ODK(66JrdWe%QJKR>c%f!8e+9Ho8 z&eR7)ywNrT@7(|Y@ArQ&tW2Pymhvueb~%_eVdO1mjte0~Z+s0JfLR(L2?HgF(_$AO z54s4B@GoJQ!CRLF;7rku2tMM!-LE7tydu1@itTjLF5Mms*?egN;b;OS0lno%1LH?i z;A!gY9b`+z1`&3m=4;<2L52i;;{wVEd4L;!F@8}g+`DI zm1LhH1q*pdJIq=qTn|_r?vWstMUyhXD-H6Va98%o8y$X!vPe+W6Aczoz;T>uu9Y-A zXwCcYYxAQ9=X*muK1;jw@6b4~$D#u^*amWwK6z%p3%%kIkl!lIHPGNK_vAPs+2jhC zqye@JP$!I!`fNbCYty^T@nxvpBsP8zMEvJ|C@)l*@jLPJJE(*O8mZ^{n&6xPLYkO- zkH{pspAqm4A|@fZN4qMQ$3QMZ?3>$V>bIfe5GY29H3vgCrDQ*d-zQ3Qw5XCBx!^MaQp1_ zscDu4+Lv@ur20s}bR*EzKwHF4Ej$CRl@e`O>Lma(s0%1JFHbl03ms0g;XTECl|3<0 z1SuI8P!xn`$@dS)cv^w*=kuOI+5=M$Xc@f|46w}%9F(8_WukxmX)Hig17izH(o5tQ zpq|mkB`{*ePEcoo%jc*gI50_@Esy9Aq<&+C#k=it(yq3z>_XIOp-p7zy9^@Q<)7WN zA^U8UWw_5z9l=uUy)5t?iM%_?yB@|r+Oa`?9yZuADF^s-65p*8oZpxxtd-mc`JgP} z*v9+e`KZ+80vXt(&&2r5Wp+_QO>t!m{Sfz*a8J^IB$N}%glUL&4SI;4pbw_$3gZqc zsDfY+RHo#v1g*!lX=m<0^a64h$#>mW^t~)1QP93Ky#k&S_QWeLyWeF^Ur-dDoAr#qpsIYIZJyooss=XiPO4_4t3Vi_BK1#=9}8)+&S z+JqY2+SAo&Eq2guWK4;qT}z<36=6ys z*96Omkpmc_G1RL}+7)%tI3TuU1=Hx7l(dPQlKS%QXwN;`mxu2h&%rpcwVi=>P+Xkv zhVuuUmpM9^Xlh3gY)s{eBXD1Gn~I;?*G;PSXTn+;raN^#PJ^O zsF86?2%8BDzw$LMfhcyzP5|YhCyu*ejzPIi7xN3yK|x9CblvJDkN$#rTtFtt9-LyB zAMi{FKVTg9Pq;~R8T|?U3jGUSQ4xQeC5N+rO;usb8ocf zuJk&&SAzFL!~pLnXm~%cx8VIWydP{s@_sqai=Xoz&V$Sl=XKOC2zto*3g?y2c~ZZp z;k<$R1#q35zu~<8InOkj2xKOhwi+KW0gmru->53oQsxbBYs zWd7=g`3o!LKkaA2Dp{lM$y%;S$oV&yYkRULV=~2OjO7$aA3hw~Y62#9qTx*1N5sDR zrw>YN%;l&@$!|pIhCac|-Y&3Ytepk9*21+A;$r{q^+?_l{m*-gLtp>8UdGz+*Y82* zynptdpYux)zJC5WB9pC6iC#M1O+!CgrELr$X!W1JKgO^`>I>KR?NffYC|``SVm(A( z{b%b0$|I7tLPU!}+suYJln)9pV8#x{HyOK_lXR^0SVvD}z7B{jMb=TA>)}`A5&t6X zIw$Lid`IslYp6ihMDUc5-y9_i>C3>iS@$rgpBO9g2Ac-_hW+zz5Glw{nbWU`ZK2@% zPJ}{QvwVmK-UXRO#Ew~dyY!9Vm8|hk{0(HKfDFnoPhQE|On$Fw6De~_*a112d;Y4A zp+4N^+m4a2F6Nj=WqTs$q<(qSDIy~{=7%*6WAQKQ9=RaI)&NJWQ%a12F@QXKg^U4G zmQOik(tj0VFaA{yhXUTM$6rz}PLp8_ z{6l%jT(lu5YW~p5u#?E%uvvPgCd|It)8a_K*}w+=xdt{JnY$5vMExUO4Q0dlLZ8CC ziN4zKrwnU~sKZ_ccg)aMC?n=d27MK_Cf@V+bGV<3W2{-<*9NE?uW-pVzA}S5L4%w* zVzFO+%m2^ExrsK$++$#F80Ohc|BvOiF%N&WJrr+&SW{5Pe^H0O`XG?;WRA~qUAj{m z{wxBxbM%TL(8Mk@?{Ho?Hs(K`|MPX)(Ubpl9oa+tr}rc4ghSS24`oKA#Y-MG?8SH^ z=g($~wVuqclGQX~egD(7Jj6EsbghkRn|lhh>gF?ENZtI)_aS`^>sm|Zc;~C_KjSa> zYWFkRsf8{2)lXnA+CBOg<`lF6^XvHm){2_gBfs6_e{2k6-uchR3K<_gOxcpy;STbc zY>bDU82Ez?i7_l4hhv%8kAFRW@Ghv+a9Cf^UomFkjh8T9U_%)w^IDL@U+)Jy-CoX( ze%@gc^GJQU#D+tiWB)+l||}zZ&Mv+{0MMJYB<%-hMqF<=dt`?0(!&qDg;*T}&wY z1M(R*F+O|4X9u5QBMzV4;q&MF?dSRv`RskJA3pCs*AJil&-KG+*kvTQkw@E3T3_e^ z@y8yc$NOU|*&ucSzdN}O_8G|?`ns+s*P&sC>+oL0&*=@STW{_`3353c`wM*qe2pU-G( z;@^~paa<4YW%Cj#$H67#z_W+z&~7Az{kiV`d4GAh?)Z6sP+F1e=+FCm!*$Qk`+r?W z>@u;v|2A*5#D3dAk=iD|Rq;;tk~3HyeGk?Y^Y9{zPb-p`hPu0Maq zG_<0AuAdC|cbi{xhdT7_1%9(6zlnx^P2+lrTu*EPT#x&w%S@$o#aVzUw6!>K(S|P$yV2$i08AMSr!WpKDW6=Izh5 z*e{b6iR?RJ8zfJpVrrs;y*}36#NQPH#=aIJ$^uXl^PBDXSQ1~AmB8mgWUgkgC4SaC zuy2Bz`)&cV2Th?nydJbM2Iuw$_cp$dkq@yWyhr3%zzhTY8*#Mb77c7v%*&X~2@IIr zL+EeF_eOt|+zxrQ8s=DJbtJ))@Zw`X+PEzIUk;CKHyhSj%()ZF(mYBdMO?$%lLK=Yv8QQX5b5eCRWwTpBr#a^rc>7b4F^x#nNb{ZH--emNPxBlVzqNJ_`| zxX-_P{Vpc;2}Z$|zmm}U@P0rMl8_Y1!$UnHzK#04dcfm?fEI^66HfZqTJ9n$M|f~URbhG&S9JZ@quyA;XdSgi(H5D z6Yvd=(QiNFf$%f_^p6+tC}bW%*ZjgsVSR{U_5YJ)heuTWgU>>*CW`^^j97{wF-F!6 z5{+$1S0_*lqH6z>Ghh7JD659>E|0#I3T@U(yvg+-BKoacv4s_MKKQ?30#ggACY+xg-;0l z8);C07c-ayz&NH`a1n|TsR4kXkcO6%nqZb->l?QuE=_nR5vK=<6O3Na#{^4w^s zFDJHmA>6nqBrwf2Fxl|+*fey*z!!!^3mTO!_%D$oBJF_FAoydD(ZJwqN&Fwsu%$3Y z)CDOp0=(ehPzM(lxbg_ET?Fb8f+PiNqeiquu-JG!G)1c=Y#3;q+~AksvE_R#U4}PX zbSB^jtXO)J$$w=-mvwsrSP1+-IzU6cgtM>E*w(nIq!qNhgAOF zmZK%K5YY(9(%1N)C5_?1TP#1O0>(j(H>c~C(?{v+_mkHG%A?w!;8&Z$F? zZ1Q=R9DO|xY&|&Gx_z*B+k<~5*X~a0>UvZb&*d0mTlUI6P4cgMuE2dW+^YxcK>vBB zhU^*Za~?v(tL4x6@vrm2&-q`!=Xt&yUys#}4!^&X?CIBUfNVzS(+~T=f6(W>_Vs(I zv)acr^os(SoHP_5-+)25Ay``vQ)djp-sGt4+QYI)peFP>Pr3qRv?>^?`s4IGJ}s}G z@2C1ToB%!nwRoU*r=hZ#9^>!d;J*^~W?yyRTicxZb^fcKGMQh+ zU*|pPt8Kst?R~XPh7{oM-+Q|BbN>C+wi&WZzv~37^&$}TpK|IA-mg4=zsJN$kLnKb zt6%5A4p$vi+xjYh9+X{92P|y?plxty_J+OD0WF4s!4Q zuwUJezWl2k832GkzXh9ws=rRkqDL8C$5L*1Uw(#Y&!20upZoVKK&y|F^A(8sCh%vu z;CHWZQe*-Cp5hLD%pvbq1XJgFoG>!^9sa7PN%1)NU2^(vs|*&^*Zq+zpa+x1Go0#U z@{T{>BdO-=xnm1;b=vQ)XOs`uWIz2l3;Cbx^Y6Z^P3@oaXK)nqXdj-GYmAIY)a|TA z`?TR+f1mfm_xP^sLqBZ7eeyp0`a9g)Yp7wCsCVWx-3`~`yYKr0F#mo3y!(Fsdi(SI znf2Z0vYZym)fL$=xHsRN_dj(xTg5Z5g6bJ*+q2)%2b_<7-S?-Be)V-7^Y+*ITzY?> zx3~7{gm%XNXQ&hz?)9sl^IvUkzik!ckN$_gkXw^q=i~3^AXM>vey4n&ce3v>WkIOr z>->B9J?7q)^y|F+{e19p|D6BnM=LOmex0Ya@A@0tKj(MC_uRGmHD<@i8vQ;G3b)-G z>=yZVKR^!R_kEC0125&I8wX!ySY_e&JtoK%{JKXlalX&f-gg~=f%3bq&p&mrqJQdO z>SW))KP%t!&WaAc=Te;iuEVqP^A7Y+ADue+*E^v7zMl`U$=ChCXbAKsIqzV7A>Oiq z?+Gf}$fMo-xBul*-^;_}zy6oU{TV&_YxH0K+yC{yU+U`dzg-Te=>PosRHjA$AI4!D z?f(z!@JRmq@OAU(i|9Yn$Dv41pKsbIjg!ZJur&SOoBQcMp7-Lvo)3@1e~^<@TVF1d z|9(6)(VY2T&ouH0h|l$75@OR&B(<;?f}AlR!~kIpc*g(Sm_!C}48Y#`-a zF55}jMaH}uTiaxF_m}-6HTT`^b>0h$*FnyT5gkpAi~AxwzSc&Rb_$elZx+ixX3_#u zW3$csRZZFFl366+6?nhkiqpW0TmZ@HOnUITc3GhN5o2xlc6CpRdnHevX7O5dnM~a; zte@TTvp<0Zht4*rQaQ5u}Ip3F8UF5do87vVlTA1#hO9JjMGMnWykpU8Q66qGwV zv-V{y>yNPt!RCNIUX@36&B9UNxji>=oYZKa(_*zu(FjEPzv3!x-m7kvYw~43JvO%q zKY}5nuW2r!u!5D@$XTej>2$VIlA}OrDRoH1YCM6A{Una81>owQvAxGd!9vFJIpNd$ zO$ML*NaCu7f(8ryL`vPQVKbxK-V{xp#62=5wfL-Cs`OY;R;W>%*PBky+~u~cZ$+2; zxBc>D9**a?zc87rLI;d4n(K6Q;qUkBJdfrOeBXxi5?zrp)|ZTC=;q*Osf)P!*?!eY za5EfTVD74Qi-AU%w6&BglWKHsg7HzDkLOpPo9#*1+7{A|-D#2TbQfWE6vMUYhc|Qq zYIat8n{nDW*%fE6yVuY>I={ABwk#>!G+3?BX<3Y8G1Ql){Dg~>hy~e z6=S8erY-LlD_!A6=4iBuM&<1GyjyqhByQN#<+z?akJ+VoM4R+zavEka_Y{<kTbS>(k-dYsPcYP3PKTdG@Rb49g z`-E2%-&EEJRh_i!bE;SUUgwp}q+o@2mo2|6-fX+g6e3;^Q&XopgV+JKtUJ)nwFF za#`WJc|_-FE34(B&$lT0X*b%L>#R1Xi6e{BeRYJw++(fH?HRol_Ab!l?U;=mgg_BVFAmgcat-+XZhc#OkNp$Ef8(hs7YYjiM8V(0D>!^t zx_4~nRxOPnD(S^SKc8cmSJz|~jK;Tnc1tf=WIITRwi!-g&BIE)U^jeVSyR;1@oRrd z5AVh1Ers1yEs$~ckj%3+c}Vdg+0&Rpq?o3JEAP#~ggIIFw3N&qamH~Iv*&Y8tH2KM zZZUsoN(P+id5L`S4(iz3qcWn5-PmWEbJS$@+JCuk{skIx!E>1+aQi5D6oB<`ZXK!% zbDi+vdA|2d1a3PgqQR>AZd3K{u(zBsE;EMC{CstL)b4VZ`SYtw8B!JskApToNB%5X zr>#B}s#n}NUB_ZKoa`nCL!`~Od+)YxTXVpR z`zc$|{pwMsdV1>G_GKQS+%etw)8>`rvquukQnjC&p<+m)v(X;zL{h^`!gGgBLh+AU z(Dvhu^QD_IVq1M)UXo@1y7w-7?0JbXpT+(@HZ{gSdLz}I*@vbm49geHI@y5E%qYja zdmX(>?1=f@8`_=wl0ICPn@yoS)jOmVtLGI;POJXFE$G|py4j7ap^rz&<1=`wRGRFwWL04T|SSd^+aDXtMq)_y*M6FKixVWVp4M&Q zH1+M7Y3uBa?Lii%+vj~fgC8wsOL0|0lh0_Qu_wBfyk#co-l>tG&f+HVvvebCjF5i) zK3?{sKi&JMOL+~kB~f3Z9{be{WXqLTZ4vcTu7`?Sdj7@U9k$bL6dL=-wI8{&Zu$0= zV+COBtG%9HZu~4PR<8RHY5C6N)yoEO$H;;lJEz26nNu@5Z)^v!wk&?L?{YLUz2rI{ zg?E^}lAXB4d3H~>?;CfHWIdLY(OYcA%nhx~B%06DRYYIvq*{MQhMbGNQu%30dc1I&{3$E9P;1DM6Wn3xI zUAmr5YySa-s6w(}=h*Xcn(|Kw%(${}-vt57WDG?0P`BPYvL5P04lJW7FRp$&tZeF- zlra>bp_vL(XZ76H_G}@^POaR5d{$JGMcUSVx9hIfczuveD&JqMahAflRAqQ0n4yT-k+rkq~sITvuV zWQOhc?xh14f*w1kjhn$W`s*%*@BTQCTVz-&<*nx%XWdL|>BN*-XLo$=9R=I;&JbjU zjeGNN>!;$W;9^?R%9uVL4I8q8Id%}D_d*P>XqA4qnhMAG+^nX^X%0tm$y%&)Ga4~f z=3*Hhim5mjZ{|r%#kp8_TvR&{D#pINb34HbANE@SQ+r#<8_9f)j^VZEUs}M5?@MD$ zXO1{pNAJbL8S!H#c_>YC1C=L4rG-qKC;91g=o4udp3>Hzw+r);Ai?;+7yRW|ocl-N zga_<1oA5mbKk`l9@ke*wn)C7@!Y)awdsDy1KI9>`ev&PH`gT(0lPa>K(}tsB_qwsl zWj2 z-t1ppt1O{(&~kYi7T(17--3H=QoX6S0CI=Nj|j~*rjAXkIdxU)W%et^11tt)E zF?QCssyMs6TF*ML7C;Fg1VlXK$9!X(rOWQQvwdZE9KBT@Exd@PeyvKZ-Qc9zUYsIZ zuPqHy5*FQ`SP~_^E|P$&U&~IrH;T@Jx$$v^tvR`shjK%YZU?pOdsfx+IH^y@TzvxR zbKHU(kMCSV2o7BP@Sa8}K+izmy8Tq=QkPmBNAVmETBV&Y83TD!i{lAwJ?@T*EG^g^ z-ABT-%oSPt8%jxq=;*D1FHjDawV&P8N4}Q#BJ}H*_iie6SrJdFg>dLwW7{fnTU<-z zzijE-f(MAggNIP=KOW*ugrvY zyAZn8-Sco5xyx;0IEo6S!9EU8Vw{A%TLVOqYqg`+RX(}ij^VVq<&4p zOCZX8+Vx{+8t%L&D<_@%3ASP>vgBa z>TAB4q|@`lq59Ho51Ya_>iP0m#hIJx<_gS#%M2YkeXp(8#Q@LT71Gg)kUZn@Wm5V8 z>zi`xk52V|MR#i*9dsuw&m9$S%DMu-^>eS^kIH&1X(s40Q;~JD@oPjMpffZJjjPkG z46~i*H+K!Zhn{_929{Omm-Z998LZ z=~_)C>s(}u6}x_G>`qB{-9|bf!Oh;ywMdmb3Yt;!`jOs15CVyrdcEJ=HVgDj?R39g z-GHZV*_x3?8aO+xhu&RJqhrPUN_1qZwRmLDGb)Xqm%~0`pYE%!wzo=_yy;t~j7geZ z4$1m-l<#9pa__S&I#n?ma5d+1$)O7CsPa$QTu&`E%1ru2;v|1a*y7rty zgCY3PHRIjATYXoZ&>t3oqU&%kbKWGuNf9hxw`KXX`8l(|(JF_z6)={nRGn$<&{q{QI zuZy-iQJd`z$(2#lTpPN!pDA=#uSPd1Z8s|F#Ytsa_6UX<!8nl^UP^wo~`D|0%ow>`W ze40~ZEQ!x)IEu8_$hokpsrN-LL@$$CCj2e{ zB=2EziMKVoy|8KTf_vF;m?kescc(_j5wB4*3)K4aYTv*i1A#E(CiIV^S@I)VE6fFT zozL{g412rS+?)(~l-wg}gzaprH>;~Cuhp@8sE*cc&S@|>1$_kHm1frakeaY-ke;A| zXYYNvdLY|Uz&40YE2Grbb5##^w{|p{7~_R)Vx{z-<8D8PR0U&zQdbQR-P;W7M;J~I z{^T8LfqIxNr-?UW7Ir6Splzj)&hrqpQETbSIl&zMJf`;a?9W9H5?5nTNt%n1>b&Ey zYMg3vj#*Y-WDDlZ&*D|=m%cflR=bHo-Of_;oc4yx(wYn>lFgNHQrOvoUFXPOyY-K^ zcE696a#CGiXF@U}7HrGJT{)Q^rAUe{bML%gw|Ay*`U=(q1v;nAYCOs!C%Z6OCDe~a zJ$*&jZ5;I+U#__;HnI9XJZ|Ddx`|J&Q||kfEn7<7r2Im@2CtqkA0Sr*lz34KPHgte z=&_gfEO)ppl!gm=YjdjFDVS=~8hvB>a=De78jJn$`a0RgsU1blXnfsH=ib%xPO&xW zUsu~XMfW*!87cH-=5=_lUcqSH7xs8GqnO3$tW%@N2i?S>oGfXkn@JCFA5jZxy0h2Q zd8yic@t8el)_9g=8`(Qv*Q-8pR8`oGCGHHC!r5wF7w&XlKAzb;*v>?7#_Rxuh|c$7 zOc&nCC}(Ez+`Q@ySMZMrDP!qIq&exv)jRoa_P`A~oPx~$$%A@9(J1d`bmfemd!)jf z)HoT}?rLi73+a7!wb>L5&^niNnm1v9O`dgHUFiMhRn5e@xyb7j_|}AGa+x)~hZWCy zc73+e+D>zD3pm{@>z?DpAVyga{U%_dAI(n8#?7HQ%Nn}u*Q9eFKW4k;b2 z6&5D{1c9m%3p+Zg`Ir& zKE7+nSiy7UpP@%pcggc%6m53QW>z*T6dxhui&b|b_V^b&&>hk6jxV2t$gAY?0%JzM zMU@4!S@dq~Ze6IwOH3E8t*Gxbv#&ESk{!AVL(S9O89Q5fSEn0A8f?dP|Q- zh06*2Yzt8gVIizvn`XCAjJu=vTiSV?Y43DBCwHTgndE9g40Bbmf~}0e3q?7P4w8o# zp#sq8g?XM<;F+EO#Jp@t?uA&MMTls z-)Y`dJGlkDe0L8Kam(LR}<_g|Fd|ctPPG=x@)kEFcjJJ~#NQm*-vU>^c5oH6RM)Tf=dc_{h zLfT<-lAf4N@Y*{dEn_R>c$(BV^v)UZ5;fcA+^s5X?;lWeXj+ty)GYh-;KJUz+-)l-n(oW5! zSGuHxj6aRUEb~v#aK5is?!kCUQtrnd*L>_=_;9@ST;;Ox<6QqQQk z=%&$?U0C(YymzjtgPFnF9gmyo7&Cu8k;moiIK6=^a)o`6J2^=lXmcMbXtgf2e^HxM zJ*Sf}u$a^9jaZ8>S;)quqVb8H74})5KPe-fv!V;fd)SJ{5&DYT$qY!Wp)jCpgiFvX?=p4Lp;M>!TsNXk1=0(>vBIu^29RoS3z#Qg`5SH50vU9i*Y#KEtzI# zYVLt%^`muEj^n(&mvuCn@6j>dhqZ02AAbF$*FtD2Y*WyVRwhq#^HQ8@*y$YHIVJfEU2csL({35w2Nl$ zmv=q7*<~~C4WsSXy!BLGTU!wq+UWH1`nQT;$?~=b?-+xL2P$phe3vx#Sx#9dEM}Xr z{X84~ZgoIj#v)60QP7P*x$>IX57D>OQ$1zDiI{*dp;Arch zNe&ww_mG~pM?tZ<&1OaR?lL!~>BI#ZtXs(`bqg|Yt#F>IoSmDdHskvG9ADLAZrrz7 zRR@vO+BGN+sfSi9%i~KblYFN;y07Zdoz;SwCykhyVebvufT3%?jZk~; ztNlSuFX=gW&Q)1TE}D}jnU^n`qBGk~Mz1bXFRiF zSI2I#&zkC4ub+qT>ONn438(c-6@{z=s=<6@adj&p<8RsQR;ygg)YM7N$`Th$8Y49n<3Wv#ju+C&Ro2TTYj6vxPne0hS^g7Z7D{%>2o* zrCA$KSKCuar&-Q!bf6*a+ROv@wxk>Xq0eXAVMMeaj3 zU+SfCj*&Q99y3M10REeHVO1I@mw91U+T>5$r@)?gc!|jyvTxVpx!q>vA~F4P;!l;+ znH8Pr=>X#U+QFaKY`1s%dRkjqGNI!6#Wgmb_BO@|B_vM$^i#trSJJ)Mtz7!OKixUu zj%g?ADmJ7Iu&FzcBy_uSJ}u{AbW6vV(~VJ!cRk%#mJw{$n)zN#lV^C>)a*H;pD);M z8*x>EEb+2g7wr3h>REN<8CS=f`KFMXRS?GY{xir2k1nl}EY~sPolF9JbZ#FM4D5rX9Ur*3z1vaAM zSs-Y4+Qbp2%~LyOPZcg7k$Q7x#EoZ`EbVj$GKc%@9>5>E<*rx7GS@TX@KiV4-fhbu zjhPi<9Vhd>+t9N`Q+9hBi8r0Qlg&K6pS2z3b&~5I7$7E#TAeD3H`5~%`%zsy!__Ne zGoF`?6CXN7LU7fUUV=}#^I&%4Jo&zu9Uu}|OWFEx8fOW8ge0+GxbdXfPhMl4QL}3^ z-reueZ@r0UeOo6-7}yIx7@sA{DU`)2%Gy$UZLaO}f}71w9=ACk7fiFsu={e^%l>s( zgcreTXY1`MU+L4Sp!!-lIZ;#d=B?HK)r|B>AA9o+Jd{UPX}i|gZ7cM{O)0)&Uh6t~ zdhixe1AiKOfm!(U@^rc}E3Rx=rl)87;OIp(H{-d^mHqvL!vd7-`#F^6WCmE*!wN&ncjcLGp^sO z{iPXop19SPTdLm7A8SJURaW78J(pB&-(=kEv>Gqpd%?LF-Nj+b2iLF7ZBwu3deB^g zZZAC{m*(|Mb(=8M>7E|*S>P^PXR0!ZRi{kJ*!*pOciU;@t4R`VcgC1`y@H37o^#=l zEa~_1?6!U@6wcd^g4dK?LR&^(Uii1Vh33Y*2y+!)nkoMdnJwkKDf$W!k(n9e)x>ls z=T-D@=Hhia3i!#2uI$4&Zr=NOr%NRT$L;eu6XN*B^4L|eEd}*H=eeg8Weo1NuGqP; z-W_>x3s5(Cu_;XUsLs>6dhYOwqmrGn%-G0ZbIvi7sV?f%QFNfxeKtO~l+-^tUwL!U zVm@ylK%)!Ae7nJfr#7BP6))j=yfpckevi{;6I9I0nT&6MrA+*B-7TVNlqZwG7+>OO z5h6adF2Vik7MmbjKb$VL=JP}--mW_yGi|ugw^^FcY4)vDM$T%}a7vl;{K_0ue>YjM=L@ZD=IFjU z%g_Sl-lwO@`gGk-jq0@#F6+Cq2%0>oVXQ3Z@$r?=P!5q*uY+5To%7q&Gn91Fm|=X1$!`_X;Q%}Z^*ko)|i9D3$)n(meL^xO)*acPqhi0tQa#`N(1WsH6ToM3)6 zXTo7IZ<3Qb#u&SggBHekly`AlVt;w(ZuwQpF-{%x2@m%)VYX#q9~Ry$o@8DVh*|iI z7WGliR>iSCiCS`t-@0&w@z^WO4qK;IK1uN$%6+ik7hQBxAM^J`b(9u_=kHf}y_tHn zo(U14zf+yPJoYS*E!|$Ll3l*w1Tle6dU-zahcTq@cDu`T|9W~^Sy6kP3C?C;PG;t2 zt!#GcTOB>i^Ie_n0V3E{2(`Q~n^h7OG6b?fw5aCxr7U&(T#T5zHe)8mCg05?etLME zqNYJr+=!{ctH#^~gw zL8C2n*>xR0<;u;ukB=;++Qsp;ED>#+M$1LHFBSjk1a7T{skIM?@)wd0l4CtHZcHqc z0i^hnQ?|*3DU5IL#7WUjfq=iUVYBh6&ED_Hq+N@7LukMuSK!^Fo5jNA0}E z)K)%I{!~bX(bdl;mBN^{cLoOobO_ETp%N1i-_^V7usYXcY4zSN=`p+PcJP9}qh_KX z!}$wJL-c)8)W}RPib9f7hS^H1-YzW?9_9ZdlGTcv2@9pv8|}tc4Cr~A0#c&hTp*X2!T>YMX$&x~}E_UjNpK=!b^jS;`Mx6<_7aLV1};9H*U zEncqxz7h(yOAUW9E3a@gKA&tpTfeP`<`wY8fG5q`JWfSPs}s9Irsm6j!E1aq)2U~! z#5E6?wyDz^Q-x90KZ}-Wp+?h)D#OlS>vOMq6|*-gW?pv_doIVhq+U;x^*QgQyRw4xo_2f$ zCl#8S*?YXw0G`TLyHok**O@d@dFh=8bIMse;D%6-b><%w#MU^YSLFJlL5424h%0KE z-(CPpn&ax!E7IzWfa9zU*V^W_uF#g+#AABg7nLntasf z+(Fq%&=_p2tu3!bl|v%TYu6bfr^VaxqrL$tJ=%;TXSVI$;GVxxOwK5Zvq~=6Y?}fT z`zVDm;5}2P5UbgE3KF9APx32_utG{14K4zlhEq0FImFr#S?RFz? z9KOcTZbl3&K4jct&7P`R^KP2G^XA8;!9U82^qQF(b>FbJnINlF<*jp{Ti=eki3Ffd z?!8sPm}|v;Y3iP-#G8{8#@1ZYJG&me_kFd(K$FHQpsFv(Pp=LjaCIgp7xcC3N}61{ z9$J(I)hST~DQV|v-=~0t20c|qJs38o{quwziLSrK;(fK%YHb6l&Wq-=S^Y4|Ks5r( zIWtsw1Qu*MWf$@j95<6f$V+(4{I}`#kc)*UWInkm?CWrirFGQPDSxqc+yd&V5=Yky zRb6a?gORT*;h-HsM)rDf=T1!+?{?jop{k9zy#sZ)o6bF&e6An{%$b)s9E(VD%n{a{ zxSolir)=9Z$-62w;xFUNb!As0lHhS!M0M6J9Ke5W{j3$#Luxx?v4aVIzQuFd-@da< zbt;zMP8Ntpcx``OAU6u(t-HW>ahZ&d{2U?M*ggjR2CNKh?yuKXL5Q`SjsjXh$|n}P zp94CqV_j6|HC-EST7icFwRK*#lUcOB7`GX#QX7Y@ab*<7PLP;1S*h7ku*PRRJA&=Q$!6O5RHrFQL#S3 zjm9>QA~A2fjkH_i9sFr?z}%w@NA&=8?(F zkmIkWvAPSl5c`z!c?sU|%$a^0MMq_#W~bx$z3{PTf#9<6x=N3}!Ips|bc!sM0J;#a zWEUXQya?fuJK8I*VsvJd*De((##wLSoW2!ruXe$_dQ*FJhu7m= zVFu(TirXgBATin7j&k^kBN+#)8L2TMb;|;dtR+(ya>^XoWO?egOvR59n|>a0Z_OPG z`C(t&XZd_V54BI%yR1J?>P07<;-D?r8}CEk`?1+*;d>#d+lwvEW)q5Yvg5YAjtq&y z63i|#rc^t@my~{Lc}FGpk(Rq=OiCi3j{ptrnzVEnDisG_9^By0^?IM1dqj&?P?6SV3mmS3yMmU~NcX#tWx`U0e2R#kIQx*Mar+vvF z&p}mQeYZpYI5mc}Lv^1XE$>|Iy3<9i?np5X8;YLnF^Q~wcQk*gRtT}QhC96?2kFQG zcYWln2MFL+de!yq_S%hKD=QZJO$~QO2o2CAEZ~5>MAAYHHuB7kPAkaOEJj96F_EHK zeS-KHJ(=3~8Nha?%4qy?+iZ~lESIFFoz_u8Ij69*}eB|jchamuT`Vo^J4bOFpI zPqy6drcKeu7xPZgY3s3{ZMbX$-dHcBX^EqD_X}v!ST5UDqcXp=#l*Oq`|@o@Ir8oeVYOFLePx^;>I^ zzoEWd`4GEEq&YiORVwhbV!Y@_eahSyA-CCcJD;XwR*@e5Za*nhmuY(H?&YHxXy@y@ zS;!1R?pN>;^z!W%oC~gDTya0m+1=Zq>31~>9x8y zJg}9~PA{=dyUGIEKH-J6);{;rVyfg1MA@uxQ6sXvmu|IiSkp)aF(0c{;%mB{y4FPj zux?Uw3xQr$RIz%MR%BunHuB!2Z}WW4AN)tw! z*E)4KXcbCbXQY20pW_+$w?~NAJ>^xuHJk{cq56#Uj12<+*o{#lxJ3%&KYGCgQ3MT!1nV;i)biXg{nP+1x&PIz<;vI7v zEOGYEN5?l7Yc7T1eu17;V~j^;JJnAIgGyp8`7Rj<0(t z_%nIZW5Y55d@Z&jxL^abo0bSUACK3v63vIyjK#&Yj*QBo&du0(2?-l)`LVF>tM@9O z9?$BmXlBOo5gJ;#-ujgu)p5US{btKySzQJZWCcb&G!-uW!8~P)@feZwi8?nx(f`K$ zQVR>Qq;HzJmZN$y2U~L`cXORNF}u-uB1JnXI<$pD)m`TX>Gkj^EKvBL!0)`dqo)%-{^Cmx@V)3&QGPZ? zT2sHe81qg$nD?U3{QU$~EzU0bl-kriOSgX4tP1ZunjeCGJuB|r0;bgc+}W?!YPsod zjyu}aXL{r0tNcQ{5uU7itL5B(`_p1RrsplzyXZb)G>Tn5MYZarKtFVc#i6RC%^QnJ zI1b)3x2SV$+%3e|9(Vht1eeiklpLg#HAjFbBem44~s&b2Xus9Y%skQ>}v!S z2?|TmonmXA3uc?PHrC$OdPav@JFOs}E39=1ny~RzJJ8m6)6n-5wJVTt_gK%8>;0Ba zF1K8+6n!>*y#8;#&TZFKE#1!VlDmjV*kE(G$ORaKIb*;WxU(@}Fz188Jbl`jJK2ep zD0@p)s#>e&nsba{=>7j&`#!HZ{oQB~-8J7!8xOIIh0I+&1)|cd7ad+eZuF$!bKxVq z$g*!s;3-gyKN<-|@@Ko`esa`Xw}v_iJ;$Zoy-7pv@%!gXFAiRy zqkK(paozG>%oaEE>7xJO>H!)TVvhpRa?mF6K)%Fp%ug7zt=&{Q<0KSh7o@jk%~Afq zYc(8gKqhjw^EowrVEHgVQ(_>A^~KQqXWm!bitnEKdJ!4K#(RQXf(1Rv3tQmqb#}x9 z$K9V~o43n04F{$g^|Rt{^Xqis9?!PE$5DdGCth^Ac3k0oJX+VIbHC9&#!L?JQN66E z)mX@@QL%)Ty|O5BB;PP9VKRLQwoc{=}A@3@Zsf+IrEoL&>h zS#G&gd+u(er7fPl-`f+|@AtElt3{%O>ShuTPt(aMmuvQdQ6c5RPAjn8${?ZV_||To z^Ksbk2}hy7?PCd>ZD{@5V7W!3W&m<5EDqc2DUEWNOt;FCUL-$|t+% z)!l!wUnH2}jyl1br~b&Dc3|nAt@+FiUyKRh5mn6oi5D2%K9f8A#8x4Q1el}j8#o;w z2lcvp`JENu9n^fzoJ}jI@N2tCTW_Zn%ESnZORc6}}sdoZ@JU-|d&i1*#O zpz-82GtJ#eE6vsgE*#HSUqjLUahz;tP+Lylqm$|TlUn3^`ULFss2o`7a$U*y_yIt5 z?ijx~RO7pFYEHPWdncJ#oOmrZCHumd)$Uh255ppVy5el8Ua=oQ*_qQLopB~<&pXgB zla$cY7svH2XI_Y@&?QILl>22dq&}USl0L0zbE?#BYgVIJNv7GIZ-?f5>*owQ>yHJc zBL(OQQCRV6ak!b87zhx}NM$W)kvl*u%-@--m@}zNN0I0jMe4qzKABO^G~A3+nU)O` z@dXF1Sgebno%S@xn%O6nIf_xp$M4q1@18z4l%@_3(ZA@8N(?AGdx1?@YIOJ54skr* zh$RQ-$=O}z=tg(rd+YW-9TpD_Qr_}x|1NLn4#HNFI(@F5gP5qF(3kGpbY7wcyu(>O z$Ht8O9eUw9@*iS49`_7KNW`gV>s?6@8&fMg^`;x^?Gm@z;%_cv7ns5vl~EyS6p9yg zrlUQ|OMP&04!!WUNjkDm$gZePf@+^~dymfUyMI5}h~fEbryY-Oy>qsU!g&TlBY3-? zKX}>c%u6D?)BZKdcGo6C{ZW`NbNoq{J;|rks_4Jjz&FWen}(QTrNlSroL=Lwc8tq=j@Ih$ ziv>|=5yo2K80yC;=4?*D*$=SBic#vE7<@i%h!rwQwG_X!&U8Gsh~RW6x$mxO#@4{K zbRbu)-;a*=X6eT{w$F`8bN35gyyyOW0LH7`Ef@bHm^@vNTY1vuS9QS~eq8MHPm`u% z>3)yx5E5pWk3QVd-t~1hOu4ffi=|_i-fss&W!h+V$iU&e6TOt{dyo8~cD;897Caex zexO%5oo3_e@cAqH?e!4=fi2xwUqBSCU^X= zoUtp4;2pOFDWzaY!f>_oP{1ZDWXyn^oT(pto$GH$ce095Uc{goWI)zE^;Qogsm22@1R=lQxA!g_6Vazl zpL8;0{P#XHbB3=CF|((VnfDD#J`miRlus>5J$ti))0QiD{n!o2-M03o-3R$VHK&G` zxu7#=VlP=geY0?^qufc&A8yfAvPIsU#i2hJ;XwS- zey)V@+nL?0?$ac4Tm)S@7uz8IOr+Ui*_Kdhl6?PE1#-cM7>$k>l99XpuzA{+=Atp@ zyLq2$?nmLyC_3L#;phuDcOk)sAc_04-{}X^KQ>46LIsfcQUrsawPGqy-&4p+5{UM0{?z=Q-a%j_HajKzhR5gg_gPMkhc|IimtDWQ-_pDCkI2Tv z342$QKxSiAp0W*Ji(0&itn%igj%rPRkC?NB#7gve;Cgf433#(1F>mi&WFe!+ZDE28 zRLX4FUEMY))lE89z}jM#g%S6pV|nm2*&+6tz4XWK%Jd-^_7q25_QX9zWQ#?`nU(H1 zJ?Q8}9G?*>YxS&Gmmi_er(K$IbM(H8dL)+;{21H-?T{I{H`S8d;Sf0Yuh^Z6aP-p| ztlCrIM~{ydJNrt;e^q6p!p&sqk3#JX9o}e@11)iV_^uQm9*n~+SwEVwT(1Ge@{ei+ zWIfKD3@>^6vg74lz=*dWP~`MTocj}bRj=jzWLO;hx}-a-70TLfX1~|nPN-vY=j6Bj z6Ci}aN<0jPX~F0hQrnvo5tddiF1%8nZo@O*&IoQCooJFSD;`+S>(D2dH=I8ATdgqn zmQaPEs7_1FaFvC^GKcnWo zvDoT2CGCy_gS9ygSyk&r{;uBW>9kn$bAN2g-%l`YR~hEt#(T*YV{})rziPS0=5_NJ z>-D~*w#y#Rkoenrb0rxXTb`3Ke1_^160^5==rk?f5G1!p=BMO0&w6y#Zfzf0nE$R0 z^{jq~d6(?9!x-pW5l@N0>^Ab-z#%AWP`38AJ?(~dsAGon6uW>v&O`Paf~oI-z!_h8Bds@z zKT>K9!hHXsA3_v-q6+vkLSy>87SFFcZ=rGWd5#zr1YRmz--4}3;^v?8>Pv_Gr7bl@ z88D&#X_FqZMn@v|Fg}m&u;jP-?4;+zu8xxEx$7P$rXy;1${8b5c#As3=l#e&t!8ld zUY$Ls=8lOGvEvC%*_%@Htim&hr5GlV%_{>jbUB4r^qz{rJY6g7!Jp2tP#t{3py!ZaAo9APO zDjN|V&LZBb2YCr4$Bm8!%Zc9w;LmTE1Bb&dhlnCPrj9b z{)$aMhvJA;T+W$C+bqCt+1%Kof!N7+2kc_|`PzqkhdxXOP!pgI3|uOSV4jy^ZyhS! z*dt=Ad>cqbMI)m_YK~9H<8h>~7#9O$p-zRx0^Uw!Fbajt*^=|J{K0EPc_ZD-f@wo6RGFL z33W-;%x(V3i|^pl;&@i~VxzB=N>I@p^_{~ihgn-hvAxglyLs|?+W`i0??=);UWK|k_^a!Z*21{->>-H{p{y)FU=^IlcZ+{ zQhixsj&X(CC%n(=MR@}Pkk>gb2cz`&1pv@V|FxKeOpW)MZ*TDKjl&UJpXR2;&uIpd z;Yiwnqq^MZWQW6Z@GmAWB=Wv1HIGFI$R>i4`z0@{46+yC!u|b^MpXov1_FR7*IKvY zWUWY#j&;4)=lYnmzXJ6R2h{tqXczg8A7EJ7w)nGLZ{tT3?NIztXXPCo>x)R=pND=l z=PA$c-5t}h1B8m&7$9mAt+!sQo}7UUO(Yh4x8pV;vg+t|y~dS%u2rY^!lWIvyDsNC zWUP-(NCQ#eqRND`wSDOC3uuJ+;a0k<@bTuW(YGKBs}d>>MrWUdU1+l9hu&8%8fGW; zbBF}@{(K8>kK8>jz@vio_VrK2E7OmZA|I#By+I41zVbs~dYPj3sNvpgIP&9jc}$ot z+I~#=8L8O#b|8 zIA_A=Vj$c@?;7mQhql(Y`y-|Ha~9*+6qV?RAPlSV zF59KVb$25`-7-FDwfA^7v}?HvJ)KI-(Tu1gr40^9GS|`hRzVdRgyo3`HH)SLbQ{Dk ze2{3o$*-e=g%T@aEH)F_6nwm?+v8dOLUEvdTn0nu9oME_kM?$^nCN)> z&grEZhmVbS;%&y81~5ftB6P#3AdSY55AwR-@r>}gvABc2!WZ~*BmVWhu!zApVrJ9| z?JoR9r^Z193ZwY&Pj{C9{q~bU1p6@4NBbCWa<02S>HsSTm-EpZ)2@$JpvO;p$DqW@ zlK(p2$CzOYf@8FYTyxBA(h&bie$o(OND8zw2KGzmvi8xVHVjYE<+RCmhPe8UKEx3c zVAT}o%Z+lIO;tX}&v*kxLuxj84n%IsV^=* z5M&!Vw*!8N4xoO4>f@d54?fSKCi9W2zfRz@uR#3i2tZyg0Qcm!6`t;mq;$;r!`O>H z931ANeyJEB<#&6yk5P*?pa?qdM8kFrBG+syJ z+FqOUx%!;CK#4aIsud<&*F<&ix)z)wM?3eww(ijkMx>r@Rkc9;{qCYEXb@13W%DyF`}p_A0Svce zH@}{ree{0u&SCjFmj3pj6N0&v2#CrYsc*-juF!DCAie4ZRfM0Ey=oeoOEk8H2l>s= zG`^tc39KH=7Vnh1vnMLEXa*@bvVHH5I$@Qk!+fO5{Kab#YB;DBUpm}ebZEzihF#}6 z%m7pH4v0*D(zI-1>reYXNB%(xOBciU^J!Xsy>e31aUs@^q@g$B55)HpgRS^RM+Vz0 zF*#qS)tSF&yK=*w7f$D^thH30Q+wZgamuk{cD?o7Uq0qzmOr>&CU})!!o*k9c#w)%eKOg*#m0ABQu$i^W2pZ3|IK*)hhY6L|MkE9-(c4NlgsM< zCzlm^um8nm1tRnR@5L6K+mHL>|MQQ3Qu;qHfS9|3X!?{jMd6D-ZQ|?mDZV|UJ{L1(%ko^DsUf`V(1S-NB`%u5}*YLHH z_WxuC2)E!Dy z7p3nG&%LJ2uh)c-qw!#$-3!aK}AIv)0dlNH)~e<|PC{(D)@M zxG!L~BvSu{;nIsmesYOLO*7ox=L%&QSDRtM4t45z=B?1N1OLdk`b2Yb z)7_Co@IP^W?#M}wo_(~xxibh7DR%^eq@X{9PsLaiem|=tuiIDr%~Z5Dis4Mzzg4a6aKmrvIAr9MY;Z-ALo$Xn}iswlym0B{CX^nIV&&D8>v3oqzi|=EpK*Ru&~Ag zt2MB=n?j$VDn2oA$MNk-m{$}?)e;lbv10PahQY*i%}>qsy_!Yi986s7{iI0bYuex0 zVR@^0d^E?BVotawQehuHBNy{u@w8i{oz#cp4||p)=6b=C z$+E*ubFZLTa=Il`kA(%+@MeA-1fC9yZXBQd4}MCuXN4n6hv)hp%KdtCN~{#`;(qxS z{*U2c_zsdNI?u+pt}^{xS^kp@&te zgB#F%S3N}6H97U#&a&H6>Ecoai#_p;X}z!4%^w|OS`M+mmf8*UUbi@lmb9Vr_{C`Y z-6~9AFIQedf3D&_r!PbO>)gksX>l7?mqRJ&5Z|4(T{VV4#jawYc}5{Vwl%W7A8RQT z;U!Z@!iE1y&=gVFkN^Ix_uwFzx?rAe8F?*=*z42X?)oWgforV{I!2|$j!2Ouz*XJb zTGyO!M!Mbt{Hsgo34NS|=N7{+rk+D5|BFDTNdGwWcw`5!X(TEM`@LDNFD<`$yK#X( z_i1AL`QgSwcF5>(L;u_?{Pbs`yTIiU#HXM>-J!b)v8YN82~c-nWS@64b0`yE`Wj9a z9zT5QR6k&pGW~Yan3Ji+D@7svP}m@tJ}mTvQGbo{<+KGpu4bnU(~-Gp^@nly)n3IF zk2!pb{KtP!!IIz(U^a2nUB54XZMOVz%y8?s5ly=CwUhIX71f=brlu{#pCFsY9LrW)vvwu{!M-FePvsOQZklR5PPyQqE zVo|;?o2(xKGf@}(EfHeo`|lI`D?U{K);u#qG8 z=(B!<4xL$KHcU$_acj4FRN^q+AG`K-cM%#02N ziSocr!Ex*Iiqrz^;7L_$3SQgzph}U^cRIUZT^Ai6ME2F)Fho+lFFHpa zGEsZQ`r~;`iZED3V+>!%TfDsY!?H`iLA#U8jf$xY5A^RF>oiaO2`7-V%3rR#Z* z@FzIl7+p-HoD{H~CMO_LNDq=tG zzW3p3h$Z;!)G?;t!{-%?&Z{5;2`5&_cVe`Su*BONzImjM;W@EM{D|h*b-u!SsAm$g z^gZhrd%N4Kr`xRtuE$`o?fZmY1UbYT0g(Gpe-&e-PxHC`9E^2mxew$lFPIGvPhWac zwJg4rTa*|J)nHYG*&0SJv??YF`t^xE{-R%ZmipW8d~GxG=hx|HS!FM`cqh4>G{ySK z?VKXls9)QQM|}~O64T#QOHoh(t4ln8Ton`2F=*^a6ATe?uFrP%91uLu=DR-oRa+~{ z%FmgYp8(75Phx{@k|qp{*xru&+?8R9c+(zg?CCg3o!R~+Y;#q(JEJ{zhzk5}S-!4R$lYK+CZ z;gYQV6w1ur4LeI)4$9*_-Lms7U)*y8<@?eo=2a={qTZTsaX6nG_vh|OyP0S$SBjK( zQ#7~NU%?8o$YZO;{b2vk5@C5?kyC2bNWM8F&wd4j3gq^V5Z`u~Tw?l7N8uesAJG%zqo^CdYcAFROni_>-{UV( zdHvxpCI69)@v`lr7U>_rof#4oGES|~f7uG=lDWhWn<55+wP@LGwGEG%Qn-$H%&zAH zEu}zrW*3#V#HBhV}c_)GW5@@RUW>0W-F zc#)$94^0$k5KWNL!K!tyYjL=STO}f?KhE(qL26N4Z>Ak1B!?&6b%$CJqJZ z20PJnkOj7BKdEVUlZo82uvg%xsswcZc2~v($b26@!05B0yRuR@;bvqorX_mnOO4)t zI6oQ9<9+yxu4%kP*3I!;=}H=Ho~r+0oV`_*O$Ukr#dH^wY{0< zZmAM?O)yDV(15?bgFT;6(Gw@vczSC3xq48$@OAmCj3~u5@R|{OV6{zUDKxj6S<##; zyiMt$SW)0t;b4XF*yEQq@F2jln-smC*N$>fq9A7- zRPV*Q-d+!^VzO!6cIU-??i$6uII7YP*YoRZdoM@VNzw;RPL6dVql5e{51)Or=107v#-zarl9j%QwR=8`y9YDB!KE-6yIOoSj_xxKX3nbYGuz>!0VE9k zKC|RAoPMvz*eY?iEpm*N2(=fvGkRbTR~9V(a6XI^KbZ55f8}_6u>^*{o`~~Ti64lI z9I@K9vQAYr$0HCmVJ81LIh`@X ze|F$43->D}ycsFhj+Xf(xq@g7I~O&-v(;@MDEGi;@3(;C7)ofmLn_FWc#ek)>JdN*p2GWTB%pW)IsJZ);M9sK_&vnk2hU6DZ_qXIw01Vq0q7 zI5)?THVdaX9l}@U0&Fh_gjfUfqu2ym=dL$DKUT>feQWe8hCO2w=bpeUAVSl5&ah*t z4-ouiyuoE!qD_gO+tc^mE{I5QCKWM5mb_baCe2>X-PqRc>iM7nl0-@ z94`lbe{EZ%2n z7Zb6zD#}pPT>+Py*!g#`CBjO=A}aCY`upsFr-SK54NsXzDrT3yIbJ~_S2`JmXPLXR zgZkqe?c~htgVek!jgf@$8Ov>NV!v{WS@}9P0(sVml{^}F%{9$HZhit3I{F#jD<#rr z&}GJZJ71aa9fhBJM+2gpufxtMS?$swO?;Sr5o?_L8f0JkYLL{>v&IH@&11Jw3%NtR zx**tyINT~1>3rK-3Hr3->#l8?`^0y&B7=0*aYTMxDR$Rcequj4YCD*lNPeZp52v*1 zyYr}?NYXVWF8lE7t73P3YIg_*eH1-5+wkzm)@b16;{<}32a3c!D0R)dt|YkPY4y)F z1Ll4{tEPHlo?%>PGI3fauyz7`Gv0Z*jP51_jC))bM6S2uVu?aZX$C6F=k~4Mzh~n3 z6*KuY#Mu+ur~8&zT76%eH0qslp+6BmY6t9$Nd0>pV9xw;pK89ppW~iV%RGJ^tqq9l z_jV;gRu}f`{zbioqRk?QB#3pNzrMe_8&Lu;zXV*{?mn|-&kuc{?@>v4@%f%eEUx%G zdBunM;=9tPjZwXpZzqhKhRr``%t2&^>U{Yj6viEceSaNg3fGP$;mP|k#zu!{vlaHJ zPrkHw>xC+yzb3R%R!CpArzKh7)wkn0*#RxAeuqn^O)_s1sWQ;2_D<>gTkt4j9e1l& zj+bv9#^2Yy4HG#%k+1XI9y5pkiK&+w;(E%q+YxcL%3Y|SG^$)Tqtw@0*y{=WT{(CAb-j{$N&7qh897+HNPx1jV0w{=i zpzN}a#2xhbqsL9}LZ;(mUhq1R6R;`lYT_ubV=2N)qHU@`YM2sOd|dR$EOb%NJ&eE91n3u1Cp2ojc%lNw=D^s zh#s2TDF*XqlDT$L+1qfPE^n*gRVF%o$k(5uO2Cx3tcRDc-CIb`R_&T9HkzjqC@?rLm>F0L0d80Sn_E~wQt&}Ie-k~+J_s0*E z%-_FW%Hu@`0o9+19YAOe*0a>YHqSke8Zo}GwbSXBfw6sH1@bBc;viJtW0;0J?|GIb zE{a3`rdus{bM@(@I>Hv0}}Vc2nzY1)T;CMY3kR}z7p``V-ezn8w zq+FnZJ4hJO$1@Y&KU9=#LLlQ|>iRx8fU`LartRE^6G*k3o?Nl@DGQPld3)TVbUAU) z(T_N~*Cgh}zWv5-+f^{_q{=o z`J8Qc`c$W~B|yCsdQ~3JKhe6d05qSke2PF;AtWP+jYpFtg_Tmu-8+C&GU?jvg`>^S zu5bwk*%K8g?l?Qyfj@k?{C4N>DBgcpca)zb-LZg8$bW7^?(@5=>#HBj{xIgZd~D&b zrXIp7cqV%xq_}=bNpKFitziAT(1ZFX(8ZJbal6xwD!Qjj)$rTko~#xH zzdI1_8>}3=bBtkvYPI0D}zHXaiz z-&s}-Q%~2Se~*gzj=I+s+brbDZRTbr-yzd1a1RIKc5~XtFE~y+spQeta&DKz7Cy@z zf=^&&pZn&@%dS3BPWfhdfCs1xP>_#y)p3=OBIW#fP#9w)c+Br>hKGAZ_(%|ELbND{ zJ6uJC`j^Vp$yG-_vi*DX%C2Q?B=rdk$H;L zadm;_Lq?|eUvDk~EG2d}p~0K5h{OBD(jRpSTh>ITYtu z?tsw6Uj0ylf`LL)VvJFBrs^Qy+&Hh@k0BC82?3bmq{mVxL=(;I=v2>V&7l1DGM{NT zsnl-(DA0Xa=5PpSu$yvYdcT6TFUCI+3#-Qn+d>%FFuZ}M)3aQzL$6zP67x!CWM_Mv$2hBNz|g3r#6KUVJVTI;nn zaM3A{4B+g7qv1y5^)IyUFF`lybF2AJ3*yReJ&B{AD@ff5>FQ}u{UF*us?tbvPuIAq z>t%ECcD3MjXH?-xwD&~G0po<8=IwXBk0(10aiNZTE&T%P^uQ@dU!+g4UDeB%gaFOv zzk++whwA=;n20&Iq1L~_JBjR@IgeW%AD-AU$Hm<2A7pm*a%9RV)T85QZoqu2_VjKz-m=jv@)&bbnOkF#bNo8L!V^|(fKRrhtIET+8d z44?v~_Vsf;4Ct82>pS~(w#H8E()CFtQ@%l(W8bddMthJ{Y4hg0{WRlU;hx?@s=7=A zLfF`iTA+lpP~;Y|k5=kUno!(Y9O4Jt^kqR9`qml)3F|w}?^bgCD7y_G3)-3L;#-hug6E`*JDq7UBTE*2Ro55Mv*QVbyN=G zJihb5ldgO=D3EJi_N94kJh|20qK-71y-%;Qn25)OkC3e~o*vHo*!FnO$7_o(_W4Zc z8CaX1rD=Vt%l-HbViSO8p2UP%yF-N&hvRSNQzkNS3igYgW&p^q_I%-Qj%2I8dp$QG zVwmE$OGxpgUe(8KJf)Jeh^$h5+PMM*726a-);zQc7y-5qAHQu3whS*`{-?Ztr#}P-kA06%F zTg#{Z4nDdjbKMq{6MC-KfWHeS5?4|?YtN=zL&9870-AiejyduAjICRiSYWgksHA1T zQL;Lc2tfdO46cGXkVf}Lqvo0hQe4W< zr?)dWyB^-EPP+Foxw&fGgXWoJ*zg8`ZX?6O;dX`uwQ7+kPpuhqrOV=HUn{s64Qfx&-S#% zKYt%hO}tFDzTUqFo(t+yF*4jDpjg&aliL$pfBx>)eQN*60KsPD;Ys9}`wZNQGR!9S zD-6)qg=yvUPf!j?9(pJ)**Y*Cu#R@LFVnY2dEtdAN z*WMWRMbe-@4VgHQBS@EfTRbEaEq$FZVbWFVC}u#@J@4fAkU%00DzFdoUUElPJ+ZY2 z*xX&#QC#8_DTVGr!S;o@Pq+!!iCxHR_vCb8#Oj{i*w-Q2YimqE_WfCD@{u|@#i#r3 ziv0${NsAyvu#u!7s3amf#7?cnBcQ5t7 z$MiNqdkfu66sG?1YhpjU5uEbY1~DyQH+;j_{#flZzja2WFLby+$hY0k0Pi^uCM3JA z+Ae&kVXk>5xp#BIs>A3VM19cTyt|wckcb$~x_=;@7E#;q-GK|Cv%^bjr#br_wwtjF zC~$TpThlMhg^QGSs~CojYtYt}uNcjxPbwG$|C0f?s@s(5D6M{3D#X zUWVw&{E8_JelQ)r$LG>W3HlZ{VI-t%tM6dFbOJrR8wYhYT{@_S?+LDS_>#Uuxz){>j*a0&v;26DRFYD>^CWP4 zj~^UQb?8h;y=b~0Yk;7M&k&^3P`+b&k3FjI$_Ll7ri68$`(0m^&$T#fkAWV(B7;>W zpGo343yX>^6u2#?n0@I612*S!SHKfK&VGLS!m?D%_B&RtZLEX$Xmn=k(6KtAN(unP zOk-wyeMDnAaS!N{WNRN~w8v{`%PU1YDBtQ6MX&yJu~uy@Y>@3Cm;*_&zkWS+P~Uo& zJJWRctA_T1*R;I69j9Z6dqfTRy>w^~*8AX8jqd#-dH4E5SbKCuk-NKojKgomSk+X~ z)JBrz@WT)M?&Oei^G;^_$U9H@SiSx%sUE3{oPaIOT`C`MF|AC@;1*At=$i|r)UGCu zNhCa;fg&WdJJ|Sk`H$MXoSPqi(4)<2qJ43{29|JK=i_g9j0*5>(|WiSzH&Se(Zg}u zFISXEFE(E*6|n%)`cZ$sSsW{YW;Wt$&0FO$d?G4wfDPDd_ft+9>(nnd`u4}W8(&Y) zv`CoV8i2dGNqt{mEORF&+J9@`0wAR{@|FO>>5P8ZeEfj*@4nI{kxL*_Q0{l8RQB2ZJh!Hvn{9J_3+8IC%~rbef92#b&)jd zeO!@t&IZ%?a*dqUt!RzGlo=n*_TO!9b%N%;O=RXV(k!!?*xwZuR=7CdJx4Y9`K4r`2v zp&RY>-wK*_-Pv*KQS~aeo8{c8@@>48Kmh$MjBGljHNd zC8Ave7f2zOZk^jwvAqQ`hsIuU%opGOa&eRgE%|bx7{OX5v9vbl)fC`r7OrLcemwY$ z-qPT47EX@&8}8lnaiEZ%RJr}tFEg$lnuuU`duh9#TV6#rV7IC!AZ^P1*dcdsvR?!V z?IU2P4164=WlzKu9V8K_(@SVlYCF8Aykj{n18N}QI;oxW?lgt7M1eM7(o#vVhZB;T28h5SE*&I((!-%!kE4)y+JPH=lQ3U~?wW_x z89ul`sT58Lgkb9Y;Nf=i%%50LIm>Om{TfZz9EblDh}}F9 z%n=s@+Pxa9O1{A2MOwFJ;Fq`&q_3iq7j{Tk~%ezxnq3 z5+@H~q+saF@cSO?uY^&!S1184*@0y662{fLre3P6cvh2$+*W4~9$tROTKW?_HvJ>4 zpVPfR$!~WP@;7*@cHk)uy?P6#uV+tvc(NC52(XchcaYA%m+6bA(N7FQQDtE27l&k! zt2c{skRqr#4)5cMwr{jC5Tc8~(?R5a(cvu#hTMx|f4weSz4OS@d55LEfo<;E7QPzS z*Y&qTv#&z4|CCJFygm5?cB8>t0Byos^eiwGnz1y8!JRIP2jU|2S#i(g=n^)V^VhC} zm*t2`B)yeyQ;4m{8O~D+gty-d0d@0~ykGP@VfW1Wg`YvjUV&8NckHwUH?cr=(Ve%Z z6*Cd1?je310tSq+1=zoddDLFHqmZd8k6+6QVck7baL(4tIph+t8 z;GPE}EtaJZKqbTxkU0RrdX-e}Ae-C|MsDf2Ria?SQns60@^%b(yg>PndUGH&(NzI7 z5Z4ivIqaf^-pb%QDeju$EbNBkDf>i9E>q6}DsV0veO=Zwbtbn8AppDv{1x zi?RMxew`;_?A*|3I#F2L&Z~SA=m!&Bt3c?Uor)cfpnWGhEvFH{x{LG49p~VEVp{E= zr3%E|b6PjkE7VdEV@1G3NWWVo1_ikTYs_&o^L4M24U>0Hu6SFu=x&0h&`eGH<#Qhu zYP}nr@Lkd+y-&xx7KId%-06#JYod^&4;078g{Ai4Z;3Mw&)HX<3$AlQJ~iVnhkIVK z=>fL}S<0nP0R!}$?vhj}IQoKnnktjS=^{b}R{T!p&5#q1&6YAm4{w zGm_ak)JWGU(=Qhe&5AOK{5Q@#1#&fBAczMnzW-cYg4w@(?s0^SsBd{bfJIaHzip)GW~GoHi*AXjAy0m{_=S*~b^I6W))*a^kCN z2!e_5Xu_7S+(;#48gabS4Zk97nPdzQxsV!mHx)cuoO8g@>r7+));_;S5PA=vlxXdj zI5hQ5BBf{BV!!T06j@U|7^E6G#Vt~^Q5 zW9{e^cPCiQ(=h|k>p{e>j4RB}X+5t&%grM}0%pARFmvuZGM-V*mH{9Stu z2=g&y`E56A<)45{Z6Nh_JqA%<@*6YYGOaw;!)@;<>g!OVA%dKV?7U#qNvOBUy1)s& zP9?wNzgY$yTo%5~M`;ZiyE!v7=IBU98WDw9%W5wpqX8odw+UYu7&A?X|HhDX6|>fs ztLoXVD42hbsY4%k;;}+~pgNLR2bl=g7|8iD*zlY`aMakyzr?`5G4=LXn(g`ff|*;! zY^L-5bADhK^Et1+CNS=KZWhO(zTlElYM0fXwH*0~+lz>O0!$uB&`)7IUk-{Ks` zLuQ+=9+9MkgcxkzSahf~PZQ(^oF6{$3}rinqdwk_M@g8A>c#^j)F_z2o)bf%Z7iY3 zygPWf`_?eu6b~=2tyB~J8aau_`J9!n3fHrldL(GnY&^SW@A@-S&5F&ZdPRkm=<6MK zIKhi`C|$~yBQ>WEcYtDkH1?d@#SYDV3pel&56zA;9;PS)m!_O@tZk)GMDdXqiKC}m z<$4i+Tfq1JvUb#omBZ^tAay3g5~|BNe2=q~pHhjyW9>YSKkD*clxvPNrN@^~Pf^3j z9;40H-x~RpBf*zfKMovM#_;2Ld(3oG{4@iN<&l?8@Ii&iB(gVgfHfvk91fc9&3T9< zo1WJgzcioV+ufsoRj3&rITe(4AOJ;S0aba&zyWao%|r&*q+fKiUJs?4@a55eX=V zW+uk)tkxki-kgHpgC1lHm_J#u1*b=L$MydV_cZ2W8g#7@g)%fr%9O^!laVQ62(@nc z+%lkV8rXL(^VK8PQ}e@T4Wmf4-bnEZW-9sWZV`$ms2TTte z?QWxC61HVV6J;Wp8%F9eYD;JFhdEX&{-2xH|HN7!BF z%WK>akU2YvISHZi{!HZ?JqA1;!p~m2AsiSAFV?k@dCp;Pm=5e2h{X2@Hh#Z)FO1dE zL_IH}OGo{|Q@aHeQv}(q#>B_1t0HR}j%~3l!$TEW%K~@~?9?X3Yc^bb$ zAIUce(&MXzuobb!Wc9|)S0WE5*!s|PJQ~s~Zl9b|eXV8Qp15ik=UM6%@gBGsvk+H0 zn_wJhLwxD5<+isYru+_+T4C9tzgiu@$yE^!L`D@w#=Z zjheq^{(J4AVWk}U8LxN2tLWaor>RXJ56Av|W`a9(N56jAosJl0Tk-=&ckTs(gAh*L z>5_BS_YVnqic$AcwH^K#swS4RBP>ty2Drth#K-NoV;&VoWAsM7MPYyaA!~pgeBE2v zU{kKRjjvJ7`tHtSmR}r~N}!f3 z(iMPx?$_vXM)ui21oi)Vrev?(vqVNkS_8^o(n*2M41(Il`&^CCu@SH%vEcZ`?%w3buDgpnpG_ zFx-3)+#BM%xWv9b$Txh!2g^A;OnDUi!f)en26a2}O1-PoYe{D;gz2dNfN92Kbgpmt zXty`2+GQ*J>cxrI>aX4A2Ss%gZ|N=j9_4VK)yAak;=wNF0fU<}aDX`tbnWesOXu&h z8wfSw2rTnab_(B|kUR`*b={t{pUS8XF;u2F$rF;Xp}FgwKUw?Q%MJrUV@6pe{ybH) zyCYh5#Ua6HJbx#wZr zs|R#0EdB5rI+t@!X0O*%QNK!i9q>e@4ynA+&SZN`dz#o7fuV$`@D9V7K5WD9o{PDi zv6%Xo6OPOd8cpqoY2cMy!3TQPi9^iIcr__sWO*gr?Uz!buF(zs!utj5Y7}E~)cLHG zNbp3GPkm#47^$Wz_xWz~Xiwk%id@GX1DUsB_U8hJv$t~)Ep!-+ud!R#bSxfwcYf^v zSU{)0&}hR4H#sfuyzbWe#zP_qI+NF*};o{$dC4yi4&}FA%gc6AbP&L4Duu zE!)4;xNtbrJD-q=)3h!KQ z8Hdwoj2V(SN5bVt9JnmJn_|c3-1Q}HJg&6A`U|S!$%|+?j1VherW@XNq^PLHOE+uA z7J}%FVlMa|2J$|?pnMdJ`oy#meBl7;@AHKm?}wAY@F?xJI;=gnBXTPb zkU?K{;|VKjKbagKgWBqnnk3ygzJ8^&ad)n#q#6QjOpGtTMWfi~?=8Wm`tl^?WKR%h z0700h+|^#!R7dY9eV+LNldvaHlu*$+$j2C7%3jHj|C?(F|NC1YYHB-r+{+PGFGZ@G zworFbN}yQ2Q+9ZUyVbUC0`;(2S`^evJ=~Ox&t_(JsW7|lIR+IcWNnMXB*=h-sexkI z=T_Keg@TfX7R*GUg~&sxYT3@JL1$_S*ik7*%TskkZ+g0%8P6f++w?x%Sx$?nUo6-q z=fO{%llGM%P6$>zxQEjxe)((61{U`_wQ>!rYpB%0^bt@*ATEy^z0-g=+^?L7hDyc% zT61BI&sPY6A4Th0x6r)e4@Vd`_Nla627+<^e34Awg)p{uC{P`DO(a$*q*rd{(TCG_ zAvX8o2PQxxd{Pt8?YzFUSI)0>hi9fSvcS+ik4M;ClFJX%Ayde8`XpUmEPai?n4#qL zukR?aO+8z_mmB25#1$ytk=c$dUVR`rY)BsF$5T^iy?1|!kW`y{Y*4Wf)s8%$?Kff* z6Hqy0XrH5BHW1+(Z@fMEoY85-v{}JzZ~y%X;`iwR7k1?Kr?Z&9JVK4{CMAN{J^M{Z z;5{Th_w#0072=YI?0C_cnPP|Hg*i*Uar8c3cEty8BM3o4>sg4f6Qvl%C%Eb>F|)Ul zpA0JP9oID&6w=!mLL2a2FM>Qh{VyKjA9#Ga=iH+F(Bpz6BLI*ZrT;cQr7nG3$e1kN zJP~!HA8wz7cpvnFCiT;;|1RUf86PPg29LSNwDT-H4z4{3(@xF-yJ&{?a@GayVvam9 zf>3@O72^XfL9P92)$+fu*@Bm;d|-xgaJUyCkHkm-yAko4qZXK5oiB9k>-*&u^KjRc z2-xA8$5N8CZ!xWs&k0w+|73t7IN7n_-TfxlqB4DdJP4O6xvbEs=tN3KfG=VlMgHN{ngvmr_w_AHnA&`l zztBwdnqTwf0vy`clqL*-84Bk;oV>D~ZFAQYWNDLt zL;U+CXC8NKe26}0nJcdf+uP#)cPe3$6f|D5gXy9Ph}kcylqn|&#KcO#v7b+ebWAA! z+#0u?F@3QI9^<+z^+nsY`Kf;lkEn#_qgt)-J4woZu+t@df@JHXor`sVfv?p9U=jVyQdFv@1KU1ec0dUr;p=9 zr|Fsgt}1EX*5x$cAXa&U-eVp%;e5Hs;0sxAReLhl?shW(gg|d=R-6xLEahci;6!tu zHIA%2q>%|UEbqGRS1a26C2xr^$C2&yKrRc@)cbzBJom_9-Q2Ml0brw=gFJD-vAyl+ z%k7HWXMthwAm$*vDLh8P)aP2FfI$6_!R>1T&1H-SE9Xrei)9y$i$geRD*mn$ERrWv zjNPDnS-xL$w)B()Q|*kL6DsRv2|51A+ec^@r6jyV_Pb(6vD&ORkp#QnUxku9vix2b zkmT;KDdBzhh)uJL)lG_Un3S1+|Dw#4z-c|=sNJwG;~7=GSkc3B$>>!WP}XV_HJ%pJ zUR_0nlR?Y(*Hi=Lp82*VaEN>6GrPPob)w~%BSiWhiLx6f`WmlG|6ptX!IOLDCy>kj zATF&70I>6w3&Qu;4 z;$w%=;1kb2^Frot^8^?4xv^+vCOBERyx<~}d-?u-&^epZw*TE$PLMD63`c7PTDT_OG{m&_zz zw;X$xSLGgLJY%x!n?MDX%Z~+;9q+LyPGI%WhY}p*RI|7WlfYbiaWzyYUu{jGZAI%J zJ*V~efsp6i%|%1%HP;`#>8%sHG5GCdBg*GfaU_lD`qc~mKcIa7czl11zX}-aAd|Lj zF9@8({6G1863Jv-E1KpBKNbJM%ln7S`@_tY4@2c7__MAUt~w+d;=HmwSt@)!k>;k* zNT}(Hj*J-{8xsIL*WO2*xJXJ zy^7oA>hs=<@Vo@H*qBi;vr%40U1`|l(|K+VfA)Ioge5J z{weZp1kLi5{(jp1cb=aKl9p7Ht?ueU)$UIXnRiD#%7mX#K|Z8&@^5NjD%S1&^=ovi z$njNqDf4>qUPCfH`SJ&6R(|i_tJ7%;PH)G-rdmi_CNCo{X#exaFHjFWIuyZ$tV)+z z_SuRSvMB$)$mK%MyEdTNjxdiororLZY!Nry95P7q*)?3$`_2^)%;|K-0t zPGdSaTli7H_b;NvPo$uyQ4x|F!3O4#2DwDz`*1FL7&!zze~UkGkgTqZ6s?G-L0Zf~ z0P{lb@IOrpVRu+e<+_V%vGA{pDJ=*IzqeqFK+&|o_z?5k1%Fa$m^*UgD}C|kWQT89A1$vs^tbLL9)Iu-@7}6A0LqG` zF^K^2J*i_sULpRLQ7|s>yu#Oake^{XO{Vmw`Z-7gS$_z1QVv#>>N|dCtn8JdvylDi z)JIES1pgbH<+6)!c106Zj^L5T67dw65Lp64E9}ntTQKhgyWE5)&8WL{N8hc1??G(w zwZ&dq?#hyL)bA3K*xkv85q|P}6~pm;yVu9v`y}resY4jlUs^EzG;iP8G29K9tqprm z?pciAuG>qKGh`eM=fQ2LdlABNRPQ#<1+A%YB=vG}`%zC%RcyNaqGp_0d6)L-8|(_e&=zl$060_(1zi zi6T*zwWo~(e2*|spm5PWHTXGteoY)^DWbR#cCoq#vY1uCr#d%R5w^yITR`QYq^~g0 zj(V?Z5Qu1I77oU`VXHgv=u4ZobJ<1S{P`QYzIc&3Ea!*vfcJshvijN+^6J(`DRy{< zSD{(WaA`QtY1;O9m+j!fGoQ+uACu!Ke_B-uyx;|U)m>+nU zxAQC3d~0$R#9*8B5taFT%CeW*xXkB}F1O`~i#d_M zQ$sOZYgYl3i(lsI?+*vH<)8ZFWEp0tX|}}R!zH`m2Uz_ZZI7e;{$xp8Ku&{Xu9BXY zYL0&w_Fm!xF3SUQSRH~P!qdy8`FwzssI`tP_1GD%Ufe)UFz;~^X_p&#;h)3xc|F>F z`C_vQ$)M%xB&iGGyS@z8aU>|7g37Ai!&C487xOZM!`_5k8vZ>6$b*T1jn8 zVmgesAL2*Zj;EIeDBtcNeh#ctTiOXcwk=t0HFGuVdVW6wgZE#0ic3fZGdZf=-vWA% zh;a+$14t4&%tbOWX?b)!@ycJiXe>XUr~S?(c8h1F7RBoDY-e*XyzBK`RpH@DQu9+f z6!?qENabvLQ=y(Np6izBckio?PiFos7G%%yr2@D2cDIg!=aNSH8@iaTGVKa8fCu$8 zXd1vNR~C|hBG27L{-#9)tr9kAGTO5E?_EqD&G>r#B=ES(-s42Xl@K3y6(`R?vdyD- zxSQPxzxMlpWnfG%W4sjEX+t>U9rjuG8Z&A3M)m z7vIEb`s9`o**fL%4stinzvHj&zy&f$54QT9PqzRH#>VA?sDF3ViqA9PD1b%n&@Z*a zkm1OjYR5ZS{j{OwaVt$8))f5EV!nOzlA!hl;(ed3<+>IP%u`;go( z+QOC{&;g!7+i;9LwEKI(R`6C3#seSE6Yv7LL1OeMTruCZ6C29u@-5!rpuFyXI`4PQ zvjt?w_~SifYrfM)5vSg0ZfKmknkcE5>;YbkML+_Cl_F={1Z0IM1$fkH!5aC{pOpI} z@)OBWKHHwfRE_+g;C)+E|?BYWASDdNd9TJk9C9t!B58N3HG$_FdF z1ID9@50e<1Yl#inDrrsHi7X~R}B%G(F_O$^z`hImCD_k-c#ZrqWN zwvBH)zpaWZ-+x%MSOcKsf4zI!A}4qf*I|;WqxK4CKY3ic6u5(cwE(EMppMF|Y!>=qHz{DHcc}IcYked*Q^r8`&sKp3I zLO%o8Qh)m-%j8L+u66}EA4%3WjZ?gU2c3&3XaYzoc4F778U@!pYKh82VpTY~?c!ZA z`>s{By+LDz3$$MJsKrfgaj)(l!N_BW96t$lO1p^$snd%8}m| zT8y1zT^irCn_jp;XD`VV_593t-uxPz6b^(`(x3x2CDtbyw05-PqyQ3p|=!gITk`N%ibZ{^d2#jrP z3#h37URMqQwx9W|wf4Jf#+)&2BS0F59GQ3Cd1s4)4pi)yIgEzZ*2fE?ZXI6sZ@59#dlWn{8*)Nj8y*o81QOZ8s9;Hs*+5PH${_a!z zOS*mGTm8y%-l(4}1kHNS;cK{m{M;B(dony&(dRC2wvJu%6OEzu_#=MbPigbuetdD38d_O-aV>2B}FoAH?bm)+y`Ih}Pn;Z2)Tv?Z+NbWH6e z!W`D3et&BzdZBl|jAZmiUKYmm>C<|Bx|wf2?-uA3eMb35?LC@q?8$n$w>l$xcEZo} zk2eL<-9@Kpd>mTYNab&6-@5MS_zOicJ9;iCaPzBO7lpG~XSG>W!a5y8d&9SNyk5b>EJMJO5$n&>H%4>pG8{hc5C^FZ9B22M>$n<$;`EHh{df>CQL1ulk31|1!GS z-2}=B?9t49*i|9?-`6@rw0l=y20hl2!E^V9 z-t+dmMOn|?ao%dZKkU}CreCQ})~lE0EK00b8!*P0kd~a@onFv#`}}y`J&m92&QtxA z)+&#)mk$%&`EtFil-IAEf`e-zBj2PQF#6~vIMSNlwhmF#9xv{?A168$H@f!Mss8l5 zSWn&&8(*{g>OSbxZ`IP8{fJ!EK0cP+!^`%5H6>q^j5aUOTHhzVQ~J=G zeb(t5@c7((y}zlfA8z7?n+{dJ$?3tm8%D42NEXZY;i%_xzNJC%`8_j)aOz9m=eX?36OS>~ZY+KK# zfp_t&JP~oqBtT@djY5-vxPJZKm0MWi-#`hiUxzKm+?Z9bHp2lgBQ_fS-%#IeNN5 zG^crNyzHx64_5A*Q+>Lh%muRoe_5i7p&EbmS@=hr1qSxgWuZiER8NCo1(0mb|MK%` zF|cWn;C3_=mbkiWg6@(4fVP${2nt7H@q)x_*jOS5s^%YZsqr>>FW&VWa#$;lv8s=FX*Q=KaX!}+@({|T^{bXx(kBtdcgY$>E->#XELg7 zlIW>&l>4vBO`xFSKAjfbZMFJH!-*z`Id7=YgK0wfx^y|<*JE4W-{JmJupRz6DsL!g zqQQMo*oGSMod5jeW=q5El*TR3`y&+)a{XuJra_{t$?j?ZgedPLY=pee^jCWv#H7}> zlDqC2yPC~MP8P@NnBW;=l+hV5_}w`qV~6%g-SzyoI|#PjDA}sX>0x0%4P8XG{a}+* zElDdMmCz5`Pyxy-!Naqa#->Vb!z3P~|L@6GiDA*&eyQvgAKvkz!tNX#&s}*v-%>p< zd-d$7VRyJ&6&NzO#$(#-Dl4V~hCj8GeQX~vj#g6buD#pt$v<{aNqOI4eEB~$0RF1A z@?4K(e0LC6^);us>J{h@fY_K$ju8EeK|KEDaD)HF`XozH*W_4yeOLHU|I-;qv? z`n}9aIWI4$@~)h){G81o$gI^fT1ST+6%#|+n%sJYk6iV9yi@g#3FvHQKJ4J!Xco*@ zN)t2XHw_ir^HK0+9UW$Iw`VR}DoR&wRt$Q9?RQqeUGwONwh{DrEinrk&;)el3lMk@ z(&iR19x4(|RqR5HARXeWsdcpTzLB&H{%%2Kmi_Pd8y_mI8mGWuNTw$`vKy?&fgXeF zxX5##$3>p|AY%a4Nijxxj^}dSt$*^E_n>K|9-YwVtW~`(YF%?q-j}tkuS-}jGM42U z_GBeRDCQK@t=g~M=^^nwgMQ`eY1lT>z31K=!vqPDXt!;d#X<$Kqk_3@ne!U`5j>*a-wN)+8in?2S8yz z5B3jks`vA_CHuKtQ>SjE*U3w3%^pZqxyP?-iE$k0bthxH_70c*0|?H(;Xf)qZPz#~ zCuSPJl!ltNi`fRgX(&fn<+2BQMz*u$Z_EXIXJ^a0Y!!Y7PCztTg_#?Vq6n%P1tJ3z z3WC}Ntc}Ftdp(sD{A}}IY#-)<$#*#Nx)G*`aCk|-2p&rLt~Zj!?uG{u?qqxy?iWo;XE=FD#yW>Vls_btQw8b))^3>sr2VE+fU zV^D*UWTcS1|Xmi_g--eg-A z8M6)@E8M?SNpP7#bwA0yoaU?tcie4rE@H;5N+<9>$&#sFihVsL(BiSLhhWS)kac~2 zCb6xhef@1iO1r?haJIeWTH-a%nafyBSALPMi~wgL@W?#2a6{8JUv3&vFs9)U!!b-; zI$;@Ctjc5I_0(&OHlnI3d#=p)h0z_@FK$8S2<)h~1A0F7 z*?!c|px6Ig&*OQY^Ni(nEwPF6?3eRi-j~Yz;)@;Szd2kV#?hFry|w*p8Torp)oqn| z?syBQ1%uuv<=2jC$gbLmLA+W$hpiAcg1$WujMe1S$89(BG@#Q$+c@m@Z26W`Qy)D` zMNZgg(tI%vYaU*qXElfQS~9A(ZA35IrU&2IuBuhFYaXgY6QNQL<8@{0eRPWXmNe*# z8O|N-(Y`+@@Y(1&#W;0R#%W$v9b7S`5C=KdS2T#i`d{`x&lz!UT<82cZkKffMM1w- zo;8^~zursb8Lh{wZem%_V=eY%`sEyxhgOzS&1KU|fVO3|I(5&*!HXJ4Usao)vHjc) zHg>eh^S&8%9QwyOvP}vb`X&NchhV}pwp9>VYgOcK{Mx5e;o1t4hG)|r(VB0WL$qS= zZXR!Hk$ZZA5EgHmQEWVgB*wzs(#&5wCapfqf>ud3WJZg=J@|dfl&o{NsrGY8HFF-X zYDlJX4l^z%e|0^3W$mB5$S(JQJ|C#99{cPi*1_eRkpJs3lXIA>j&i<&dS_e{J16gY zewTI@6gx#H4rVcHaqQ=IYywwVhyBWCrym-*WfXNfLpS;EYfk@7Q4N(YQ32XO6v_;)al9q!J+YaqAe*VK|)JrjZ?btS`=&)UK&P zZka0RsLCVilqi7FGR;xBsWO{3#p1&b->}*D-6F7fPn*D#Uc!9VSFj0I^%pnv@uB23 zN_-0Z)j~8hPbib)r%ADPb%FeI{SlnDfKG5j)FRVzYku zIeJ~Ay7{%fI7u`RwUR#S>?w;wE+ky9Rq>ttMH} z_;@a)Zqb9a=DV>OkL<{_N9oJ{KHc+xtZBES^YF&Q`r$`qlJ$UIQRi_#<^R-m(6@BHV)sgXhyq@S8Wk!V+(25uCIGe>-7Aq zKT|(V51xs)e9S}Ev%)kn-B|rvr)NkUpzb)=tYN{i4_(xF@6w!(IG{iSPR2>jvhuuV zy!4)2vxo6{N^IPH>TdReadFE0i!c90m9)KDSH|@wsO{LQNIh? zH!5gUy%ocq($As)SiuL9&vWp{BcVWA%2~E^Z#$1*G?L+Qf+}o+#hfAz&I1`Bh^JZZ zhol*Y&SC~Es#zs%35oALlg!puS$mX6e4hB}bZ~uKAWv@w)r}SxiCb=)Z)A!n$)a+0ZcPt-wl}~t|=?=Q&Evik4O8mXkwrqyPtl6r%;Wku+=y*itNXA#kwb-@;>+^cXUSfW1d3g?9_PfNu zNJCS`TX>giWc+n(tmo}wM=5n&1@Kk^vE!^eJSi)i<4;5N2;?|P$K#D>P*bq(AQoW< zat5#lWBfffpq?vyDa-O`@jdSg9?+wb&n$AsIN8+izV5i5{jBXN_0P81!dJwX>lk4b zpFUt7#tY6Vk97w2;k3a^7`84p(RQso1)~vveRgwGV8heYv(ZF!i@Br5`78)wwGclL z!;|&ZM`Zsx<`OUUIT>q&=M+Utywo;=-|^DQUtiZfV_lB9*iC)*gFDFjosTd6qsE2G z7-@TnyDyl-8M9z(Uwnr7Wsk{Nm+^SY_Z6J&sIqtj{hZaU5Xn}gRm|1fUTj8EK~%Pr zZUVoE(TMtsy{-Av_UJexwhoQ4kr7*UtfIK-r>x;1ZgMAIZD((AR)=;fXLBD+CSG%1 zIK5_eKq;&B{#5W?#nCWr(y*Qf?m=@y**nZ@fB==)R8}Ez!;PICa zAh2Dzu2}<|_rTYz>y9Po66cYf5e@TYg>=K_~H0UoYhx*e4}KXFTVPZ zYnfBAE#LUiaenc;zU}yFK7cO7=hENfKV18#-L_BNLlgXzF~G24a*gs^ zwEKH&9Ve84&pqu!4eUc0BaFSO{d2Ni~oDgtJsY<$`M-!HlS_Yo4eh=OpG98 zk7>K~SKFV`jfXuVvDIRn81kRQPpofR!gEe$p3@A(x1$Ss|B>9mw@qUmG0o-Y$oqjE zZYrtZk$ZWMd?ugOpqmgeYdMdS88iFZZ}S9a+-jWh$2^|Tiqns|ImZiNd|B}AKgd{P z?=SX@UZX~s51+B$KuSUE-v!T8VglBxX;_r+#0$FBXuoyuB3sc48eA8jevAn|+785r zwVwgZVIS1j<;?rB9s?UEbiV*UlIM979N<&Q^W^e8e2(^)%6mWPGk)!raq!jFo-vZ^ zUYGOijHBJb6Xu-r*VpF)Q*gp3$TW#(fQy-j;)6y8%sgp=0RkyDy|JR*nw;R$J2Xbb zJFnh>RKv@z(GTh}7Q=1|0VqwI_91RQ^&w{F2_axU=oN9)w(w6^!K`T!|Iqc)jX2Jp z#XrLLUlG5g-{;Ds%p1NB&-wD_b7D`m%{OHI7wqj4KNR0@Oq|^_Kt{CvB7PKGg&ooF z?Xn+@v_YJp&-DMW@BZS`>ve*wBm1CSClV*#7{qMXvr6n@+O2~ZFdpo)zy?E+HOqU5 ztx*r4eZXT~4HsjT<{$L9mazsCz(*{SXk>;D9=gi7KKaUvCI4L7t$B^GH+mf_#xbn-9#MYQO)o?10d9cZ&~bZ z=7@EffCI{zh%J{hie`Nz?>6IF3qC(btx!>hH`?25K{dMX+O)Vk25{15gR|KN(Zvmbu>w-@|S#{@7(zu)`d$(~Nwv)B^G((q4< z!~N0CSd=N_Yc(p^#XQW~em|uamQ6_dlrk{#|eG>qHa5bi6ll6q}gUuw)wDmc2U1Rtf{imBESa~lS))}lx(u}Hr z(axEn(m&6cIqyB6AsMz%`9@`mE2!qa%5EOisBTui`ZpC0K%U*^`$Fzpy9;{0=wr-$ zX}`>&+x*|>>x@61$Cx4igfrJepUPsAe!?Hj)w8@T9DAzD7)+jt;oCS$KKoss$1)8gZ03lmU;}urrkPDlW0G>lHrhD0 zO`|;tV)Fj@U}yVd$Ad%l-;RG}y{8MRoNFFq&)FmUo;c*N3Tkox{poJ;>H}1zxA}-x(ey+eAH9YbIlYMbXZo>HqB0M&of;Us*DnIA&FDyz zyz2A&F!zm{{3C9!g3A1EV+@Air#q)R0I%o1C1|w#&5#curb_3h^YdMB%L`^i%qez?idD`bqdFXR z>^7`KbRdgFVjU{)Vjyq2VrR&Z-{J&dpIJASA2jPm&FQuehwd;#UFi^qR){R{w@-sF z==W^F+Q?tN4!FxvW#yla!11F?!neRQ2~d{kC1QM!$2oC9hz8wnN`B zW4R9Xx;^K=OMml%v6L8q*tK8h)EQI$c_ta`<88Y*Vfz*vw%Z zdE^%**P7he8O6Cl5H?e;OZ~{9^g|WGZd=pEYeM1Pc;BTH7Nq5{5lk^$Utl5A_B2l{@5D`M+ll zKn{TS|FMD{!1dPY9ks2@cXZ{*$e1|y+BkWF~DiSXoQ}9*h zlQ?$L!iUC>E-@~Rhm|otW6nIvT>ipKWvXYCQ2gx8Hup z0n7ov>qqR1Pexrrk(&cMxg8XHvkR-=T-z1nFnk=TYD$BHu6tC-gpiw0_k6!?y9cm0 zLM0w^6I(T63VUH@MI|ggd^ZJ4JvopHy*D$*$LHJ*z*-C=zGd86>#n<#$_LNF6%@51XOR0Blqf9hqN7#@1luruWjs_52IRD8V1m>Gjjeuu59DBZ;#iSvuh2jj~6CHbt!5T&O-eBZxeEEn5ej(6Q<>?jUSbi8)P zBLD7d>0I*J)})SyJvSA+3c);n;VW(czKef@&+4!3YL^nTWy7w6gY@wCz(mP8!C%47 zJPSvO&lCJBh{OAyo$WPN3}4nXMk(xfXJdv&HZB^GNxO!>VJ8wdRTp(Of|1f@FY4xt zc4Y0SAeFcbpUnt}DM9Dr(GO7Lz|r}y zJQqt&Qt98PIyVd-P3N$*{g*t9I$rq~`Yh1zJNsN*C-%QQKZR3piH%Q*xuWHY3nt)z z>uIbs^k5``xmNC1{N8inonUu+&7!yk4=l&$5PVEFZ>-?$z(9zq$FYj)3AhTy zdc+%V5+4ZXMC>l{D)~Jc4|5*O!6Z{-Fhx&vAY7))n8*n3aWsj&Z=A2$_UY?RFce9y&yT%QKIy8xQ`rem zC6{Moy!?k%U3f_NUq;LrgJB=%c`IO#2K3-EU)SykfjGf&Rq)~(cGb6DUs(@%OA#9| zcP(S`?A;<#Sb%dC_Q<3iZ)UeFbFKMM4%#U6B`ZvPmjQ7uHivd&jJ0rzR9a?8xPrIVz2zlmfxSk_bH-+ zhN=Vf%j?>XY{mcn)OZrSN+eyO1L|{7ayaA-kG|kXKYi*mZlp0Iu@B%wlAFEEA9&LD z{FVCzEXo%=Jm%cHV~_kfcjcav@4zNq@|ODC{pRJIW9>hD`V*YY#oU|>ykm#Fqfrzh z%KPFv6UHa+!<86~4!+w6$fe~-OGbjpYR(xpYUlaxd^$ORtIM36b|xIAjT!=6@)=f< zYJ9zw(Qf`=PX)6y(a-Lg;5%tQ9N5Lh53;R8H*KwkYZeciWWV&tW2&%)?G@gaZCRNO zHA=?(y05zGYu>g<&1JkFOouqL&N`6TPx~+Ujc9@wbc2g>!ANWhwa@b^*JvD6!c&{G zgARTpaKLNK2%cg`cER2an&jh&zlAGxTbKBo)F8Y=uo=!YS7e3JG*|G@t)`?lnj z{>1-e9{L zH*DW&O}EpLK67+D=5QXJ#~XjK)m*=?Htav}E3gs4rHH|>W8fOQ&>mFRDd$azYY6{J z_^tj{pA(wj3XXU_C(b##rWYw}mG<}87nia4=3D*X>6KipNQs{*oX(*vC3qzIJ%Z6< zFG6c0+~Sv;M&%K|9a{yL7d}ziKE!XwaLSUeHapQI#8$QKjMsC)Nby6!Q29Jhd9 z>PP zQXk|!OP{?X5*6UNcIC5wLrJY|Zk?F`rHs228oVnVRj$9rSi#-hX1F#phqk=+B8c!|Q_20# z7tJF-hlp}1aJV3bE));Jxmqnd_Kjm`Sk+eHtarXW@Dhu2)eEa%Ua=cD3v2?)hS8`2 zAJ!IbLf<_kt>=2dyfqf^g4uQ>}wZ4a+=<_wfEIe8AA;R>VQ@WP_$q!WZ2Jk_DM zf#l*oh%=>30RBR~6Xr_z3(j|}ey5*v<%u1<)( zJj5qBA#g#tffYcPWN4*=YnwuDEv9}lB55x zH>9%L&aC7hIi|qxX&a<-P7Uk%t}uYj68eb8i9H;uVP0vgJu?dN1Hn2kj9)zqMH9_m zShGHwPXZ@)#P2FfzsrcO&wu4@TzFXe?>{-7muI}L4cnSD7je9!p%8_EU?0qVKm(VQ zuHyKm$9x-P!PZu^^N$ruG*v$evhm2xrZH>6I1&@5jSMcys0|juIX3Uz#tRpqMt>Mh`DV*x%h)qV|&x;Y~EobBmo?Y#JD9Qst`58?WvfjBZ=h{c7! z^TqmKR&ixHrQwmW{!vLuI-0*D*avI&G6ui6O2i~T);p1x_z>sVy|e=*m*wqavCRE) zey8DL4({IFm`jXeW5Bu4Io;CIkt$O1h|QDz+BU$iqioVzKi$NqI^_fjnu-T+fTj-} zicy<^!@c&Yppv=(Y6?yR-wpRO6!)nQunoGn=r}j%H}2GnGQR>;Z8&!aSwqfU_%v_; zOB{gw_tp2k@K#Uc$A9n1XF?PtaC_0|WOZ#HZ3e3+>#Bx^LtkO@(-g zWi;-+fti*I_)>*^Yb?-)e$;$__k-g&l(G7qw5Ue4!+9{+D1UEQkJhHG_jd($8o;sa{# z1pn!C#5KJY!RNrw7qw^8?sZoFq?!5ybAaxg5p(WVJMb?)#z%kAJ0cWx%*g>zLu)iL zc)2)<*?4dW29qR(GVYNdmw2@?bJAhH@{+I4+FmeDeQJh^X0}V*)P|D~(`clMd2M|( zjrx~qZa3{9d20IW}+zDe+q((WV-+7_P$7a?E_zzlY$@E9*CX^_{S@R?A>`Qvq2Z(o%v`_zEK zP5mEbRI*P8w1p-eAUv$gzB}79>s*I-^;s_diRNBkxcQ}@e5q$T^VoEJB7E!%24!@P zYC^SU<{Yip_9_45j8DPf2n*CZVoT&neQHSUSAu42LBl2B=ehH@0N(i`i%owZRr?3a zMzF29Rtu?LYJQ!zC~z+QLosR^bJsMIx>2~q1ytv%!txK0r?6SXe=t{o^Dz74Rd{5LwaFUw$P{s+&DcJD!94CKr&TW-B0!!+a&N;hZzV5}YpKEwZ zPD^<{7(B(l@e$$eTylGtF_-rlZ*djeZ8vL%HQSBIahbHZH`z;y>DPl}borG?gzg(&T~~p!D-MJIJD8QBA26pxIf~ zXiB*K+vjvEI}YB^`|2CuZqXtq5EDB%!wwp4?VkxB69u!<4*u}BF8R@a`df^5&6aT| zpU>}CPLSrIKDH<3N44#CEY@?)rW0#p8FY}!cK<1eLk0^yiCh|*u8 z#CuB(A~`ji^Ih^8;0Kx?K^#{IXk(Xl=%&tgr>Y3Qf;u?uS6u5_b>5-${mXq53)Xm< z_p;9Ax{u_nyY8tn<}dx|e~!nmnyKq|eA{|GE*C!WkJomMp=ZX#@?O}IfH9(e4qVMS z?w?!chUeqJi;$&Wbw52~RbB@jZd>HT>7OX;aDQYB0KByAYB^4P>K%g#_&a4JdxWKv zxmr_nGVu5wwPLycJZpxgu^XDL*H#pyVRP63i;=ZO&OPmh)MsS~G`I%*M`H~yDaf%A zA4Bty%n*8BcMY%Cjdthv1T#P1ubiVDwTAVl7Wh~*+kYAm>3sQ)B;w%SMLhJTdGws8 zB4P2J=j*K@^F{sg|H^z_>L$MJ!1sA_=602Hcjg6O@=W?Hx!^kP`VdpW#d^)`9CA`i z^Yp1VnAs#Kw%r6 z#s9<@H#^|Vj6jE;qth-8lI*lzYg0#6#>x9*L>-71dMKh)bNskx)<=6eE?kfn@Pnn; zQ3}XK&p{D5tZH6HUgS4^ApQwCwM*TXj(uOgIZh?d{bF+~+irD4L_}Q+d7Mf59OT2y z*=Ntr>w7yR5QTj1(jcmR$l;@vTq0z~Wd7#!c-G{EVZ`nvO2?mXwpMp!` zQ+V2*nNdipHebVHHACO~8A&pF5l`%S0&oLsZR}wd_jBc#!xMqy2w>{%X(6GRf z2Jth`^XED^mUiyU#Ewlt0Evp8@AJ^j+ui(?8MsWu3*T_-!=K!C%=SM?5F*2L5`W);)+j;0HbO^iLgx z8L0zYx@nc1e$jQZU_y=FR%LTG3{;?2g5OwBy?ft2pL_k*X2+Sn9~#H}p<~YP_`)?# z33V3Z%!}Bl1CSepdgO9n zu#=dmWudIfet91bb~JwoIBRyVI)A>b+$-E_vh}Qg_;h9dyqxcWJlnU8(0u#yeE*Ki z4nO$YnsXqzhmx0awiVZNzr+(}s>itp4*bPh=bTJV@Jk(MRi_sScAj-RR=OSmj<@9>We(CyMiS`>-FG@x0%nrcp{C%X|lU z+T=(sH1Bg(z=+(z;nDu~q_akQK>TY%aKm;e2IcVER9_{QON?el;1@2)wW*HW(cQYFBA9bdAs2j-9^ZD;^?MKcWP~nXw>ViH$GLS>t{Je9So;RO8;a4HcYu z3NN$SOmlM>+Rx^}Pg|pcSQwwa@NV0oI-j-R;Osk}wby#7H_U2qpw`K7Q;}po+mozd znXpvFo)|h`bf?eJi+?A4mOr#8E`H#ZTUOegl23e%;jS7N=Q)^thUUcd;5RVO;30Fj zYuf9!!q8gzy7P`^$;snPvJn{sg9@mr&SX6IbgcAFp=#u2@Oq?tW8lM`E6VD&|^8A}` zKZ0i~>%-4=Tz{^qfB4Ga)Vkj2@Amimy_&CzZMfoD-(x#R1M#!WRgZDm23%`F1##WYh>}vI`DSY&G zY-;~mHhUT#!^19U(jU*F<0PG0y3{Q8JWeYopD)_I;1-_B%(d)gFW5!x9kxq~Owv3K z&;FdX3deTf<@g3jvNl#dbJAvB4R}fIY60Pob6`HoAqSOpMS@ceMUtlEW7$rbhyKPw zevhZv^dDn)vFqYXU;LkvtMy~={~l}od1o%yWe(4^i(sx7-&**MOJDRJpqc=r$lkQw z;r!iuQ7dz`I}8p*3mcy_(ZdEPr2s3*@NcS&0ezS}Vu|bfdafI)_@un{=_7%+@_}Ex z1i?W|0M5~h`j3<3_?>;r%3q0zq}~O;;t=8^pZG2~db<~}hy+p{V~ogo+ITY>U=c-w zglO@3c@MVa7##O4zX~-Wn%^=QlaAn8>28B6QQrzBcPZ<;8P4yxX8mj8cpK5Z7@vrnFYmK+=og~RlEXbt zp8-95^XN^zV~x&CtnGl*P{{4l5#F2B30!@k-?7)fu9fxDpS7}v$+>C!4VB~u zLP=$fMwZ>SkN=$-*x=I~B%hd0TP^P-Z}Kx{`mSw7v00vbr8=mq#j2_G%y#(JzQ$EK zSua@52p%tSU!2JrP^=G$2N@IbgU0GbxQ9~P#F(cu*ZjKA&=R2*&o}u_Z!l<72F~&2 zKJ5Sx5P)R;rujzZ0xlbQ8+Zex~wiAdh%M2b^*H`a#p(4^j&W3a`fAGnj znkm`5pY}xC;eY6U33vIz`zihLZ`;u1eZo_`*y(a_Ft6mjG)MGTts3*EM$_&NiM63^ z+`f}zv3&c>+SHtJ6J@;cfU2#cX+cr*LT4UtLa$eiC-y@^))uaJ=;51H-&u&M0ohKt zAXLm+Rs@U~q&?4Yo#mn48s0bV$pIS9s|~?+`p}E31VzpFA<_=b!H3*VEw1g0_Bf;E zhXU)|L+T6=n9HHiRk&9d53VP%YA>X<+}Rl z>RQinp7+1Rw`E3@Yi>A;|F6NaVWh$Bpx3@?~39q2g93FIKL?+M|{V(`Tc&~cBQMxa64|fZ?7F4Ov zr0xN~K{R~GVF`a&$Gz+o_P6(22SM{~zSj;m)zS5Fl5;LGH;Ii)yDH_eUH>OeB09Fi!5l!S9#)Y{SRK zG48}v#7k0-zpPV#-%EE=e^U79(82+rcDxOjRRs}$XTK`pPDxEEF{N64VyCs;qHe-| zsO(54%{$~rsO9rS5ARO$BbEKj%@HmS{)DTZZO_Lh2!DU{n^g#{3s`r#e4n%bx1F!ei4qji=rAoS!;t9h7ILw%MhY z*!bI@{^k!}_->`W0W-rVL5J%5EG~5%b>7cMQ_;#>Z3-7wWL9u7o;PnzchjlnpPi68 zf>72Z9E%~YNwK~u`VSScl`5(&TaUIib!GjbxwylYqKSug-T=uOxM_Q*Lq8^J^e77! zk)pV{plv>};=Wz=C0FTM!XA)u;5;Vg&BE-~Fs5%Cb0v1jcg%FKWL|;L@aMGXs7HNO z$(uxn=(j&d4)QN?#TT*E?GFte&FA~ZdjF`Izu*bN*~dpY`+1j`=ZZO0)1>PhoTt<;i>}%Z{kPl9CCfk0dI~RHCvQ|y_9xW3;fckkS z-k~*~fLX!QhZ|*Yee(;wBFEj)-=W$K)?H9VVia*9MR!kX`l-KnZtJIZFb!6s0|yTf zY!|5RT$5iUoNZFKHtlV2Q#yx60#pia#{Q;u4&0Br7W@W7a_XpzuCdR(*O-TFsA70ZAp}%VcJ{maW)$t1pkb^v(cQDf7D%LC-Ow_I`aAX7JD*nu8MUp z5WkYwq^{*}wqpV~bnt7P6+Taaw(BymmgfF}xE+}hzXEW#!kYr0BNU?Tjjj_Azoy1H zCOU;$ljwp`Uh`MFHbQXtKk>G2PWfdIQTKVNLHtoi_pRw9@jrR5GA{k8$M%E6UfO^1 z3EEe<;90!``Jl96^-hJ;4(5I8WB;2ZV&FCB|)x1r8@}zrIW1pNe*MT9UH_6@$HuooRYb>B> z(EO|Yy05i0*UMk8GUy`MzptwUB>m~P23f9vSVKR+L`0HieB;|ore}2 zDL86y_;)-nO3aDX7Azk<;)$b>Vu{K6&3DZee(2D^ouW8H@aYjZs5Nh?4+t1nMcu$y zn(m;-u^#qlc|W$Q6E)bxH-2qi6P1xx%m&P=*g+Zr7sOK3G>%tQ&UMX;#-H|RA_{TL zt$*U%KK9<;dTy(j^wx0kkVzoD1HW*;w`=0F1+5m%B1*orI-r3U`cJD`0l7|hWbMQJ0B(3T;d=&}Z<^aAX4p$c+;MtVp-o0eY>4j%(>Z+lY} zexMa1SX|>+Jus4(gfaJbS$VTs`iPWsEgYP84JG* zj$684Qx}9buGH5i4*qti-fK=sTsE+XmCfR5o}f{eH9U8KR3^21_?+a{@TTld%~g-+ zLG35*#+x>chGDv|F7=1^W}1iHLH!NY!DDZwp3!CP8AdX+50IefA0tw@XB`r!a;%zD zN-m%q3of%a1(!MV2`{#`m!9>>O5aIzwk~V)Y`06E!j;dY{q6a;ruF$X>?}E@*tYK$ zQd^Es9JixYV<|C&VJzU9vbW%?n#1^s`*7TY0`sKi5Y0LA3mk{l*U2W|Vq-1lfcvM9 zp4#7x$-mh)`MV6&dbO**P$!2SaO~D-L>FNXQaH~(4;^bWLAS9Np9=Vcyy@Tx4?(pm zC6AwOi%0RR;RoJyu_8Zs{QA85!=Jh2Cbho#%Nh3yqx z(vT2!zw8yoDM2qW!rg1fsM{V8r;`;u;>vEfNMBexXnERCt!UNln)M0Vu8R)71qJUA zSp2!^&}ii@T_cFlv7Ge2dkoN^q9!=apRu^l=n9q-KmP}VG zYH5uu>r^*zy@CjS|GKni18|~dCc3mpVQ{jnYEhhw@X3Gb6ny81@R5IvkziXFUF+|> z?a907UjNFyoNKl(9D4dRU9o9&LEOw#b=t^0kYBb7a+YvzciCXqb-Kh7UWQJC0jH%d z{-0$9CnxQ^#xo=B*|jGv^|78H=!C1>pD&0T<~s&R}YA$Wcbg zI*KTqJ|ru&Tibq0Es=P*2am;DB_C`@O$yPm)jf6aLaQl~2!a<98=v)j(d2AtTqrPz zhvAV__fJmABN46Qvrh4^`tsV3wIw-9jTv3f09`M0&5xYd*_A(Z)y2}7X?G8igHwVGAZ`yF- zs_M&gpuHLJ8_@iHD;m%Et>Tj!t}zcb1se}eFmd3}u-vd&Y+v|}jl0g_%oc5MoTaWi zI@X8ek1flvz1BW#K`YVx9L*!} z7vh&*_vtzRd(lSuoxi+{?LYEL=$c>kH6$PWeTL{5dD?T(&8OCY`HvH9lV}2#918No z0XdGg$lfCe&H5U7$9RyyPwWju{KFnM$1F9t6x|hlFO`2oKKRO~fSdDY-H~u=zPWAa zkB!24;5@IpaG&Q6wbvx6Sflu>XWlefA*-yz@!kZ_#SuYIH4!}b*p7l35T(Rr-}Nj~ ztN*P_dG))`9Ha|}8O~UOKH(3|3mI3|Uv1c$wT}yHfO|~t>Zz0C?^gGB(XbJmvg*uR z!+QYlvgdYM`BF1Trb}Xz#JHsjEv$O;8l9rtk5&v7r$vWCCk(frr+X&YGkdG~v3E>% z{QzC;m&copxw~r~YRgfGZyYS(C)=te`5N3u(l;;S--1{F;LZG)+kf&Rf5-eh^KQ`f z?3Ir$Nt)2%cL`pLf1lru&H4sp+-HeHNPmq#_=DfMIPUSHRr`aBUY@6C4v^GCXx-{>uJI)= z^*fJ!*$br}>5JAPDJCn{Fd%p0!9^c=s@^jXcGHOt7M%VUeBm#gV8Nyq&T8kQ5iId= zQ#BIJEkl5W_(%Ak#F(KS3eO+yw?)W$B>pIQgtN(bctEHoOu7Wcf)&G$BA<`{)im;@ zZ(uhKzvl&cj3$LabLB1_W|t;40VN+hZP9OjLVQ?Yvu&_!(X6-C6!u=3Z+@**d~>b& zz`E`kF4DQr%6UDjQZxBna|8~fIYsD5eCwj)E2Fb=*7nf6;5VCqj&(>(jlT?MfxUQ& zPnJPSC`@bay1VHJmlPk)L3N0GqK1mbkxFVCBu7@5+myB;rsq_q;LQB3#8-(&i{0(> zX;+<^4chnyP5SbZLmq6^ZVQJ
wg14aM&s`*BlzCuz?bRo1Kc8tsXiR{VW_URYD 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 B(6Ix`bZAEd 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 xoL2p+q}_(&lj79>WM}sDgOR_nVUubFX$|wZ7{E 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 Rk{bNu{{T73m*zuWLjVJyM4$iw diff --git a/tools/server/server.cpp b/tools/server/server.cpp index 519704fad7..5e5698e672 100644 --- a/tools/server/server.cpp +++ b/tools/server/server.cpp @@ -5261,6 +5261,42 @@ int main(int argc, char ** argv) { svr->Get (params.api_prefix + "/slots", handle_slots); svr->Post(params.api_prefix + "/slots/:id_slot", handle_slots_action); + // SPA fallback route - serve index.html for any route that doesn't match API endpoints + // This enables client-side routing for dynamic routes like /chat/[id] + if (params.webui && params.public_path.empty()) { + // Only add fallback when using embedded static files + svr->Get(".*", [](const httplib::Request & req, httplib::Response & res) { + // Skip API routes - they should have been handled above + if (req.path.find("/v1/") != std::string::npos || + req.path.find("/health") != std::string::npos || + req.path.find("/metrics") != std::string::npos || + req.path.find("/props") != std::string::npos || + req.path.find("/models") != std::string::npos || + req.path.find("/api/tags") != std::string::npos || + req.path.find("/completions") != std::string::npos || + req.path.find("/chat/completions") != std::string::npos || + req.path.find("/embeddings") != std::string::npos || + req.path.find("/tokenize") != std::string::npos || + req.path.find("/detokenize") != std::string::npos || + req.path.find("/lora-adapters") != std::string::npos || + req.path.find("/slots") != std::string::npos) { + return false; // Let other handlers process API routes + } + + // Serve index.html for all other routes (SPA fallback) + if (req.get_header_value("Accept-Encoding").find("gzip") == std::string::npos) { + res.set_content("Error: gzip is not supported by this browser", "text/plain"); + } else { + res.set_header("Content-Encoding", "gzip"); + // COEP and COOP headers, required by pyodide (python interpreter) + res.set_header("Cross-Origin-Embedder-Policy", "require-corp"); + res.set_header("Cross-Origin-Opener-Policy", "same-origin"); + res.set_content(reinterpret_cast(index_html_gz), index_html_gz_len, "text/html; charset=utf-8"); + } + return false; + }); + } + // // Start the server // diff --git a/tools/server/tests/unit/test_basic.py b/tools/server/tests/unit/test_basic.py index 58ade52be6..829af2ebe7 100644 --- a/tools/server/tests/unit/test_basic.py +++ b/tools/server/tests/unit/test_basic.py @@ -92,7 +92,7 @@ def test_no_webui(): url = f"http://{server.server_host}:{server.server_port}" res = requests.get(url) assert res.status_code == 200 - assert "" in res.text + assert "" in res.text server.stop() # with --no-webui diff --git a/tools/server/webui/.gitignore b/tools/server/webui/.gitignore index a547bf36d8..cc54bb717f 100644 --- a/tools/server/webui/.gitignore +++ b/tools/server/webui/.gitignore @@ -1,24 +1,27 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - +test-results node_modules -dist -dist-ssr -*.local -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea +# Output +.output +.vercel +.netlify +.wrangler +/.svelte-kit +/build + +# OS .DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* + +*storybook.log +storybook-static diff --git a/tools/server/webui/.npmrc b/tools/server/webui/.npmrc new file mode 100644 index 0000000000..b6f27f1359 --- /dev/null +++ b/tools/server/webui/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/tools/server/webui/.prettierignore b/tools/server/webui/.prettierignore index c0cb165b37..7d74fe2468 100644 --- a/tools/server/webui/.prettierignore +++ b/tools/server/webui/.prettierignore @@ -1,10 +1,9 @@ -**/.vscode -**/.github -**/.git -**/.svn -**/.hg -**/node_modules -**/dist -**/build +# Package Managers +package-lock.json +pnpm-lock.yaml +yarn.lock +bun.lock +bun.lockb -*.config.js +# Miscellaneous +/static/ diff --git a/tools/server/webui/.prettierrc b/tools/server/webui/.prettierrc new file mode 100644 index 0000000000..8103a0b5d2 --- /dev/null +++ b/tools/server/webui/.prettierrc @@ -0,0 +1,16 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ], + "tailwindStylesheet": "./src/app.css" +} diff --git a/tools/server/webui/.storybook/ModeWatcherDecorator.svelte b/tools/server/webui/.storybook/ModeWatcherDecorator.svelte new file mode 100644 index 0000000000..8bded8b3f1 --- /dev/null +++ b/tools/server/webui/.storybook/ModeWatcherDecorator.svelte @@ -0,0 +1,36 @@ + + + + +{#if children} + {@const Component = children} + + +{/if} diff --git a/tools/server/webui/.storybook/TooltipProviderDecorator.svelte b/tools/server/webui/.storybook/TooltipProviderDecorator.svelte new file mode 100644 index 0000000000..9aad1eaa4a --- /dev/null +++ b/tools/server/webui/.storybook/TooltipProviderDecorator.svelte @@ -0,0 +1,13 @@ + + + + {@render children()} + diff --git a/tools/server/webui/.storybook/main.ts b/tools/server/webui/.storybook/main.ts new file mode 100644 index 0000000000..7145bcb7eb --- /dev/null +++ b/tools/server/webui/.storybook/main.ts @@ -0,0 +1,17 @@ +import type { StorybookConfig } from '@storybook/sveltekit'; + +const config: StorybookConfig = { + stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|ts|svelte)'], + addons: [ + '@storybook/addon-svelte-csf', + '@chromatic-com/storybook', + '@storybook/addon-docs', + '@storybook/addon-a11y', + '@storybook/addon-vitest' + ], + framework: { + name: '@storybook/sveltekit', + options: {} + } +}; +export default config; diff --git a/tools/server/webui/.storybook/preview.ts b/tools/server/webui/.storybook/preview.ts new file mode 100644 index 0000000000..fb91386af4 --- /dev/null +++ b/tools/server/webui/.storybook/preview.ts @@ -0,0 +1,34 @@ +import type { Preview } from '@storybook/sveltekit'; +import '../src/app.css'; +import ModeWatcherDecorator from './ModeWatcherDecorator.svelte'; +import TooltipProviderDecorator from './TooltipProviderDecorator.svelte'; + +const preview: Preview = { + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/i + } + }, + backgrounds: { + disable: true + } + }, + decorators: [ + (story) => ({ + Component: ModeWatcherDecorator, + props: { + children: story + } + }), + (story) => ({ + Component: TooltipProviderDecorator, + props: { + children: story + } + }) + ] +}; + +export default preview; diff --git a/tools/server/webui/.storybook/vitest.setup.ts b/tools/server/webui/.storybook/vitest.setup.ts new file mode 100644 index 0000000000..e0c1753c84 --- /dev/null +++ b/tools/server/webui/.storybook/vitest.setup.ts @@ -0,0 +1,11 @@ +import { setProjectAnnotations } from '@storybook/sveltekit'; +import * as previewAnnotations from './preview'; +import { beforeAll } from 'vitest'; + +const project = setProjectAnnotations([previewAnnotations]); + +beforeAll(async () => { + if (project.beforeAll) { + await project.beforeAll(); + } +}); diff --git a/tools/server/webui/README.md b/tools/server/webui/README.md new file mode 100644 index 0000000000..9d16f34d86 --- /dev/null +++ b/tools/server/webui/README.md @@ -0,0 +1,66 @@ +# llama.cpp Web UI + +A modern, feature-rich web interface for llama.cpp built with SvelteKit. This UI provides an intuitive chat interface with advanced file handling, conversation management, and comprehensive model interaction capabilities. + +## Features + +- **Modern Chat Interface** - Clean, responsive design with dark/light mode +- **File Attachments** - Support for images, text files, PDFs, and audio with rich previews and drag-and-drop support +- **Conversation Management** - Create, edit, branch, and search conversations +- **Advanced Markdown** - Code highlighting, math formulas (KaTeX), and content blocks +- **Reasoning Content** - Support for models with thinking blocks +- **Keyboard Shortcuts** - Keyboard navigation (Shift+Ctrl/Cmd+O for new chat, Shift+Ctrl/Cmdt+E for edit conversation, Shift+Ctrl/Cmdt+D for delete conversation, Ctrl/Cmd+K for search, Ctrl/Cmd+V for paste, Ctrl/Cmd+B for opening/collapsing sidebar) +- **Request Tracking** - Monitor processing with slots endpoint integration +- **UI Testing** - Storybook component library with automated tests + +## Development + +Install dependencies: + +```bash +npm install +``` + +Start the development server + Storybook: + +```bash +npm run dev +``` + +This will start both the SvelteKit dev server and Storybook on port 6006. + +## Building + +Create a production build: + +```bash +npm run build +``` + +The build outputs static files to `../public` directory for deployment with llama.cpp server. + +## Testing + +Run the test suite: + +```bash +# E2E tests +npm run test:e2e + +# Unit tests +npm run test:unit + +# UI tests +npm run test:ui + +# All tests +npm run test +``` + +## Architecture + +- **Framework**: SvelteKit with Svelte 5 runes +- **Components**: ShadCN UI + bits-ui design system +- **Database**: IndexedDB with Dexie for local storage +- **Build**: Static adapter for deployment with llama.cpp server +- **Testing**: Playwright (E2E) + Vitest (unit) + Storybook (components) diff --git a/tools/server/webui/components.json b/tools/server/webui/components.json new file mode 100644 index 0000000000..224bd70acf --- /dev/null +++ b/tools/server/webui/components.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://shadcn-svelte.com/schema.json", + "tailwind": { + "css": "src/app.css", + "baseColor": "neutral" + }, + "aliases": { + "components": "$lib/components", + "utils": "$lib/components/ui/utils", + "ui": "$lib/components/ui", + "hooks": "$lib/hooks", + "lib": "$lib" + }, + "typescript": true, + "registry": "https://shadcn-svelte.com/registry" +} diff --git a/tools/server/webui/e2e/demo.test.ts b/tools/server/webui/e2e/demo.test.ts new file mode 100644 index 0000000000..9985ce113e --- /dev/null +++ b/tools/server/webui/e2e/demo.test.ts @@ -0,0 +1,6 @@ +import { expect, test } from '@playwright/test'; + +test('home page has expected h1', async ({ page }) => { + await page.goto('/'); + await expect(page.locator('h1')).toBeVisible(); +}); diff --git a/tools/server/webui/eslint.config.js b/tools/server/webui/eslint.config.js index 7c0d39b89b..5baea57f33 100644 --- a/tools/server/webui/eslint.config.js +++ b/tools/server/webui/eslint.config.js @@ -1,26 +1,49 @@ -import js from '@eslint/js' -import globals from 'globals' -import reactHooks from 'eslint-plugin-react-hooks' -import reactRefresh from 'eslint-plugin-react-refresh' -import tseslint from 'typescript-eslint' +// For more info, see https://github.com/storybookjs/eslint-plugin-storybook#configuration-flat-config-format +import storybook from 'eslint-plugin-storybook'; -export default tseslint.config( - { ignores: ['dist'] }, - { - extends: [js.configs.recommended, ...tseslint.configs.recommended], - files: ['**/*.{ts,tsx}'], - languageOptions: { - ecmaVersion: 2020, - globals: globals.browser, - }, - plugins: { - 'react-hooks': reactHooks, - 'react-refresh': reactRefresh, - }, - rules: { - ...reactHooks.configs.recommended.rules, - 'react-refresh/only-export-components': 'off', - '@typescript-eslint/no-unused-vars': 'off', - }, - }, -) +import prettier from 'eslint-config-prettier'; +import { includeIgnoreFile } from '@eslint/compat'; +import js from '@eslint/js'; +import svelte from 'eslint-plugin-svelte'; +import globals from 'globals'; +import { fileURLToPath } from 'node:url'; +import ts from 'typescript-eslint'; +import svelteConfig from './svelte.config.js'; + +const gitignorePath = fileURLToPath(new URL('./.gitignore', import.meta.url)); + +export default ts.config( + includeIgnoreFile(gitignorePath), + js.configs.recommended, + ...ts.configs.recommended, + ...svelte.configs.recommended, + prettier, + ...svelte.configs.prettier, + { + languageOptions: { + globals: { ...globals.browser, ...globals.node } + }, + rules: { + // typescript-eslint strongly recommend that you do not use the no-undef lint rule on TypeScript projects. + // see: https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors + 'no-undef': 'off', + 'svelte/no-at-html-tags': 'off' + } + }, + { + files: ['**/*.svelte', '**/*.svelte.ts', '**/*.svelte.js'], + languageOptions: { + parserOptions: { + projectService: true, + extraFileExtensions: ['.svelte'], + parser: ts.parser, + svelteConfig + } + } + }, + { + // Exclude Storybook files from main ESLint rules + ignores: ['.storybook/**/*'] + }, + storybook.configs['flat/recommended'] +); diff --git a/tools/server/webui/index.html b/tools/server/webui/index.html deleted file mode 100644 index 471f46b3ad..0000000000 --- a/tools/server/webui/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - 🦙 llama.cpp - chat - - -

- - - diff --git a/tools/server/webui/package-lock.json b/tools/server/webui/package-lock.json index a05cbcfe5c..c300ecaa77 100644 --- a/tools/server/webui/package-lock.json +++ b/tools/server/webui/package-lock.json @@ -1,6620 +1,8486 @@ { - "name": "webui", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "webui", - "version": "0.0.0", - "dependencies": { - "@heroicons/react": "^2.2.0", - "@sec-ant/readable-stream": "^0.6.0", - "@tailwindcss/postcss": "^4.1.1", - "@tailwindcss/vite": "^4.1.1", - "@vscode/markdown-it-katex": "^1.1.1", - "autoprefixer": "^10.4.20", - "daisyui": "^5.0.12", - "dexie": "^4.0.11", - "highlight.js": "^11.10.0", - "katex": "^0.16.15", - "pdfjs-dist": "^5.2.133", - "postcss": "^8.4.49", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-dropzone": "^14.3.8", - "react-hot-toast": "^2.5.2", - "react-markdown": "^9.0.3", - "react-router": "^7.1.5", - "rehype-highlight": "^7.0.2", - "rehype-katex": "^7.0.1", - "remark-breaks": "^4.0.0", - "remark-gfm": "^4.0.0", - "remark-math": "^6.0.0", - "tailwindcss": "^4.1.1", - "textlinestream": "^1.1.1", - "vite-plugin-singlefile": "^2.0.3" - }, - "devDependencies": { - "@eslint/js": "^9.17.0", - "@types/markdown-it": "^14.1.2", - "@types/node": "^22.13.1", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", - "@vitejs/plugin-react": "^4.3.4", - "eslint": "^9.17.0", - "eslint-plugin-react-hooks": "^5.0.0", - "eslint-plugin-react-refresh": "^0.4.16", - "fflate": "^0.8.2", - "globals": "^15.14.0", - "prettier": "^3.4.2", - "sass-embedded": "^1.83.4", - "typescript": "~5.6.2", - "typescript-eslint": "^8.18.2", - "vite": "^6.0.5" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", - "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz", - "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.7", - "@babel/parser": "^7.26.7", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.26.7", - "@babel/types": "^7.26.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", - "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.5", - "@babel/types": "^7.26.5", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", - "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", - "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.7" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", - "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", - "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz", - "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/parser": "^7.26.7", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", - "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bufbuild/protobuf": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.2.3.tgz", - "integrity": "sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==", - "devOptional": true, - "license": "(Apache-2.0 AND BSD-3-Clause)" - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.6", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", - "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "9.19.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", - "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", - "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.10.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@heroicons/react": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.2.0.tgz", - "integrity": "sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==", - "license": "MIT", - "peerDependencies": { - "react": ">= 16 || ^19.0.0-rc" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@napi-rs/canvas": { - "version": "0.1.70", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.70.tgz", - "integrity": "sha512-nD6NGa4JbNYSZYsTnLGrqe9Kn/lCkA4ybXt8sx5ojDqZjr2i0TWAHxx/vhgfjX+i3hCdKWufxYwi7CfXqtITSA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@napi-rs/canvas-android-arm64": "0.1.70", - "@napi-rs/canvas-darwin-arm64": "0.1.70", - "@napi-rs/canvas-darwin-x64": "0.1.70", - "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.70", - "@napi-rs/canvas-linux-arm64-gnu": "0.1.70", - "@napi-rs/canvas-linux-arm64-musl": "0.1.70", - "@napi-rs/canvas-linux-riscv64-gnu": "0.1.70", - "@napi-rs/canvas-linux-x64-gnu": "0.1.70", - "@napi-rs/canvas-linux-x64-musl": "0.1.70", - "@napi-rs/canvas-win32-x64-msvc": "0.1.70" - } - }, - "node_modules/@napi-rs/canvas-android-arm64": { - "version": "0.1.70", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.70.tgz", - "integrity": "sha512-I/YOuQ0wbkVYxVaYtCgN42WKTYxNqFA0gTcTrHIGG1jfpDSyZWII/uHcjOo4nzd19io6Y4+/BqP8E5hJgf9OmQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/canvas-darwin-arm64": { - "version": "0.1.70", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.70.tgz", - "integrity": "sha512-4pPGyXetHIHkw2TOJHujt3mkCP8LdDu8+CT15ld9Id39c752RcI0amDHSuMLMQfAjvusA9B5kKxazwjMGjEJpQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/canvas-darwin-x64": { - "version": "0.1.70", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.70.tgz", - "integrity": "sha512-+2N6Os9LbkmDMHL+raknrUcLQhsXzc5CSXRbXws9C3pv/mjHRVszQ9dhFUUe9FjfPhCJznO6USVdwOtu7pOrzQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": { - "version": "0.1.70", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.70.tgz", - "integrity": "sha512-QjscX9OaKq/990sVhSMj581xuqLgiaPVMjjYvWaCmAJRkNQ004QfoSMEm3FoTqM4DRoquP8jvuEXScVJsc1rqQ==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/canvas-linux-arm64-gnu": { - "version": "0.1.70", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.70.tgz", - "integrity": "sha512-LNakMOwwqwiHIwMpnMAbFRczQMQ7TkkMyATqFCOtUJNlE6LPP/QiUj/mlFrNbUn/hctqShJ60gWEb52ZTALbVw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/canvas-linux-arm64-musl": { - "version": "0.1.70", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.70.tgz", - "integrity": "sha512-wBTOllEYNfJCHOdZj9v8gLzZ4oY3oyPX8MSRvaxPm/s7RfEXxCyZ8OhJ5xAyicsDdbE5YBZqdmaaeP5+xKxvtg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/canvas-linux-riscv64-gnu": { - "version": "0.1.70", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.70.tgz", - "integrity": "sha512-GVUUPC8TuuFqHip0rxHkUqArQnlzmlXmTEBuXAWdgCv85zTCFH8nOHk/YCF5yo0Z2eOm8nOi90aWs0leJ4OE5Q==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/canvas-linux-x64-gnu": { - "version": "0.1.70", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.70.tgz", - "integrity": "sha512-/kvUa2lZRwGNyfznSn5t1ShWJnr/m5acSlhTV3eXECafObjl0VBuA1HJw0QrilLpb4Fe0VLywkpD1NsMoVDROQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/canvas-linux-x64-musl": { - "version": "0.1.70", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.70.tgz", - "integrity": "sha512-aqlv8MLpycoMKRmds7JWCfVwNf1fiZxaU7JwJs9/ExjTD8lX2KjsO7CTeAj5Cl4aEuzxUWbJPUUE2Qu9cZ1vfg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/canvas-win32-x64-msvc": { - "version": "0.1.70", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.70.tgz", - "integrity": "sha512-Q9QU3WIpwBTVHk4cPfBjGHGU4U0llQYRXgJtFtYqqGNEOKVN4OT6PQ+ve63xwIPODMpZ0HHyj/KLGc9CWc3EtQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.2.tgz", - "integrity": "sha512-6Fyg9yQbwJR+ykVdT9sid1oc2ewejS6h4wzQltmJfSW53N60G/ah9pngXGANdy9/aaE/TcUFpWosdm7JXS1WTQ==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.2.tgz", - "integrity": "sha512-K5GfWe+vtQ3kyEbihrimM38UgX57UqHp+oME7X/EX9Im6suwZfa7Hsr8AtzbJvukTpwMGs+4s29YMSO3rwWtsw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.2.tgz", - "integrity": "sha512-PSN58XG/V/tzqDb9kDGutUruycgylMlUE59f40ny6QIRNsTEIZsrNQTJKUN2keMMSmlzgunMFqyaGLmly39sug==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.2.tgz", - "integrity": "sha512-gQhK788rQJm9pzmXyfBB84VHViDERhAhzGafw+E5mUpnGKuxZGkMVDa3wgDFKT6ukLC5V7QTifzsUKdNVxp5qQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.2.tgz", - "integrity": "sha512-eiaHgQwGPpxLC3+zTAcdKl4VsBl3r0AiJOd1Um/ArEzAjN/dbPK1nROHrVkdnoE6p7Svvn04w3f/jEZSTVHunA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.2.tgz", - "integrity": "sha512-lhdiwQ+jf8pewYOTG4bag0Qd68Jn1v2gO1i0mTuiD+Qkt5vNfHVK/jrT7uVvycV8ZchlzXp5HDVmhpzjC6mh0g==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.2.tgz", - "integrity": "sha512-lfqTpWjSvbgQP1vqGTXdv+/kxIznKXZlI109WkIFPbud41bjigjNmOAAKoazmRGx+k9e3rtIdbq2pQZPV1pMig==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.2.tgz", - "integrity": "sha512-RGjqULqIurqqv+NJTyuPgdZhka8ImMLB32YwUle2BPTDqDoXNgwFjdjQC59FbSk08z0IqlRJjrJ0AvDQ5W5lpw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.2.tgz", - "integrity": "sha512-ZvkPiheyXtXlFqHpsdgscx+tZ7hoR59vOettvArinEspq5fxSDSgfF+L5wqqJ9R4t+n53nyn0sKxeXlik7AY9Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.2.tgz", - "integrity": "sha512-UlFk+E46TZEoxD9ufLKDBzfSG7Ki03fo6hsNRRRHF+KuvNZ5vd1RRVQm8YZlGsjcJG8R252XFK0xNPay+4WV7w==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.2.tgz", - "integrity": "sha512-hJhfsD9ykx59jZuuoQgYT1GEcNNi3RCoEmbo5OGfG8RlHOiVS7iVNev9rhLKh7UBYq409f4uEw0cclTXx8nh8Q==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.2.tgz", - "integrity": "sha512-g/O5IpgtrQqPegvqopvmdCF9vneLE7eqYfdPWW8yjPS8f63DNam3U4ARL1PNNB64XHZDHKpvO2Giftf43puB8Q==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.2.tgz", - "integrity": "sha512-bSQijDC96M6PuooOuXHpvXUYiIwsnDmqGU8+br2U7iPoykNi9JtMUpN7K6xml29e0evK0/g0D1qbAUzWZFHY5Q==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.2.tgz", - "integrity": "sha512-49TtdeVAsdRuiUHXPrFVucaP4SivazetGUVH8CIxVsNsaPHV4PFkpLmH9LeqU/R4Nbgky9lzX5Xe1NrzLyraVA==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.2.tgz", - "integrity": "sha512-j+jFdfOycLIQ7FWKka9Zd3qvsIyugg5LeZuHF6kFlXo6MSOc6R1w37YUVy8VpAKd81LMWGi5g9J25P09M0SSIw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.2.tgz", - "integrity": "sha512-aDPHyM/D2SpXfSNCVWCxyHmOqN9qb7SWkY1+vaXqMNMXslZYnwh9V/UCudl6psyG0v6Ukj7pXanIpfZwCOEMUg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.2.tgz", - "integrity": "sha512-LQRkCyUBnAo7r8dbEdtNU08EKLCJMgAk2oP5H3R7BnUlKLqgR3dUjrLBVirmc1RK6U6qhtDw29Dimeer8d5hzQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.2.tgz", - "integrity": "sha512-wt8OhpQUi6JuPFkm1wbVi1BByeag87LDFzeKSXzIdGcX4bMLqORTtKxLoCbV57BHYNSUSOKlSL4BYYUghainYA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.2.tgz", - "integrity": "sha512-rUrqINax0TvrPBXrFKg0YbQx18NpPN3NNrgmaao9xRNbTwek7lOXObhx8tQy8gelmQ/gLaGy1WptpU2eKJZImg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@sec-ant/readable-stream": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.6.0.tgz", - "integrity": "sha512-uiBh8DrB5FN35gP6/o8JEhEQ7/ci1jUsOZO/VMUjyvTpjtV54VstOXVj1TvTj/wsT23pfX6butxxh3qufsW3+g==", - "license": "MIT" - }, - "node_modules/@tailwindcss/node": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.1.tgz", - "integrity": "sha512-xvlh4pvfG/bkv0fEtJDABAm1tjtSmSyi2QmS4zyj1EKNI1UiOYiUq1IphSwDsNJ5vJ9cWEGs4rJXpUdCN2kujQ==", - "license": "MIT", - "dependencies": { - "enhanced-resolve": "^5.18.1", - "jiti": "^2.4.2", - "lightningcss": "1.29.2", - "tailwindcss": "4.1.1" - } - }, - "node_modules/@tailwindcss/oxide": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.1.tgz", - "integrity": "sha512-7+YBgnPQ4+jv6B6WVOerJ6WOzDzNJXrRKDts674v6TKAqFqYRr9+EBtSziO7nNcwQ8JtoZNMeqA+WJDjtCM/7w==", - "license": "MIT", - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.1.1", - "@tailwindcss/oxide-darwin-arm64": "4.1.1", - "@tailwindcss/oxide-darwin-x64": "4.1.1", - "@tailwindcss/oxide-freebsd-x64": "4.1.1", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.1", - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.1", - "@tailwindcss/oxide-linux-arm64-musl": "4.1.1", - "@tailwindcss/oxide-linux-x64-gnu": "4.1.1", - "@tailwindcss/oxide-linux-x64-musl": "4.1.1", - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.1", - "@tailwindcss/oxide-win32-x64-msvc": "4.1.1" - } - }, - "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.1.tgz", - "integrity": "sha512-gTyRzfdParpoCU1yyUC/iN6XK6T0Ra4bDlF8Aeul5NP9cLzKEZDogdNVNGv5WZmCDkVol7qlex7TMmcfytMmmw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.1.tgz", - "integrity": "sha512-dI0QbdMWBvLB3MtaTKetzUKG9CUUQow8JSP4Nm+OxVokeZ+N+f1OmZW/hW1LzMxpx9RQCBgSRL+IIvKRat5Wdg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.1.tgz", - "integrity": "sha512-2Y+NPQOTRBCItshPgY/CWg4bKi7E9evMg4bgdb6h9iZObCZLOe3doPcuSxGS3DB0dKyMFKE8pTdWtFUbxZBMSA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.1.tgz", - "integrity": "sha512-N97NGMsB/7CHShbc5ube4dcsW/bYENkBrg8yWi8ieN9boYVRdw3cZviVryV/Nfu9bKbBV9kUvduFF2qBI7rEqg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.1.tgz", - "integrity": "sha512-33Lk6KbHnUZbXqza6RWNFo9wqPQ4+H5BAn1CkUUfC1RZ1vYbyDN6+iJPj53wmnWJ3mhRI8jWt3Jt1fO02IVdUQ==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.1.tgz", - "integrity": "sha512-LyW35RzSUy+80WYScv03HKasAUmMFDaSbNpWfk1gG5gEE9kuRGnDzSrqMoLAmY/kzMCYP/1kqmUiAx8EFLkI2A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.1.tgz", - "integrity": "sha512-1KPnDMlHdqjPTUSFjx55pafvs8RZXRgxfeRgUrukwDKkuj7gFk28vW3Mx65YdiugAc9NWs3VgueZWaM1Po6uGw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.1.tgz", - "integrity": "sha512-4WdzA+MRlsinEEE6yxNMLJxpw0kE9XVipbAKdTL8BeUpyC2TdA3TL46lBulXzKp3BIxh3nqyR/UCqzl5o+3waQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.1.tgz", - "integrity": "sha512-q7Ugbw3ARcjCW2VMUYrcMbJ6aMQuWPArBBE2EqC/swPZTdGADvMQSlvR0VKusUM4HoSsO7ZbvcZ53YwR57+AKw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.1.tgz", - "integrity": "sha512-0KpqsovgHcIzm7eAGzzEZsEs0/nPYXnRBv+aPq/GehpNQuE/NAQu+YgZXIIof+VflDFuyXOEnaFr7T5MZ1INhA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.1.tgz", - "integrity": "sha512-B1mjeXNS26kBOHv5sXARf6Wd0PWHV9x1TDlW0ummrBUOUAxAy5wcy4Nii1wzNvCdvC448hgiL06ylhwAbNthmg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/postcss": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.1.tgz", - "integrity": "sha512-GX9AEM+msH0i2Yh1b6CuDRaZRo3kmbvIrLbSfvJ53C3uaAgsQ//fTQAh9HMQ6t1a9zvoUptlYqG//plWsBQTCw==", - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.1.1", - "@tailwindcss/oxide": "4.1.1", - "postcss": "^8.4.41", - "tailwindcss": "4.1.1" - } - }, - "node_modules/@tailwindcss/vite": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.1.tgz", - "integrity": "sha512-tFTkRZwXq4XKr3S2dUZBxy80wbWYHdDSsu4QOB1yE1HJFKjfxKVpXtup4dyTVdQcLInoHC9lZXFPHnjoBP774g==", - "license": "MIT", - "dependencies": { - "@tailwindcss/node": "4.1.1", - "@tailwindcss/oxide": "4.1.1", - "tailwindcss": "4.1.1" - }, - "peerDependencies": { - "vite": "^5.2.0 || ^6" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", - "license": "MIT" - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "license": "MIT" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", - "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/katex": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", - "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", - "license": "MIT" - }, - "node_modules/@types/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/markdown-it": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", - "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/linkify-it": "^5", - "@types/mdurl": "^2" - } - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.13.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", - "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", - "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.3.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", - "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^18.0.0" - } - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.23.0.tgz", - "integrity": "sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/type-utils": "8.23.0", - "@typescript-eslint/utils": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.23.0.tgz", - "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/typescript-estree": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz", - "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.23.0.tgz", - "integrity": "sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "8.23.0", - "@typescript-eslint/utils": "8.23.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", - "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", - "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz", - "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/typescript-estree": "8.23.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", - "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.23.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "license": "ISC" - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", - "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.26.0", - "@babel/plugin-transform-react-jsx-self": "^7.25.9", - "@babel/plugin-transform-react-jsx-source": "^7.25.9", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/@vscode/markdown-it-katex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@vscode/markdown-it-katex/-/markdown-it-katex-1.1.1.tgz", - "integrity": "sha512-3KTlbsRBPJQLE2YmLL7K6nunTlU+W9T5+FjfNdWuIUKgxSS6HWLQHaO3L4MkJi7z7MpIPpY+g4N+cWNBPE/MSA==", - "license": "MIT", - "dependencies": { - "katex": "^0.16.4" - } - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "devOptional": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/attr-accept": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.5.tgz", - "integrity": "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-builder": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", - "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==", - "devOptional": true, - "license": "MIT/X11" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001697", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001697.tgz", - "integrity": "sha512-GwNPlWJin8E+d7Gxq96jxM6w0w+VFeyyXRsjU58emtkYqnbwHqXm5uT2uCmO0RQE9htWknOP4xtBlLmM/gWxvQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/colorjs.io": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz", - "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/daisyui": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-5.0.12.tgz", - "integrity": "sha512-01DU0eYBcHgPtuf5fxcrkGkIN6/Uyaqmkle5Yo3ZyW9YVAu036ALZbjv2KH5euvUbeQ4r9q3gAarGcf7Tywhng==", - "license": "MIT", - "funding": { - "url": "https://github.com/saadeghi/daisyui?sponsor=1" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "license": "MIT", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dexie": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/dexie/-/dexie-4.0.11.tgz", - "integrity": "sha512-SOKO002EqlvBYYKQSew3iymBoN2EQ4BDw/3yprjh7kAfFzjBYkaMNa/pZvcA7HSWlcKSQb9XhPe3wKyQ0x4A8A==", - "license": "Apache-2.0" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.91", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.91.tgz", - "integrity": "sha512-sNSHHyq048PFmZY4S90ax61q+gLCs0X0YmcOII9wG9S2XwbVr+h4VW2wWhnbp/Eys3cCwTxVF292W3qPaxIapQ==", - "license": "ISC" - }, - "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", - "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.10.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.19.0", - "@eslint/plugin-kit": "^0.2.5", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", - "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.18.tgz", - "integrity": "sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": ">=8.40" - } - }, - "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fflate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "dev": true, - "license": "MIT" - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/file-selector": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz", - "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==", - "license": "MIT", - "dependencies": { - "tslib": "^2.7.0" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true, - "license": "ISC" - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "15.14.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", - "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/goober": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.16.tgz", - "integrity": "sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==", - "license": "MIT", - "peerDependencies": { - "csstype": "^3.0.10" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/hast-util-from-dom": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz", - "integrity": "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==", - "license": "ISC", - "dependencies": { - "@types/hast": "^3.0.0", - "hastscript": "^9.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-html": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", - "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "devlop": "^1.1.0", - "hast-util-from-parse5": "^8.0.0", - "parse5": "^7.0.0", - "vfile": "^6.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-html-isomorphic": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz", - "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-from-dom": "^5.0.0", - "hast-util-from-html": "^2.0.0", - "unist-util-remove-position": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz", - "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^9.0.0", - "property-information": "^6.0.0", - "vfile": "^6.0.0", - "vfile-location": "^5.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-is-element": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", - "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz", - "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-text": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", - "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "hast-util-is-element": "^3.0.0", - "unist-util-find-after": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz", - "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/highlight.js": { - "version": "11.11.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", - "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/html-url-attributes": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", - "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immutable": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", - "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", - "license": "MIT" - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jiti": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", - "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/katex": { - "version": "0.16.21", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", - "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==", - "funding": [ - "https://opencollective.com/katex", - "https://github.com/sponsors/katex" - ], - "license": "MIT", - "dependencies": { - "commander": "^8.3.0" - }, - "bin": { - "katex": "cli.js" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lightningcss": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", - "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.29.2", - "lightningcss-darwin-x64": "1.29.2", - "lightningcss-freebsd-x64": "1.29.2", - "lightningcss-linux-arm-gnueabihf": "1.29.2", - "lightningcss-linux-arm64-gnu": "1.29.2", - "lightningcss-linux-arm64-musl": "1.29.2", - "lightningcss-linux-x64-gnu": "1.29.2", - "lightningcss-linux-x64-musl": "1.29.2", - "lightningcss-win32-arm64-msvc": "1.29.2", - "lightningcss-win32-x64-msvc": "1.29.2" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", - "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", - "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", - "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", - "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", - "cpu": [ - "arm" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", - "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", - "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", - "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", - "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", - "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", - "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lowlight": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-3.3.0.tgz", - "integrity": "sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "devlop": "^1.0.0", - "highlight.js": "~11.11.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/markdown-table": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", - "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", - "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-find-and-replace": "^3.0.0", - "micromark-util-character": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-math": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz", - "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "longest-streak": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.1.0", - "unist-util-remove-position": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-newline-to-break": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-newline-to-break/-/mdast-util-newline-to-break-2.0.0.tgz", - "integrity": "sha512-MbgeFca0hLYIEx/2zGsszCSEJJ1JSCdiY5xQxRcLDDGa8EPvlLPupJ4DSajbMPAnC0je8jfb9TiUATnxxrHUog==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-find-and-replace": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", - "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", - "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", - "license": "MIT", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^2.0.0", - "micromark-extension-gfm-footnote": "^2.0.0", - "micromark-extension-gfm-strikethrough": "^2.0.0", - "micromark-extension-gfm-table": "^2.0.0", - "micromark-extension-gfm-tagfilter": "^2.0.0", - "micromark-extension-gfm-task-list-item": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", - "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-math": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", - "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", - "license": "MIT", - "dependencies": { - "@types/katex": "^0.16.0", - "devlop": "^1.0.0", - "katex": "^0.16.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz", - "integrity": "sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", - "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "license": "MIT" - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", - "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", - "license": "MIT", - "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pdfjs-dist": { - "version": "5.2.133", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.2.133.tgz", - "integrity": "sha512-abE6ZWDxztt+gGFzfm4bX2ggfxUk9wsDEoFzIJm9LozaY3JdXR7jyLK4Bjs+XLXplCduuWS1wGhPC4tgTn/kzg==", - "license": "Apache-2.0", - "engines": { - "node": ">=20.16.0 || >=22.3.0" - }, - "optionalDependencies": { - "@napi-rs/canvas": "^0.1.67" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-dropzone": { - "version": "14.3.8", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.3.8.tgz", - "integrity": "sha512-sBgODnq+lcA4P296DY4wacOZz3JFpD99fp+hb//iBO2HHnyeZU3FwWyXJ6salNpqQdsZrgMrotuko/BdJMV8Ug==", - "license": "MIT", - "dependencies": { - "attr-accept": "^2.2.4", - "file-selector": "^2.1.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "react": ">= 16.8 || 18.0.0" - } - }, - "node_modules/react-hot-toast": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.5.2.tgz", - "integrity": "sha512-Tun3BbCxzmXXM7C+NI4qiv6lT0uwGh4oAfeJyNOjYUejTsm35mK9iCaYLGv8cBz9L5YxZLx/2ii7zsIwPtPUdw==", - "license": "MIT", - "dependencies": { - "csstype": "^3.1.3", - "goober": "^2.1.16" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">=16", - "react-dom": ">=16" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/react-markdown": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.3.tgz", - "integrity": "sha512-Yk7Z94dbgYTOrdk41Z74GoKA7rThnsbbqBTRYuxoe08qvfQ9tJVhmAKw6BJS/ZORG7kTy/s1QvYzSuaoBA1qfw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "devlop": "^1.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "html-url-attributes": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "unified": "^11.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=18", - "react": ">=18" - } - }, - "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.5.tgz", - "integrity": "sha512-8BUF+hZEU4/z/JD201yK6S+UYhsf58bzYIDq2NS1iGpwxSXDu7F+DeGSkIXMFBuHZB21FSiCzEcUb18cQNdRkA==", - "license": "MIT", - "dependencies": { - "@types/cookie": "^0.6.0", - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/rehype-highlight": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rehype-highlight/-/rehype-highlight-7.0.2.tgz", - "integrity": "sha512-k158pK7wdC2qL3M5NcZROZ2tR/l7zOzjxXd5VGdcfIyoijjQqpHd3JKtYSBDpDZ38UI2WJWuFAtkMDxmx5kstA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-to-text": "^4.0.0", - "lowlight": "^3.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-katex": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz", - "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/katex": "^0.16.0", - "hast-util-from-html-isomorphic": "^2.0.0", - "hast-util-to-text": "^4.0.0", - "katex": "^0.16.0", - "unist-util-visit-parents": "^6.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-breaks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-breaks/-/remark-breaks-4.0.0.tgz", - "integrity": "sha512-IjEjJOkH4FuJvHZVIW0QCDWxcG96kCq7An/KVH2NfJe6rKZU2AsHeB3OEjPNRxi4QC34Xdx7I2KGYn6IpT7gxQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-newline-to-break": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-gfm": "^3.0.0", - "micromark-extension-gfm": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-math": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz", - "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-math": "^3.0.0", - "micromark-extension-math": "^3.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", - "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.34.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.2.tgz", - "integrity": "sha512-sBDUoxZEaqLu9QeNalL8v3jw6WjPku4wfZGyTU7l7m1oC+rpRihXc/n/H+4148ZkGz5Xli8CHMns//fFGKvpIQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.2", - "@rollup/rollup-android-arm64": "4.34.2", - "@rollup/rollup-darwin-arm64": "4.34.2", - "@rollup/rollup-darwin-x64": "4.34.2", - "@rollup/rollup-freebsd-arm64": "4.34.2", - "@rollup/rollup-freebsd-x64": "4.34.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.2", - "@rollup/rollup-linux-arm-musleabihf": "4.34.2", - "@rollup/rollup-linux-arm64-gnu": "4.34.2", - "@rollup/rollup-linux-arm64-musl": "4.34.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.2", - "@rollup/rollup-linux-riscv64-gnu": "4.34.2", - "@rollup/rollup-linux-s390x-gnu": "4.34.2", - "@rollup/rollup-linux-x64-gnu": "4.34.2", - "@rollup/rollup-linux-x64-musl": "4.34.2", - "@rollup/rollup-win32-arm64-msvc": "4.34.2", - "@rollup/rollup-win32-ia32-msvc": "4.34.2", - "@rollup/rollup-win32-x64-msvc": "4.34.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "devOptional": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/sass-embedded": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.83.4.tgz", - "integrity": "sha512-Hf2burRA/y5PGxsg6jB9UpoK/xZ6g/pgrkOcdl6j+rRg1Zj8XhGKZ1MTysZGtTPUUmiiErqzkP5+Kzp95yv9GQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@bufbuild/protobuf": "^2.0.0", - "buffer-builder": "^0.2.0", - "colorjs.io": "^0.5.0", - "immutable": "^5.0.2", - "rxjs": "^7.4.0", - "supports-color": "^8.1.1", - "sync-child-process": "^1.0.2", - "varint": "^6.0.0" - }, - "bin": { - "sass": "dist/bin/sass.js" - }, - "engines": { - "node": ">=16.0.0" - }, - "optionalDependencies": { - "sass-embedded-android-arm": "1.83.4", - "sass-embedded-android-arm64": "1.83.4", - "sass-embedded-android-ia32": "1.83.4", - "sass-embedded-android-riscv64": "1.83.4", - "sass-embedded-android-x64": "1.83.4", - "sass-embedded-darwin-arm64": "1.83.4", - "sass-embedded-darwin-x64": "1.83.4", - "sass-embedded-linux-arm": "1.83.4", - "sass-embedded-linux-arm64": "1.83.4", - "sass-embedded-linux-ia32": "1.83.4", - "sass-embedded-linux-musl-arm": "1.83.4", - "sass-embedded-linux-musl-arm64": "1.83.4", - "sass-embedded-linux-musl-ia32": "1.83.4", - "sass-embedded-linux-musl-riscv64": "1.83.4", - "sass-embedded-linux-musl-x64": "1.83.4", - "sass-embedded-linux-riscv64": "1.83.4", - "sass-embedded-linux-x64": "1.83.4", - "sass-embedded-win32-arm64": "1.83.4", - "sass-embedded-win32-ia32": "1.83.4", - "sass-embedded-win32-x64": "1.83.4" - } - }, - "node_modules/sass-embedded-android-arm": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.83.4.tgz", - "integrity": "sha512-9Z4pJAOgEkXa3VDY/o+U6l5XvV0mZTJcSl0l/mSPHihjAHSpLYnOW6+KOWeM8dxqrsqTYcd6COzhanI/a++5Gw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-android-arm64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.83.4.tgz", - "integrity": "sha512-tgX4FzmbVqnQmD67ZxQDvI+qFNABrboOQgwsG05E5bA/US42zGajW9AxpECJYiMXVOHmg+d81ICbjb0fsVHskw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-android-ia32": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.83.4.tgz", - "integrity": "sha512-RsFOziFqPcfZXdFRULC4Ayzy9aK6R6FwQ411broCjlOBX+b0gurjRadkue3cfUEUR5mmy0KeCbp7zVKPLTK+5Q==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-android-riscv64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.83.4.tgz", - "integrity": "sha512-EHwh0nmQarBBrMRU928eTZkFGx19k/XW2YwbPR4gBVdWLkbTgCA5aGe8hTE6/1zStyx++3nDGvTZ78+b/VvvLg==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-android-x64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.83.4.tgz", - "integrity": "sha512-0PgQNuPWYy1jEOEPDVsV89KfqOsMLIp9CSbjBY7jRcwRhyVAcigqrUG6bDeNtojHUYKA1kU+Eh/85WxOHUOgBw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-darwin-arm64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.83.4.tgz", - "integrity": "sha512-rp2ywymWc3nymnSnAFG5R/8hvxWCsuhK3wOnD10IDlmNB7o4rzKby1c+2ZfpQGowlYGWsWWTgz8FW2qzmZsQRw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-darwin-x64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.83.4.tgz", - "integrity": "sha512-kLkN2lXz9PCgGfDS8Ev5YVcl/V2173L6379en/CaFuJJi7WiyPgBymW7hOmfCt4uO4R1y7CP2Uc08DRtZsBlAA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-arm": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.83.4.tgz", - "integrity": "sha512-nL90ryxX2lNmFucr9jYUyHHx21AoAgdCL1O5Ltx2rKg2xTdytAGHYo2MT5S0LIeKLa/yKP/hjuSvrbICYNDvtA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-arm64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.83.4.tgz", - "integrity": "sha512-E0zjsZX2HgESwyqw31EHtI39DKa7RgK7nvIhIRco1d0QEw227WnoR9pjH3M/ZQy4gQj3GKilOFHM5Krs/omeIA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-ia32": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.83.4.tgz", - "integrity": "sha512-ew5HpchSzgAYbQoriRh8QhlWn5Kw2nQ2jHoV9YLwGKe3fwwOWA0KDedssvDv7FWnY/FCqXyymhLd6Bxae4Xquw==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-arm": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.83.4.tgz", - "integrity": "sha512-0RrJRwMrmm+gG0VOB5b5Cjs7Sd+lhqpQJa6EJNEaZHljJokEfpE5GejZsGMRMIQLxEvVphZnnxl6sonCGFE/QQ==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-arm64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.83.4.tgz", - "integrity": "sha512-IzMgalf6MZOxgp4AVCgsaWAFDP/IVWOrgVXxkyhw29fyAEoSWBJH4k87wyPhEtxSuzVHLxKNbc8k3UzdWmlBFg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-ia32": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.83.4.tgz", - "integrity": "sha512-LLb4lYbcxPzX4UaJymYXC+WwokxUlfTJEFUv5VF0OTuSsHAGNRs/rslPtzVBTvMeG9TtlOQDhku1F7G6iaDotA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-riscv64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.83.4.tgz", - "integrity": "sha512-zoKlPzD5Z13HKin1UGR74QkEy+kZEk2AkGX5RelRG494mi+IWwRuWCppXIovor9+BQb9eDWPYPoMVahwN5F7VA==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-x64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.83.4.tgz", - "integrity": "sha512-hB8+/PYhfEf2zTIcidO5Bpof9trK6WJjZ4T8g2MrxQh8REVtdPcgIkoxczRynqybf9+fbqbUwzXtiUao2GV+vQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-riscv64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.83.4.tgz", - "integrity": "sha512-83fL4n+oeDJ0Y4KjASmZ9jHS1Vl9ESVQYHMhJE0i4xDi/P3BNarm2rsKljq/QtrwGpbqwn8ujzOu7DsNCMDSHA==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-x64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.83.4.tgz", - "integrity": "sha512-NlnGdvCmTD5PK+LKXlK3sAuxOgbRIEoZfnHvxd157imCm/s2SYF/R28D0DAAjEViyI8DovIWghgbcqwuertXsA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-win32-arm64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.83.4.tgz", - "integrity": "sha512-J2BFKrEaeSrVazU2qTjyQdAk+MvbzJeTuCET0uAJEXSKtvQ3AzxvzndS7LqkDPbF32eXAHLw8GVpwcBwKbB3Uw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-win32-ia32": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.83.4.tgz", - "integrity": "sha512-uPAe9T/5sANFhJS5dcfAOhOJy8/l2TRYG4r+UO3Wp4yhqbN7bggPvY9c7zMYS0OC8tU/bCvfYUDFHYMCl91FgA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-win32-x64": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.83.4.tgz", - "integrity": "sha512-C9fkDY0jKITdJFij4UbfPFswxoXN9O/Dr79v17fJnstVwtUojzVJWKHUXvF0Zg2LIR7TCc4ju3adejKFxj7ueA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.4" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sync-child-process": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz", - "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "sync-message-port": "^1.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/sync-message-port": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.1.3.tgz", - "integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/tailwindcss": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.1.tgz", - "integrity": "sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==", - "license": "MIT" - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.39.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.1.tgz", - "integrity": "sha512-Mm6+uad0ZuDtcV8/4uOZQDQ8RuiC5Pu+iZRedJtF7yA/27sPL7d++In/AJKpWZlU3SYMPPkVfwetn6sgZ66pUA==", - "license": "BSD-2-Clause", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/textlinestream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/textlinestream/-/textlinestream-1.1.1.tgz", - "integrity": "sha512-iBHbi7BQxrFmwZUQJsT0SjNzlLLsXhvW/kg7EyOMVMBIrlnj/qYofwo1LVLZi+3GbUEo96Iu2eqToI2+lZoAEQ==", - "license": "MIT" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-api-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", - "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.23.0.tgz", - "integrity": "sha512-/LBRo3HrXr5LxmrdYSOCvoAMm7p2jNizNfbIpCgvG4HMsnoprRUOce/+8VJ9BDYWW68rqIENE/haVLWPeFZBVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.23.0", - "@typescript-eslint/parser": "8.23.0", - "@typescript-eslint/utils": "8.23.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-find-after": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", - "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", - "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", - "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vite": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", - "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", - "license": "MIT", - "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.4.49", - "rollup": "^4.23.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite-plugin-singlefile": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vite-plugin-singlefile/-/vite-plugin-singlefile-2.1.0.tgz", - "integrity": "sha512-7tJo+UgZABlKpY/nubth/wxJ4+pUGREPnEwNOknxwl2MM0zTvF14KTU4Ln1lc140gjLLV5mjDrvuoquU7OZqCg==", - "license": "MIT", - "dependencies": { - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">18.0.0" - }, - "peerDependencies": { - "rollup": "^4.28.1", - "vite": "^5.4.11 || ^6.0.0" - } - }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } + "name": "webui", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "webui", + "version": "1.0.0", + "dependencies": { + "highlight.js": "^11.11.1", + "mode-watcher": "^1.1.0", + "pdfjs-dist": "^5.4.54", + "rehype-highlight": "^7.0.2", + "rehype-stringify": "^10.0.1", + "remark": "^15.0.1", + "remark-breaks": "^4.0.0", + "remark-gfm": "^4.0.1", + "remark-html": "^16.0.1", + "remark-rehype": "^11.1.2", + "svelte-sonner": "^1.0.5", + "unist-util-visit": "^5.0.0" + }, + "devDependencies": { + "@chromatic-com/storybook": "^4.0.1", + "@eslint/compat": "^1.2.5", + "@eslint/js": "^9.18.0", + "@internationalized/date": "^3.8.2", + "@lucide/svelte": "^0.515.0", + "@playwright/test": "^1.49.1", + "@storybook/addon-a11y": "^9.0.17", + "@storybook/addon-docs": "^9.0.17", + "@storybook/addon-svelte-csf": "^5.0.7", + "@storybook/addon-vitest": "^9.0.17", + "@storybook/sveltekit": "^9.0.17", + "@sveltejs/adapter-static": "^3.0.8", + "@sveltejs/kit": "^2.22.0", + "@sveltejs/vite-plugin-svelte": "^6.0.0", + "@tailwindcss/forms": "^0.5.9", + "@tailwindcss/typography": "^0.5.15", + "@tailwindcss/vite": "^4.0.0", + "@types/node": "^22", + "@vitest/browser": "^3.2.3", + "bits-ui": "^2.8.11", + "clsx": "^2.1.1", + "dexie": "^4.0.11", + "eslint": "^9.18.0", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-storybook": "^9.0.17", + "eslint-plugin-svelte": "^3.0.0", + "fflate": "^0.8.2", + "globals": "^16.0.0", + "mdsvex": "^0.12.3", + "playwright": "^1.53.0", + "prettier": "^3.4.2", + "prettier-plugin-svelte": "^3.3.3", + "prettier-plugin-tailwindcss": "^0.6.11", + "rehype-katex": "^7.0.1", + "remark-math": "^6.0.0", + "storybook": "^9.0.17", + "svelte": "^5.0.0", + "svelte-check": "^4.0.0", + "tailwind-merge": "^3.3.1", + "tailwind-variants": "^1.0.0", + "tailwindcss": "^4.0.0", + "tw-animate-css": "^1.3.5", + "typescript": "^5.0.0", + "typescript-eslint": "^8.20.0", + "uuid": "^13.0.0", + "vite": "^7.0.4", + "vite-plugin-devtools-json": "^0.2.0", + "vitest": "^3.2.3", + "vitest-browser-svelte": "^0.1.0" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.3.tgz", + "integrity": "sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@chromatic-com/storybook": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@chromatic-com/storybook/-/storybook-4.0.1.tgz", + "integrity": "sha512-GQXe5lyZl3yLewLJQyFXEpOp2h+mfN2bPrzYaOFNCJjO4Js9deKbRHTOSaiP2FRwZqDLdQwy2+SEGeXPZ94yYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@neoconfetti/react": "^1.0.0", + "chromatic": "^12.0.0", + "filesize": "^10.0.12", + "jsonfile": "^6.1.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=20.0.0", + "yarn": ">=1.22.18" + }, + "peerDependencies": { + "storybook": "^0.0.0-0 || ^9.0.0 || ^9.1.0-0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz", + "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz", + "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz", + "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz", + "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz", + "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz", + "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz", + "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz", + "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz", + "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz", + "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz", + "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz", + "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz", + "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz", + "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz", + "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz", + "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz", + "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz", + "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz", + "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz", + "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz", + "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz", + "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz", + "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz", + "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz", + "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz", + "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/compat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.3.1.tgz", + "integrity": "sha512-k8MHony59I5EPic6EQTCNOuPoVBnoYXkP+20xvwFjN7t0qI3ImyvyBgg+hIVPwC8JaxVjjUZld+cLfBLFDLucg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^8.40 || 9" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz", + "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.2", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.2.tgz", + "integrity": "sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.2.tgz", + "integrity": "sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.2", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@internationalized/date": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.8.2.tgz", + "integrity": "sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lucide/svelte": { + "version": "0.515.0", + "resolved": "https://registry.npmjs.org/@lucide/svelte/-/svelte-0.515.0.tgz", + "integrity": "sha512-CEAyqcZmNBfYzVgaRmK2RFJP5tnbXxekRyDk0XX/eZQRfsJmkDvmQwXNX8C869BgNeryzmrRyjHhUL6g9ZOHNA==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "svelte": "^5" + } + }, + "node_modules/@mdx-js/react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", + "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@napi-rs/canvas": { + "version": "0.1.76", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.76.tgz", + "integrity": "sha512-YIk5okeNN53GzjvWmAyCQFE9xrLeQXzYpudX4TiLvqaz9SqXgIgxIuKPe4DKyB5nccsQMIev7JGKTzZaN5rFdw==", + "license": "MIT", + "optional": true, + "workspaces": [ + "e2e/*" + ], + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@napi-rs/canvas-android-arm64": "0.1.76", + "@napi-rs/canvas-darwin-arm64": "0.1.76", + "@napi-rs/canvas-darwin-x64": "0.1.76", + "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.76", + "@napi-rs/canvas-linux-arm64-gnu": "0.1.76", + "@napi-rs/canvas-linux-arm64-musl": "0.1.76", + "@napi-rs/canvas-linux-riscv64-gnu": "0.1.76", + "@napi-rs/canvas-linux-x64-gnu": "0.1.76", + "@napi-rs/canvas-linux-x64-musl": "0.1.76", + "@napi-rs/canvas-win32-x64-msvc": "0.1.76" + } + }, + "node_modules/@napi-rs/canvas-android-arm64": { + "version": "0.1.76", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.76.tgz", + "integrity": "sha512-7EAfkLBQo2QoEzpHdInFbfEUYTXsiO2hvtFo1D9zfTzcQM8n5piZdOpJ3EIkmpe8yLoSV8HLyUQtq4bv11x6Tg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-arm64": { + "version": "0.1.76", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.76.tgz", + "integrity": "sha512-Cs8WRMzaWSJWeWY8tvnCe+TuduHUbB0xFhZ0FmOrNy2prPxT4A6aU3FQu8hR9XJw8kKZ7v902wzaDmy9SdhG8A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-x64": { + "version": "0.1.76", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.76.tgz", + "integrity": "sha512-ya+T6gV9XAq7YAnMa2fKhWXAuRR5cpRny2IoHacoMxgtOARnUkJO/k3hIb52FtMoq7UxLi5+IFGVHU6ZiMu4Ag==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": { + "version": "0.1.76", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.76.tgz", + "integrity": "sha512-fgnPb+FKVuixACvkHGldJqYXExORBwvqGgL0K80uE6SGH2t0UKD2auHw2CtBy14DUzfg82PkupO2ix2w7kB+Xw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-gnu": { + "version": "0.1.76", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.76.tgz", + "integrity": "sha512-r8OxIenvBPOa4I014k1ZWTCz2dB0ZTsxMP7+ovMOKO7jkl1Z+YZo2OTAqxArpMhN0wdEeI3Lw9zUcn2HgwEgDA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-musl": { + "version": "0.1.76", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.76.tgz", + "integrity": "sha512-smxwzKfHYaOYG7QXUuDPrFEC7WqjL3Lx4AM6mk8/FxDAS+8o0eoZJwSu+zXsaBLimEQUozEYgEGtJ2JJ0RdL4A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-riscv64-gnu": { + "version": "0.1.76", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.76.tgz", + "integrity": "sha512-G2PsFwsP+r4syEoNLStV3n1wtNAClwf8s/qB57bexG08R4f4WaiBd+x+d4iYS0Y5o90YIEm8/ewZn4bLIa0wNQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-gnu": { + "version": "0.1.76", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.76.tgz", + "integrity": "sha512-SNK+vgge4DnuONYdYE3Y09LivGgUiUPQDU+PdGNZJIzIi0hRDLcA59eag8LGeQfPmJW84c1aZD04voihybKFog==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-musl": { + "version": "0.1.76", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.76.tgz", + "integrity": "sha512-tWHLBI9iVoR1NsfpHz1MGERTkqcca8akbH/CzX6JQUNC+lJOeYYXeRuK8hKqMIg1LI+4QOMAtHNVeZu8NvjEug==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-win32-x64-msvc": { + "version": "0.1.76", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.76.tgz", + "integrity": "sha512-ifM5HOGw2hP5QLQzCB41Riw3Pq5yKAAjZpn+lJC0sYBmyS2s/Kq6KpTOKxf0CuptkI1wMcRcYQfhLRdeWiYvIg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@neoconfetti/react": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@neoconfetti/react/-/react-1.0.0.tgz", + "integrity": "sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@playwright/test": { + "version": "1.54.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.54.1.tgz", + "integrity": "sha512-FS8hQ12acieG2dYSksmLOF7BNxnVf2afRJdCuM1eMSxj6QTSE6G4InGF7oApGgDb65MX7AwMVlIkpru0yZA4Xw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.54.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.1.tgz", + "integrity": "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.1.tgz", + "integrity": "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.1.tgz", + "integrity": "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.1.tgz", + "integrity": "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.1.tgz", + "integrity": "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.1.tgz", + "integrity": "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.1.tgz", + "integrity": "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.1.tgz", + "integrity": "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.1.tgz", + "integrity": "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.1.tgz", + "integrity": "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.1.tgz", + "integrity": "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.1.tgz", + "integrity": "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.1.tgz", + "integrity": "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.1.tgz", + "integrity": "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.1.tgz", + "integrity": "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.1.tgz", + "integrity": "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.1.tgz", + "integrity": "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.1.tgz", + "integrity": "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.1.tgz", + "integrity": "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.1.tgz", + "integrity": "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/addon-a11y": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-9.0.17.tgz", + "integrity": "sha512-9cXNK3q/atx3hwJAt9HkJbd9vUxCXfKKiNNuSACbf8h9/j6u3jktulKOf6Xjc3B8lwn6ZpdK/x1HHZN2kTqsvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "axe-core": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^9.0.17" + } + }, + "node_modules/@storybook/addon-docs": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-9.0.17.tgz", + "integrity": "sha512-LOX/kKgQGnyulrqZHsvf77+ZoH/nSUaplGr5hvZglW/U6ak6fO9seJyXAzVKEnC6p+F8n02kFBZbi3s+znQhSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdx-js/react": "^3.0.0", + "@storybook/csf-plugin": "9.0.17", + "@storybook/icons": "^1.2.12", + "@storybook/react-dom-shim": "9.0.17", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^9.0.17" + } + }, + "node_modules/@storybook/addon-svelte-csf": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-svelte-csf/-/addon-svelte-csf-5.0.7.tgz", + "integrity": "sha512-6Zmy5HjOlrrG6OoKRTGDr9LR6zRK4/Sa7raFzQRKHGASgMlfKsMdNTNO0sxnMUWCu2JMS6HsuoLtB3Ma8SlYtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf": "^0.1.13", + "dedent": "^1.5.3", + "es-toolkit": "^1.26.1", + "esrap": "^1.2.2", + "magic-string": "^0.30.12", + "svelte-ast-print": "^0.4.0", + "zimmerframe": "^1.1.2" + }, + "peerDependencies": { + "@storybook/svelte": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0", + "@sveltejs/vite-plugin-svelte": "^4.0.0 || ^5.0.0 || ^6.0.0", + "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0", + "svelte": "^5.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@storybook/addon-vitest": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@storybook/addon-vitest/-/addon-vitest-9.0.17.tgz", + "integrity": "sha512-eogqcGbACR1sTedBSE2SP/4QV1ruicHYEhYjBtoPIjvYgymN1g5KSuQNysLx4f0SvAzczrcNjX2WVVLX2DVyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "@storybook/icons": "^1.4.0", + "prompts": "^2.4.0", + "ts-dedent": "^2.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@vitest/browser": "^3.0.0", + "@vitest/runner": "^3.0.0", + "storybook": "^9.0.17", + "vitest": "^3.0.0" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + }, + "@vitest/runner": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "node_modules/@storybook/builder-vite": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-9.0.17.tgz", + "integrity": "sha512-lyuvgGhb0NaVk1tdB4xwzky6+YXQfxlxfNQqENYZ9uYQZdPfErMa4ZTXVQTV+CQHAa2NL+p/dG2JPAeu39e9UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf-plugin": "9.0.17", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^9.0.17", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@storybook/csf": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.13.tgz", + "integrity": "sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^2.19.0" + } + }, + "node_modules/@storybook/csf-plugin": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-9.0.17.tgz", + "integrity": "sha512-6Q4eo1ObrLlsnB6bIt6T8+45XAb4to2pQGNrI7QPkLQRLrZinrJcNbLY7AGkyIoCOEsEbq08n09/nClQUbu8HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "unplugin": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^9.0.17" + } + }, + "node_modules/@storybook/global": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", + "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/icons": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.4.0.tgz", + "integrity": "sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" + } + }, + "node_modules/@storybook/react-dom-shim": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-9.0.17.tgz", + "integrity": "sha512-ak/x/m6MDDxdE6rCDymTltaiQF3oiKrPHSwfM+YPgQR6MVmzTTs4+qaPfeev7FZEHq23IkfDMTmSTTJtX7Vs9A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^9.0.17" + } + }, + "node_modules/@storybook/svelte": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@storybook/svelte/-/svelte-9.0.17.tgz", + "integrity": "sha512-RwOswdq7S3+ZOuoM/oRrcmlsKdjcd/3wMHbuirzYoAhdwsjubSuRepMV64O9RnlXd3x7rZw4fXpq1M/SVo5XiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ts-dedent": "^2.0.0", + "type-fest": "~2.19" + }, + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^9.0.17", + "svelte": "^5.0.0" + } + }, + "node_modules/@storybook/sveltekit": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@storybook/sveltekit/-/sveltekit-9.0.17.tgz", + "integrity": "sha512-CUOATuW5Qk3SjNvmjH+wyx2GCsMF1cvw3gwkujV9kehPebzV20NhgHpbzSoepvwF7+Bj6jl8V6UxiMWk0jJFmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/builder-vite": "9.0.17", + "@storybook/svelte": "9.0.17", + "@storybook/svelte-vite": "9.0.17" + }, + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^9.0.17", + "svelte": "^5.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@storybook/sveltekit/node_modules/@storybook/svelte-vite": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/@storybook/svelte-vite/-/svelte-vite-9.0.17.tgz", + "integrity": "sha512-fRIxOZy9IRI6BfL1LgFn+B+IckGOlT1SstD01y9ddO4pVKWih/l+vb44bnZs+Z0faJZbrG/LgfnXTOPj052Z8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/builder-vite": "9.0.17", + "@storybook/svelte": "9.0.17", + "magic-string": "^0.30.0", + "svelte2tsx": "^0.7.35", + "typescript": "^4.9.4 || ^5.0.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", + "storybook": "^9.0.17", + "svelte": "^5.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@storybook/sveltekit/node_modules/@sveltejs/vite-plugin-svelte": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.1.1.tgz", + "integrity": "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", + "debug": "^4.4.1", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.17", + "vitefu": "^1.0.6" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite": "^6.0.0" + } + }, + "node_modules/@storybook/sveltekit/node_modules/@sveltejs/vite-plugin-svelte/node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz", + "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^4.3.7" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.0", + "svelte": "^5.0.0", + "vite": "^6.0.0" + } + }, + "node_modules/@sveltejs/acorn-typescript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.5.tgz", + "integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^8.9.0" + } + }, + "node_modules/@sveltejs/adapter-static": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.9.tgz", + "integrity": "sha512-aytHXcMi7lb9ljsWUzXYQ0p5X1z9oWud2olu/EpmH7aCu4m84h7QLvb5Wp+CFirKcwoNnYvYWhyP/L8Vh1ztdw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.37.0", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.37.0.tgz", + "integrity": "sha512-xgKtpjQ6Ry4mdShd01ht5AODUsW7+K1iValPDq7QX8zI1hWOKREH9GjG8SRCN5tC4K7UXmMhuQam7gbLByVcnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/cookie": "^0.6.0", + "acorn": "^8.14.1", + "cookie": "^0.6.0", + "devalue": "^5.3.2", + "esm-env": "^1.2.2", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^3.0.0" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + } + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.1.0.tgz", + "integrity": "sha512-+U6lz1wvGEG/BvQyL4z/flyNdQ9xDNv5vrh+vWBWTHaebqT0c9RNggpZTo/XSPoHsSCWBlYaTlRX8pZ9GATXCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0-next.1", + "debug": "^4.4.1", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.17", + "vitefu": "^1.1.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.0.tgz", + "integrity": "sha512-iwQ8Z4ET6ZFSt/gC+tVfcsSBHwsqc6RumSaiLUkAurW3BCpJam65cmHw0oOlDMTO0u+PZi9hilBRYN+LZNHTUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", + "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.10.tgz", + "integrity": "sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.11.tgz", + "integrity": "sha512-yzhzuGRmv5QyU9qLNg4GTlYI6STedBWRE7NjxP45CsFYYq9taI0zJXZBMqIC/c8fViNLhmrbpSFS57EoxUmD6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.30.1", + "magic-string": "^0.30.17", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.11" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.11.tgz", + "integrity": "sha512-Q69XzrtAhuyfHo+5/HMgr1lAiPP/G40OMFAnws7xcFEYqcypZmdW8eGXaOUIeOl1dzPJBPENXgbjsOyhg2nkrg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.11", + "@tailwindcss/oxide-darwin-arm64": "4.1.11", + "@tailwindcss/oxide-darwin-x64": "4.1.11", + "@tailwindcss/oxide-freebsd-x64": "4.1.11", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.11", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.11", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.11", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.11", + "@tailwindcss/oxide-linux-x64-musl": "4.1.11", + "@tailwindcss/oxide-wasm32-wasi": "4.1.11", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.11", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.11" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.11.tgz", + "integrity": "sha512-3IfFuATVRUMZZprEIx9OGDjG3Ou3jG4xQzNTvjDoKmU9JdmoCohQJ83MYd0GPnQIu89YoJqvMM0G3uqLRFtetg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.11.tgz", + "integrity": "sha512-ESgStEOEsyg8J5YcMb1xl8WFOXfeBmrhAwGsFxxB2CxY9evy63+AtpbDLAyRkJnxLy2WsD1qF13E97uQyP1lfQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.11.tgz", + "integrity": "sha512-EgnK8kRchgmgzG6jE10UQNaH9Mwi2n+yw1jWmof9Vyg2lpKNX2ioe7CJdf9M5f8V9uaQxInenZkOxnTVL3fhAw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.11.tgz", + "integrity": "sha512-xdqKtbpHs7pQhIKmqVpxStnY1skuNh4CtbcyOHeX1YBE0hArj2romsFGb6yUmzkq/6M24nkxDqU8GYrKrz+UcA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.11.tgz", + "integrity": "sha512-ryHQK2eyDYYMwB5wZL46uoxz2zzDZsFBwfjssgB7pzytAeCCa6glsiJGjhTEddq/4OsIjsLNMAiMlHNYnkEEeg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.11.tgz", + "integrity": "sha512-mYwqheq4BXF83j/w75ewkPJmPZIqqP1nhoghS9D57CLjsh3Nfq0m4ftTotRYtGnZd3eCztgbSPJ9QhfC91gDZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.11.tgz", + "integrity": "sha512-m/NVRFNGlEHJrNVk3O6I9ggVuNjXHIPoD6bqay/pubtYC9QIdAMpS+cswZQPBLvVvEF6GtSNONbDkZrjWZXYNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.11.tgz", + "integrity": "sha512-YW6sblI7xukSD2TdbbaeQVDysIm/UPJtObHJHKxDEcW2exAtY47j52f8jZXkqE1krdnkhCMGqP3dbniu1Te2Fg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.11.tgz", + "integrity": "sha512-e3C/RRhGunWYNC3aSF7exsQkdXzQ/M+aYuZHKnw4U7KQwTJotnWsGOIVih0s2qQzmEzOFIJ3+xt7iq67K/p56Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.11.tgz", + "integrity": "sha512-Xo1+/GU0JEN/C/dvcammKHzeM6NqKovG+6921MR6oadee5XPBaKOumrJCXvopJ/Qb5TH7LX/UAywbqrP4lax0g==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@emnapi/wasi-threads": "^1.0.2", + "@napi-rs/wasm-runtime": "^0.2.11", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.11.tgz", + "integrity": "sha512-UgKYx5PwEKrac3GPNPf6HVMNhUIGuUh4wlDFR2jYYdkX6pL/rn73zTq/4pzUm8fOjAn5L8zDeHp9iXmUGOXZ+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.11.tgz", + "integrity": "sha512-YfHoggn1j0LK7wR82TOucWc5LDCguHnoS879idHekmmiR7g9HUtMw9MI0NHatS28u/Xlkfi9w5RJWgz2Dl+5Qg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz", + "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.11.tgz", + "integrity": "sha512-RHYhrR3hku0MJFRV+fN2gNbDNEh3dwKvY8XJvTxCSXeMOsCRSr+uKvDWQcbizrHgjML6ZmTE5OwMrl5wKcujCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.11", + "@tailwindcss/oxide": "4.1.11", + "tailwindcss": "4.1.11" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", + "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.21", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/chai": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", + "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/katex": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", + "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", + "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/react": { + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", + "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.37.0.tgz", + "integrity": "sha512-jsuVWeIkb6ggzB+wPCsR4e6loj+rM72ohW6IBn2C+5NCvfUVY8s33iFPySSVXqtm5Hu29Ne/9bnA0JmyLmgenA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.37.0", + "@typescript-eslint/type-utils": "8.37.0", + "@typescript-eslint/utils": "8.37.0", + "@typescript-eslint/visitor-keys": "8.37.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.37.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.37.0.tgz", + "integrity": "sha512-kVIaQE9vrN9RLCQMQ3iyRlVJpTiDUY6woHGb30JDkfJErqrQEmtdWH3gV0PBAfGZgQXoqzXOO0T3K6ioApbbAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.37.0", + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/typescript-estree": "8.37.0", + "@typescript-eslint/visitor-keys": "8.37.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.37.0.tgz", + "integrity": "sha512-BIUXYsbkl5A1aJDdYJCBAo8rCEbAvdquQ8AnLb6z5Lp1u3x5PNgSSx9A/zqYc++Xnr/0DVpls8iQ2cJs/izTXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.37.0", + "@typescript-eslint/types": "^8.37.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.37.0.tgz", + "integrity": "sha512-0vGq0yiU1gbjKob2q691ybTg9JX6ShiVXAAfm2jGf3q0hdP6/BruaFjL/ManAR/lj05AvYCH+5bbVo0VtzmjOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/visitor-keys": "8.37.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.37.0.tgz", + "integrity": "sha512-1/YHvAVTimMM9mmlPvTec9NP4bobA1RkDbMydxG8omqwJJLEW/Iy2C4adsAESIXU3WGLXFHSZUU+C9EoFWl4Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.37.0.tgz", + "integrity": "sha512-SPkXWIkVZxhgwSwVq9rqj/4VFo7MnWwVaRNznfQDc/xPYHjXnPfLWn+4L6FF1cAz6e7dsqBeMawgl7QjUMj4Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/typescript-estree": "8.37.0", + "@typescript-eslint/utils": "8.37.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.37.0.tgz", + "integrity": "sha512-ax0nv7PUF9NOVPs+lmQ7yIE7IQmAf8LGcXbMvHX5Gm+YJUYNAl340XkGnrimxZ0elXyoQJuN5sbg6C4evKA4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.37.0.tgz", + "integrity": "sha512-zuWDMDuzMRbQOM+bHyU4/slw27bAUEcKSKKs3hcv2aNnc/tvE/h7w60dwVw8vnal2Pub6RT1T7BI8tFZ1fE+yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.37.0", + "@typescript-eslint/tsconfig-utils": "8.37.0", + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/visitor-keys": "8.37.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.37.0.tgz", + "integrity": "sha512-TSFvkIW6gGjN2p6zbXo20FzCABbyUAuq6tBvNRGsKdsSQ6a7rnV6ADfZ7f4iI3lIiXc4F4WWvtUfDw9CJ9pO5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.37.0", + "@typescript-eslint/types": "8.37.0", + "@typescript-eslint/typescript-estree": "8.37.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.37.0.tgz", + "integrity": "sha512-YzfhzcTnZVPiLfP/oeKtDp2evwvHLMe0LOy7oe+hb9KKIumLNohYS9Hgp1ifwpu42YWxhZE8yieggz6JpqO/1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.37.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@vitest/browser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-3.2.4.tgz", + "integrity": "sha512-tJxiPrWmzH8a+w9nLKlQMzAKX/7VjFs50MWgcAj7p9XQ7AQ9/35fByFYptgPELyLw+0aixTnC4pUWV+APcZ/kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@testing-library/dom": "^10.4.0", + "@testing-library/user-event": "^14.6.1", + "@vitest/mocker": "3.2.4", + "@vitest/utils": "3.2.4", + "magic-string": "^0.30.17", + "sirv": "^3.0.1", + "tinyrainbow": "^2.0.0", + "ws": "^8.18.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "playwright": "*", + "vitest": "3.2.4", + "webdriverio": "^7.0.0 || ^8.0.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/axe-core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "open": "^8.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/bits-ui": { + "version": "2.8.11", + "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-2.8.11.tgz", + "integrity": "sha512-lKN9rAk69my6j7H1D4B87r8LrHuEtfEsf1xCixBj9yViql2BdI3f04HyyyT7T1GOCpgb9+8b0B+nm3LN81Konw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.1", + "@floating-ui/dom": "^1.7.1", + "esm-env": "^1.1.2", + "runed": "^0.29.1", + "svelte-toolbelt": "^0.9.3", + "tabbable": "^6.2.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/huntabyte" + }, + "peerDependencies": { + "@internationalized/date": "^3.8.1", + "svelte": "^5.33.0" + } + }, + "node_modules/bits-ui/node_modules/runed": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/runed/-/runed-0.29.2.tgz", + "integrity": "sha512-0cq6cA6sYGZwl/FvVqjx9YN+1xEBu9sDDyuWdDW1yWX7JF2wmvmVKfH+hVCZs+csW+P3ARH92MjI3H9QTagOQA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/huntabyte", + "https://github.com/sponsors/tglide" + ], + "license": "MIT", + "dependencies": { + "esm-env": "^1.0.0" + }, + "peerDependencies": { + "svelte": "^5.7.0" + } + }, + "node_modules/bits-ui/node_modules/svelte-toolbelt": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/svelte-toolbelt/-/svelte-toolbelt-0.9.3.tgz", + "integrity": "sha512-HCSWxCtVmv+c6g1ACb8LTwHVbDqLKJvHpo6J8TaqwUme2hj9ATJCpjCPNISR1OCq2Q4U1KT41if9ON0isINQZw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/huntabyte" + ], + "dependencies": { + "clsx": "^2.1.1", + "runed": "^0.29.0", + "style-to-object": "^1.0.8" + }, + "engines": { + "node": ">=18", + "pnpm": ">=8.7.0" + }, + "peerDependencies": { + "svelte": "^5.30.2" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chai": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.1.tgz", + "integrity": "sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/chromatic": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-12.2.0.tgz", + "integrity": "sha512-GswmBW9ZptAoTns1BMyjbm55Z7EsIJnUvYKdQqXIBZIKbGErmpA+p4c0BYA+nzw5B0M+rb3Iqp1IaH8TFwIQew==", + "dev": true, + "license": "MIT", + "bin": { + "chroma": "dist/bin.js", + "chromatic": "dist/bin.js", + "chromatic-cli": "dist/bin.js" + }, + "peerDependencies": { + "@chromatic-com/cypress": "^0.*.* || ^1.0.0", + "@chromatic-com/playwright": "^0.*.* || ^1.0.0" + }, + "peerDependenciesMeta": { + "@chromatic-com/cypress": { + "optional": true + }, + "@chromatic-com/playwright": { + "optional": true + } + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dedent": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/dedent-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.3.2.tgz", + "integrity": "sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==", + "dev": true, + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dexie": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/dexie/-/dexie-4.0.11.tgz", + "integrity": "sha512-SOKO002EqlvBYYKQSew3iymBoN2EQ4BDw/3yprjh7kAfFzjBYkaMNa/pZvcA7HSWlcKSQb9XhPe3wKyQ0x4A8A==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", + "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-toolkit": { + "version": "1.39.7", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.39.7.tgz", + "integrity": "sha512-ek/wWryKouBrZIjkwW2BFf91CWOIMvoy2AE5YYgUrfWsJQM2Su1LoLtrw8uusEpN9RfqLlV/0FVNjT0WMv8Bxw==", + "dev": true, + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] + }, + "node_modules/esbuild": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz", + "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.8", + "@esbuild/android-arm": "0.25.8", + "@esbuild/android-arm64": "0.25.8", + "@esbuild/android-x64": "0.25.8", + "@esbuild/darwin-arm64": "0.25.8", + "@esbuild/darwin-x64": "0.25.8", + "@esbuild/freebsd-arm64": "0.25.8", + "@esbuild/freebsd-x64": "0.25.8", + "@esbuild/linux-arm": "0.25.8", + "@esbuild/linux-arm64": "0.25.8", + "@esbuild/linux-ia32": "0.25.8", + "@esbuild/linux-loong64": "0.25.8", + "@esbuild/linux-mips64el": "0.25.8", + "@esbuild/linux-ppc64": "0.25.8", + "@esbuild/linux-riscv64": "0.25.8", + "@esbuild/linux-s390x": "0.25.8", + "@esbuild/linux-x64": "0.25.8", + "@esbuild/netbsd-arm64": "0.25.8", + "@esbuild/netbsd-x64": "0.25.8", + "@esbuild/openbsd-arm64": "0.25.8", + "@esbuild/openbsd-x64": "0.25.8", + "@esbuild/openharmony-arm64": "0.25.8", + "@esbuild/sunos-x64": "0.25.8", + "@esbuild/win32-arm64": "0.25.8", + "@esbuild/win32-ia32": "0.25.8", + "@esbuild/win32-x64": "0.25.8" + } + }, + "node_modules/esbuild-register": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", + "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "peerDependencies": { + "esbuild": ">=0.12 <1" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz", + "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.31.0", + "@eslint/plugin-kit": "^0.3.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-storybook": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-9.0.17.tgz", + "integrity": "sha512-IuTdlwCEwoDNobdygRCxNhlKXHmsDfPtPvHGcsY35x2Bx8KItrjfekO19gJrjc1VT2CMfcZMYF8OBKaxHELupw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^8.8.1" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "eslint": ">=8", + "storybook": "^9.0.17" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.11.0.tgz", + "integrity": "sha512-KliWlkieHyEa65aQIkRwUFfHzT5Cn4u3BQQsu3KlkJOs7c1u7ryn84EWaOjEzilbKgttT4OfBURA8Uc4JBSQIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.6.1", + "@jridgewell/sourcemap-codec": "^1.5.0", + "esutils": "^2.0.3", + "globals": "^16.0.0", + "known-css-properties": "^0.37.0", + "postcss": "^8.4.49", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^7.0.0", + "semver": "^7.6.3", + "svelte-eslint-parser": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^8.57.1 || ^9.0.0", + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "license": "MIT" + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrap": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.9.tgz", + "integrity": "sha512-3OMlcd0a03UGuZpPeUC1HxR3nA23l+HEyCiZw3b3FumJIN9KphoGzDJKMXI1S72jVS1dsenDyQC0kJlO1U9E1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", + "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/filesize": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz", + "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 10.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", + "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hast-util-from-dom": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz", + "integrity": "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "@types/hast": "^3.0.0", + "hastscript": "^9.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html-isomorphic": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz", + "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-dom": "^5.0.0", + "hast-util-from-html": "^2.0.0", + "unist-util-remove-position": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/hast-util-from-html/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html/node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-sanitize": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-5.0.2.tgz", + "integrity": "sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "unist-util-position": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/highlight.js": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", + "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", + "license": "MIT" + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/katex": { + "version": "0.16.22", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", + "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", + "dev": true, + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", + "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loupe": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz", + "integrity": "sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowlight": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-3.3.0.tgz", + "integrity": "sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.0.0", + "highlight.js": "~11.11.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/mdast-util-from-markdown/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-math": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz", + "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "longest-streak": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.1.0", + "unist-util-remove-position": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-newline-to-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-newline-to-break/-/mdast-util-newline-to-break-2.0.0.tgz", + "integrity": "sha512-MbgeFca0hLYIEx/2zGsszCSEJJ1JSCdiY5xQxRcLDDGa8EPvlLPupJ4DSajbMPAnC0je8jfb9TiUATnxxrHUog==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-find-and-replace": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdsvex": { + "version": "0.12.6", + "resolved": "https://registry.npmjs.org/mdsvex/-/mdsvex-0.12.6.tgz", + "integrity": "sha512-pupx2gzWh3hDtm/iDW4WuCpljmyHbHi34r7ktOqpPGvyiM4MyfNgdJ3qMizXdgCErmvYC9Nn/qyjePy+4ss9Wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.4", + "@types/unist": "^2.0.3", + "prism-svelte": "^0.4.7", + "prismjs": "^1.17.1", + "unist-util-visit": "^2.0.1", + "vfile-message": "^2.0.4" + }, + "peerDependencies": { + "svelte": "^3.56.0 || ^4.0.0 || ^5.0.0-next.120" + } + }, + "node_modules/mdsvex/node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdsvex/node_modules/unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdsvex/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-math": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", + "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/katex": "^0.16.0", + "devlop": "^1.0.0", + "katex": "^0.16.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true, + "license": "MIT", + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mode-watcher": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mode-watcher/-/mode-watcher-1.1.0.tgz", + "integrity": "sha512-mUT9RRGPDYenk59qJauN1rhsIMKBmWA3xMF+uRwE8MW/tjhaDSCCARqkSuDTq8vr4/2KcAxIGVjACxTjdk5C3g==", + "license": "MIT", + "dependencies": { + "runed": "^0.25.0", + "svelte-toolbelt": "^0.7.1" + }, + "peerDependencies": { + "svelte": "^5.27.0" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/pdfjs-dist": { + "version": "5.4.54", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.4.54.tgz", + "integrity": "sha512-TBAiTfQw89gU/Z4LW98Vahzd2/LoCFprVGvGbTgFt+QCB1F+woyOPmNNVgLa6djX9Z9GGTnj7qE1UzpOVJiINw==", + "license": "Apache-2.0", + "engines": { + "node": ">=20.16.0 || >=22.3.0" + }, + "optionalDependencies": { + "@napi-rs/canvas": "^0.1.74" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/playwright": { + "version": "1.54.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.54.1.tgz", + "integrity": "sha512-peWpSwIBmSLi6aW2auvrUtf2DqY16YYcCMO8rTVx486jKmDTJg7UAhyrraP98GB8BoPURZP8+nxO7TSd4cPr5g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.54.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.54.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.54.1.tgz", + "integrity": "sha512-Nbjs2zjj0htNhzgiy5wu+3w09YetDx5pkrpI/kZotDlDUaYk0HVA5xrBVPdow4SAUIlhgKcJeJg4GRKW6xHusA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.4.0.tgz", + "integrity": "sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.6.14", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.14.tgz", + "integrity": "sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-hermes": "*", + "@prettier/plugin-oxc": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-hermes": { + "optional": true + }, + "@prettier/plugin-oxc": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prism-svelte": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/prism-svelte/-/prism-svelte-0.4.7.tgz", + "integrity": "sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/recast": { + "version": "0.23.11", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz", + "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rehype-highlight": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rehype-highlight/-/rehype-highlight-7.0.2.tgz", + "integrity": "sha512-k158pK7wdC2qL3M5NcZROZ2tR/l7zOzjxXd5VGdcfIyoijjQqpHd3JKtYSBDpDZ38UI2WJWuFAtkMDxmx5kstA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-text": "^4.0.0", + "lowlight": "^3.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-katex": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz", + "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/katex": "^0.16.0", + "hast-util-from-html-isomorphic": "^2.0.0", + "hast-util-to-text": "^4.0.0", + "katex": "^0.16.0", + "unist-util-visit-parents": "^6.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", + "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-breaks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-breaks/-/remark-breaks-4.0.0.tgz", + "integrity": "sha512-IjEjJOkH4FuJvHZVIW0QCDWxcG96kCq7An/KVH2NfJe6rKZU2AsHeB3OEjPNRxi4QC34Xdx7I2KGYn6IpT7gxQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-newline-to-break": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-html": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-16.0.1.tgz", + "integrity": "sha512-B9JqA5i0qZe0Nsf49q3OXyGvyXuZFDzAP2iOFLEumymuYJITVpiH1IgsTEwTpdptDmZlMDMWeDmSawdaJIGCXQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "hast-util-sanitize": "^5.0.0", + "hast-util-to-html": "^9.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-math": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz", + "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-math": "^3.0.0", + "micromark-extension-math": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.45.1.tgz", + "integrity": "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.45.1", + "@rollup/rollup-android-arm64": "4.45.1", + "@rollup/rollup-darwin-arm64": "4.45.1", + "@rollup/rollup-darwin-x64": "4.45.1", + "@rollup/rollup-freebsd-arm64": "4.45.1", + "@rollup/rollup-freebsd-x64": "4.45.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.45.1", + "@rollup/rollup-linux-arm-musleabihf": "4.45.1", + "@rollup/rollup-linux-arm64-gnu": "4.45.1", + "@rollup/rollup-linux-arm64-musl": "4.45.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.45.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-musl": "4.45.1", + "@rollup/rollup-linux-s390x-gnu": "4.45.1", + "@rollup/rollup-linux-x64-gnu": "4.45.1", + "@rollup/rollup-linux-x64-musl": "4.45.1", + "@rollup/rollup-win32-arm64-msvc": "4.45.1", + "@rollup/rollup-win32-ia32-msvc": "4.45.1", + "@rollup/rollup-win32-x64-msvc": "4.45.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/runed": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/runed/-/runed-0.25.0.tgz", + "integrity": "sha512-7+ma4AG9FT2sWQEA0Egf6mb7PBT2vHyuHail1ie8ropfSjvZGtEAx8YTmUjv/APCsdRRxEVvArNjALk9zFSOrg==", + "funding": [ + "https://github.com/sponsors/huntabyte", + "https://github.com/sponsors/tglide" + ], + "dependencies": { + "esm-env": "^1.0.0" + }, + "peerDependencies": { + "svelte": "^5.7.0" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/sirv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", + "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", + "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "dev": true, + "license": "MIT" + }, + "node_modules/storybook": { + "version": "9.0.17", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-9.0.17.tgz", + "integrity": "sha512-O+9jgJ+Trlq9VGD1uY4OBLKQWHHDKM/A/pA8vMW6PVehhGHNvpzcIC1bngr6mL5gGHZP2nBv+9XG8pTMcggMmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/user-event": "^14.6.1", + "@vitest/expect": "3.2.4", + "@vitest/spy": "3.2.4", + "better-opn": "^3.0.2", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", + "esbuild-register": "^3.5.0", + "recast": "^0.23.5", + "semver": "^7.6.2", + "ws": "^8.18.0" + }, + "bin": { + "storybook": "bin/index.cjs" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", + "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/style-to-object": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.9.tgz", + "integrity": "sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.4" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svelte": { + "version": "5.36.12", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.36.12.tgz", + "integrity": "sha512-c3mWT+b0yBLl3gPGSHiy4pdSQCsPNTjLC0tVoOhrGJ6PPfCzD/RQpAmAfJtQZ304CAae2ph+L3C4aqds3R3seQ==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "esm-env": "^1.2.1", + "esrap": "^2.1.0", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte-ast-print": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/svelte-ast-print/-/svelte-ast-print-0.4.2.tgz", + "integrity": "sha512-hRHHufbJoArFmDYQKCpCvc0xUuIEfwYksvyLYEQyH+1xb5LD5sM/IthfooCdXZQtOIqXz6xm7NmaqdfwG4kh6w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/xeho91" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/xeho91" + } + ], + "license": "MIT", + "dependencies": { + "esrap": "1.2.2", + "zimmerframe": "1.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "svelte": "^5.0.0" + } + }, + "node_modules/svelte-ast-print/node_modules/esrap": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.2.2.tgz", + "integrity": "sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1" + } + }, + "node_modules/svelte-check": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.0.tgz", + "integrity": "sha512-Iz8dFXzBNAM7XlEIsUjUGQhbEE+Pvv9odb9+0+ITTgFWZBGeJRRYqHUUglwe2EkLD5LIsQaAc4IUJyvtKuOO5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "chokidar": "^4.0.1", + "fdir": "^6.2.0", + "picocolors": "^1.0.0", + "sade": "^1.7.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": ">=5.0.0" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.3.0.tgz", + "integrity": "sha512-VCgMHKV7UtOGcGLGNFSbmdm6kEKjtzo5nnpGU/mnx4OsFY6bZ7QwRF5DUx+Hokw5Lvdyo8dpk8B1m8mliomrNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.0.0", + "postcss": "^8.4.49", + "postcss-scss": "^4.0.9", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-eslint-parser/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svelte-sonner": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/svelte-sonner/-/svelte-sonner-1.0.5.tgz", + "integrity": "sha512-9dpGPFqKb/QWudYqGnEz93vuY+NgCEvyNvxoCLMVGw6sDN/3oVeKV1xiEirW2E1N3vJEyj5imSBNOGltQHA7mg==", + "license": "MIT", + "dependencies": { + "runed": "^0.28.0" + }, + "peerDependencies": { + "svelte": "^5.0.0" + } + }, + "node_modules/svelte-sonner/node_modules/runed": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/runed/-/runed-0.28.0.tgz", + "integrity": "sha512-k2xx7RuO9hWcdd9f+8JoBeqWtYrm5CALfgpkg2YDB80ds/QE4w0qqu34A7fqiAwiBBSBQOid7TLxwxVC27ymWQ==", + "funding": [ + "https://github.com/sponsors/huntabyte", + "https://github.com/sponsors/tglide" + ], + "license": "MIT", + "dependencies": { + "esm-env": "^1.0.0" + }, + "peerDependencies": { + "svelte": "^5.7.0" + } + }, + "node_modules/svelte-toolbelt": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/svelte-toolbelt/-/svelte-toolbelt-0.7.1.tgz", + "integrity": "sha512-HcBOcR17Vx9bjaOceUvxkY3nGmbBmCBBbuWLLEWO6jtmWH8f/QoWmbyUfQZrpDINH39en1b8mptfPQT9VKQ1xQ==", + "funding": [ + "https://github.com/sponsors/huntabyte" + ], + "dependencies": { + "clsx": "^2.1.1", + "runed": "^0.23.2", + "style-to-object": "^1.0.8" + }, + "engines": { + "node": ">=18", + "pnpm": ">=8.7.0" + }, + "peerDependencies": { + "svelte": "^5.0.0" + } + }, + "node_modules/svelte-toolbelt/node_modules/runed": { + "version": "0.23.4", + "resolved": "https://registry.npmjs.org/runed/-/runed-0.23.4.tgz", + "integrity": "sha512-9q8oUiBYeXIDLWNK5DfCWlkL0EW3oGbk845VdKlPeia28l751VpfesaB/+7pI6rnbx1I6rqoZ2fZxptOJLxILA==", + "funding": [ + "https://github.com/sponsors/huntabyte", + "https://github.com/sponsors/tglide" + ], + "dependencies": { + "esm-env": "^1.0.0" + }, + "peerDependencies": { + "svelte": "^5.7.0" + } + }, + "node_modules/svelte/node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/svelte/node_modules/esrap": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.0.tgz", + "integrity": "sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/svelte/node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "node_modules/svelte2tsx": { + "version": "0.7.41", + "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.41.tgz", + "integrity": "sha512-/TUwpyn/Qc1wcGuayf2GSwvZ7htdAOzpo0JFFm96srKnRXoTD0gy4n06g+XgH8w016S3lPtyFVtFAm+0yJ0BZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dedent-js": "^1.0.1", + "pascal-case": "^3.1.1" + }, + "peerDependencies": { + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", + "typescript": "^4.9.4 || ^5.0.0" + } + }, + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "dev": true, + "license": "MIT" + }, + "node_modules/tailwind-merge": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", + "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwind-variants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-1.0.0.tgz", + "integrity": "sha512-2WSbv4ulEEyuBKomOunut65D8UZwxrHoRfYnxGcQNnHqlSCp2+B7Yz2W+yrNDrxRodOXtGD/1oCcKGNBnUqMqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tailwind-merge": "3.0.2" + }, + "engines": { + "node": ">=16.x", + "pnpm": ">=7.x" + }, + "peerDependencies": { + "tailwindcss": "*" + } + }, + "node_modules/tailwind-variants/node_modules/tailwind-merge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.0.2.tgz", + "integrity": "sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.11.tgz", + "integrity": "sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz", + "integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tw-animate-css": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.3.5.tgz", + "integrity": "sha512-t3u+0YNoloIhj1mMXs779P6MO9q3p3mvGn4k1n3nJPqJw/glZcuijG2qTSN4z4mgNRfW5ZC3aXJFLwDtiipZXA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Wombosvideo" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.37.0.tgz", + "integrity": "sha512-TnbEjzkE9EmcO0Q2zM+GE8NQLItNAJpMmED1BdgoBMYNdqMhzlbqfdSwiRlAzEK2pA9UzVW0gzaaIzXWg2BjfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.37.0", + "@typescript-eslint/parser": "8.37.0", + "@typescript-eslint/typescript-estree": "8.37.0", + "@typescript-eslint/utils": "8.37.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-find-after/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/unist-util-visit/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz", + "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.0.tgz", + "integrity": "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/vfile/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz", + "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.6", + "picomatch": "^4.0.2", + "postcss": "^8.5.6", + "rollup": "^4.40.0", + "tinyglobby": "^0.2.14" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-plugin-devtools-json": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vite-plugin-devtools-json/-/vite-plugin-devtools-json-0.2.1.tgz", + "integrity": "sha512-5aiNvf/iLTuLR1dUqoI5CLLGgeK2hd6u+tA+RIp7GUZDyAcM6ECaUEWOOtGpidbcxbkKq++KtmSqA3jhMbPwMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "uuid": "^11.1.0" + }, + "peerDependencies": { + "vite": "^2.7.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/vite-plugin-devtools-json/node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vitefu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", + "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest-browser-svelte": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/vitest-browser-svelte/-/vitest-browser-svelte-0.1.0.tgz", + "integrity": "sha512-YB6ZUZZQNqU1T9NzvTEDpwpPv35Ng1NZMPBh81zDrLEdOgROGE6nJb79NWb1Eu/a8VkHifqArpOZfJfALge6xQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "^2.1.0 || ^3.0.0-0", + "svelte": ">3.0.0", + "vitest": "^2.1.0 || ^3.0.0-0" + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zimmerframe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", + "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", + "license": "MIT" + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } } diff --git a/tools/server/webui/package.json b/tools/server/webui/package.json index 8076840324..30c7cd15c6 100644 --- a/tools/server/webui/package.json +++ b/tools/server/webui/package.json @@ -1,66 +1,90 @@ { - "name": "webui", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "npm run format && tsc -b && vite build", - "format": "eslint . && prettier --write .", - "lint": "eslint .", - "preview": "vite preview" - }, - "dependencies": { - "@heroicons/react": "^2.2.0", - "@sec-ant/readable-stream": "^0.6.0", - "@tailwindcss/postcss": "^4.1.1", - "@tailwindcss/vite": "^4.1.1", - "@vscode/markdown-it-katex": "^1.1.1", - "autoprefixer": "^10.4.20", - "daisyui": "^5.0.12", - "dexie": "^4.0.11", - "highlight.js": "^11.10.0", - "katex": "^0.16.15", - "pdfjs-dist": "^5.2.133", - "postcss": "^8.4.49", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-dropzone": "^14.3.8", - "react-hot-toast": "^2.5.2", - "react-markdown": "^9.0.3", - "react-router": "^7.1.5", - "rehype-highlight": "^7.0.2", - "rehype-katex": "^7.0.1", - "remark-breaks": "^4.0.0", - "remark-gfm": "^4.0.0", - "remark-math": "^6.0.0", - "tailwindcss": "^4.1.1", - "textlinestream": "^1.1.1", - "vite-plugin-singlefile": "^2.0.3" - }, - "devDependencies": { - "@eslint/js": "^9.17.0", - "@types/markdown-it": "^14.1.2", - "@types/node": "^22.13.1", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", - "@vitejs/plugin-react": "^4.3.4", - "eslint": "^9.17.0", - "eslint-plugin-react-hooks": "^5.0.0", - "eslint-plugin-react-refresh": "^0.4.16", - "fflate": "^0.8.2", - "globals": "^15.14.0", - "prettier": "^3.4.2", - "sass-embedded": "^1.83.4", - "typescript": "~5.6.2", - "typescript-eslint": "^8.18.2", - "vite": "^6.0.5" - }, - "prettier": { - "trailingComma": "es5", - "tabWidth": 2, - "semi": true, - "singleQuote": true, - "bracketSameLine": false - } + "name": "webui", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite dev --host 0.0.0.0 & storybook dev -p 6006 --ci", + "build": "vite build && ./scripts/post-build.sh", + "preview": "vite preview", + "prepare": "svelte-kit sync || echo ''", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "reset": "rm -rf .svelte-kit node_modules", + "format": "prettier --write .", + "lint": "prettier --check . && eslint .", + "test": "npm run test:ui -- --run && npm run test:client -- --run && npm run test:server -- --run && npm run test:e2e", + "test:e2e": "playwright test", + "test:client": "vitest --project=client", + "test:server": "vitest --project=server", + "test:ui": "vitest --project=ui", + "test:unit": "vitest", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build" + }, + "devDependencies": { + "@chromatic-com/storybook": "^4.0.1", + "@eslint/compat": "^1.2.5", + "@eslint/js": "^9.18.0", + "@internationalized/date": "^3.8.2", + "@lucide/svelte": "^0.515.0", + "@playwright/test": "^1.49.1", + "@storybook/addon-a11y": "^9.0.17", + "@storybook/addon-docs": "^9.0.17", + "@storybook/addon-svelte-csf": "^5.0.7", + "@storybook/addon-vitest": "^9.0.17", + "@storybook/sveltekit": "^9.0.17", + "@sveltejs/adapter-static": "^3.0.8", + "@sveltejs/kit": "^2.22.0", + "@sveltejs/vite-plugin-svelte": "^6.0.0", + "@tailwindcss/forms": "^0.5.9", + "@tailwindcss/typography": "^0.5.15", + "@tailwindcss/vite": "^4.0.0", + "@types/node": "^22", + "@vitest/browser": "^3.2.3", + "bits-ui": "^2.8.11", + "clsx": "^2.1.1", + "dexie": "^4.0.11", + "eslint": "^9.18.0", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-storybook": "^9.0.17", + "eslint-plugin-svelte": "^3.0.0", + "fflate": "^0.8.2", + "globals": "^16.0.0", + "mdsvex": "^0.12.3", + "playwright": "^1.53.0", + "prettier": "^3.4.2", + "prettier-plugin-svelte": "^3.3.3", + "prettier-plugin-tailwindcss": "^0.6.11", + "rehype-katex": "^7.0.1", + "remark-math": "^6.0.0", + "storybook": "^9.0.17", + "svelte": "^5.0.0", + "svelte-check": "^4.0.0", + "tailwind-merge": "^3.3.1", + "tailwind-variants": "^1.0.0", + "tailwindcss": "^4.0.0", + "tw-animate-css": "^1.3.5", + "typescript": "^5.0.0", + "typescript-eslint": "^8.20.0", + "uuid": "^13.0.0", + "vite": "^7.0.4", + "vite-plugin-devtools-json": "^0.2.0", + "vitest": "^3.2.3", + "vitest-browser-svelte": "^0.1.0" + }, + "dependencies": { + "highlight.js": "^11.11.1", + "mode-watcher": "^1.1.0", + "pdfjs-dist": "^5.4.54", + "rehype-highlight": "^7.0.2", + "rehype-stringify": "^10.0.1", + "remark": "^15.0.1", + "remark-breaks": "^4.0.0", + "remark-gfm": "^4.0.1", + "remark-html": "^16.0.1", + "remark-rehype": "^11.1.2", + "svelte-sonner": "^1.0.5", + "unist-util-visit": "^5.0.0" + } } diff --git a/tools/server/webui/playwright.config.ts b/tools/server/webui/playwright.config.ts new file mode 100644 index 0000000000..90ca19b09f --- /dev/null +++ b/tools/server/webui/playwright.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from '@playwright/test'; + +export default defineConfig({ + webServer: { + command: 'npm run build && npx http-server ../public -p 8181', + port: 8181 + }, + testDir: 'e2e' +}); diff --git a/tools/server/webui/postcss.config.js b/tools/server/webui/postcss.config.js deleted file mode 100644 index fb05b5692b..0000000000 --- a/tools/server/webui/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - plugins: { - "@tailwindcss/postcss": {}, - }, -} diff --git a/tools/server/webui/public/demo-conversation.json b/tools/server/webui/public/demo-conversation.json deleted file mode 100644 index 338b4aea59..0000000000 --- a/tools/server/webui/public/demo-conversation.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "demo": true, - "id": "conv-1734086746930", - "lastModified": 1734087548943, - "messages": [ - { - "id": 1734086764521, - "role": "user", - "content": "this is a demo conversation, used in dev mode" - }, - { - "id": 1734087548327, - "role": "assistant", - "content": "This is the formula:\n\n$\\frac{e^{x_i}}{\\sum_{j=1}^{n}e^{x_j}}$\n\nGiven an input vector \\(\\mathbf{x} = [x_1, x_2, \\ldots, x_n]\\)\n\n\\[\ny_i = \\frac{e^{x_i}}{\\sum_{j=1}^n e^{x_j}}\n\\]\n\n$2x + y = z$\n\nCode block latex:\n```latex\n\\frac{e^{x_i}}{\\sum_{j=1}^{n}e^{x_j}}\n```\n\nTest dollar sign: $1234 $4567\n\nInvalid latex syntax: $E = mc^$ and $$E = mc^$$", - "timings": { - "prompt_n": 1, - "prompt_ms": 28.923, - "predicted_n": 25, - "predicted_ms": 573.016 - } - }, - { - "id": 1734087548328, - "role": "user", - "content": "this is a demo conversation, used in dev mode" - }, - { - "id": 1734087548329, - "role": "assistant", - "content": "Code block:\n```js\nconsole.log('hello world')\n```\n```sh\nls -la /dev\n```" - } - ] -} diff --git a/tools/server/webui/scripts/install-git-hooks.sh b/tools/server/webui/scripts/install-git-hooks.sh new file mode 100755 index 0000000000..740075e281 --- /dev/null +++ b/tools/server/webui/scripts/install-git-hooks.sh @@ -0,0 +1,123 @@ +#!/bin/bash + +# Script to install pre-commit and post-commit hooks for webui +# Pre-commit: formats code and builds, stashes unstaged changes +# Post-commit: automatically unstashes changes + +REPO_ROOT=$(git rev-parse --show-toplevel) +PRE_COMMIT_HOOK="$REPO_ROOT/.git/hooks/pre-commit" +POST_COMMIT_HOOK="$REPO_ROOT/.git/hooks/post-commit" + +echo "Installing pre-commit and post-commit hooks for webui..." + +# Create the pre-commit hook +cat > "$PRE_COMMIT_HOOK" << 'EOF' +#!/bin/bash + +# Check if there are any changes in the webui directory +if git diff --cached --name-only | grep -q "^tools/server/webui/"; then + echo "Formatting webui code..." + + # Change to webui directory and run format + cd tools/server/webui + + # Check if npm is available and package.json exists + if [ ! -f "package.json" ]; then + echo "Error: package.json not found in tools/server/webui" + exit 1 + fi + + # Stash any unstaged changes to avoid conflicts during format/build + echo "Stashing unstaged changes..." + git stash push --keep-index --include-untracked -m "Pre-commit hook: stashed unstaged changes" + STASH_CREATED=$? + + # Run the format command + npm run format + + # Check if format command succeeded + if [ $? -ne 0 ]; then + echo "Error: npm run format failed" + if [ $STASH_CREATED -eq 0 ]; then + echo "You can restore your unstaged changes with: git stash pop" + fi + exit 1 + fi + + # Run the check command + npm run check + + # Check if check command succeeded + if [ $? -ne 0 ]; then + echo "Error: npm run check failed" + if [ $STASH_CREATED -eq 0 ]; then + echo "You can restore your unstaged changes with: git stash pop" + fi + exit 1 + fi + + # Run the build command + npm run build + + # Check if build command succeeded + if [ $? -ne 0 ]; then + echo "Error: npm run build failed" + if [ $STASH_CREATED -eq 0 ]; then + echo "You can restore your unstaged changes with: git stash pop" + fi + exit 1 + fi + + # Go back to repo root to add build output + cd ../../.. + + # Add the build output to staging area + git add tools/server/public/index.html.gz + + if [ $STASH_CREATED -eq 0 ]; then + echo "✅ Build completed. Your unstaged changes have been stashed." + echo "They will be automatically restored after the commit." + # Create a marker file to indicate stash was created by pre-commit hook + touch .git/WEBUI_STASH_MARKER + fi + + echo "Webui code formatted successfully" +fi + +exit 0 +EOF + +# Create the post-commit hook +cat > "$POST_COMMIT_HOOK" << 'EOF' +#!/bin/bash + +# Check if we have a stash marker from the pre-commit hook +if [ -f .git/WEBUI_STASH_MARKER ]; then + echo "Restoring your unstaged changes..." + git stash pop + rm -f .git/WEBUI_STASH_MARKER + echo "✅ Your unstaged changes have been restored." +fi + +exit 0 +EOF + +# Make both hooks executable +chmod +x "$PRE_COMMIT_HOOK" +chmod +x "$POST_COMMIT_HOOK" + +if [ $? -eq 0 ]; then + echo "✅ Pre-commit and post-commit hooks installed successfully!" + echo " Pre-commit: $PRE_COMMIT_HOOK" + echo " Post-commit: $POST_COMMIT_HOOK" + echo "" + echo "The hooks will automatically:" + echo " • Format and build webui code before commits" + echo " • Stash unstaged changes during the process" + echo " • Restore your unstaged changes after the commit" + echo "" + echo "To test the hooks, make a change to a file in the webui directory and commit it." +else + echo "❌ Failed to make hooks executable" + exit 1 +fi diff --git a/tools/server/webui/scripts/post-build.sh b/tools/server/webui/scripts/post-build.sh new file mode 100755 index 0000000000..ae5c1f30be --- /dev/null +++ b/tools/server/webui/scripts/post-build.sh @@ -0,0 +1,3 @@ +rm -rf ../public/_app; +rm ../public/favicon.svg; +rm ../public/index.html; \ No newline at end of file diff --git a/tools/server/webui/src/App.tsx b/tools/server/webui/src/App.tsx deleted file mode 100644 index 8dfcf49075..0000000000 --- a/tools/server/webui/src/App.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { HashRouter, Outlet, Route, Routes } from 'react-router'; -import Header from './components/Header'; -import Sidebar from './components/Sidebar'; -import { AppContextProvider, useAppContext } from './utils/app.context'; -import ChatScreen from './components/ChatScreen'; -import SettingDialog from './components/SettingDialog'; -import { Toaster } from 'react-hot-toast'; -import { ModalProvider } from './components/ModalProvider'; - -function App() { - return ( - - -
- - - }> - } /> - } /> - - - -
-
-
- ); -} - -function AppLayout() { - const { showSettings, setShowSettings } = useAppContext(); - return ( - <> - -
-
- -
- { - setShowSettings(false)} - /> - } - - - ); -} - -export default App; diff --git a/tools/server/webui/src/Config.ts b/tools/server/webui/src/Config.ts deleted file mode 100644 index c03ac287f3..0000000000 --- a/tools/server/webui/src/Config.ts +++ /dev/null @@ -1,96 +0,0 @@ -import daisyuiThemes from 'daisyui/theme/object'; -import { isNumeric } from './utils/misc'; - -export const isDev = import.meta.env.MODE === 'development'; - -// constants -export const BASE_URL = new URL('.', document.baseURI).href - .toString() - .replace(/\/$/, ''); - -export const CONFIG_DEFAULT = { - // Note: in order not to introduce breaking changes, please keep the same data type (number, string, etc) if you want to change the default value. Do not use null or undefined for default value. - // Do not use nested objects, keep it single level. Prefix the key if you need to group them. - apiKey: '', - systemMessage: '', - showTokensPerSecond: false, - showThoughtInProgress: false, - excludeThoughtOnReq: true, - pasteLongTextToFileLen: 2500, - pdfAsImage: false, - // make sure these default values are in sync with `common.h` - samplers: 'edkypmxt', - temperature: 0.8, - dynatemp_range: 0.0, - dynatemp_exponent: 1.0, - top_k: 40, - top_p: 0.95, - min_p: 0.05, - xtc_probability: 0.0, - xtc_threshold: 0.1, - typical_p: 1.0, - repeat_last_n: 64, - repeat_penalty: 1.0, - presence_penalty: 0.0, - frequency_penalty: 0.0, - dry_multiplier: 0.0, - dry_base: 1.75, - dry_allowed_length: 2, - dry_penalty_last_n: -1, - max_tokens: -1, - custom: '', // custom json-stringified object - // experimental features - pyIntepreterEnabled: false, -}; -export const CONFIG_INFO: Record = { - apiKey: 'Set the API Key if you are using --api-key option for the server.', - systemMessage: 'The starting message that defines how model should behave.', - pasteLongTextToFileLen: - 'On pasting long text, it will be converted to a file. You can control the file length by setting the value of this parameter. Value 0 means disable.', - samplers: - 'The order at which samplers are applied, in simplified way. Default is "dkypmxt": dry->top_k->typ_p->top_p->min_p->xtc->temperature', - temperature: - 'Controls the randomness of the generated text by affecting the probability distribution of the output tokens. Higher = more random, lower = more focused.', - dynatemp_range: - 'Addon for the temperature sampler. The added value to the range of dynamic temperature, which adjusts probabilities by entropy of tokens.', - dynatemp_exponent: - 'Addon for the temperature sampler. Smoothes out the probability redistribution based on the most probable token.', - top_k: 'Keeps only k top tokens.', - top_p: - 'Limits tokens to those that together have a cumulative probability of at least p', - min_p: - 'Limits tokens based on the minimum probability for a token to be considered, relative to the probability of the most likely token.', - xtc_probability: - 'XTC sampler cuts out top tokens; this parameter controls the chance of cutting tokens at all. 0 disables XTC.', - xtc_threshold: - 'XTC sampler cuts out top tokens; this parameter controls the token probability that is required to cut that token.', - typical_p: - 'Sorts and limits tokens based on the difference between log-probability and entropy.', - repeat_last_n: 'Last n tokens to consider for penalizing repetition', - repeat_penalty: - 'Controls the repetition of token sequences in the generated text', - presence_penalty: - 'Limits tokens based on whether they appear in the output or not.', - frequency_penalty: - 'Limits tokens based on how often they appear in the output.', - dry_multiplier: - 'DRY sampling reduces repetition in generated text even across long contexts. This parameter sets the DRY sampling multiplier.', - dry_base: - 'DRY sampling reduces repetition in generated text even across long contexts. This parameter sets the DRY sampling base value.', - dry_allowed_length: - 'DRY sampling reduces repetition in generated text even across long contexts. This parameter sets the allowed length for DRY sampling.', - dry_penalty_last_n: - 'DRY sampling reduces repetition in generated text even across long contexts. This parameter sets DRY penalty for the last n tokens.', - max_tokens: 'The maximum number of token per output.', - custom: '', // custom json-stringified object -}; -// config keys having numeric value (i.e. temperature, top_k, top_p, etc) -export const CONFIG_NUMERIC_KEYS = Object.entries(CONFIG_DEFAULT) - .filter((e) => isNumeric(e[1])) - .map((e) => e[0]); -// list of themes supported by daisyui -export const THEMES = ['light', 'dark'] - // make sure light & dark are always at the beginning - .concat( - Object.keys(daisyuiThemes).filter((t) => t !== 'light' && t !== 'dark') - ); diff --git a/tools/server/webui/src/app.css b/tools/server/webui/src/app.css new file mode 100644 index 0000000000..d05a422f02 --- /dev/null +++ b/tools/server/webui/src/app.css @@ -0,0 +1,123 @@ +@import 'tailwindcss'; + +@import 'tw-animate-css'; + +@custom-variant dark (&:is(.dark *)); + +:root { + --radius: 0.625rem; + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0 0); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.205 0 0); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.97 0 0); + --accent-foreground: oklch(0.205 0 0); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.875 0 0); + --input: oklch(0.92 0 0); + --ring: oklch(0.708 0 0); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); + --code-background: oklch(0.225 0 0); + --code-foreground: oklch(0.875 0 0); +} + +.dark { + --background: oklch(0.16 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.205 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.205 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.922 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.269 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 30%); + --input: oklch(1 0 0 / 30%); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.556 0 0); +} + +@theme inline { + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/tools/server/webui/src/app.d.ts b/tools/server/webui/src/app.d.ts new file mode 100644 index 0000000000..e9bb140939 --- /dev/null +++ b/tools/server/webui/src/app.d.ts @@ -0,0 +1,81 @@ +// See https://svelte.dev/docs/kit/types#app.d.ts +// for information about these interfaces + +// Import chat types from dedicated module + +import type { + ApiChatCompletionRequest, + ApiChatCompletionResponse, + ApiChatCompletionStreamChunk, + ApiChatMessageData, + ApiChatMessageContentPart, + ApiContextSizeError, + ApiErrorResponse, + ApiLlamaCppServerProps, + ApiProcessingState +} from '$lib/types/api'; + +import type { + ChatMessageType, + ChatRole, + ChatUploadedFile, + ChatMessageSiblingInfo, + ChatMessagePromptProgress, + ChatMessageTimings +} from '$lib/types/chat'; + +import type { + DatabaseConversation, + DatabaseMessage, + DatabaseMessageExtra, + DatabaseMessageExtraAudioFile, + DatabaseMessageExtraImageFile, + DatabaseMessageExtraTextFile, + DatabaseMessageExtraPdfFile +} from '$lib/types/database'; + +import type { + SettingsConfigValue, + SettingsFieldConfig, + SettingsConfigType +} from '$lib/types/settings'; + +declare global { + // namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + // } + + export { + ApiChatCompletionRequest, + ApiChatCompletionResponse, + ApiChatCompletionStreamChunk, + ApiChatMessageData, + ApiChatMessageContentPart, + ApiContextSizeError, + ApiErrorResponse, + ApiLlamaCppServerProps, + ApiProcessingState, + ChatMessageData, + ChatMessagePromptProgress, + ChatMessageSiblingInfo, + ChatMessageTimings, + ChatMessageType, + ChatRole, + ChatUploadedFile, + DatabaseConversation, + DatabaseMessage, + DatabaseMessageExtra, + DatabaseMessageExtraAudioFile, + DatabaseMessageExtraImageFile, + DatabaseMessageExtraTextFile, + DatabaseMessageExtraPdfFile, + SettingsConfigValue, + SettingsFieldConfig, + SettingsConfigType, + SettingsChatServiceOptions + }; +} diff --git a/tools/server/webui/src/app.html b/tools/server/webui/src/app.html new file mode 100644 index 0000000000..1391f88488 --- /dev/null +++ b/tools/server/webui/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/tools/server/webui/src/components/CanvasPyInterpreter.tsx b/tools/server/webui/src/components/CanvasPyInterpreter.tsx deleted file mode 100644 index c2707fe20f..0000000000 --- a/tools/server/webui/src/components/CanvasPyInterpreter.tsx +++ /dev/null @@ -1,195 +0,0 @@ -import { useEffect, useState } from 'react'; -import { useAppContext } from '../utils/app.context'; -import { OpenInNewTab, XCloseButton } from '../utils/common'; -import { CanvasType } from '../utils/types'; -import { PlayIcon, StopIcon } from '@heroicons/react/24/outline'; -import StorageUtils from '../utils/storage'; - -const canInterrupt = typeof SharedArrayBuffer === 'function'; - -// adapted from https://pyodide.org/en/stable/usage/webworker.html -const WORKER_CODE = ` -importScripts("https://cdn.jsdelivr.net/pyodide/v0.27.2/full/pyodide.js"); - -let stdOutAndErr = []; - -let pyodideReadyPromise = loadPyodide({ - stdout: (data) => stdOutAndErr.push(data), - stderr: (data) => stdOutAndErr.push(data), -}); - -let alreadySetBuff = false; - -self.onmessage = async (event) => { - stdOutAndErr = []; - - // make sure loading is done - const pyodide = await pyodideReadyPromise; - const { id, python, context, interruptBuffer } = event.data; - - if (interruptBuffer && !alreadySetBuff) { - pyodide.setInterruptBuffer(interruptBuffer); - alreadySetBuff = true; - } - - // Now load any packages we need, run the code, and send the result back. - await pyodide.loadPackagesFromImports(python); - - // make a Python dictionary with the data from content - const dict = pyodide.globals.get("dict"); - const globals = dict(Object.entries(context)); - try { - self.postMessage({ id, running: true }); - // Execute the python code in this context - const result = pyodide.runPython(python, { globals }); - self.postMessage({ result, id, stdOutAndErr }); - } catch (error) { - self.postMessage({ error: error.message, id }); - } - interruptBuffer[0] = 0; -}; -`; - -let worker: Worker; -const interruptBuffer = canInterrupt - ? new Uint8Array(new SharedArrayBuffer(1)) - : null; - -const startWorker = () => { - if (!worker) { - worker = new Worker( - URL.createObjectURL(new Blob([WORKER_CODE], { type: 'text/javascript' })) - ); - } -}; - -if (StorageUtils.getConfig().pyIntepreterEnabled) { - startWorker(); -} - -const runCodeInWorker = ( - pyCode: string, - callbackRunning: () => void -): { - donePromise: Promise; - interrupt: () => void; -} => { - startWorker(); - const id = Math.random() * 1e8; - const context = {}; - if (interruptBuffer) { - interruptBuffer[0] = 0; - } - - const donePromise = new Promise((resolve) => { - worker.onmessage = (event) => { - const { error, stdOutAndErr, running } = event.data; - if (id !== event.data.id) return; - if (running) { - callbackRunning(); - return; - } else if (error) { - resolve(error.toString()); - } else { - resolve(stdOutAndErr.join('\n')); - } - }; - worker.postMessage({ id, python: pyCode, context, interruptBuffer }); - }); - - const interrupt = () => { - console.log('Interrupting...'); - console.trace(); - if (interruptBuffer) { - interruptBuffer[0] = 2; - } - }; - - return { donePromise, interrupt }; -}; - -export default function CanvasPyInterpreter() { - const { canvasData, setCanvasData } = useAppContext(); - - const [code, setCode] = useState(canvasData?.content ?? ''); // copy to avoid direct mutation - const [running, setRunning] = useState(false); - const [output, setOutput] = useState(''); - const [interruptFn, setInterruptFn] = useState<() => void>(); - const [showStopBtn, setShowStopBtn] = useState(false); - - const runCode = async (pycode: string) => { - interruptFn?.(); - setRunning(true); - setOutput('Loading Pyodide...'); - const { donePromise, interrupt } = runCodeInWorker(pycode, () => { - setOutput('Running...'); - setShowStopBtn(canInterrupt); - }); - setInterruptFn(() => interrupt); - const out = await donePromise; - setOutput(out); - setRunning(false); - setShowStopBtn(false); - }; - - // run code on mount - useEffect(() => { - setCode(canvasData?.content ?? ''); - runCode(canvasData?.content ?? ''); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [canvasData?.content]); - - if (canvasData?.type !== CanvasType.PY_INTERPRETER) { - return null; - } - - return ( -
-
-
- Python Interpreter - setCanvasData(null)} - /> -
-
- -
-
- - {showStopBtn && ( - - )} - - - Report a bug - - -
- -
-
-
-
- ); -} diff --git a/tools/server/webui/src/components/ChatInputExtraContextItem.tsx b/tools/server/webui/src/components/ChatInputExtraContextItem.tsx deleted file mode 100644 index 2d4179ea47..0000000000 --- a/tools/server/webui/src/components/ChatInputExtraContextItem.tsx +++ /dev/null @@ -1,135 +0,0 @@ -import { - DocumentTextIcon, - SpeakerWaveIcon, - XMarkIcon, -} from '@heroicons/react/24/outline'; -import { MessageExtra } from '../utils/types'; -import { useState } from 'react'; -import { classNames } from '../utils/misc'; - -export default function ChatInputExtraContextItem({ - items, - removeItem, - clickToShow, -}: { - items?: MessageExtra[]; - removeItem?: (index: number) => void; - clickToShow?: boolean; -}) { - const [show, setShow] = useState(-1); - const showingItem = show >= 0 ? items?.[show] : undefined; - - if (!items) return null; - - return ( -
- {items.map((item, i) => ( -
clickToShow && setShow(i)} - tabIndex={0} - aria-description={ - clickToShow ? `Click to show: ${item.name}` : undefined - } - role={clickToShow ? 'button' : 'menuitem'} - > - {removeItem && ( -
- -
- )} - -
- {item.type === 'imageFile' ? ( - <> - {`Preview - - ) : ( - <> -
- {item.type === 'audioFile' ? ( - - ) : ( - - )} -
- -
- {item.name ?? 'Extra content'} -
- - )} -
-
- ))} - - {showingItem && ( - -
-
- {showingItem.name ?? 'Extra content'} - -
- {showingItem.type === 'imageFile' ? ( - {`Preview - ) : showingItem.type === 'audioFile' ? ( - - ) : ( -
-
-                  {showingItem.content}
-                
-
- )} -
-
setShow(-1)}>
-
- )} -
- ); -} diff --git a/tools/server/webui/src/components/ChatMessage.tsx b/tools/server/webui/src/components/ChatMessage.tsx deleted file mode 100644 index a1a7d152f9..0000000000 --- a/tools/server/webui/src/components/ChatMessage.tsx +++ /dev/null @@ -1,320 +0,0 @@ -import { useMemo, useState } from 'react'; -import { useAppContext } from '../utils/app.context'; -import { Message, PendingMessage } from '../utils/types'; -import { classNames } from '../utils/misc'; -import MarkdownDisplay, { CopyButton } from './MarkdownDisplay'; -import { - ArrowPathIcon, - ChevronLeftIcon, - ChevronRightIcon, - PencilSquareIcon, -} from '@heroicons/react/24/outline'; -import ChatInputExtraContextItem from './ChatInputExtraContextItem'; -import { BtnWithTooltips } from '../utils/common'; - -interface SplitMessage { - content: PendingMessage['content']; - thought?: string; - isThinking?: boolean; -} - -export default function ChatMessage({ - msg, - siblingLeafNodeIds, - siblingCurrIdx, - id, - onRegenerateMessage, - onEditMessage, - onChangeSibling, - isPending, -}: { - msg: Message | PendingMessage; - siblingLeafNodeIds: Message['id'][]; - siblingCurrIdx: number; - id?: string; - onRegenerateMessage(msg: Message): void; - onEditMessage(msg: Message, content: string): void; - onChangeSibling(sibling: Message['id']): void; - isPending?: boolean; -}) { - const { viewingChat, config } = useAppContext(); - const [editingContent, setEditingContent] = useState(null); - const timings = useMemo( - () => - msg.timings - ? { - ...msg.timings, - prompt_per_second: - (msg.timings.prompt_n / msg.timings.prompt_ms) * 1000, - predicted_per_second: - (msg.timings.predicted_n / msg.timings.predicted_ms) * 1000, - } - : null, - [msg.timings] - ); - const nextSibling = siblingLeafNodeIds[siblingCurrIdx + 1]; - const prevSibling = siblingLeafNodeIds[siblingCurrIdx - 1]; - - // for reasoning model, we split the message into content and thought - // TODO: implement this as remark/rehype plugin in the future - const { content, thought, isThinking }: SplitMessage = useMemo(() => { - if (msg.content === null || msg.role !== 'assistant') { - return { content: msg.content }; - } - const REGEX_THINK_OPEN = /|<\|channel\|>analysis<\|message\|>/; - const REGEX_THINK_CLOSE = /<\/think>|<\|end\|>/; - let actualContent = ''; - let thought = ''; - let isThinking = false; - let thinkSplit = msg.content.split(REGEX_THINK_OPEN, 2); - actualContent += thinkSplit[0]; - while (thinkSplit[1] !== undefined) { - // tag found - thinkSplit = thinkSplit[1].split(REGEX_THINK_CLOSE, 2); - thought += thinkSplit[0]; - isThinking = true; - if (thinkSplit[1] !== undefined) { - // closing tag found - isThinking = false; - thinkSplit = thinkSplit[1].split(REGEX_THINK_OPEN, 2); - actualContent += thinkSplit[0]; - } - } - return { content: actualContent, thought, isThinking }; - }, [msg]); - - if (!viewingChat) return null; - - const isUser = msg.role === 'user'; - - return ( -
-
- {msg.extra && msg.extra.length > 0 && ( - - )} - -
- {/* textarea for editing message */} - {editingContent !== null && ( - <> - -
- - - - )} - {/* not editing content, render message */} - {editingContent === null && ( - <> - {content === null ? ( - <> - {/* show loading dots for pending message */} - - - ) : ( - <> - {/* render message as markdown */} -
- {thought && ( - - )} - - -
- - )} - {/* render timings if enabled */} - {timings && config.showTokensPerSecond && ( -
-
- Speed: {timings.predicted_per_second.toFixed(1)} t/s -
-
- Prompt -
- Tokens: {timings.prompt_n} -
- Time: {timings.prompt_ms} ms -
- Speed: {timings.prompt_per_second.toFixed(1)} t/s -
- Generation -
- Tokens: {timings.predicted_n} -
- Time: {timings.predicted_ms} ms -
- Speed: {timings.predicted_per_second.toFixed(1)} t/s -
-
-
- )} - - )} -
-
- - {/* actions for each message */} - {msg.content !== null && ( -
- {siblingLeafNodeIds && siblingLeafNodeIds.length > 1 && ( -
- - - {siblingCurrIdx + 1} / {siblingLeafNodeIds.length} - - -
- )} - {/* user message */} - {msg.role === 'user' && ( - setEditingContent(msg.content)} - disabled={msg.content === null} - tooltipsContent="Edit message" - > - - - )} - {/* assistant message */} - {msg.role === 'assistant' && ( - <> - {!isPending && ( - { - if (msg.content !== null) { - onRegenerateMessage(msg as Message); - } - }} - disabled={msg.content === null} - tooltipsContent="Regenerate response" - > - - - )} - - )} - -
- )} -
- ); -} - -function ThoughtProcess({ - isThinking, - content, - open, -}: { - isThinking: boolean; - content: string; - open: boolean; -}) { - return ( -
- -
-
- {isThinking ? ( - - - Thinking - - ) : ( - <>Thought Process - )} -
-
-
-
- -
-
-
- ); -} diff --git a/tools/server/webui/src/components/ChatScreen.tsx b/tools/server/webui/src/components/ChatScreen.tsx deleted file mode 100644 index c1a6691445..0000000000 --- a/tools/server/webui/src/components/ChatScreen.tsx +++ /dev/null @@ -1,459 +0,0 @@ -import { ClipboardEvent, useEffect, useMemo, useRef, useState } from 'react'; -import { CallbackGeneratedChunk, useAppContext } from '../utils/app.context'; -import ChatMessage from './ChatMessage'; -import { CanvasType, Message, PendingMessage } from '../utils/types'; -import { classNames, cleanCurrentUrl } from '../utils/misc'; -import CanvasPyInterpreter from './CanvasPyInterpreter'; -import StorageUtils from '../utils/storage'; -import { useVSCodeContext } from '../utils/llama-vscode'; -import { useChatTextarea, ChatTextareaApi } from './useChatTextarea.ts'; -import { - ArrowUpIcon, - StopIcon, - PaperClipIcon, -} from '@heroicons/react/24/solid'; -import { - ChatExtraContextApi, - useChatExtraContext, -} from './useChatExtraContext.tsx'; -import Dropzone from 'react-dropzone'; -import toast from 'react-hot-toast'; -import ChatInputExtraContextItem from './ChatInputExtraContextItem.tsx'; -import { scrollToBottom, useChatScroll } from './useChatScroll.tsx'; - -/** - * A message display is a message node with additional information for rendering. - * For example, siblings of the message node are stored as their last node (aka leaf node). - */ -export interface MessageDisplay { - msg: Message | PendingMessage; - siblingLeafNodeIds: Message['id'][]; - siblingCurrIdx: number; - isPending?: boolean; -} - -/** - * If the current URL contains "?m=...", prefill the message input with the value. - * If the current URL contains "?q=...", prefill and SEND the message. - */ -const prefilledMsg = { - content() { - const url = new URL(window.location.href); - return url.searchParams.get('m') ?? url.searchParams.get('q') ?? ''; - }, - shouldSend() { - const url = new URL(window.location.href); - return url.searchParams.has('q'); - }, - clear() { - cleanCurrentUrl(['m', 'q']); - }, -}; - -function getListMessageDisplay( - msgs: Readonly, - leafNodeId: Message['id'] -): MessageDisplay[] { - const currNodes = StorageUtils.filterByLeafNodeId(msgs, leafNodeId, true); - const res: MessageDisplay[] = []; - const nodeMap = new Map(); - for (const msg of msgs) { - nodeMap.set(msg.id, msg); - } - // find leaf node from a message node - const findLeafNode = (msgId: Message['id']): Message['id'] => { - let currNode: Message | undefined = nodeMap.get(msgId); - while (currNode) { - if (currNode.children.length === 0) break; - currNode = nodeMap.get(currNode.children.at(-1) ?? -1); - } - return currNode?.id ?? -1; - }; - // traverse the current nodes - for (const msg of currNodes) { - const parentNode = nodeMap.get(msg.parent ?? -1); - if (!parentNode) continue; - const siblings = parentNode.children; - if (msg.type !== 'root') { - res.push({ - msg, - siblingLeafNodeIds: siblings.map(findLeafNode), - siblingCurrIdx: siblings.indexOf(msg.id), - }); - } - } - return res; -} - -export default function ChatScreen() { - const { - viewingChat, - sendMessage, - isGenerating, - stopGenerating, - pendingMessages, - canvasData, - replaceMessageAndGenerate, - } = useAppContext(); - - const textarea: ChatTextareaApi = useChatTextarea(prefilledMsg.content()); - const extraContext = useChatExtraContext(); - useVSCodeContext(textarea, extraContext); - - const msgListRef = useRef(null); - useChatScroll(msgListRef); - - // keep track of leaf node for rendering - const [currNodeId, setCurrNodeId] = useState(-1); - const messages: MessageDisplay[] = useMemo(() => { - if (!viewingChat) return []; - else return getListMessageDisplay(viewingChat.messages, currNodeId); - }, [currNodeId, viewingChat]); - - const currConvId = viewingChat?.conv.id ?? null; - const pendingMsg: PendingMessage | undefined = - pendingMessages[currConvId ?? '']; - - useEffect(() => { - // reset to latest node when conversation changes - setCurrNodeId(-1); - // scroll to bottom when conversation changes - scrollToBottom(false, 1); - }, [currConvId]); - - const onChunk: CallbackGeneratedChunk = (currLeafNodeId?: Message['id']) => { - if (currLeafNodeId) { - setCurrNodeId(currLeafNodeId); - } - // useChatScroll will handle the auto scroll - }; - - const sendNewMessage = async () => { - const lastInpMsg = textarea.value(); - if (lastInpMsg.trim().length === 0 || isGenerating(currConvId ?? '')) { - toast.error('Please enter a message'); - return; - } - textarea.setValue(''); - scrollToBottom(false); - setCurrNodeId(-1); - // get the last message node - const lastMsgNodeId = messages.at(-1)?.msg.id ?? null; - if ( - !(await sendMessage( - currConvId, - lastMsgNodeId, - lastInpMsg, - extraContext.items, - onChunk - )) - ) { - // restore the input message if failed - textarea.setValue(lastInpMsg); - } - // OK - extraContext.clearItems(); - }; - - // for vscode context - textarea.refOnSubmit.current = sendNewMessage; - - const handleEditMessage = async (msg: Message, content: string) => { - if (!viewingChat) return; - setCurrNodeId(msg.id); - scrollToBottom(false); - await replaceMessageAndGenerate( - viewingChat.conv.id, - msg.parent, - content, - msg.extra, - onChunk - ); - setCurrNodeId(-1); - scrollToBottom(false); - }; - - const handleRegenerateMessage = async (msg: Message) => { - if (!viewingChat) return; - setCurrNodeId(msg.parent); - scrollToBottom(false); - await replaceMessageAndGenerate( - viewingChat.conv.id, - msg.parent, - null, - msg.extra, - onChunk - ); - setCurrNodeId(-1); - scrollToBottom(false); - }; - - const hasCanvas = !!canvasData; - - useEffect(() => { - if (prefilledMsg.shouldSend()) { - // send the prefilled message if needed - sendNewMessage(); - } else { - // otherwise, focus on the input - textarea.focus(); - } - prefilledMsg.clear(); - // no need to keep track of sendNewMessage - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [textarea.ref]); - - // due to some timing issues of StorageUtils.appendMsg(), we need to make sure the pendingMsg is not duplicated upon rendering (i.e. appears once in the saved conversation and once in the pendingMsg) - const pendingMsgDisplay: MessageDisplay[] = - pendingMsg && messages.at(-1)?.msg.id !== pendingMsg.id - ? [ - { - msg: pendingMsg, - siblingLeafNodeIds: [], - siblingCurrIdx: 0, - isPending: true, - }, - ] - : []; - - return ( -
-
- {/* chat messages */} -
-
- {/* placeholder to shift the message to the bottom */} - {viewingChat ? ( - '' - ) : ( - <> -
Send a message to start
- - - )} -
- {[...messages, ...pendingMsgDisplay].map((msg) => ( - - ))} -
- - {/* chat input */} - stopGenerating(currConvId ?? '')} - isGenerating={isGenerating(currConvId ?? '')} - /> -
-
- {canvasData?.type === CanvasType.PY_INTERPRETER && ( - - )} -
-
- ); -} - -function ServerInfo() { - const { serverProps } = useAppContext(); - const modalities = []; - if (serverProps?.modalities?.audio) { - modalities.push('audio'); - } - if (serverProps?.modalities?.vision) { - modalities.push('vision'); - } - return ( -
-
- Server Info -

- Model: {serverProps?.model_path?.split(/(\\|\/)/).pop()} -
- Build: {serverProps?.build_info} -
- {modalities.length > 0 ? ( - <> - Supported modalities: {modalities.join(', ')} - - ) : ( - '' - )} -

-
-
- ); -} - -function ChatInput({ - textarea, - extraContext, - onSend, - onStop, - isGenerating, -}: { - textarea: ChatTextareaApi; - extraContext: ChatExtraContextApi; - onSend: () => void; - onStop: () => void; - isGenerating: boolean; -}) { - const { config } = useAppContext(); - const [isDrag, setIsDrag] = useState(false); - - return ( -
- { - setIsDrag(false); - extraContext.onFileAdded(files); - }} - onDragEnter={() => setIsDrag(true)} - onDragLeave={() => setIsDrag(false)} - multiple={true} - > - {({ getRootProps, getInputProps }) => ( -
) => { - const text = e.clipboardData.getData('text/plain'); - if ( - text.length > 0 && - config.pasteLongTextToFileLen > 0 && - text.length > config.pasteLongTextToFileLen - ) { - // if the text is too long, we will convert it to a file - extraContext.addItems([ - { - type: 'context', - name: 'Pasted Content', - content: text, - }, - ]); - e.preventDefault(); - return; - } - - // if a file is pasted, we will handle it here - const files = Array.from(e.clipboardData.items) - .filter((item) => item.kind === 'file') - .map((item) => item.getAsFile()) - .filter((file) => file !== null); - - if (files.length > 0) { - e.preventDefault(); - extraContext.onFileAdded(files); - } - }} - {...getRootProps()} - > - {!isGenerating && ( - - )} - -
- - - {/* buttons area */} -
- - - {isGenerating ? ( - - ) : ( - - )} -
-
-
- )} -
-
- ); -} diff --git a/tools/server/webui/src/components/Header.tsx b/tools/server/webui/src/components/Header.tsx deleted file mode 100644 index ccddc21dda..0000000000 --- a/tools/server/webui/src/components/Header.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import { useEffect, useState } from 'react'; -import StorageUtils from '../utils/storage'; -import { useAppContext } from '../utils/app.context'; -import { classNames } from '../utils/misc'; -import daisyuiThemes from 'daisyui/theme/object'; -import { THEMES } from '../Config'; -import { - Cog8ToothIcon, - MoonIcon, - Bars3Icon, -} from '@heroicons/react/24/outline'; - -export default function Header() { - const [selectedTheme, setSelectedTheme] = useState(StorageUtils.getTheme()); - const { setShowSettings } = useAppContext(); - - const setTheme = (theme: string) => { - StorageUtils.setTheme(theme); - setSelectedTheme(theme); - }; - - useEffect(() => { - document.body.setAttribute('data-theme', selectedTheme); - document.body.setAttribute( - 'data-color-scheme', - daisyuiThemes[selectedTheme]?.['color-scheme'] ?? 'auto' - ); - }, [selectedTheme]); - - return ( -
- {/* open sidebar button */} - - -
llama.cpp
- - {/* action buttons (top right) */} -
-
setShowSettings(true)} - > - -
- - {/* theme controller is copied from https://daisyui.com/components/theme-controller/ */} -
-
-
- -
-
    -
  • - -
  • - {THEMES.map((theme) => ( -
  • - e.target.checked && setTheme(theme)} - /> -
  • - ))} -
-
-
-
-
- ); -} diff --git a/tools/server/webui/src/components/MarkdownDisplay.tsx b/tools/server/webui/src/components/MarkdownDisplay.tsx deleted file mode 100644 index 380dbc570a..0000000000 --- a/tools/server/webui/src/components/MarkdownDisplay.tsx +++ /dev/null @@ -1,317 +0,0 @@ -import React, { useMemo, useState } from 'react'; -import Markdown, { ExtraProps } from 'react-markdown'; -import remarkGfm from 'remark-gfm'; -import rehypeHightlight from 'rehype-highlight'; -import rehypeKatex from 'rehype-katex'; -import remarkMath from 'remark-math'; -import remarkBreaks from 'remark-breaks'; -import 'katex/dist/katex.min.css'; -import { classNames, copyStr } from '../utils/misc'; -import { ElementContent, Root } from 'hast'; -import { visit } from 'unist-util-visit'; -import { useAppContext } from '../utils/app.context'; -import { CanvasType } from '../utils/types'; -import { BtnWithTooltips } from '../utils/common'; -import { DocumentDuplicateIcon, PlayIcon } from '@heroicons/react/24/outline'; - -export default function MarkdownDisplay({ - content, - isGenerating, -}: { - content: string; - isGenerating?: boolean; -}) { - const preprocessedContent = useMemo( - () => preprocessLaTeX(content), - [content] - ); - return ( - ( - - ), - // note: do not use "pre", "p" or other basic html elements here, it will cause the node to re-render when the message is being generated (this should be a bug with react-markdown, not sure how to fix it) - }} - > - {preprocessedContent} - - ); -} - -const CodeBlockButtons: React.ElementType< - React.ClassAttributes & - React.HTMLAttributes & - ExtraProps & { origContent: string; isGenerating?: boolean } -> = ({ node, origContent, isGenerating }) => { - const { config } = useAppContext(); - const startOffset = node?.position?.start.offset ?? 0; - const endOffset = node?.position?.end.offset ?? 0; - - const copiedContent = useMemo( - () => - origContent - .substring(startOffset, endOffset) - .replace(/^```[^\n]+\n/g, '') - .replace(/```$/g, ''), - [origContent, startOffset, endOffset] - ); - - const codeLanguage = useMemo( - () => - origContent - .substring(startOffset, startOffset + 10) - .match(/^```([^\n]+)\n/)?.[1] ?? '', - [origContent, startOffset] - ); - - const canRunCode = - !isGenerating && - config.pyIntepreterEnabled && - codeLanguage.startsWith('py'); - - return ( -
- - {canRunCode && ( - - )} -
- ); -}; - -export const CopyButton = ({ - content, - className, -}: { - content: string; - className?: string; -}) => { - const [copied, setCopied] = useState(false); - return ( - { - copyStr(content); - setCopied(true); - }} - onMouseLeave={() => setCopied(false)} - tooltipsContent={copied ? 'Copied!' : 'Copy'} - > - - - ); -}; - -export const RunPyCodeButton = ({ - content, - className, -}: { - content: string; - className?: string; -}) => { - const { setCanvasData } = useAppContext(); - return ( - <> - - setCanvasData({ - type: CanvasType.PY_INTERPRETER, - content, - }) - } - tooltipsContent="Run code" - > - - - - ); -}; - -/** - * This injects the "button" element before each "pre" element. - * The actual button will be replaced with a react component in the MarkdownDisplay. - * We don't replace "pre" node directly because it will cause the node to re-render, which causes this bug: https://github.com/ggerganov/llama.cpp/issues/9608 - */ -function rehypeCustomCopyButton() { - return function (tree: Root) { - visit(tree, 'element', function (node) { - if (node.tagName === 'pre' && !node.properties.visited) { - const preNode = { ...node }; - // replace current node - preNode.properties.visited = 'true'; - node.tagName = 'div'; - node.properties = {}; - // add node for button - const btnNode: ElementContent = { - type: 'element', - tagName: 'button', - properties: {}, - children: [], - position: node.position, - }; - node.children = [btnNode, preNode]; - } - }); - }; -} - -/** - * The part below is copied and adapted from: - * https://github.com/danny-avila/LibreChat/blob/main/client/src/utils/latex.ts - * (MIT License) - */ - -// Regex to check if the processed content contains any potential LaTeX patterns -const containsLatexRegex = - /\\\(.*?\\\)|\\\[.*?\\\]|\$.*?\$|\\begin\{equation\}.*?\\end\{equation\}/; - -// Regex for inline and block LaTeX expressions -const inlineLatex = new RegExp(/\\\((.+?)\\\)/, 'g'); -const blockLatex = new RegExp(/\\\[(.*?[^\\])\\\]/, 'gs'); - -// Function to restore code blocks -const restoreCodeBlocks = (content: string, codeBlocks: string[]) => { - return content.replace( - /<>/g, - (_, index) => codeBlocks[index] - ); -}; - -// Regex to identify code blocks and inline code -const codeBlockRegex = /(```[\s\S]*?```|`.*?`)/g; - -export const processLaTeX = (_content: string) => { - let content = _content; - // Temporarily replace code blocks and inline code with placeholders - const codeBlocks: string[] = []; - let index = 0; - content = content.replace(codeBlockRegex, (match) => { - codeBlocks[index] = match; - return `<>`; - }); - - // Escape dollar signs followed by a digit or space and digit - let processedContent = content.replace(/(\$)(?=\s?\d)/g, '\\$'); - - // If no LaTeX patterns are found, restore code blocks and return the processed content - if (!containsLatexRegex.test(processedContent)) { - return restoreCodeBlocks(processedContent, codeBlocks); - } - - // Convert LaTeX expressions to a markdown compatible format - processedContent = processedContent - .replace(inlineLatex, (_: string, equation: string) => `$${equation}$`) // Convert inline LaTeX - .replace(blockLatex, (_: string, equation: string) => `$$${equation}$$`); // Convert block LaTeX - - // Restore code blocks - return restoreCodeBlocks(processedContent, codeBlocks); -}; - -/** - * Preprocesses LaTeX content by replacing delimiters and escaping certain characters. - * - * @param content The input string containing LaTeX expressions. - * @returns The processed string with replaced delimiters and escaped characters. - */ -export function preprocessLaTeX(content: string): string { - // Step 1: Protect code blocks - const codeBlocks: string[] = []; - content = content.replace(/(```[\s\S]*?```|`[^`\n]+`)/g, (_, code) => { - codeBlocks.push(code); - return `<>`; - }); - - // Step 2: Protect existing LaTeX expressions - const latexExpressions: string[] = []; - - // Protect block math ($$...$$), \[...\], and \(...\) as before. - content = content.replace( - /(\$\$[\s\S]*?\$\$|\\\[[\s\S]*?\\\]|\\\(.*?\\\))/g, - (match) => { - latexExpressions.push(match); - return `<>`; - } - ); - - // Protect inline math ($...$) only if it does NOT match a currency pattern. - // We assume a currency pattern is one where the inner content is purely numeric (with optional decimals). - content = content.replace(/\$([^$]+)\$/g, (match, inner) => { - if (/^\s*\d+(?:\.\d+)?\s*$/.test(inner)) { - // This looks like a currency value (e.g. "$123" or "$12.34"), - // so don't protect it. - return match; - } else { - // Otherwise, treat it as a LaTeX expression. - latexExpressions.push(match); - return `<>`; - } - }); - - // Step 3: Escape dollar signs that are likely currency indicators. - // (Now that inline math is protected, this will only escape dollars not already protected) - content = content.replace(/\$(?=\d)/g, '\\$'); - - // Step 4: Restore LaTeX expressions - content = content.replace( - /<>/g, - (_, index) => latexExpressions[parseInt(index)] - ); - - // Step 5: Restore code blocks - content = content.replace( - /<>/g, - (_, index) => codeBlocks[parseInt(index)] - ); - - // Step 6: Apply additional escaping functions - content = escapeBrackets(content); - content = escapeMhchem(content); - - return content; -} - -export function escapeBrackets(text: string): string { - const pattern = - /(```[\S\s]*?```|`.*?`)|\\\[([\S\s]*?[^\\])\\]|\\\((.*?)\\\)/g; - return text.replace( - pattern, - ( - match: string, - codeBlock: string | undefined, - squareBracket: string | undefined, - roundBracket: string | undefined - ): string => { - if (codeBlock != null) { - return codeBlock; - } else if (squareBracket != null) { - return `$$${squareBracket}$$`; - } else if (roundBracket != null) { - return `$${roundBracket}$`; - } - return match; - } - ); -} - -export function escapeMhchem(text: string) { - return text.replaceAll('$\\ce{', '$\\\\ce{').replaceAll('$\\pu{', '$\\\\pu{'); -} diff --git a/tools/server/webui/src/components/ModalProvider.tsx b/tools/server/webui/src/components/ModalProvider.tsx deleted file mode 100644 index f2ebf8e0a7..0000000000 --- a/tools/server/webui/src/components/ModalProvider.tsx +++ /dev/null @@ -1,151 +0,0 @@ -import React, { createContext, useState, useContext } from 'react'; - -type ModalContextType = { - showConfirm: (message: string) => Promise; - showPrompt: ( - message: string, - defaultValue?: string - ) => Promise; - showAlert: (message: string) => Promise; -}; -const ModalContext = createContext(null!); - -interface ModalState { - isOpen: boolean; - message: string; - defaultValue?: string; - resolve: ((value: T) => void) | null; -} - -export function ModalProvider({ children }: { children: React.ReactNode }) { - const [confirmState, setConfirmState] = useState>({ - isOpen: false, - message: '', - resolve: null, - }); - const [promptState, setPromptState] = useState< - ModalState - >({ isOpen: false, message: '', resolve: null }); - const [alertState, setAlertState] = useState>({ - isOpen: false, - message: '', - resolve: null, - }); - const inputRef = React.useRef(null); - - const showConfirm = (message: string): Promise => { - return new Promise((resolve) => { - setConfirmState({ isOpen: true, message, resolve }); - }); - }; - - const showPrompt = ( - message: string, - defaultValue?: string - ): Promise => { - return new Promise((resolve) => { - setPromptState({ isOpen: true, message, defaultValue, resolve }); - }); - }; - - const showAlert = (message: string): Promise => { - return new Promise((resolve) => { - setAlertState({ isOpen: true, message, resolve }); - }); - }; - - const handleConfirm = (result: boolean) => { - confirmState.resolve?.(result); - setConfirmState({ isOpen: false, message: '', resolve: null }); - }; - - const handlePrompt = (result?: string) => { - promptState.resolve?.(result); - setPromptState({ isOpen: false, message: '', resolve: null }); - }; - - const handleAlertClose = () => { - alertState.resolve?.(); - setAlertState({ isOpen: false, message: '', resolve: null }); - }; - - return ( - - {children} - - {/* Confirm Modal */} - {confirmState.isOpen && ( - -
-

{confirmState.message}

-
- - -
-
-
- )} - - {/* Prompt Modal */} - {promptState.isOpen && ( - -
-

{promptState.message}

- { - if (e.key === 'Enter') { - handlePrompt((e.target as HTMLInputElement).value); - } - }} - /> -
- - -
-
-
- )} - - {/* Alert Modal */} - {alertState.isOpen && ( - -
-

{alertState.message}

-
- -
-
-
- )} -
- ); -} - -export function useModals() { - const context = useContext(ModalContext); - if (!context) throw new Error('useModals must be used within ModalProvider'); - return context; -} diff --git a/tools/server/webui/src/components/SettingDialog.tsx b/tools/server/webui/src/components/SettingDialog.tsx deleted file mode 100644 index 45a8d73b00..0000000000 --- a/tools/server/webui/src/components/SettingDialog.tsx +++ /dev/null @@ -1,553 +0,0 @@ -import { useState } from 'react'; -import { useAppContext } from '../utils/app.context'; -import { CONFIG_DEFAULT, CONFIG_INFO } from '../Config'; -import { isDev } from '../Config'; -import StorageUtils from '../utils/storage'; -import { classNames, isBoolean, isNumeric, isString } from '../utils/misc'; -import { - BeakerIcon, - ChatBubbleOvalLeftEllipsisIcon, - Cog6ToothIcon, - FunnelIcon, - HandRaisedIcon, - SquaresPlusIcon, -} from '@heroicons/react/24/outline'; -import { OpenInNewTab } from '../utils/common'; -import { useModals } from './ModalProvider'; - -type SettKey = keyof typeof CONFIG_DEFAULT; - -const BASIC_KEYS: SettKey[] = [ - 'temperature', - 'top_k', - 'top_p', - 'min_p', - 'max_tokens', -]; -const SAMPLER_KEYS: SettKey[] = [ - 'dynatemp_range', - 'dynatemp_exponent', - 'typical_p', - 'xtc_probability', - 'xtc_threshold', -]; -const PENALTY_KEYS: SettKey[] = [ - 'repeat_last_n', - 'repeat_penalty', - 'presence_penalty', - 'frequency_penalty', - 'dry_multiplier', - 'dry_base', - 'dry_allowed_length', - 'dry_penalty_last_n', -]; - -enum SettingInputType { - SHORT_INPUT, - LONG_INPUT, - CHECKBOX, - CUSTOM, -} - -interface SettingFieldInput { - type: Exclude; - label: string | React.ReactElement; - help?: string | React.ReactElement; - key: SettKey; -} - -interface SettingFieldCustom { - type: SettingInputType.CUSTOM; - key: SettKey; - component: - | string - | React.FC<{ - value: string | boolean | number; - onChange: (value: string) => void; - }>; -} - -interface SettingSection { - title: React.ReactElement; - fields: (SettingFieldInput | SettingFieldCustom)[]; -} - -const ICON_CLASSNAME = 'w-4 h-4 mr-1 inline'; - -const SETTING_SECTIONS: SettingSection[] = [ - { - title: ( - <> - - General - - ), - fields: [ - { - type: SettingInputType.SHORT_INPUT, - label: 'API Key', - key: 'apiKey', - }, - { - type: SettingInputType.LONG_INPUT, - label: 'System Message (will be disabled if left empty)', - key: 'systemMessage', - }, - ...BASIC_KEYS.map( - (key) => - ({ - type: SettingInputType.SHORT_INPUT, - label: key, - key, - }) as SettingFieldInput - ), - { - type: SettingInputType.SHORT_INPUT, - label: 'Paste length to file', - key: 'pasteLongTextToFileLen', - }, - { - type: SettingInputType.CHECKBOX, - label: 'Parse PDF as image instead of text', - key: 'pdfAsImage', - }, - ], - }, - { - title: ( - <> - - Samplers - - ), - fields: [ - { - type: SettingInputType.SHORT_INPUT, - label: 'Samplers queue', - key: 'samplers', - }, - ...SAMPLER_KEYS.map( - (key) => - ({ - type: SettingInputType.SHORT_INPUT, - label: key, - key, - }) as SettingFieldInput - ), - ], - }, - { - title: ( - <> - - Penalties - - ), - fields: PENALTY_KEYS.map((key) => ({ - type: SettingInputType.SHORT_INPUT, - label: key, - key, - })), - }, - { - title: ( - <> - - Reasoning - - ), - fields: [ - { - type: SettingInputType.CHECKBOX, - label: 'Expand thought process by default when generating messages', - key: 'showThoughtInProgress', - }, - { - type: SettingInputType.CHECKBOX, - label: - 'Exclude thought process when sending requests to API (Recommended for DeepSeek-R1)', - key: 'excludeThoughtOnReq', - }, - ], - }, - { - title: ( - <> - - Advanced - - ), - fields: [ - { - type: SettingInputType.CUSTOM, - key: 'custom', // dummy key, won't be used - component: () => { - const debugImportDemoConv = async () => { - const res = await fetch('/demo-conversation.json'); - const demoConv = await res.json(); - StorageUtils.remove(demoConv.id); - for (const msg of demoConv.messages) { - StorageUtils.appendMsg(demoConv.id, msg); - } - }; - return ( - - ); - }, - }, - { - type: SettingInputType.CHECKBOX, - label: 'Show tokens per second', - key: 'showTokensPerSecond', - }, - { - type: SettingInputType.LONG_INPUT, - label: ( - <> - Custom JSON config (For more info, refer to{' '} - - server documentation - - ) - - ), - key: 'custom', - }, - ], - }, - { - title: ( - <> - - Experimental - - ), - fields: [ - { - type: SettingInputType.CUSTOM, - key: 'custom', // dummy key, won't be used - component: () => ( - <> -

- Experimental features are not guaranteed to work correctly. -
-
- If you encounter any problems, create a{' '} - - Bug (misc.) - {' '} - report on Github. Please also specify webui/experimental on - the report title and include screenshots. -
-
- Some features may require packages downloaded from CDN, so they - need internet connection. -

- - ), - }, - { - type: SettingInputType.CHECKBOX, - label: ( - <> - Enable Python interpreter -
- - This feature uses{' '} - pyodide, - downloaded from CDN. To use this feature, ask the LLM to generate - Python code inside a Markdown code block. You will see a "Run" - button on the code block, near the "Copy" button. - - - ), - key: 'pyIntepreterEnabled', - }, - ], - }, -]; - -export default function SettingDialog({ - show, - onClose, -}: { - show: boolean; - onClose: () => void; -}) { - const { config, saveConfig } = useAppContext(); - const [sectionIdx, setSectionIdx] = useState(0); - - // clone the config object to prevent direct mutation - const [localConfig, setLocalConfig] = useState( - JSON.parse(JSON.stringify(config)) - ); - const { showConfirm, showAlert } = useModals(); - - const resetConfig = async () => { - if (await showConfirm('Are you sure you want to reset all settings?')) { - setLocalConfig(CONFIG_DEFAULT); - } - }; - - const handleSave = async () => { - // copy the local config to prevent direct mutation - const newConfig: typeof CONFIG_DEFAULT = JSON.parse( - JSON.stringify(localConfig) - ); - // validate the config - for (const key in newConfig) { - const value = newConfig[key as SettKey]; - const mustBeBoolean = isBoolean(CONFIG_DEFAULT[key as SettKey]); - const mustBeString = isString(CONFIG_DEFAULT[key as SettKey]); - const mustBeNumeric = isNumeric(CONFIG_DEFAULT[key as SettKey]); - if (mustBeString) { - if (!isString(value)) { - await showAlert(`Value for ${key} must be string`); - return; - } - } else if (mustBeNumeric) { - const trimmedValue = value.toString().trim(); - const numVal = Number(trimmedValue); - if (isNaN(numVal) || !isNumeric(numVal) || trimmedValue.length === 0) { - await showAlert(`Value for ${key} must be numeric`); - return; - } - // force conversion to number - // @ts-expect-error this is safe - newConfig[key] = numVal; - } else if (mustBeBoolean) { - if (!isBoolean(value)) { - await showAlert(`Value for ${key} must be boolean`); - return; - } - } else { - console.error(`Unknown default type for key ${key}`); - } - } - if (isDev) console.log('Saving config', newConfig); - saveConfig(newConfig); - onClose(); - }; - - const onChange = (key: SettKey) => (value: string | boolean) => { - // note: we do not perform validation here, because we may get incomplete value as user is still typing it - setLocalConfig({ ...localConfig, [key]: value }); - }; - - return ( - -
-

Settings

-
- {/* Left panel, showing sections - Desktop version */} -
- {SETTING_SECTIONS.map((section, idx) => ( - - ))} -
- - {/* Left panel, showing sections - Mobile version */} - {/* This menu is skipped on a11y, otherwise it's repeated the desktop version */} -
-
- - {SETTING_SECTIONS[sectionIdx].title} - -
    - {SETTING_SECTIONS.map((section, idx) => ( -
    setSectionIdx(idx)} - dir="auto" - > - {section.title} -
    - ))} -
-
-
- - {/* Right panel, showing setting fields */} -
- {SETTING_SECTIONS[sectionIdx].fields.map((field, idx) => { - const key = `${sectionIdx}-${idx}`; - if (field.type === SettingInputType.SHORT_INPUT) { - return ( - - ); - } else if (field.type === SettingInputType.LONG_INPUT) { - return ( - - ); - } else if (field.type === SettingInputType.CHECKBOX) { - return ( - - ); - } else if (field.type === SettingInputType.CUSTOM) { - return ( -
- {typeof field.component === 'string' - ? field.component - : field.component({ - value: localConfig[field.key], - onChange: onChange(field.key), - })} -
- ); - } - })} - -

- Settings are saved in browser's localStorage -

-
-
- -
- - - -
-
-
- ); -} - -function SettingsModalLongInput({ - configKey, - value, - onChange, - label, -}: { - configKey: SettKey; - value: string; - onChange: (value: string) => void; - label?: string; -}) { - return ( -
+
+ +
+ + +
+ + {#each currentSection.fields as field (field.key)} +
+ {#if field.type === 'input'} + + + (localConfig[field.key] = e.currentTarget.value)} + placeholder={`Default: ${SETTING_CONFIG_DEFAULT[field.key] || 'none'}`} + class="max-w-md" + /> + {#if field.help || SETTING_CONFIG_INFO[field.key]} +

+ {field.help || SETTING_CONFIG_INFO[field.key]} +

+ {/if} + {:else if field.type === 'textarea'} + + + diff --git a/tools/server/webui/src/lib/components/ui/tooltip/index.ts b/tools/server/webui/src/lib/components/ui/tooltip/index.ts new file mode 100644 index 0000000000..273d831e6e --- /dev/null +++ b/tools/server/webui/src/lib/components/ui/tooltip/index.ts @@ -0,0 +1,21 @@ +import { Tooltip as TooltipPrimitive } from 'bits-ui'; +import Trigger from './tooltip-trigger.svelte'; +import Content from './tooltip-content.svelte'; + +const Root = TooltipPrimitive.Root; +const Provider = TooltipPrimitive.Provider; +const Portal = TooltipPrimitive.Portal; + +export { + Root, + Trigger, + Content, + Provider, + Portal, + // + Root as Tooltip, + Content as TooltipContent, + Trigger as TooltipTrigger, + Provider as TooltipProvider, + Portal as TooltipPortal +}; diff --git a/tools/server/webui/src/lib/components/ui/tooltip/tooltip-content.svelte b/tools/server/webui/src/lib/components/ui/tooltip/tooltip-content.svelte new file mode 100644 index 0000000000..72ea93a010 --- /dev/null +++ b/tools/server/webui/src/lib/components/ui/tooltip/tooltip-content.svelte @@ -0,0 +1,47 @@ + + + + + {@render children?.()} + + {#snippet child({ props })} +
+ {/snippet} +
+
+
diff --git a/tools/server/webui/src/lib/components/ui/tooltip/tooltip-trigger.svelte b/tools/server/webui/src/lib/components/ui/tooltip/tooltip-trigger.svelte new file mode 100644 index 0000000000..5631d1b4c1 --- /dev/null +++ b/tools/server/webui/src/lib/components/ui/tooltip/tooltip-trigger.svelte @@ -0,0 +1,7 @@ + + + diff --git a/tools/server/webui/src/lib/components/ui/utils.ts b/tools/server/webui/src/lib/components/ui/utils.ts new file mode 100644 index 0000000000..f92bfcbb3f --- /dev/null +++ b/tools/server/webui/src/lib/components/ui/utils.ts @@ -0,0 +1,13 @@ +import { clsx, type ClassValue } from 'clsx'; +import { twMerge } from 'tailwind-merge'; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type WithoutChild = T extends { child?: any } ? Omit : T; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type WithoutChildren = T extends { children?: any } ? Omit : T; +export type WithoutChildrenOrChild = WithoutChildren>; +export type WithElementRef = T & { ref?: U | null }; diff --git a/tools/server/webui/src/lib/constants/auto-scroll.ts b/tools/server/webui/src/lib/constants/auto-scroll.ts new file mode 100644 index 0000000000..098f435d6c --- /dev/null +++ b/tools/server/webui/src/lib/constants/auto-scroll.ts @@ -0,0 +1,3 @@ +export const AUTO_SCROLL_INTERVAL = 100; +export const INITIAL_SCROLL_DELAY = 50; +export const AUTO_SCROLL_AT_BOTTOM_THRESHOLD = 10; diff --git a/tools/server/webui/src/lib/constants/debounce.ts b/tools/server/webui/src/lib/constants/debounce.ts new file mode 100644 index 0000000000..7394669f3a --- /dev/null +++ b/tools/server/webui/src/lib/constants/debounce.ts @@ -0,0 +1 @@ +export const SLOTS_DEBOUNCE_INTERVAL = 100; diff --git a/tools/server/webui/src/lib/constants/input-classes.ts b/tools/server/webui/src/lib/constants/input-classes.ts new file mode 100644 index 0000000000..a541cfc553 --- /dev/null +++ b/tools/server/webui/src/lib/constants/input-classes.ts @@ -0,0 +1,6 @@ +export const INPUT_CLASSES = ` + bg-muted/70 dark:bg-muted/85 + border border-border/30 focus-within:border-border dark:border-border/20 dark:focus-within:border-border + outline-none + text-foreground +`; diff --git a/tools/server/webui/src/lib/constants/max-bundle-size.ts b/tools/server/webui/src/lib/constants/max-bundle-size.ts new file mode 100644 index 0000000000..e04348febe --- /dev/null +++ b/tools/server/webui/src/lib/constants/max-bundle-size.ts @@ -0,0 +1 @@ +export const MAX_BUNDLE_SIZE = 2 * 1024 * 1024; diff --git a/tools/server/webui/src/lib/constants/processing-info.ts b/tools/server/webui/src/lib/constants/processing-info.ts new file mode 100644 index 0000000000..726439211b --- /dev/null +++ b/tools/server/webui/src/lib/constants/processing-info.ts @@ -0,0 +1 @@ +export const PROCESSING_INFO_TIMEOUT = 2000; diff --git a/tools/server/webui/src/lib/constants/settings-config.ts b/tools/server/webui/src/lib/constants/settings-config.ts new file mode 100644 index 0000000000..89eff7bdbd --- /dev/null +++ b/tools/server/webui/src/lib/constants/settings-config.ts @@ -0,0 +1,84 @@ +export const SETTING_CONFIG_DEFAULT: Record = { + // Note: in order not to introduce breaking changes, please keep the same data type (number, string, etc) if you want to change the default value. Do not use null or undefined for default value. + // Do not use nested objects, keep it single level. Prefix the key if you need to group them. + apiKey: '', + systemMessage: '', + theme: 'system', + showTokensPerSecond: false, + showThoughtInProgress: false, + keepStatsVisible: false, + askForTitleConfirmation: false, + pasteLongTextToFileLen: 2500, + pdfAsImage: false, + // make sure these default values are in sync with `common.h` + samplers: 'top_k;typ_p;top_p;min_p;temperature', + temperature: 0.8, + dynatemp_range: 0.0, + dynatemp_exponent: 1.0, + top_k: 40, + top_p: 0.95, + min_p: 0.05, + xtc_probability: 0.0, + xtc_threshold: 0.1, + typ_p: 1.0, + repeat_last_n: 64, + repeat_penalty: 1.0, + presence_penalty: 0.0, + frequency_penalty: 0.0, + dry_multiplier: 0.0, + dry_base: 1.75, + dry_allowed_length: 2, + dry_penalty_last_n: -1, + max_tokens: -1, + custom: '', // custom json-stringified object + // experimental features + pyInterpreterEnabled: false +}; + +export const SETTING_CONFIG_INFO: Record = { + apiKey: 'Set the API Key if you are using --api-key option for the server.', + systemMessage: 'The starting message that defines how model should behave.', + theme: + 'Choose the color theme for the interface. You can choose between System (follows your device settings), Light, or Dark.', + pasteLongTextToFileLen: + 'On pasting long text, it will be converted to a file. You can control the file length by setting the value of this parameter. Value 0 means disable.', + samplers: + 'The order at which samplers are applied, in simplified way. Default is "top_k;typ_p;top_p;min_p;temperature": top_k->typ_p->top_p->min_p->temperature', + temperature: + 'Controls the randomness of the generated text by affecting the probability distribution of the output tokens. Higher = more random, lower = more focused.', + dynatemp_range: + 'Addon for the temperature sampler. The added value to the range of dynamic temperature, which adjusts probabilities by entropy of tokens.', + dynatemp_exponent: + 'Addon for the temperature sampler. Smoothes out the probability redistribution based on the most probable token.', + top_k: 'Keeps only k top tokens.', + top_p: 'Limits tokens to those that together have a cumulative probability of at least p', + min_p: + 'Limits tokens based on the minimum probability for a token to be considered, relative to the probability of the most likely token.', + xtc_probability: + 'XTC sampler cuts out top tokens; this parameter controls the chance of cutting tokens at all. 0 disables XTC.', + xtc_threshold: + 'XTC sampler cuts out top tokens; this parameter controls the token probability that is required to cut that token.', + typ_p: 'Sorts and limits tokens based on the difference between log-probability and entropy.', + repeat_last_n: 'Last n tokens to consider for penalizing repetition', + repeat_penalty: 'Controls the repetition of token sequences in the generated text', + presence_penalty: 'Limits tokens based on whether they appear in the output or not.', + frequency_penalty: 'Limits tokens based on how often they appear in the output.', + dry_multiplier: + 'DRY sampling reduces repetition in generated text even across long contexts. This parameter sets the DRY sampling multiplier.', + dry_base: + 'DRY sampling reduces repetition in generated text even across long contexts. This parameter sets the DRY sampling base value.', + dry_allowed_length: + 'DRY sampling reduces repetition in generated text even across long contexts. This parameter sets the allowed length for DRY sampling.', + dry_penalty_last_n: + 'DRY sampling reduces repetition in generated text even across long contexts. This parameter sets DRY penalty for the last n tokens.', + max_tokens: 'The maximum number of token per output. Use -1 for infinite (no limit).', + custom: 'Custom JSON parameters to send to the API. Must be valid JSON format.', + showTokensPerSecond: 'Display generation speed in tokens per second during streaming.', + showThoughtInProgress: 'Expand thought process by default when generating messages.', + keepStatsVisible: 'Keep processing statistics visible after generation finishes.', + askForTitleConfirmation: + 'Ask for confirmation before automatically changing conversation title when editing the first message.', + pdfAsImage: 'Parse PDF as image instead of text (requires vision-capable model).', + pyInterpreterEnabled: + 'Enable Python interpreter using Pyodide. Allows running Python code in markdown code blocks.' +}; diff --git a/tools/server/webui/src/lib/constants/supported-file-types.ts b/tools/server/webui/src/lib/constants/supported-file-types.ts new file mode 100644 index 0000000000..f53b55c476 --- /dev/null +++ b/tools/server/webui/src/lib/constants/supported-file-types.ts @@ -0,0 +1,180 @@ +/** + * Comprehensive dictionary of all supported file types in webui + * Organized by category with TypeScript enums for better type safety + */ + +import { + FileExtensionAudio, + FileExtensionImage, + FileExtensionPdf, + FileExtensionText, + FileTypeAudio, + FileTypeImage, + FileTypePdf, + FileTypeText, + MimeTypeAudio, + MimeTypeImage, + MimeTypeApplication, + MimeTypeText +} from '$lib/enums/files'; + +// File type configuration using enums +export const AUDIO_FILE_TYPES = { + [FileTypeAudio.MP3]: { + extensions: [FileExtensionAudio.MP3], + mimeTypes: [MimeTypeAudio.MP3_MPEG, MimeTypeAudio.MP3] + }, + [FileTypeAudio.WAV]: { + extensions: [FileExtensionAudio.WAV], + mimeTypes: [MimeTypeAudio.WAV] + } +} as const; + +export const IMAGE_FILE_TYPES = { + [FileTypeImage.JPEG]: { + extensions: [FileExtensionImage.JPG, FileExtensionImage.JPEG], + mimeTypes: [MimeTypeImage.JPEG] + }, + [FileTypeImage.PNG]: { + extensions: [FileExtensionImage.PNG], + mimeTypes: [MimeTypeImage.PNG] + }, + [FileTypeImage.GIF]: { + extensions: [FileExtensionImage.GIF], + mimeTypes: [MimeTypeImage.GIF] + }, + [FileTypeImage.WEBP]: { + extensions: [FileExtensionImage.WEBP], + mimeTypes: [MimeTypeImage.WEBP] + }, + [FileTypeImage.SVG]: { + extensions: [FileExtensionImage.SVG], + mimeTypes: [MimeTypeImage.SVG] + } +} as const; + +export const PDF_FILE_TYPES = { + [FileTypePdf.PDF]: { + extensions: [FileExtensionPdf.PDF], + mimeTypes: [MimeTypeApplication.PDF] + } +} as const; + +export const TEXT_FILE_TYPES = { + [FileTypeText.PLAIN_TEXT]: { + extensions: [FileExtensionText.TXT], + mimeTypes: [MimeTypeText.PLAIN] + }, + [FileTypeText.MARKDOWN]: { + extensions: [FileExtensionText.MD], + mimeTypes: [MimeTypeText.MARKDOWN] + }, + [FileTypeText.JAVASCRIPT]: { + extensions: [FileExtensionText.JS], + mimeTypes: [MimeTypeText.JAVASCRIPT, MimeTypeText.JAVASCRIPT_APP] + }, + [FileTypeText.TYPESCRIPT]: { + extensions: [FileExtensionText.TS], + mimeTypes: [MimeTypeText.TYPESCRIPT] + }, + [FileTypeText.JSX]: { + extensions: [FileExtensionText.JSX], + mimeTypes: [MimeTypeText.JSX] + }, + [FileTypeText.TSX]: { + extensions: [FileExtensionText.TSX], + mimeTypes: [MimeTypeText.TSX] + }, + [FileTypeText.CSS]: { + extensions: [FileExtensionText.CSS], + mimeTypes: [MimeTypeText.CSS] + }, + [FileTypeText.HTML]: { + extensions: [FileExtensionText.HTML, FileExtensionText.HTM], + mimeTypes: [MimeTypeText.HTML] + }, + [FileTypeText.JSON]: { + extensions: [FileExtensionText.JSON], + mimeTypes: [MimeTypeText.JSON] + }, + [FileTypeText.XML]: { + extensions: [FileExtensionText.XML], + mimeTypes: [MimeTypeText.XML_TEXT, MimeTypeText.XML_APP] + }, + [FileTypeText.YAML]: { + extensions: [FileExtensionText.YAML, FileExtensionText.YML], + mimeTypes: [MimeTypeText.YAML_TEXT, MimeTypeText.YAML_APP] + }, + [FileTypeText.CSV]: { + extensions: [FileExtensionText.CSV], + mimeTypes: [MimeTypeText.CSV] + }, + [FileTypeText.LOG]: { + extensions: [FileExtensionText.LOG], + mimeTypes: [MimeTypeText.PLAIN] + }, + [FileTypeText.PYTHON]: { + extensions: [FileExtensionText.PY], + mimeTypes: [MimeTypeText.PYTHON] + }, + [FileTypeText.JAVA]: { + extensions: [FileExtensionText.JAVA], + mimeTypes: [MimeTypeText.JAVA] + }, + [FileTypeText.CPP]: { + extensions: [FileExtensionText.CPP, FileExtensionText.C, FileExtensionText.H], + mimeTypes: [MimeTypeText.CPP_SRC, MimeTypeText.C_SRC, MimeTypeText.C_HDR] + }, + [FileTypeText.PHP]: { + extensions: [FileExtensionText.PHP], + mimeTypes: [MimeTypeText.PHP] + }, + [FileTypeText.RUBY]: { + extensions: [FileExtensionText.RB], + mimeTypes: [MimeTypeText.RUBY] + }, + [FileTypeText.GO]: { + extensions: [FileExtensionText.GO], + mimeTypes: [MimeTypeText.GO] + }, + [FileTypeText.RUST]: { + extensions: [FileExtensionText.RS], + mimeTypes: [MimeTypeText.RUST] + }, + [FileTypeText.SHELL]: { + extensions: [FileExtensionText.SH, FileExtensionText.BAT], + mimeTypes: [MimeTypeText.SHELL, MimeTypeText.BAT] + }, + [FileTypeText.SQL]: { + extensions: [FileExtensionText.SQL], + mimeTypes: [MimeTypeText.SQL] + }, + [FileTypeText.R]: { + extensions: [FileExtensionText.R], + mimeTypes: [MimeTypeText.R] + }, + [FileTypeText.SCALA]: { + extensions: [FileExtensionText.SCALA], + mimeTypes: [MimeTypeText.SCALA] + }, + [FileTypeText.KOTLIN]: { + extensions: [FileExtensionText.KT], + mimeTypes: [MimeTypeText.KOTLIN] + }, + [FileTypeText.SWIFT]: { + extensions: [FileExtensionText.SWIFT], + mimeTypes: [MimeTypeText.SWIFT] + }, + [FileTypeText.DART]: { + extensions: [FileExtensionText.DART], + mimeTypes: [MimeTypeText.DART] + }, + [FileTypeText.VUE]: { + extensions: [FileExtensionText.VUE], + mimeTypes: [MimeTypeText.VUE] + }, + [FileTypeText.SVELTE]: { + extensions: [FileExtensionText.SVELTE], + mimeTypes: [MimeTypeText.SVELTE] + } +} as const; diff --git a/tools/server/webui/src/lib/constants/tooltip-config.ts b/tools/server/webui/src/lib/constants/tooltip-config.ts new file mode 100644 index 0000000000..3c30c8c072 --- /dev/null +++ b/tools/server/webui/src/lib/constants/tooltip-config.ts @@ -0,0 +1 @@ +export const TOOLTIP_DELAY_DURATION = 100; diff --git a/tools/server/webui/src/lib/constants/viewport.ts b/tools/server/webui/src/lib/constants/viewport.ts new file mode 100644 index 0000000000..26e202cfea --- /dev/null +++ b/tools/server/webui/src/lib/constants/viewport.ts @@ -0,0 +1 @@ +export const DEFAULT_MOBILE_BREAKPOINT = 768; diff --git a/tools/server/webui/src/lib/enums/files.ts b/tools/server/webui/src/lib/enums/files.ts new file mode 100644 index 0000000000..5aec9e7e9f --- /dev/null +++ b/tools/server/webui/src/lib/enums/files.ts @@ -0,0 +1,178 @@ +/** + * Comprehensive dictionary of all supported file types in webui + * Organized by category with TypeScript enums for better type safety + */ + +// File type category enum +export enum FileTypeCategory { + IMAGE = 'image', + AUDIO = 'audio', + PDF = 'pdf', + TEXT = 'text' +} + +// Specific file type enums for each category +export enum FileTypeImage { + JPEG = 'jpeg', + PNG = 'png', + GIF = 'gif', + WEBP = 'webp', + SVG = 'svg' +} + +export enum FileTypeAudio { + MP3 = 'mp3', + WAV = 'wav', + WEBM = 'webm' +} + +export enum FileTypePdf { + PDF = 'pdf' +} + +export enum FileTypeText { + PLAIN_TEXT = 'plainText', + MARKDOWN = 'markdown', + JAVASCRIPT = 'javascript', + TYPESCRIPT = 'typescript', + JSX = 'jsx', + TSX = 'tsx', + CSS = 'css', + HTML = 'html', + JSON = 'json', + XML = 'xml', + YAML = 'yaml', + CSV = 'csv', + LOG = 'log', + PYTHON = 'python', + JAVA = 'java', + CPP = 'cpp', + PHP = 'php', + RUBY = 'ruby', + GO = 'go', + RUST = 'rust', + SHELL = 'shell', + SQL = 'sql', + R = 'r', + SCALA = 'scala', + KOTLIN = 'kotlin', + SWIFT = 'swift', + DART = 'dart', + VUE = 'vue', + SVELTE = 'svelte' +} + +// File extension enums +export enum FileExtensionImage { + JPG = '.jpg', + JPEG = '.jpeg', + PNG = '.png', + GIF = '.gif', + WEBP = '.webp', + SVG = '.svg' +} + +export enum FileExtensionAudio { + MP3 = '.mp3', + WAV = '.wav' +} + +export enum FileExtensionPdf { + PDF = '.pdf' +} + +export enum FileExtensionText { + TXT = '.txt', + MD = '.md', + JS = '.js', + TS = '.ts', + JSX = '.jsx', + TSX = '.tsx', + CSS = '.css', + HTML = '.html', + HTM = '.htm', + JSON = '.json', + XML = '.xml', + YAML = '.yaml', + YML = '.yml', + CSV = '.csv', + LOG = '.log', + PY = '.py', + JAVA = '.java', + CPP = '.cpp', + C = '.c', + H = '.h', + PHP = '.php', + RB = '.rb', + GO = '.go', + RS = '.rs', + SH = '.sh', + BAT = '.bat', + SQL = '.sql', + R = '.r', + SCALA = '.scala', + KT = '.kt', + SWIFT = '.swift', + DART = '.dart', + VUE = '.vue', + SVELTE = '.svelte' +} + +// MIME type enums +export enum MimeTypeApplication { + PDF = 'application/pdf' +} + +export enum MimeTypeAudio { + MP3_MPEG = 'audio/mpeg', + MP3 = 'audio/mp3', + MP4 = 'audio/mp4', + WAV = 'audio/wav', + WEBM = 'audio/webm', + WEBM_OPUS = 'audio/webm;codecs=opus' +} + +export enum MimeTypeImage { + JPEG = 'image/jpeg', + PNG = 'image/png', + GIF = 'image/gif', + WEBP = 'image/webp', + SVG = 'image/svg+xml' +} + +export enum MimeTypeText { + PLAIN = 'text/plain', + MARKDOWN = 'text/markdown', + JAVASCRIPT = 'text/javascript', + JAVASCRIPT_APP = 'application/javascript', + TYPESCRIPT = 'text/typescript', + JSX = 'text/jsx', + TSX = 'text/tsx', + CSS = 'text/css', + HTML = 'text/html', + JSON = 'application/json', + XML_TEXT = 'text/xml', + XML_APP = 'application/xml', + YAML_TEXT = 'text/yaml', + YAML_APP = 'application/yaml', + CSV = 'text/csv', + PYTHON = 'text/x-python', + JAVA = 'text/x-java-source', + CPP_SRC = 'text/x-c++src', + C_SRC = 'text/x-csrc', + C_HDR = 'text/x-chdr', + PHP = 'text/x-php', + RUBY = 'text/x-ruby', + GO = 'text/x-go', + RUST = 'text/x-rust', + SHELL = 'text/x-shellscript', + BAT = 'application/x-bat', + SQL = 'text/x-sql', + R = 'text/x-r', + SCALA = 'text/x-scala', + KOTLIN = 'text/x-kotlin', + SWIFT = 'text/x-swift', + DART = 'text/x-dart', + VUE = 'text/x-vue', + SVELTE = 'text/x-svelte' +} diff --git a/tools/server/webui/src/lib/hooks/is-mobile.svelte.ts b/tools/server/webui/src/lib/hooks/is-mobile.svelte.ts new file mode 100644 index 0000000000..22c74f4a6f --- /dev/null +++ b/tools/server/webui/src/lib/hooks/is-mobile.svelte.ts @@ -0,0 +1,8 @@ +import { DEFAULT_MOBILE_BREAKPOINT } from '$lib/constants/viewport'; +import { MediaQuery } from 'svelte/reactivity'; + +export class IsMobile extends MediaQuery { + constructor(breakpoint: number = DEFAULT_MOBILE_BREAKPOINT) { + super(`max-width: ${breakpoint - 1}px`); + } +} diff --git a/tools/server/webui/src/lib/hooks/use-processing-state.svelte.ts b/tools/server/webui/src/lib/hooks/use-processing-state.svelte.ts new file mode 100644 index 0000000000..e8c3aa1ae8 --- /dev/null +++ b/tools/server/webui/src/lib/hooks/use-processing-state.svelte.ts @@ -0,0 +1,173 @@ +import { slotsService } from '$lib/services'; +import { config } from '$lib/stores/settings.svelte'; + +export interface UseProcessingStateReturn { + readonly processingState: ApiProcessingState | null; + getProcessingDetails(): string[]; + getProcessingMessage(): string; + shouldShowDetails(): boolean; + startMonitoring(): Promise; + stopMonitoring(): void; +} + +/** + * useProcessingState - Reactive processing state hook + * + * This hook provides reactive access to the processing state of the server. + * It subscribes to timing data updates from the slots service and provides + * formatted processing details for UI display. + * + * **Features:** + * - Real-time processing state monitoring + * - Context and output token tracking + * - Tokens per second calculation + * - Graceful degradation when slots endpoint unavailable + * - Automatic cleanup on component unmount + * + * @returns Hook interface with processing state and control methods + */ +export function useProcessingState(): UseProcessingStateReturn { + let isMonitoring = $state(false); + let processingState = $state(null); + let lastKnownState = $state(null); + let unsubscribe: (() => void) | null = null; + + async function startMonitoring(): Promise { + if (isMonitoring) return; + + isMonitoring = true; + + unsubscribe = slotsService.subscribe((state) => { + processingState = state; + if (state) { + lastKnownState = state; + } else { + lastKnownState = null; + } + }); + + try { + const currentState = await slotsService.getCurrentState(); + + if (currentState) { + processingState = currentState; + lastKnownState = currentState; + } + + if (slotsService.isStreaming()) { + slotsService.startStreaming(); + } + } catch (error) { + console.warn('Failed to start slots monitoring:', error); + // Continue without slots monitoring - graceful degradation + } + } + + function stopMonitoring(): void { + if (!isMonitoring) return; + + isMonitoring = false; + + // Only clear processing state if keepStatsVisible is disabled + // This preserves the last known state for display when stats should remain visible + const currentConfig = config(); + if (!currentConfig.keepStatsVisible) { + processingState = null; + } else if (lastKnownState) { + // Keep the last known state visible when keepStatsVisible is enabled + processingState = lastKnownState; + } + + if (unsubscribe) { + unsubscribe(); + unsubscribe = null; + } + } + + function getProcessingMessage(): string { + if (!processingState) { + return 'Processing...'; + } + + switch (processingState.status) { + case 'initializing': + return 'Initializing...'; + case 'preparing': + if (processingState.progressPercent !== undefined) { + return `Processing (${processingState.progressPercent}%)`; + } + return 'Preparing response...'; + case 'generating': + if (processingState.tokensDecoded > 0) { + return `Generating... (${processingState.tokensDecoded} tokens)`; + } + return 'Generating...'; + default: + return 'Processing...'; + } + } + + function getProcessingDetails(): string[] { + // Use current processing state or fall back to last known state + const stateToUse = processingState || lastKnownState; + if (!stateToUse) { + return []; + } + + const details: string[] = []; + const currentConfig = config(); // Get fresh config each time + + // Always show context info when we have valid data + if (stateToUse.contextUsed >= 0 && stateToUse.contextTotal > 0) { + const contextPercent = Math.round((stateToUse.contextUsed / stateToUse.contextTotal) * 100); + + details.push( + `Context: ${stateToUse.contextUsed}/${stateToUse.contextTotal} (${contextPercent}%)` + ); + } + + if (stateToUse.outputTokensUsed > 0) { + // Handle infinite max_tokens (-1) case + if (stateToUse.outputTokensMax <= 0) { + details.push(`Output: ${stateToUse.outputTokensUsed}/∞`); + } else { + const outputPercent = Math.round( + (stateToUse.outputTokensUsed / stateToUse.outputTokensMax) * 100 + ); + + details.push( + `Output: ${stateToUse.outputTokensUsed}/${stateToUse.outputTokensMax} (${outputPercent}%)` + ); + } + } + + if ( + currentConfig.showTokensPerSecond && + stateToUse.tokensPerSecond && + stateToUse.tokensPerSecond > 0 + ) { + details.push(`${stateToUse.tokensPerSecond.toFixed(1)} tokens/sec`); + } + + if (stateToUse.speculative) { + details.push('Speculative decoding enabled'); + } + + return details; + } + + function shouldShowDetails(): boolean { + return processingState !== null && processingState.status !== 'idle'; + } + + return { + get processingState() { + return processingState; + }, + getProcessingDetails, + getProcessingMessage, + shouldShowDetails, + startMonitoring, + stopMonitoring + }; +} diff --git a/tools/server/webui/src/lib/services/chat.ts b/tools/server/webui/src/lib/services/chat.ts new file mode 100644 index 0000000000..7133bbab81 --- /dev/null +++ b/tools/server/webui/src/lib/services/chat.ts @@ -0,0 +1,715 @@ +import { config } from '$lib/stores/settings.svelte'; +import { slotsService } from './slots'; +/** + * ChatService - Low-level API communication layer for llama.cpp server interactions + * + * This service handles direct communication with the llama.cpp server's chat completion API. + * It provides the network layer abstraction for AI model interactions while remaining + * stateless and focused purely on API communication. + * + * **Architecture & Relationship with ChatStore:** + * - **ChatService** (this class): Stateless API communication layer + * - Handles HTTP requests/responses with llama.cpp server + * - Manages streaming and non-streaming response parsing + * - Provides request abortion capabilities + * - Converts database messages to API format + * - Handles error translation and context detection + * + * - **ChatStore**: Stateful orchestration and UI state management + * - Uses ChatService for all AI model communication + * - Manages conversation state, message history, and UI reactivity + * - Coordinates with DatabaseStore for persistence + * - Handles complex workflows like branching and regeneration + * + * **Key Responsibilities:** + * - Message format conversion (DatabaseMessage → API format) + * - Streaming response handling with real-time callbacks + * - Reasoning content extraction and processing + * - File attachment processing (images, PDFs, audio, text) + * - Context error detection and reporting + * - Request lifecycle management (abort, cleanup) + */ +export class ChatService { + private abortController: AbortController | null = null; + + /** + * Sends a chat completion request to the llama.cpp server. + * Supports both streaming and non-streaming responses with comprehensive parameter configuration. + * Automatically converts database messages with attachments to the appropriate API format. + * + * @param messages - Array of chat messages to send to the API (supports both ApiChatMessageData and DatabaseMessage with attachments) + * @param options - Configuration options for the chat completion request. See `SettingsChatServiceOptions` type for details. + * @returns {Promise} that resolves to the complete response string (non-streaming) or void (streaming) + * @throws {Error} if the request fails or is aborted + */ + async sendMessage( + messages: ApiChatMessageData[] | (DatabaseMessage & { extra?: DatabaseMessageExtra[] })[], + options: SettingsChatServiceOptions = {} + ): Promise { + const { + stream, + onChunk, + onComplete, + onError, + // Generation parameters + temperature, + max_tokens, + // Sampling parameters + dynatemp_range, + dynatemp_exponent, + top_k, + top_p, + min_p, + xtc_probability, + xtc_threshold, + typ_p, + // Penalty parameters + repeat_last_n, + repeat_penalty, + presence_penalty, + frequency_penalty, + dry_multiplier, + dry_base, + dry_allowed_length, + dry_penalty_last_n, + // Other parameters + samplers, + custom, + timings_per_token + } = options; + + // Cancel any ongoing request and create a new abort controller + this.abort(); + this.abortController = new AbortController(); + + // Convert database messages with attachments to API format if needed + const normalizedMessages: ApiChatMessageData[] = messages + .map((msg) => { + // Check if this is a DatabaseMessage by checking for DatabaseMessage-specific fields + if ('id' in msg && 'convId' in msg && 'timestamp' in msg) { + // This is a DatabaseMessage, convert it + const dbMsg = msg as DatabaseMessage & { extra?: DatabaseMessageExtra[] }; + return ChatService.convertMessageToChatServiceData(dbMsg); + } else { + // This is already an ApiChatMessageData object + return msg as ApiChatMessageData; + } + }) + .filter((msg) => { + // Filter out empty system messages + if (msg.role === 'system') { + const content = typeof msg.content === 'string' ? msg.content : ''; + + return content.trim().length > 0; + } + + return true; + }); + + // Build base request body with system message injection + const processedMessages = this.injectSystemMessage(normalizedMessages); + + const requestBody: ApiChatCompletionRequest = { + messages: processedMessages.map((msg: ApiChatMessageData) => ({ + role: msg.role, + content: msg.content + })), + stream + }; + + requestBody.reasoning_format = 'auto'; + + if (temperature !== undefined) requestBody.temperature = temperature; + // Set max_tokens to -1 (infinite) if not provided or empty + requestBody.max_tokens = + max_tokens !== undefined && max_tokens !== null && max_tokens !== 0 ? max_tokens : -1; + + if (dynatemp_range !== undefined) requestBody.dynatemp_range = dynatemp_range; + if (dynatemp_exponent !== undefined) requestBody.dynatemp_exponent = dynatemp_exponent; + if (top_k !== undefined) requestBody.top_k = top_k; + if (top_p !== undefined) requestBody.top_p = top_p; + if (min_p !== undefined) requestBody.min_p = min_p; + if (xtc_probability !== undefined) requestBody.xtc_probability = xtc_probability; + if (xtc_threshold !== undefined) requestBody.xtc_threshold = xtc_threshold; + if (typ_p !== undefined) requestBody.typ_p = typ_p; + + if (repeat_last_n !== undefined) requestBody.repeat_last_n = repeat_last_n; + if (repeat_penalty !== undefined) requestBody.repeat_penalty = repeat_penalty; + if (presence_penalty !== undefined) requestBody.presence_penalty = presence_penalty; + if (frequency_penalty !== undefined) requestBody.frequency_penalty = frequency_penalty; + if (dry_multiplier !== undefined) requestBody.dry_multiplier = dry_multiplier; + if (dry_base !== undefined) requestBody.dry_base = dry_base; + if (dry_allowed_length !== undefined) requestBody.dry_allowed_length = dry_allowed_length; + if (dry_penalty_last_n !== undefined) requestBody.dry_penalty_last_n = dry_penalty_last_n; + + if (samplers !== undefined) { + requestBody.samplers = + typeof samplers === 'string' + ? samplers.split(';').filter((s: string) => s.trim()) + : samplers; + } + + if (timings_per_token !== undefined) requestBody.timings_per_token = timings_per_token; + + if (custom) { + try { + const customParams = typeof custom === 'string' ? JSON.parse(custom) : custom; + Object.assign(requestBody, customParams); + } catch (error) { + console.warn('Failed to parse custom parameters:', error); + } + } + + try { + const currentConfig = config(); + const apiKey = currentConfig.apiKey?.toString().trim(); + + const response = await fetch(`/v1/chat/completions`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + ...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}) + }, + body: JSON.stringify(requestBody), + signal: this.abortController.signal + }); + + if (!response.ok) { + // Use the new parseErrorResponse method to handle structured errors + const error = await this.parseErrorResponse(response); + if (onError) { + onError(error); + } + throw error; + } + + if (stream) { + return this.handleStreamResponse( + response, + onChunk, + onComplete, + onError, + options.onReasoningChunk + ); + } else { + return this.handleNonStreamResponse(response, onComplete, onError); + } + } catch (error) { + if (error instanceof Error && error.name === 'AbortError') { + console.log('Chat completion request was aborted'); + return; + } + + let userFriendlyError: Error; + + if (error instanceof Error) { + if (error.name === 'TypeError' && error.message.includes('fetch')) { + userFriendlyError = new Error( + 'Unable to connect to server - please check if the server is running' + ); + } else if (error.message.includes('ECONNREFUSED')) { + userFriendlyError = new Error('Connection refused - server may be offline'); + } else if (error.message.includes('ETIMEDOUT')) { + userFriendlyError = new Error('Request timeout - server may be overloaded'); + } else { + userFriendlyError = error; + } + } else { + userFriendlyError = new Error('Unknown error occurred while sending message'); + } + + console.error('Error in sendMessage:', error); + if (onError) { + onError(userFriendlyError); + } + throw userFriendlyError; + } + } + + /** + * Handles streaming response from the chat completion API. + * Processes server-sent events and extracts content chunks from the stream. + * + * @param response - The fetch Response object containing the streaming data + * @param onChunk - Optional callback invoked for each content chunk received + * @param onComplete - Optional callback invoked when the stream is complete with full response + * @param onError - Optional callback invoked if an error occurs during streaming + * @param onReasoningChunk - Optional callback invoked for each reasoning content chunk + * @returns {Promise} Promise that resolves when streaming is complete + * @throws {Error} if the stream cannot be read or parsed + */ + private async handleStreamResponse( + response: Response, + onChunk?: (chunk: string) => void, + onComplete?: ( + response: string, + reasoningContent?: string, + timings?: ChatMessageTimings + ) => void, + onError?: (error: Error) => void, + onReasoningChunk?: (chunk: string) => void + ): Promise { + const reader = response.body?.getReader(); + + if (!reader) { + throw new Error('No response body'); + } + + const decoder = new TextDecoder(); + let fullResponse = ''; + let fullReasoningContent = ''; + let regularContent = ''; + let insideThinkTag = false; + let hasReceivedData = false; + let lastTimings: ChatMessageTimings | undefined; + + try { + while (true) { + const { done, value } = await reader.read(); + if (done) break; + + const chunk = decoder.decode(value, { stream: true }); + const lines = chunk.split('\n'); + + for (const line of lines) { + if (line.startsWith('data: ')) { + const data = line.slice(6); + if (data === '[DONE]') { + if (!hasReceivedData && fullResponse.length === 0) { + const contextError = new Error( + 'The request exceeds the available context size. Try increasing the context size or enable context shift.' + ); + contextError.name = 'ContextError'; + onError?.(contextError); + return; + } + + onComplete?.(regularContent, fullReasoningContent || undefined, lastTimings); + + return; + } + + try { + const parsed: ApiChatCompletionStreamChunk = JSON.parse(data); + + const content = parsed.choices[0]?.delta?.content; + const reasoningContent = parsed.choices[0]?.delta?.reasoning_content; + const timings = parsed.timings; + const promptProgress = parsed.prompt_progress; + + if (timings || promptProgress) { + this.updateProcessingState(timings, promptProgress); + + // Store the latest timing data + if (timings) { + lastTimings = timings; + } + } + + if (content) { + hasReceivedData = true; + fullResponse += content; + + // Track the regular content before processing this chunk + const regularContentBefore = regularContent; + + // Process content character by character to handle think tags + insideThinkTag = this.processContentForThinkTags( + content, + insideThinkTag, + () => { + // Think content is ignored - we don't include it in API requests + }, + (regularChunk) => { + regularContent += regularChunk; + } + ); + + const newRegularContent = regularContent.slice(regularContentBefore.length); + if (newRegularContent) { + onChunk?.(newRegularContent); + } + } + + if (reasoningContent) { + hasReceivedData = true; + fullReasoningContent += reasoningContent; + onReasoningChunk?.(reasoningContent); + } + } catch (e) { + console.error('Error parsing JSON chunk:', e); + } + } + } + } + + if (!hasReceivedData && fullResponse.length === 0) { + const contextError = new Error( + 'The request exceeds the available context size. Try increasing the context size or enable context shift.' + ); + contextError.name = 'ContextError'; + onError?.(contextError); + return; + } + } catch (error) { + const err = error instanceof Error ? error : new Error('Stream error'); + + onError?.(err); + + throw err; + } finally { + reader.releaseLock(); + } + } + + /** + * Handles non-streaming response from the chat completion API. + * Parses the JSON response and extracts the generated content. + * + * @param response - The fetch Response object containing the JSON data + * @param onComplete - Optional callback invoked when response is successfully parsed + * @param onError - Optional callback invoked if an error occurs during parsing + * @returns {Promise} Promise that resolves to the generated content string + * @throws {Error} if the response cannot be parsed or is malformed + */ + private async handleNonStreamResponse( + response: Response, + onComplete?: ( + response: string, + reasoningContent?: string, + timings?: ChatMessageTimings + ) => void, + onError?: (error: Error) => void + ): Promise { + try { + const responseText = await response.text(); + + if (!responseText.trim()) { + const contextError = new Error( + 'The request exceeds the available context size. Try increasing the context size or enable context shift.' + ); + contextError.name = 'ContextError'; + onError?.(contextError); + throw contextError; + } + + const data: ApiChatCompletionResponse = JSON.parse(responseText); + const content = data.choices[0]?.message?.content || ''; + const reasoningContent = data.choices[0]?.message?.reasoning_content; + + if (reasoningContent) { + console.log('Full reasoning content:', reasoningContent); + } + + if (!content.trim()) { + const contextError = new Error( + 'The request exceeds the available context size. Try increasing the context size or enable context shift.' + ); + contextError.name = 'ContextError'; + onError?.(contextError); + throw contextError; + } + + onComplete?.(content, reasoningContent); + + return content; + } catch (error) { + if (error instanceof Error && error.name === 'ContextError') { + throw error; + } + + const err = error instanceof Error ? error : new Error('Parse error'); + + onError?.(err); + + throw err; + } + } + + /** + * Converts a database message with attachments to API chat message format. + * Processes various attachment types (images, text files, PDFs) and formats them + * as content parts suitable for the chat completion API. + * + * @param message - Database message object with optional extra attachments + * @param message.content - The text content of the message + * @param message.role - The role of the message sender (user, assistant, system) + * @param message.extra - Optional array of message attachments (images, files, etc.) + * @returns {ApiChatMessageData} object formatted for the chat completion API + * @static + */ + static convertMessageToChatServiceData( + message: DatabaseMessage & { extra?: DatabaseMessageExtra[] } + ): ApiChatMessageData { + if (!message.extra || message.extra.length === 0) { + return { + role: message.role as 'user' | 'assistant' | 'system', + content: message.content + }; + } + + const contentParts: ApiChatMessageContentPart[] = []; + + if (message.content) { + contentParts.push({ + type: 'text', + text: message.content + }); + } + + const imageFiles = message.extra.filter( + (extra: DatabaseMessageExtra): extra is DatabaseMessageExtraImageFile => + extra.type === 'imageFile' + ); + + for (const image of imageFiles) { + contentParts.push({ + type: 'image_url', + image_url: { url: image.base64Url } + }); + } + + const textFiles = message.extra.filter( + (extra: DatabaseMessageExtra): extra is DatabaseMessageExtraTextFile => + extra.type === 'textFile' + ); + + for (const textFile of textFiles) { + contentParts.push({ + type: 'text', + text: `\n\n--- File: ${textFile.name} ---\n${textFile.content}` + }); + } + + const audioFiles = message.extra.filter( + (extra: DatabaseMessageExtra): extra is DatabaseMessageExtraAudioFile => + extra.type === 'audioFile' + ); + + for (const audio of audioFiles) { + contentParts.push({ + type: 'input_audio', + input_audio: { + data: audio.base64Data, + format: audio.mimeType.includes('wav') ? 'wav' : 'mp3' + } + }); + } + + const pdfFiles = message.extra.filter( + (extra: DatabaseMessageExtra): extra is DatabaseMessageExtraPdfFile => + extra.type === 'pdfFile' + ); + + for (const pdfFile of pdfFiles) { + if (pdfFile.processedAsImages && pdfFile.images) { + for (let i = 0; i < pdfFile.images.length; i++) { + contentParts.push({ + type: 'image_url', + image_url: { url: pdfFile.images[i] } + }); + } + } else { + contentParts.push({ + type: 'text', + text: `\n\n--- PDF File: ${pdfFile.name} ---\n${pdfFile.content}` + }); + } + } + + return { + role: message.role as 'user' | 'assistant' | 'system', + content: contentParts + }; + } + + /** + * Get server properties - static method for API compatibility + */ + static async getServerProps(): Promise { + try { + const currentConfig = config(); + const apiKey = currentConfig.apiKey?.toString().trim(); + + const response = await fetch(`/props`, { + headers: { + 'Content-Type': 'application/json', + ...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}) + } + }); + + if (!response.ok) { + throw new Error(`Failed to fetch server props: ${response.status}`); + } + + const data = await response.json(); + return data; + } catch (error) { + console.error('Error fetching server props:', error); + throw error; + } + } + + /** + * Processes content to separate thinking tags from regular content. + * Parses and tags to route content to appropriate handlers. + * + * @param content - The content string to process + * @param currentInsideThinkTag - Current state of whether we're inside a think tag + * @param addThinkContent - Callback to handle content inside think tags + * @param addRegularContent - Callback to handle regular content outside think tags + * @returns Boolean indicating if we're still inside a think tag after processing + * @private + */ + private processContentForThinkTags( + content: string, + currentInsideThinkTag: boolean, + addThinkContent: (chunk: string) => void, + addRegularContent: (chunk: string) => void + ): boolean { + let i = 0; + let insideThinkTag = currentInsideThinkTag; + + while (i < content.length) { + if (!insideThinkTag && content.substring(i, i + 7) === '') { + insideThinkTag = true; + i += 7; // Skip the tag + continue; + } + + if (insideThinkTag && content.substring(i, i + 8) === '') { + insideThinkTag = false; + i += 8; // Skip the tag + continue; + } + + if (insideThinkTag) { + addThinkContent(content[i]); + } else { + addRegularContent(content[i]); + } + + i++; + } + + return insideThinkTag; + } + + /** + * Aborts any ongoing chat completion request. + * Cancels the current request and cleans up the abort controller. + * + * @public + */ + public abort(): void { + if (this.abortController) { + this.abortController.abort(); + this.abortController = null; + } + } + + /** + * Injects a system message at the beginning of the conversation if configured in settings. + * Checks for existing system messages to avoid duplication and retrieves the system message + * from the current configuration settings. + * + * @param messages - Array of chat messages to process + * @returns Array of messages with system message injected at the beginning if configured + * @private + */ + private injectSystemMessage(messages: ApiChatMessageData[]): ApiChatMessageData[] { + const currentConfig = config(); + const systemMessage = currentConfig.systemMessage?.toString().trim(); + + if (!systemMessage) { + return messages; + } + + if (messages.length > 0 && messages[0].role === 'system') { + if (messages[0].content !== systemMessage) { + const updatedMessages = [...messages]; + updatedMessages[0] = { + role: 'system', + content: systemMessage + }; + return updatedMessages; + } + + return messages; + } + + const systemMsg: ApiChatMessageData = { + role: 'system', + content: systemMessage + }; + + return [systemMsg, ...messages]; + } + + /** + * Parses error response and creates appropriate error with context information + * @param response - HTTP response object + * @returns Promise - Parsed error with context info if available + */ + private async parseErrorResponse(response: Response): Promise { + try { + const errorText = await response.text(); + const errorData: ApiErrorResponse = JSON.parse(errorText); + + if (errorData.error?.type === 'exceed_context_size_error') { + const contextError = errorData.error as ApiContextSizeError; + const error = new Error(contextError.message); + error.name = 'ContextError'; + // Attach structured context information + ( + error as Error & { + contextInfo?: { promptTokens: number; maxContext: number; estimatedTokens: number }; + } + ).contextInfo = { + promptTokens: contextError.n_prompt_tokens, + maxContext: contextError.n_ctx, + estimatedTokens: contextError.n_prompt_tokens + }; + return error; + } + + // Fallback for other error types + const message = errorData.error?.message || 'Unknown server error'; + return new Error(message); + } catch { + // If we can't parse the error response, return a generic error + return new Error(`Server error (${response.status}): ${response.statusText}`); + } + } + + /** + * Updates the processing state with timing information from the server response + * @param timings - Timing data from the API response + * @param promptProgress - Progress data from the API response + */ + private updateProcessingState( + timings?: ChatMessageTimings, + promptProgress?: ChatMessagePromptProgress + ): void { + // Calculate tokens per second from timing data + const tokensPerSecond = + timings?.predicted_ms && timings?.predicted_n + ? (timings.predicted_n / timings.predicted_ms) * 1000 + : 0; + + // Update slots service with timing data (async but don't wait) + slotsService + .updateFromTimingData({ + prompt_n: timings?.prompt_n || 0, + predicted_n: timings?.predicted_n || 0, + predicted_per_second: tokensPerSecond, + cache_n: timings?.cache_n || 0, + prompt_progress: promptProgress + }) + .catch((error) => { + console.warn('Failed to update processing state:', error); + }); + } +} + +export const chatService = new ChatService(); diff --git a/tools/server/webui/src/lib/services/context.ts b/tools/server/webui/src/lib/services/context.ts new file mode 100644 index 0000000000..d4af7508e7 --- /dev/null +++ b/tools/server/webui/src/lib/services/context.ts @@ -0,0 +1,102 @@ +import { slotsService } from './slots'; + +export interface ContextCheckResult { + wouldExceed: boolean; + currentUsage: number; + maxContext: number; + availableTokens: number; + reservedTokens: number; +} + +/** + * ContextService - Context window management and limit checking + * + * This service provides context window monitoring and limit checking using real-time + * server data from the slots service. It helps prevent context overflow by tracking + * current usage and calculating available space for new content. + * + * **Architecture & Relationships:** + * - **ContextService** (this class): Context limit monitoring + * - Uses SlotsService for real-time context usage data + * - Calculates available tokens with configurable reserves + * - Provides context limit checking and error messaging + * - Helps prevent context window overflow + * + * - **SlotsService**: Provides current context usage from server slots + * - **ChatStore**: Uses context checking before sending messages + * - **UI Components**: Display context usage warnings and limits + * + * **Key Features:** + * - **Real-time Context Checking**: Uses live server data for accuracy + * - **Token Reservation**: Reserves tokens for response generation + * - **Limit Detection**: Prevents context window overflow + * - **Usage Reporting**: Detailed context usage statistics + * - **Error Messaging**: User-friendly context limit messages + * - **Configurable Reserves**: Adjustable token reservation for responses + * + * **Context Management:** + * - Monitors current context usage from active slots + * - Calculates available space considering reserved tokens + * - Provides early warning before context limits are reached + * - Helps optimize conversation length and content + */ +export class ContextService { + private reserveTokens: number; + + constructor(reserveTokens = 512) { + this.reserveTokens = reserveTokens; + } + + /** + * Checks if the context limit would be exceeded + * + * @returns {Promise} Promise that resolves to the context check result or null if an error occurs + */ + async checkContextLimit(): Promise { + try { + const currentState = await slotsService.getCurrentState(); + + if (!currentState) { + return null; + } + + const maxContext = currentState.contextTotal; + const currentUsage = currentState.contextUsed; + const availableTokens = maxContext - currentUsage - this.reserveTokens; + const wouldExceed = availableTokens <= 0; + + return { + wouldExceed, + currentUsage, + maxContext, + availableTokens: Math.max(0, availableTokens), + reservedTokens: this.reserveTokens + }; + } catch (error) { + console.warn('Error checking context limit:', error); + return null; + } + } + + /** + * Returns a formatted error message for context limit exceeded + * + * @param {ContextCheckResult} result - Context check result + * @returns {string} Formatted error message + */ + getContextErrorMessage(result: ContextCheckResult): string { + const usagePercent = Math.round((result.currentUsage / result.maxContext) * 100); + return `Context window is nearly full. Current usage: ${result.currentUsage.toLocaleString()}/${result.maxContext.toLocaleString()} tokens (${usagePercent}%). Available space: ${result.availableTokens.toLocaleString()} tokens (${result.reservedTokens} reserved for response).`; + } + + /** + * Sets the number of tokens to reserve for response generation + * + * @param {number} tokens - Number of tokens to reserve + */ + setReserveTokens(tokens: number): void { + this.reserveTokens = tokens; + } +} + +export const contextService = new ContextService(); diff --git a/tools/server/webui/src/lib/services/index.ts b/tools/server/webui/src/lib/services/index.ts new file mode 100644 index 0000000000..e5a1173ff7 --- /dev/null +++ b/tools/server/webui/src/lib/services/index.ts @@ -0,0 +1,3 @@ +export { chatService } from './chat'; +export { contextService } from './context'; +export { slotsService } from './slots'; diff --git a/tools/server/webui/src/lib/services/slots.ts b/tools/server/webui/src/lib/services/slots.ts new file mode 100644 index 0000000000..b93a5a90e7 --- /dev/null +++ b/tools/server/webui/src/lib/services/slots.ts @@ -0,0 +1,254 @@ +import { config } from '$lib/stores/settings.svelte'; + +/** + * SlotsService - Real-time processing state monitoring and token rate calculation + * + * This service provides real-time information about generation progress, token rates, + * and context usage based on timing data from ChatService streaming responses. + * It manages streaming session tracking and provides accurate processing state updates. + * + * **Architecture & Relationships:** + * - **SlotsService** (this class): Processing state monitoring + * - Receives timing data from ChatService streaming responses + * - Calculates token generation rates and context usage + * - Manages streaming session lifecycle + * - Provides real-time updates to UI components + * + * - **ChatService**: Provides timing data from `/chat/completions` streaming + * - **UI Components**: Subscribe to processing state for progress indicators + * + * **Key Features:** + * - **Real-time Monitoring**: Live processing state during generation + * - **Token Rate Calculation**: Accurate tokens/second from timing data + * - **Context Tracking**: Current context usage and remaining capacity + * - **Streaming Lifecycle**: Start/stop tracking for streaming sessions + * - **Timing Data Processing**: Converts streaming timing data to structured state + * - **Error Handling**: Graceful handling when timing data is unavailable + * + * **Processing States:** + * - `idle`: No active processing + * - `generating`: Actively generating tokens + * + * **Token Rate Calculation:** + * Uses timing data from `/chat/completions` streaming response for accurate + * real-time token generation rate measurement. + */ +export class SlotsService { + private callbacks: Set<(state: ApiProcessingState | null) => void> = new Set(); + private isStreamingActive: boolean = false; + private lastKnownState: ApiProcessingState | null = null; + + /** + * Start streaming session tracking + */ + startStreaming(): void { + this.isStreamingActive = true; + } + + /** + * Stop streaming session tracking + */ + stopStreaming(): void { + this.isStreamingActive = false; + } + + /** + * Clear the current processing state + * Used when switching to a conversation without timing data + */ + clearState(): void { + this.lastKnownState = null; + + for (const callback of this.callbacks) { + try { + callback(null); + } catch (error) { + console.error('Error in clearState callback:', error); + } + } + } + + /** + * Check if currently in a streaming session + */ + isStreaming(): boolean { + return this.isStreamingActive; + } + + /** + * @deprecated Polling is no longer used - timing data comes from ChatService streaming response + * This method logs a warning if called to help identify outdated usage + */ + fetchAndNotify(): void { + console.warn( + 'SlotsService.fetchAndNotify() is deprecated - use timing data from ChatService instead' + ); + } + + subscribe(callback: (state: ApiProcessingState | null) => void): () => void { + this.callbacks.add(callback); + + if (this.lastKnownState) { + callback(this.lastKnownState); + } + + return () => { + this.callbacks.delete(callback); + }; + } + + /** + * Updates processing state with timing data from ChatService streaming response + */ + async updateFromTimingData(timingData: { + prompt_n: number; + predicted_n: number; + predicted_per_second: number; + cache_n: number; + prompt_progress?: ChatMessagePromptProgress; + }): Promise { + const processingState = await this.parseCompletionTimingData(timingData); + + // Only update if we successfully parsed the state + if (processingState === null) { + console.warn('Failed to parse timing data - skipping update'); + return; + } + + this.lastKnownState = processingState; + + for (const callback of this.callbacks) { + try { + callback(processingState); + } catch (error) { + console.error('Error in timing callback:', error); + } + } + } + + /** + * Gets context total from last known slots data or fetches from server + */ + private async getContextTotal(): Promise { + if (this.lastKnownState && this.lastKnownState.contextTotal > 0) { + return this.lastKnownState.contextTotal; + } + + try { + const currentConfig = config(); + const apiKey = currentConfig.apiKey?.toString().trim(); + + const response = await fetch('/slots', { + headers: { + ...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}) + } + }); + if (response.ok) { + const slotsData = await response.json(); + if (Array.isArray(slotsData) && slotsData.length > 0) { + const slot = slotsData[0]; + if (slot.n_ctx && slot.n_ctx > 0) { + return slot.n_ctx; + } + } + } + } catch (error) { + console.warn('Failed to fetch context total from /slots:', error); + } + + return 4096; + } + + private async parseCompletionTimingData( + timingData: Record + ): Promise { + const promptTokens = (timingData.prompt_n as number) || 0; + const predictedTokens = (timingData.predicted_n as number) || 0; + const tokensPerSecond = (timingData.predicted_per_second as number) || 0; + const cacheTokens = (timingData.cache_n as number) || 0; + const promptProgress = timingData.prompt_progress as + | { + total: number; + cache: number; + processed: number; + time_ms: number; + } + | undefined; + + const contextTotal = await this.getContextTotal(); + + if (contextTotal === null) { + console.warn('No context total available - cannot calculate processing state'); + return null; + } + + const currentConfig = config(); + const outputTokensMax = currentConfig.max_tokens || -1; + + const contextUsed = promptTokens + cacheTokens + predictedTokens; + const outputTokensUsed = predictedTokens; + + const progressPercent = promptProgress + ? Math.round((promptProgress.processed / promptProgress.total) * 100) + : undefined; + + return { + status: predictedTokens > 0 ? 'generating' : promptProgress ? 'preparing' : 'idle', + tokensDecoded: predictedTokens, + tokensRemaining: outputTokensMax - predictedTokens, + contextUsed, + contextTotal, + outputTokensUsed, + outputTokensMax, + hasNextToken: predictedTokens > 0, + tokensPerSecond, + temperature: currentConfig.temperature ?? 0.8, + topP: currentConfig.top_p ?? 0.95, + speculative: false, + progressPercent, + promptTokens, + cacheTokens + }; + } + + /** + * Get current processing state + * Returns the last known state from timing data, or null if no data available + */ + async getCurrentState(): Promise { + if (this.lastKnownState) { + return this.lastKnownState; + } + try { + // Import dynamically to avoid circular dependency + const { chatStore } = await import('$lib/stores/chat.svelte'); + const messages = chatStore.activeMessages; + + for (let i = messages.length - 1; i >= 0; i--) { + const message = messages[i]; + if (message.role === 'assistant' && message.timings) { + const restoredState = await this.parseCompletionTimingData({ + prompt_n: message.timings.prompt_n || 0, + predicted_n: message.timings.predicted_n || 0, + predicted_per_second: + message.timings.predicted_n && message.timings.predicted_ms + ? (message.timings.predicted_n / message.timings.predicted_ms) * 1000 + : 0, + cache_n: message.timings.cache_n || 0 + }); + + if (restoredState) { + this.lastKnownState = restoredState; + return restoredState; + } + } + } + } catch (error) { + console.warn('Failed to restore timing data from messages:', error); + } + + return null; + } +} + +export const slotsService = new SlotsService(); diff --git a/tools/server/webui/src/lib/stores/chat.svelte.ts b/tools/server/webui/src/lib/stores/chat.svelte.ts new file mode 100644 index 0000000000..ac5e986428 --- /dev/null +++ b/tools/server/webui/src/lib/stores/chat.svelte.ts @@ -0,0 +1,1394 @@ +import { DatabaseStore } from '$lib/stores/database'; +import { chatService, slotsService } from '$lib/services'; +import { serverStore } from '$lib/stores/server.svelte'; +import { config } from '$lib/stores/settings.svelte'; +import { filterByLeafNodeId, findLeafNode, findDescendantMessages } from '$lib/utils/branching'; +import { browser } from '$app/environment'; +import { goto } from '$app/navigation'; +import { extractPartialThinking } from '$lib/utils/thinking'; + +/** + * ChatStore - Central state management for chat conversations and AI interactions + * + * This store manages the complete chat experience including: + * - Conversation lifecycle (create, load, delete, update) + * - Message management with branching support for conversation trees + * - Real-time AI response streaming with reasoning content support + * - File attachment handling and processing + * - Context error management and recovery + * - Database persistence through DatabaseStore integration + * + * **Architecture & Relationships:** + * - **ChatService**: Handles low-level API communication with AI models + * - ChatStore orchestrates ChatService for streaming responses + * - ChatService provides abort capabilities and error handling + * - ChatStore manages the UI state while ChatService handles network layer + * + * - **DatabaseStore**: Provides persistent storage for conversations and messages + * - ChatStore uses DatabaseStore for all CRUD operations + * - Maintains referential integrity for conversation trees + * - Handles message branching and parent-child relationships + * + * - **SlotsService**: Monitors server resource usage during AI generation + * - ChatStore coordinates slots polling during streaming + * - Provides real-time feedback on server capacity + * + * **Key Features:** + * - Reactive state management using Svelte 5 runes ($state) + * - Conversation branching for exploring different response paths + * - Streaming AI responses with real-time content updates + * - File attachment support (images, PDFs, text files, audio) + * - Context window management with error recovery + * - Partial response saving when generation is interrupted + * - Message editing with automatic response regeneration + */ +class ChatStore { + activeConversation = $state(null); + activeMessages = $state([]); + conversations = $state([]); + currentResponse = $state(''); + isInitialized = $state(false); + isLoading = $state(false); + maxContextError = $state<{ message: string; estimatedTokens: number; maxContext: number } | null>( + null + ); + titleUpdateConfirmationCallback?: (currentTitle: string, newTitle: string) => Promise; + + constructor() { + if (browser) { + this.initialize(); + } + } + + /** + * Initializes the chat store by loading conversations from the database + * Sets up the initial state and loads existing conversations + */ + async initialize(): Promise { + try { + await this.loadConversations(); + + this.maxContextError = null; + + this.isInitialized = true; + } catch (error) { + console.error('Failed to initialize chat store:', error); + } + } + + /** + * Loads all conversations from the database + * Refreshes the conversations list from persistent storage + */ + async loadConversations(): Promise { + this.conversations = await DatabaseStore.getAllConversations(); + } + + /** + * Creates a new conversation and navigates to it + * @param name - Optional name for the conversation, defaults to timestamped name + * @returns The ID of the created conversation + */ + async createConversation(name?: string): Promise { + const conversationName = name || `Chat ${new Date().toLocaleString()}`; + const conversation = await DatabaseStore.createConversation(conversationName); + + this.conversations.unshift(conversation); + + this.activeConversation = conversation; + this.activeMessages = []; + + this.maxContextError = null; + + await goto(`/chat/${conversation.id}`); + + return conversation.id; + } + + /** + * Loads a specific conversation and its messages + * @param convId - The conversation ID to load + * @returns True if conversation was loaded successfully, false otherwise + */ + async loadConversation(convId: string): Promise { + try { + const conversation = await DatabaseStore.getConversation(convId); + + if (!conversation) { + return false; + } + + this.activeConversation = conversation; + + if (conversation.currNode) { + const allMessages = await DatabaseStore.getConversationMessages(convId); + this.activeMessages = filterByLeafNodeId( + allMessages, + conversation.currNode, + false + ) as DatabaseMessage[]; + } else { + // Load all messages for conversations without currNode (backward compatibility) + this.activeMessages = await DatabaseStore.getConversationMessages(convId); + } + + this.maxContextError = null; + + return true; + } catch (error) { + console.error('Failed to load conversation:', error); + + return false; + } + } + + /** + * Adds a new message to the active conversation + * @param role - The role of the message sender (user/assistant) + * @param content - The message content + * @param type - The message type, defaults to 'text' + * @param parent - Parent message ID, defaults to '-1' for auto-detection + * @param extras - Optional extra data (files, attachments, etc.) + * @returns The created message or null if failed + */ + async addMessage( + role: ChatRole, + content: string, + type: ChatMessageType = 'text', + parent: string = '-1', + extras?: DatabaseMessageExtra[] + ): Promise { + if (!this.activeConversation) { + console.error('No active conversation when trying to add message'); + return null; + } + + try { + let parentId: string | null = null; + + if (parent === '-1') { + if (this.activeMessages.length > 0) { + parentId = this.activeMessages[this.activeMessages.length - 1].id; + } else { + const allMessages = await DatabaseStore.getConversationMessages( + this.activeConversation.id + ); + const rootMessage = allMessages.find((m) => m.parent === null && m.type === 'root'); + + if (!rootMessage) { + const rootId = await DatabaseStore.createRootMessage(this.activeConversation.id); + parentId = rootId; + } else { + parentId = rootMessage.id; + } + } + } else { + parentId = parent; + } + + const message = await DatabaseStore.createMessageBranch( + { + convId: this.activeConversation.id, + role, + content, + type, + timestamp: Date.now(), + thinking: '', + children: [], + extra: extras + }, + parentId + ); + + this.activeMessages.push(message); + + await DatabaseStore.updateCurrentNode(this.activeConversation.id, message.id); + this.activeConversation.currNode = message.id; + + this.updateConversationTimestamp(); + + return message; + } catch (error) { + console.error('Failed to add message:', error); + return null; + } + } + + /** + * Gets API options from current configuration settings + * Converts settings store values to API-compatible format + * @returns API options object for chat completion requests + */ + private getApiOptions(): Record { + const currentConfig = config(); + const apiOptions: Record = { + stream: true, + timings_per_token: true + }; + + if (currentConfig.temperature !== undefined && currentConfig.temperature !== null) { + apiOptions.temperature = Number(currentConfig.temperature); + } + if (currentConfig.max_tokens !== undefined && currentConfig.max_tokens !== null) { + apiOptions.max_tokens = Number(currentConfig.max_tokens); + } + if (currentConfig.dynatemp_range !== undefined && currentConfig.dynatemp_range !== null) { + apiOptions.dynatemp_range = Number(currentConfig.dynatemp_range); + } + if (currentConfig.dynatemp_exponent !== undefined && currentConfig.dynatemp_exponent !== null) { + apiOptions.dynatemp_exponent = Number(currentConfig.dynatemp_exponent); + } + if (currentConfig.top_k !== undefined && currentConfig.top_k !== null) { + apiOptions.top_k = Number(currentConfig.top_k); + } + if (currentConfig.top_p !== undefined && currentConfig.top_p !== null) { + apiOptions.top_p = Number(currentConfig.top_p); + } + if (currentConfig.min_p !== undefined && currentConfig.min_p !== null) { + apiOptions.min_p = Number(currentConfig.min_p); + } + if (currentConfig.xtc_probability !== undefined && currentConfig.xtc_probability !== null) { + apiOptions.xtc_probability = Number(currentConfig.xtc_probability); + } + if (currentConfig.xtc_threshold !== undefined && currentConfig.xtc_threshold !== null) { + apiOptions.xtc_threshold = Number(currentConfig.xtc_threshold); + } + if (currentConfig.typ_p !== undefined && currentConfig.typ_p !== null) { + apiOptions.typ_p = Number(currentConfig.typ_p); + } + if (currentConfig.repeat_last_n !== undefined && currentConfig.repeat_last_n !== null) { + apiOptions.repeat_last_n = Number(currentConfig.repeat_last_n); + } + if (currentConfig.repeat_penalty !== undefined && currentConfig.repeat_penalty !== null) { + apiOptions.repeat_penalty = Number(currentConfig.repeat_penalty); + } + if (currentConfig.presence_penalty !== undefined && currentConfig.presence_penalty !== null) { + apiOptions.presence_penalty = Number(currentConfig.presence_penalty); + } + if (currentConfig.frequency_penalty !== undefined && currentConfig.frequency_penalty !== null) { + apiOptions.frequency_penalty = Number(currentConfig.frequency_penalty); + } + if (currentConfig.dry_multiplier !== undefined && currentConfig.dry_multiplier !== null) { + apiOptions.dry_multiplier = Number(currentConfig.dry_multiplier); + } + if (currentConfig.dry_base !== undefined && currentConfig.dry_base !== null) { + apiOptions.dry_base = Number(currentConfig.dry_base); + } + if ( + currentConfig.dry_allowed_length !== undefined && + currentConfig.dry_allowed_length !== null + ) { + apiOptions.dry_allowed_length = Number(currentConfig.dry_allowed_length); + } + if ( + currentConfig.dry_penalty_last_n !== undefined && + currentConfig.dry_penalty_last_n !== null + ) { + apiOptions.dry_penalty_last_n = Number(currentConfig.dry_penalty_last_n); + } + if (currentConfig.samplers) { + apiOptions.samplers = currentConfig.samplers; + } + if (currentConfig.custom) { + apiOptions.custom = currentConfig.custom; + } + + return apiOptions; + } + + /** + * Handles streaming chat completion with the AI model + * @param allMessages - All messages in the conversation + * @param assistantMessage - The assistant message to stream content into + * @param onComplete - Optional callback when streaming completes + * @param onError - Optional callback when an error occurs + */ + private async streamChatCompletion( + allMessages: DatabaseMessage[], + assistantMessage: DatabaseMessage, + onComplete?: (content: string) => Promise, + onError?: (error: Error) => void + ): Promise { + let streamedContent = ''; + + let streamedReasoningContent = ''; + + slotsService.startStreaming(); + + await chatService.sendMessage(allMessages, { + ...this.getApiOptions(), + + onChunk: (chunk: string) => { + streamedContent += chunk; + this.currentResponse = streamedContent; + + const partialThinking = extractPartialThinking(streamedContent); + const messageIndex = this.findMessageIndex(assistantMessage.id); + this.updateMessageAtIndex(messageIndex, { + content: partialThinking.remainingContent || streamedContent + }); + }, + + onReasoningChunk: (reasoningChunk: string) => { + streamedReasoningContent += reasoningChunk; + const messageIndex = this.findMessageIndex(assistantMessage.id); + this.updateMessageAtIndex(messageIndex, { thinking: streamedReasoningContent }); + }, + + onComplete: async ( + finalContent?: string, + reasoningContent?: string, + timings?: ChatMessageTimings + ) => { + slotsService.stopStreaming(); + + await DatabaseStore.updateMessage(assistantMessage.id, { + content: finalContent || streamedContent, + thinking: reasoningContent || streamedReasoningContent, + timings: timings + }); + + const messageIndex = this.findMessageIndex(assistantMessage.id); + + this.updateMessageAtIndex(messageIndex, { + timings: timings + }); + + await DatabaseStore.updateCurrentNode(this.activeConversation!.id, assistantMessage.id); + this.activeConversation!.currNode = assistantMessage.id; + + await this.refreshActiveMessages(); + + if (onComplete) { + await onComplete(streamedContent); + } + + this.isLoading = false; + this.currentResponse = ''; + }, + + onError: (error: Error) => { + slotsService.stopStreaming(); + + if (error.name === 'AbortError' || error instanceof DOMException) { + this.isLoading = false; + this.currentResponse = ''; + return; + } + + if (error.name === 'ContextError') { + console.warn('Context error detected:', error.message); + this.isLoading = false; + this.currentResponse = ''; + + const messageIndex = this.activeMessages.findIndex( + (m: DatabaseMessage) => m.id === assistantMessage.id + ); + + if (messageIndex !== -1) { + this.activeMessages.splice(messageIndex, 1); + DatabaseStore.deleteMessage(assistantMessage.id).catch(console.error); + } + + // Use structured context info from new exceed_context_size_error format if available + const contextInfo = ( + error as Error & { + contextInfo?: { promptTokens: number; maxContext: number; estimatedTokens: number }; + } + ).contextInfo; + let estimatedTokens = 0; + let maxContext = serverStore.serverProps?.default_generation_settings.n_ctx || 8192; + + if (contextInfo) { + // Use precise token counts from server response + estimatedTokens = contextInfo.promptTokens; + maxContext = contextInfo.maxContext; + } else { + // Fallback to estimation for older error format + try { + // Rough estimation: ~4 characters per token + const messageContent = JSON.stringify(messages); + estimatedTokens = Math.ceil(messageContent.length / 4); + } catch { + estimatedTokens = 0; + } + } + + this.maxContextError = { + message: error.message, + estimatedTokens, + maxContext + }; + + if (onError) { + onError(error); + } + return; + } + + console.error('Streaming error:', error); + this.isLoading = false; + this.currentResponse = ''; + + const messageIndex = this.activeMessages.findIndex( + (m: DatabaseMessage) => m.id === assistantMessage.id + ); + + if (messageIndex !== -1) { + this.activeMessages[messageIndex].content = `Error: ${error.message}`; + } + + if (onError) { + onError(error); + } + } + }); + } + + /** + * Checks if an error is an abort error (user cancelled operation) + * @param error - The error to check + * @returns True if the error is an abort error + */ + private isAbortError(error: unknown): boolean { + return error instanceof Error && (error.name === 'AbortError' || error instanceof DOMException); + } + + /** + * Finds the index of a message in the active messages array + * @param messageId - The message ID to find + * @returns The index of the message, or -1 if not found + */ + private findMessageIndex(messageId: string): number { + return this.activeMessages.findIndex((m) => m.id === messageId); + } + + /** + * Updates a message at a specific index with partial data + * @param index - The index of the message to update + * @param updates - Partial message data to update + */ + private updateMessageAtIndex(index: number, updates: Partial): void { + if (index !== -1) { + Object.assign(this.activeMessages[index], updates); + } + } + + /** + * Creates a new assistant message in the database + * @param parentId - Optional parent message ID, defaults to '-1' + * @returns The created assistant message or null if failed + */ + private async createAssistantMessage(parentId?: string): Promise { + if (!this.activeConversation) return null; + + return await DatabaseStore.createMessageBranch( + { + convId: this.activeConversation.id, + type: 'text', + role: 'assistant', + content: '', + timestamp: Date.now(), + thinking: '', + children: [] + }, + parentId || null + ); + } + + /** + * Updates conversation lastModified timestamp and moves it to top of list + * Ensures recently active conversations appear first in the sidebar + */ + private updateConversationTimestamp(): void { + if (!this.activeConversation) return; + + const chatIndex = this.conversations.findIndex((c) => c.id === this.activeConversation!.id); + + if (chatIndex !== -1) { + this.conversations[chatIndex].lastModified = Date.now(); + const updatedConv = this.conversations.splice(chatIndex, 1)[0]; + this.conversations.unshift(updatedConv); + } + } + + /** + * Sends a new message and generates AI response + * @param content - The message content to send + * @param extras - Optional extra data (files, attachments, etc.) + */ + async sendMessage(content: string, extras?: DatabaseMessageExtra[]): Promise { + if ((!content.trim() && (!extras || extras.length === 0)) || this.isLoading) return; + + let isNewConversation = false; + + if (!this.activeConversation) { + await this.createConversation(); + isNewConversation = true; + } + + if (!this.activeConversation) { + console.error('No active conversation available for sending message'); + return; + } + + this.isLoading = true; + this.currentResponse = ''; + + let userMessage: DatabaseMessage | null = null; + + try { + userMessage = await this.addMessage('user', content, 'text', '-1', extras); + + if (!userMessage) { + throw new Error('Failed to add user message'); + } + + // If this is a new conversation, update the title with the first user prompt + if (isNewConversation && content) { + const title = content.trim(); + await this.updateConversationName(this.activeConversation.id, title); + } + + const allMessages = await DatabaseStore.getConversationMessages(this.activeConversation.id); + const assistantMessage = await this.createAssistantMessage(userMessage.id); + + if (!assistantMessage) { + throw new Error('Failed to create assistant message'); + } + + this.activeMessages.push(assistantMessage); + // Don't update currNode until after streaming completes to maintain proper conversation path + + await this.streamChatCompletion(allMessages, assistantMessage, undefined, (error: Error) => { + if (error.name === 'ContextError' && userMessage) { + const userMessageIndex = this.findMessageIndex(userMessage.id); + if (userMessageIndex !== -1) { + this.activeMessages.splice(userMessageIndex, 1); + DatabaseStore.deleteMessage(userMessage.id).catch(console.error); + } + } + }); + } catch (error) { + if (this.isAbortError(error)) { + this.isLoading = false; + return; + } + + if (error instanceof Error && error.name === 'ContextError' && userMessage) { + const userMessageIndex = this.findMessageIndex(userMessage.id); + if (userMessageIndex !== -1) { + this.activeMessages.splice(userMessageIndex, 1); + DatabaseStore.deleteMessage(userMessage.id).catch(console.error); + } + } + + console.error('Failed to send message:', error); + this.isLoading = false; + } + } + + /** + * Stops the current message generation + * Aborts ongoing requests and saves partial response if available + */ + stopGeneration(): void { + slotsService.stopStreaming(); + chatService.abort(); + this.savePartialResponseIfNeeded(); + this.isLoading = false; + this.currentResponse = ''; + } + + /** + * Gracefully stops generation and saves partial response + */ + async gracefulStop(): Promise { + if (!this.isLoading) return; + + slotsService.stopStreaming(); + chatService.abort(); + await this.savePartialResponseIfNeeded(); + this.isLoading = false; + this.currentResponse = ''; + } + + /** + * Clears the max context error state + * Removes any displayed context limit warnings + */ + clearMaxContextError(): void { + this.maxContextError = null; + } + + /** + * Sets the max context error state + * @param error - The context error details or null to clear + */ + setMaxContextError( + error: { message: string; estimatedTokens: number; maxContext: number } | null + ): void { + this.maxContextError = error; + } + + /** + * Saves partial response if generation was interrupted + * Preserves user's partial content and timing data when generation is stopped early + */ + private async savePartialResponseIfNeeded(): Promise { + if (!this.currentResponse.trim() || !this.activeMessages.length) { + return; + } + + const lastMessage = this.activeMessages[this.activeMessages.length - 1]; + + if (lastMessage && lastMessage.role === 'assistant') { + try { + const partialThinking = extractPartialThinking(this.currentResponse); + + const updateData: { + content: string; + thinking?: string; + timings?: ChatMessageTimings; + } = { + content: partialThinking.remainingContent || this.currentResponse + }; + + if (partialThinking.thinking) { + updateData.thinking = partialThinking.thinking; + } + + const lastKnownState = await slotsService.getCurrentState(); + + if (lastKnownState) { + updateData.timings = { + prompt_n: lastKnownState.promptTokens || 0, + predicted_n: lastKnownState.tokensDecoded || 0, + cache_n: lastKnownState.cacheTokens || 0, + // We don't have ms data from the state, but we can estimate + predicted_ms: + lastKnownState.tokensPerSecond && lastKnownState.tokensDecoded + ? (lastKnownState.tokensDecoded / lastKnownState.tokensPerSecond) * 1000 + : undefined + }; + } + + await DatabaseStore.updateMessage(lastMessage.id, updateData); + + lastMessage.content = partialThinking.remainingContent || this.currentResponse; + if (updateData.timings) { + lastMessage.timings = updateData.timings; + } + } catch (error) { + lastMessage.content = this.currentResponse; + console.error('Failed to save partial response:', error); + } + } else { + console.error('Last message is not an assistant message'); + } + } + + /** + * Updates a user message and regenerates the assistant response + * @param messageId - The ID of the message to update + * @param newContent - The new content for the message + */ + async updateMessage(messageId: string, newContent: string): Promise { + if (!this.activeConversation) return; + + if (this.isLoading) { + this.stopGeneration(); + } + + try { + const messageIndex = this.findMessageIndex(messageId); + if (messageIndex === -1) { + console.error('Message not found for update'); + return; + } + + const messageToUpdate = this.activeMessages[messageIndex]; + const originalContent = messageToUpdate.content; + + if (messageToUpdate.role !== 'user') { + console.error('Only user messages can be edited'); + return; + } + + const allMessages = await DatabaseStore.getConversationMessages(this.activeConversation.id); + const rootMessage = allMessages.find((m) => m.type === 'root' && m.parent === null); + const isFirstUserMessage = + rootMessage && messageToUpdate.parent === rootMessage.id && messageToUpdate.role === 'user'; + + this.updateMessageAtIndex(messageIndex, { content: newContent }); + await DatabaseStore.updateMessage(messageId, { content: newContent }); + + // If this is the first user message, update the conversation title with confirmation if needed + if (isFirstUserMessage && newContent.trim()) { + await this.updateConversationTitleWithConfirmation( + this.activeConversation.id, + newContent.trim(), + this.titleUpdateConfirmationCallback + ); + } + + const messagesToRemove = this.activeMessages.slice(messageIndex + 1); + for (const message of messagesToRemove) { + await DatabaseStore.deleteMessage(message.id); + } + + this.activeMessages = this.activeMessages.slice(0, messageIndex + 1); + this.updateConversationTimestamp(); + + this.isLoading = true; + this.currentResponse = ''; + + try { + const assistantMessage = await this.createAssistantMessage(); + if (!assistantMessage) { + throw new Error('Failed to create assistant message'); + } + + this.activeMessages.push(assistantMessage); + await DatabaseStore.updateCurrentNode(this.activeConversation.id, assistantMessage.id); + this.activeConversation.currNode = assistantMessage.id; + + await this.streamChatCompletion( + this.activeMessages.slice(0, -1), + assistantMessage, + undefined, + () => { + const editedMessageIndex = this.findMessageIndex(messageId); + this.updateMessageAtIndex(editedMessageIndex, { content: originalContent }); + } + ); + } catch (regenerateError) { + console.error('Failed to regenerate response:', regenerateError); + this.isLoading = false; + + const messageIndex = this.findMessageIndex(messageId); + this.updateMessageAtIndex(messageIndex, { content: originalContent }); + } + } catch (error) { + if (this.isAbortError(error)) { + return; + } + + console.error('Failed to update message:', error); + } + } + + /** + * Regenerates an assistant message with a new response + * @param messageId - The ID of the assistant message to regenerate + */ + async regenerateMessage(messageId: string): Promise { + if (!this.activeConversation || this.isLoading) return; + + try { + const messageIndex = this.findMessageIndex(messageId); + if (messageIndex === -1) { + console.error('Message not found for regeneration'); + return; + } + + const messageToRegenerate = this.activeMessages[messageIndex]; + if (messageToRegenerate.role !== 'assistant') { + console.error('Only assistant messages can be regenerated'); + return; + } + + const messagesToRemove = this.activeMessages.slice(messageIndex); + for (const message of messagesToRemove) { + await DatabaseStore.deleteMessage(message.id); + } + + this.activeMessages = this.activeMessages.slice(0, messageIndex); + this.updateConversationTimestamp(); + + this.isLoading = true; + this.currentResponse = ''; + + try { + const allMessages = await DatabaseStore.getConversationMessages(this.activeConversation.id); + const assistantMessage = await this.createAssistantMessage(); + + if (!assistantMessage) { + throw new Error('Failed to create assistant message'); + } + + this.activeMessages.push(assistantMessage); + await DatabaseStore.updateCurrentNode(this.activeConversation.id, assistantMessage.id); + this.activeConversation.currNode = assistantMessage.id; + + await this.streamChatCompletion(allMessages, assistantMessage); + } catch (regenerateError) { + console.error('Failed to regenerate response:', regenerateError); + this.isLoading = false; + } + } catch (error) { + if (this.isAbortError(error)) return; + console.error('Failed to regenerate message:', error); + } + } + + /** + * Updates the name of a conversation + * @param convId - The conversation ID to update + * @param name - The new name for the conversation + */ + async updateConversationName(convId: string, name: string): Promise { + try { + await DatabaseStore.updateConversation(convId, { name }); + + const convIndex = this.conversations.findIndex((c) => c.id === convId); + + if (convIndex !== -1) { + this.conversations[convIndex].name = name; + } + + if (this.activeConversation?.id === convId) { + this.activeConversation.name = name; + } + } catch (error) { + console.error('Failed to update conversation name:', error); + } + } + + /** + * Sets the callback function for title update confirmations + * @param callback - Function to call when confirmation is needed + */ + setTitleUpdateConfirmationCallback( + callback: (currentTitle: string, newTitle: string) => Promise + ): void { + this.titleUpdateConfirmationCallback = callback; + } + + /** + * Updates conversation title with optional confirmation dialog based on settings + * @param convId - The conversation ID to update + * @param newTitle - The new title content + * @param onConfirmationNeeded - Callback when user confirmation is needed + * @returns Promise - True if title was updated, false if cancelled + */ + async updateConversationTitleWithConfirmation( + convId: string, + newTitle: string, + onConfirmationNeeded?: (currentTitle: string, newTitle: string) => Promise + ): Promise { + try { + const currentConfig = config(); + + // Only ask for confirmation if the setting is enabled and callback is provided + if (currentConfig.askForTitleConfirmation && onConfirmationNeeded) { + const conversation = await DatabaseStore.getConversation(convId); + if (!conversation) return false; + + const shouldUpdate = await onConfirmationNeeded(conversation.name, newTitle); + if (!shouldUpdate) return false; + } + + await this.updateConversationName(convId, newTitle); + return true; + } catch (error) { + console.error('Failed to update conversation title with confirmation:', error); + return false; + } + } + + /** + * Deletes a conversation and all its messages + * @param convId - The conversation ID to delete + */ + async deleteConversation(convId: string): Promise { + try { + await DatabaseStore.deleteConversation(convId); + + this.conversations = this.conversations.filter((c) => c.id !== convId); + + if (this.activeConversation?.id === convId) { + this.activeConversation = null; + this.activeMessages = []; + await goto('/?new_chat=true'); + } + } catch (error) { + console.error('Failed to delete conversation:', error); + } + } + + /** + * Gets information about what messages will be deleted when deleting a specific message + * @param messageId - The ID of the message to be deleted + * @returns Object with deletion info including count and types of messages + */ + async getDeletionInfo(messageId: string): Promise<{ + totalCount: number; + userMessages: number; + assistantMessages: number; + messageTypes: string[]; + }> { + if (!this.activeConversation) { + return { totalCount: 0, userMessages: 0, assistantMessages: 0, messageTypes: [] }; + } + + const allMessages = await DatabaseStore.getConversationMessages(this.activeConversation.id); + const descendants = findDescendantMessages(allMessages, messageId); + const allToDelete = [messageId, ...descendants]; + + const messagesToDelete = allMessages.filter((m) => allToDelete.includes(m.id)); + + let userMessages = 0; + let assistantMessages = 0; + const messageTypes: string[] = []; + + for (const msg of messagesToDelete) { + if (msg.role === 'user') { + userMessages++; + if (!messageTypes.includes('user message')) messageTypes.push('user message'); + } else if (msg.role === 'assistant') { + assistantMessages++; + if (!messageTypes.includes('assistant response')) messageTypes.push('assistant response'); + } + } + + return { + totalCount: allToDelete.length, + userMessages, + assistantMessages, + messageTypes + }; + } + + /** + * Deletes a message and all its descendants, updating conversation path if needed + * @param messageId - The ID of the message to delete + */ + async deleteMessage(messageId: string): Promise { + try { + if (!this.activeConversation) return; + + // Get all messages to find siblings before deletion + const allMessages = await DatabaseStore.getConversationMessages(this.activeConversation.id); + const messageToDelete = allMessages.find((m) => m.id === messageId); + + if (!messageToDelete) { + console.error('Message to delete not found'); + return; + } + + // Check if the deleted message is in the current conversation path + const currentPath = filterByLeafNodeId( + allMessages, + this.activeConversation.currNode || '', + false + ); + const isInCurrentPath = currentPath.some((m) => m.id === messageId); + + // If the deleted message is in the current path, we need to update currNode + if (isInCurrentPath && messageToDelete.parent) { + // Find all siblings (messages with same parent) + const siblings = allMessages.filter( + (m) => m.parent === messageToDelete.parent && m.id !== messageId + ); + + if (siblings.length > 0) { + // Find the latest sibling (highest timestamp) + const latestSibling = siblings.reduce((latest, sibling) => + sibling.timestamp > latest.timestamp ? sibling : latest + ); + + // Find the leaf node for this sibling branch to get the complete conversation path + const leafNodeId = findLeafNode(allMessages, latestSibling.id); + + // Update conversation to use the leaf node of the latest remaining sibling + await DatabaseStore.updateCurrentNode(this.activeConversation.id, leafNodeId); + this.activeConversation.currNode = leafNodeId; + } else { + // No siblings left, navigate to parent if it exists + if (messageToDelete.parent) { + const parentLeafId = findLeafNode(allMessages, messageToDelete.parent); + await DatabaseStore.updateCurrentNode(this.activeConversation.id, parentLeafId); + this.activeConversation.currNode = parentLeafId; + } + } + } + + // Use cascading deletion to remove the message and all its descendants + await DatabaseStore.deleteMessageCascading(this.activeConversation.id, messageId); + + // Refresh active messages to show the updated branch + await this.refreshActiveMessages(); + + // Update conversation timestamp + this.updateConversationTimestamp(); + } catch (error) { + console.error('Failed to delete message:', error); + } + } + + /** + * Clears the active conversation and resets state + * Used when navigating away from chat or starting fresh + */ + clearActiveConversation(): void { + this.activeConversation = null; + this.activeMessages = []; + this.currentResponse = ''; + this.isLoading = false; + this.maxContextError = null; + } + + /** Refreshes active messages based on currNode after branch navigation */ + async refreshActiveMessages(): Promise { + if (!this.activeConversation) return; + + const allMessages = await DatabaseStore.getConversationMessages(this.activeConversation.id); + if (allMessages.length === 0) { + this.activeMessages = []; + return; + } + + const leafNodeId = + this.activeConversation.currNode || + allMessages.reduce((latest, msg) => (msg.timestamp > latest.timestamp ? msg : latest)).id; + + const currentPath = filterByLeafNodeId(allMessages, leafNodeId, false) as DatabaseMessage[]; + + this.activeMessages.length = 0; + this.activeMessages.push(...currentPath); + } + + /** + * Navigates to a specific sibling branch by updating currNode and refreshing messages + * @param siblingId - The sibling message ID to navigate to + */ + async navigateToSibling(siblingId: string): Promise { + if (!this.activeConversation) return; + + // Get the current first user message before navigation + const allMessages = await DatabaseStore.getConversationMessages(this.activeConversation.id); + const rootMessage = allMessages.find((m) => m.type === 'root' && m.parent === null); + const currentFirstUserMessage = this.activeMessages.find( + (m) => m.role === 'user' && m.parent === rootMessage?.id + ); + + await DatabaseStore.updateCurrentNode(this.activeConversation.id, siblingId); + this.activeConversation.currNode = siblingId; + await this.refreshActiveMessages(); + + // Only show title dialog if we're navigating between different first user message siblings + if (rootMessage && this.activeMessages.length > 0) { + // Find the first user message in the new active path + const newFirstUserMessage = this.activeMessages.find( + (m) => m.role === 'user' && m.parent === rootMessage.id + ); + + // Only show dialog if: + // 1. We have a new first user message + // 2. It's different from the previous one (different ID or content) + // 3. The new message has content + if ( + newFirstUserMessage && + newFirstUserMessage.content.trim() && + (!currentFirstUserMessage || + newFirstUserMessage.id !== currentFirstUserMessage.id || + newFirstUserMessage.content.trim() !== currentFirstUserMessage.content.trim()) + ) { + await this.updateConversationTitleWithConfirmation( + this.activeConversation.id, + newFirstUserMessage.content.trim(), + this.titleUpdateConfirmationCallback + ); + } + } + } + + /** + * Edits an assistant message with optional branching + * @param messageId - The ID of the assistant message to edit + * @param newContent - The new content for the message + * @param shouldBranch - Whether to create a branch or replace in-place + */ + async editAssistantMessage( + messageId: string, + newContent: string, + shouldBranch: boolean + ): Promise { + if (!this.activeConversation || this.isLoading) return; + + try { + const messageIndex = this.findMessageIndex(messageId); + + if (messageIndex === -1) { + console.error('Message not found for editing'); + return; + } + + const messageToEdit = this.activeMessages[messageIndex]; + + if (messageToEdit.role !== 'assistant') { + console.error('Only assistant messages can be edited with this method'); + return; + } + + if (shouldBranch) { + const newMessage = await DatabaseStore.createMessageBranch( + { + convId: messageToEdit.convId, + type: messageToEdit.type, + timestamp: Date.now(), + role: messageToEdit.role, + content: newContent, + thinking: messageToEdit.thinking || '', + children: [] + }, + messageToEdit.parent! + ); + + await DatabaseStore.updateCurrentNode(this.activeConversation.id, newMessage.id); + this.activeConversation.currNode = newMessage.id; + } else { + await DatabaseStore.updateMessage(messageToEdit.id, { + content: newContent, + timestamp: Date.now() + }); + + this.updateMessageAtIndex(messageIndex, { + content: newContent, + timestamp: Date.now() + }); + } + + this.updateConversationTimestamp(); + await this.refreshActiveMessages(); + } catch (error) { + console.error('Failed to edit assistant message:', error); + } + } + + /** + * Edits a message by creating a new branch with the edited content + * @param messageId - The ID of the message to edit + * @param newContent - The new content for the message + */ + async editMessageWithBranching(messageId: string, newContent: string): Promise { + if (!this.activeConversation || this.isLoading) return; + + try { + const messageIndex = this.findMessageIndex(messageId); + if (messageIndex === -1) { + console.error('Message not found for editing'); + return; + } + + const messageToEdit = this.activeMessages[messageIndex]; + if (messageToEdit.role !== 'user') { + console.error('Only user messages can be edited'); + return; + } + + // Check if this is the first user message in the conversation + // First user message is one that has the root message as its parent + const allMessages = await DatabaseStore.getConversationMessages(this.activeConversation.id); + const rootMessage = allMessages.find((m) => m.type === 'root' && m.parent === null); + const isFirstUserMessage = + rootMessage && messageToEdit.parent === rootMessage.id && messageToEdit.role === 'user'; + + let parentId = messageToEdit.parent; + + if (parentId === undefined || parentId === null) { + const rootMessage = allMessages.find((m) => m.type === 'root' && m.parent === null); + if (rootMessage) { + parentId = rootMessage.id; + } else { + console.error('No root message found for editing'); + return; + } + } + + const newMessage = await DatabaseStore.createMessageBranch( + { + convId: messageToEdit.convId, + type: messageToEdit.type, + timestamp: Date.now(), + role: messageToEdit.role, + content: newContent, + thinking: messageToEdit.thinking || '', + children: [], + extra: messageToEdit.extra ? JSON.parse(JSON.stringify(messageToEdit.extra)) : undefined + }, + parentId + ); + + await DatabaseStore.updateCurrentNode(this.activeConversation.id, newMessage.id); + this.activeConversation.currNode = newMessage.id; + this.updateConversationTimestamp(); + + // If this is the first user message, update the conversation title with confirmation if needed + if (isFirstUserMessage && newContent.trim()) { + await this.updateConversationTitleWithConfirmation( + this.activeConversation.id, + newContent.trim(), + this.titleUpdateConfirmationCallback + ); + } + + await this.refreshActiveMessages(); + + if (messageToEdit.role === 'user') { + await this.generateResponseForMessage(newMessage.id); + } + } catch (error) { + console.error('Failed to edit message with branching:', error); + } + } + + /** + * Regenerates an assistant message by creating a new branch with a new response + * @param messageId - The ID of the assistant message to regenerate + */ + async regenerateMessageWithBranching(messageId: string): Promise { + if (!this.activeConversation || this.isLoading) return; + + try { + const messageIndex = this.findMessageIndex(messageId); + if (messageIndex === -1) { + console.error('Message not found for regeneration'); + return; + } + + const messageToRegenerate = this.activeMessages[messageIndex]; + if (messageToRegenerate.role !== 'assistant') { + console.error('Only assistant messages can be regenerated'); + return; + } + + // Find parent message in all conversation messages, not just active path + const conversationMessages = await DatabaseStore.getConversationMessages( + this.activeConversation.id + ); + const parentMessage = conversationMessages.find((m) => m.id === messageToRegenerate.parent); + if (!parentMessage) { + console.error('Parent message not found for regeneration'); + return; + } + + this.isLoading = true; + this.currentResponse = ''; + + const newAssistantMessage = await DatabaseStore.createMessageBranch( + { + convId: this.activeConversation.id, + type: 'text', + timestamp: Date.now(), + role: 'assistant', + content: '', + thinking: '', + children: [] + }, + parentMessage.id + ); + + await DatabaseStore.updateCurrentNode(this.activeConversation.id, newAssistantMessage.id); + this.activeConversation.currNode = newAssistantMessage.id; + this.updateConversationTimestamp(); + await this.refreshActiveMessages(); + + const allConversationMessages = await DatabaseStore.getConversationMessages( + this.activeConversation.id + ); + const conversationPath = filterByLeafNodeId( + allConversationMessages, + parentMessage.id, + false + ) as DatabaseMessage[]; + + await this.streamChatCompletion(conversationPath, newAssistantMessage); + } catch (error) { + if (this.isAbortError(error)) return; + + console.error('Failed to regenerate message with branching:', error); + this.isLoading = false; + } + } + + /** + * Generates a new assistant response for a given user message + * @param userMessageId - ID of user message to respond to + */ + private async generateResponseForMessage(userMessageId: string): Promise { + if (!this.activeConversation) return; + + this.isLoading = true; + this.currentResponse = ''; + + try { + // Get conversation path up to the user message + const allMessages = await DatabaseStore.getConversationMessages(this.activeConversation.id); + const conversationPath = filterByLeafNodeId( + allMessages, + userMessageId, + false + ) as DatabaseMessage[]; + + // Create new assistant message branch + const assistantMessage = await DatabaseStore.createMessageBranch( + { + convId: this.activeConversation.id, + type: 'text', + timestamp: Date.now(), + role: 'assistant', + content: '', + thinking: '', + children: [] + }, + userMessageId + ); + + // Add assistant message to active messages immediately for UI reactivity + this.activeMessages.push(assistantMessage); + + // Stream response to new assistant message + await this.streamChatCompletion(conversationPath, assistantMessage); + } catch (error) { + console.error('Failed to generate response:', error); + this.isLoading = false; + } + } +} + +export const chatStore = new ChatStore(); + +export const conversations = () => chatStore.conversations; +export const activeConversation = () => chatStore.activeConversation; +export const activeMessages = () => chatStore.activeMessages; +export const isLoading = () => chatStore.isLoading; +export const currentResponse = () => chatStore.currentResponse; +export const isInitialized = () => chatStore.isInitialized; +export const maxContextError = () => chatStore.maxContextError; + +export const createConversation = chatStore.createConversation.bind(chatStore); +export const deleteConversation = chatStore.deleteConversation.bind(chatStore); +export const sendMessage = chatStore.sendMessage.bind(chatStore); +export const gracefulStop = chatStore.gracefulStop.bind(chatStore); +export const clearMaxContextError = chatStore.clearMaxContextError.bind(chatStore); +export const setMaxContextError = chatStore.setMaxContextError.bind(chatStore); + +// Branching operations +export const refreshActiveMessages = chatStore.refreshActiveMessages.bind(chatStore); +export const navigateToSibling = chatStore.navigateToSibling.bind(chatStore); +export const editAssistantMessage = chatStore.editAssistantMessage.bind(chatStore); +export const editMessageWithBranching = chatStore.editMessageWithBranching.bind(chatStore); +export const regenerateMessageWithBranching = + chatStore.regenerateMessageWithBranching.bind(chatStore); +export const deleteMessage = chatStore.deleteMessage.bind(chatStore); +export const getDeletionInfo = chatStore.getDeletionInfo.bind(chatStore); +export const updateConversationName = chatStore.updateConversationName.bind(chatStore); +export const setTitleUpdateConfirmationCallback = + chatStore.setTitleUpdateConfirmationCallback.bind(chatStore); + +export function stopGeneration() { + chatStore.stopGeneration(); +} +export const messages = () => chatStore.activeMessages; diff --git a/tools/server/webui/src/lib/stores/database.ts b/tools/server/webui/src/lib/stores/database.ts new file mode 100644 index 0000000000..f2e3a677a4 --- /dev/null +++ b/tools/server/webui/src/lib/stores/database.ts @@ -0,0 +1,349 @@ +import Dexie, { type EntityTable } from 'dexie'; +import { filterByLeafNodeId, findDescendantMessages } from '$lib/utils/branching'; + +class LlamacppDatabase extends Dexie { + conversations!: EntityTable; + messages!: EntityTable; + + constructor() { + super('LlamacppWebui'); + + this.version(1).stores({ + conversations: 'id, lastModified, currNode, name', + messages: 'id, convId, type, role, timestamp, parent, children' + }); + } +} + +const db = new LlamacppDatabase(); + +/** + * DatabaseStore - Persistent data layer for conversation and message management + * + * This service provides a comprehensive data access layer built on IndexedDB using Dexie. + * It handles all persistent storage operations for conversations, messages, and application settings + * with support for complex conversation branching and message threading. + * + * **Architecture & Relationships:** + * - **DatabaseStore** (this class): Stateless data persistence layer + * - Manages IndexedDB operations through Dexie ORM + * - Handles conversation and message CRUD operations + * - Supports complex branching with parent-child relationships + * - Provides transaction safety for multi-table operations + * + * - **ChatStore**: Primary consumer for conversation state management + * - Uses DatabaseStore for all persistence operations + * - Coordinates UI state with database state + * - Handles conversation lifecycle and message branching + * + * **Key Features:** + * - **Conversation Management**: Create, read, update, delete conversations + * - **Message Branching**: Support for tree-like conversation structures + * - **Transaction Safety**: Atomic operations for data consistency + * - **Path Resolution**: Navigate conversation branches and find leaf nodes + * - **Cascading Deletion**: Remove entire conversation branches + * + * **Database Schema:** + * - `conversations`: Conversation metadata with current node tracking + * - `messages`: Individual messages with parent-child relationships + * + * **Branching Model:** + * Messages form a tree structure where each message can have multiple children, + * enabling conversation branching and alternative response paths. The conversation's + * `currNode` tracks the currently active branch endpoint. + */ +import { v4 as uuid } from 'uuid'; + +export class DatabaseStore { + /** + * Adds a new message to the database. + * + * @param message - Message to add (without id) + * @returns The created message + */ + static async addMessage(message: Omit): Promise { + const newMessage: DatabaseMessage = { + ...message, + id: uuid() + }; + + await db.messages.add(newMessage); + return newMessage; + } + + /** + * Creates a new conversation. + * + * @param name - Name of the conversation + * @returns The created conversation + */ + static async createConversation(name: string): Promise { + const conversation: DatabaseConversation = { + id: uuid(), + name, + lastModified: Date.now(), + currNode: '' + }; + + await db.conversations.add(conversation); + return conversation; + } + + /** + * Creates a new message branch by adding a message and updating parent/child relationships. + * Also updates the conversation's currNode to point to the new message. + * + * @param message - Message to add (without id) + * @param parentId - Parent message ID to attach to + * @returns The created message + */ + static async createMessageBranch( + message: Omit, + parentId: string | null + ): Promise { + return await db.transaction('rw', [db.conversations, db.messages], async () => { + // Handle null parent (root message case) + if (parentId !== null) { + const parentMessage = await db.messages.get(parentId); + if (!parentMessage) { + throw new Error(`Parent message ${parentId} not found`); + } + } + + const newMessage: DatabaseMessage = { + ...message, + id: uuid(), + parent: parentId, + children: [] + }; + + await db.messages.add(newMessage); + + // Update parent's children array if parent exists + if (parentId !== null) { + const parentMessage = await db.messages.get(parentId); + if (parentMessage) { + await db.messages.update(parentId, { + children: [...parentMessage.children, newMessage.id] + }); + } + } + + await this.updateConversation(message.convId, { + currNode: newMessage.id + }); + + return newMessage; + }); + } + + /** + * Creates a root message for a new conversation. + * Root messages are not displayed but serve as the tree root for branching. + * + * @param convId - Conversation ID + * @returns The created root message + */ + static async createRootMessage(convId: string): Promise { + const rootMessage: DatabaseMessage = { + id: uuid(), + convId, + type: 'root', + timestamp: Date.now(), + role: 'system', + content: '', + parent: null, + thinking: '', + children: [] + }; + + await db.messages.add(rootMessage); + return rootMessage.id; + } + + /** + * Deletes a conversation and all its messages. + * + * @param id - Conversation ID + */ + static async deleteConversation(id: string): Promise { + await db.transaction('rw', [db.conversations, db.messages], async () => { + await db.conversations.delete(id); + await db.messages.where('convId').equals(id).delete(); + }); + } + + /** + * Deletes a message and removes it from its parent's children array. + * + * @param messageId - ID of the message to delete + */ + static async deleteMessage(messageId: string): Promise { + await db.transaction('rw', db.messages, async () => { + const message = await db.messages.get(messageId); + if (!message) return; + + // Remove this message from its parent's children array + if (message.parent) { + const parent = await db.messages.get(message.parent); + if (parent) { + parent.children = parent.children.filter((childId: string) => childId !== messageId); + await db.messages.put(parent); + } + } + + // Delete the message + await db.messages.delete(messageId); + }); + } + + /** + * Deletes a message and all its descendant messages (cascading deletion). + * This removes the entire branch starting from the specified message. + * + * @param conversationId - ID of the conversation containing the message + * @param messageId - ID of the root message to delete (along with all descendants) + * @returns Array of all deleted message IDs + */ + static async deleteMessageCascading( + conversationId: string, + messageId: string + ): Promise { + return await db.transaction('rw', db.messages, async () => { + // Get all messages in the conversation to find descendants + const allMessages = await db.messages.where('convId').equals(conversationId).toArray(); + + // Find all descendant messages + const descendants = findDescendantMessages(allMessages, messageId); + const allToDelete = [messageId, ...descendants]; + + // Get the message to delete for parent cleanup + const message = await db.messages.get(messageId); + if (message && message.parent) { + const parent = await db.messages.get(message.parent); + if (parent) { + parent.children = parent.children.filter((childId: string) => childId !== messageId); + await db.messages.put(parent); + } + } + + // Delete all messages in the branch + await db.messages.bulkDelete(allToDelete); + + return allToDelete; + }); + } + + /** + * Gets all conversations, sorted by last modified time (newest first). + * + * @returns Array of conversations + */ + static async getAllConversations(): Promise { + return await db.conversations.orderBy('lastModified').reverse().toArray(); + } + + /** + * Gets a conversation by ID. + * + * @param id - Conversation ID + * @returns The conversation if found, otherwise undefined + */ + static async getConversation(id: string): Promise { + return await db.conversations.get(id); + } + + /** + * Gets all leaf nodes (messages with no children) in a conversation. + * Useful for finding all possible conversation endpoints. + * + * @param convId - Conversation ID + * @returns Array of leaf node message IDs + */ + static async getConversationLeafNodes(convId: string): Promise { + const allMessages = await this.getConversationMessages(convId); + return allMessages.filter((msg) => msg.children.length === 0).map((msg) => msg.id); + } + + /** + * Gets all messages in a conversation, sorted by timestamp (oldest first). + * + * @param convId - Conversation ID + * @returns Array of messages in the conversation + */ + static async getConversationMessages(convId: string): Promise { + return await db.messages.where('convId').equals(convId).sortBy('timestamp'); + } + + /** + * Gets the conversation path from root to the current leaf node. + * Uses the conversation's currNode to determine the active branch. + * + * @param convId - Conversation ID + * @returns Array of messages in the current conversation path + */ + static async getConversationPath(convId: string): Promise { + const conversation = await this.getConversation(convId); + + if (!conversation) { + return []; + } + + const allMessages = await this.getConversationMessages(convId); + + if (allMessages.length === 0) { + return []; + } + + // If no currNode is set, use the latest message as leaf + const leafNodeId = + conversation.currNode || + allMessages.reduce((latest, msg) => (msg.timestamp > latest.timestamp ? msg : latest)).id; + + return filterByLeafNodeId(allMessages, leafNodeId, false) as DatabaseMessage[]; + } + + /** + * Updates a conversation. + * + * @param id - Conversation ID + * @param updates - Partial updates to apply + * @returns Promise that resolves when the conversation is updated + */ + static async updateConversation( + id: string, + updates: Partial> + ): Promise { + await db.conversations.update(id, { + ...updates, + lastModified: Date.now() + }); + } + + /** + * Updates the conversation's current node (active branch). + * This determines which conversation path is currently being viewed. + * + * @param convId - Conversation ID + * @param nodeId - Message ID to set as current node + */ + static async updateCurrentNode(convId: string, nodeId: string): Promise { + await this.updateConversation(convId, { + currNode: nodeId + }); + } + + /** + * Updates a message. + * + * @param id - Message ID + * @param updates - Partial updates to apply + * @returns Promise that resolves when the message is updated + */ + static async updateMessage( + id: string, + updates: Partial> + ): Promise { + await db.messages.update(id, updates); + } +} diff --git a/tools/server/webui/src/lib/stores/server.svelte.ts b/tools/server/webui/src/lib/stores/server.svelte.ts new file mode 100644 index 0000000000..7abaa2bdf5 --- /dev/null +++ b/tools/server/webui/src/lib/stores/server.svelte.ts @@ -0,0 +1,184 @@ +import { ChatService } from '$lib/services/chat'; +import { config } from '$lib/stores/settings.svelte'; + +/** + * ServerStore - Server state management and capability detection + * + * This store manages communication with the llama.cpp server to retrieve and maintain + * server properties, model information, and capability detection. It provides reactive + * state for server connectivity, model capabilities, and endpoint availability. + * + * **Architecture & Relationships:** + * - **ServerStore** (this class): Server state and capability management + * - Fetches and caches server properties from `/props` endpoint + * - Detects model capabilities (vision, audio support) + * - Tests endpoint availability (slots endpoint) + * - Provides reactive server state for UI components + * + * - **ChatService**: Uses server properties for request validation + * - **SlotsService**: Depends on slots endpoint availability detection + * - **UI Components**: Subscribe to server state for capability-based rendering + * + * **Key Features:** + * - **Server Properties**: Model path, context size, build information + * - **Capability Detection**: Vision and audio modality support + * - **Endpoint Testing**: Slots endpoint availability checking + * - **Error Handling**: User-friendly error messages for connection issues + * - **Reactive State**: Svelte 5 runes for automatic UI updates + * - **State Management**: Loading states and error recovery + * + * **Server Capabilities Detected:** + * - Model name extraction from file path + * - Vision support (multimodal image processing) + * - Audio support (speech processing) + * - Slots endpoint availability (for processing state monitoring) + * - Context window size and token limits + */ +class ServerStore { + private _serverProps = $state(null); + private _loading = $state(false); + private _error = $state(null); + private _slotsEndpointAvailable = $state(null); + + get serverProps(): ApiLlamaCppServerProps | null { + return this._serverProps; + } + + get loading(): boolean { + return this._loading; + } + + get error(): string | null { + return this._error; + } + + get modelName(): string | null { + if (!this._serverProps?.model_path) return null; + return this._serverProps.model_path.split(/(\\|\/)/).pop() || null; + } + + get supportedModalities(): string[] { + const modalities: string[] = []; + if (this._serverProps?.modalities?.audio) { + modalities.push('audio'); + } + if (this._serverProps?.modalities?.vision) { + modalities.push('vision'); + } + return modalities; + } + + get supportsVision(): boolean { + return this._serverProps?.modalities?.vision ?? false; + } + + get supportsAudio(): boolean { + return this._serverProps?.modalities?.audio ?? false; + } + + get slotsEndpointAvailable(): boolean | null { + return this._slotsEndpointAvailable; + } + + /** + * Check if slots endpoint is available based on server properties and endpoint support + */ + private async checkSlotsEndpointAvailability(): Promise { + if (!this._serverProps) { + this._slotsEndpointAvailable = false; + return; + } + + if (this._serverProps.total_slots <= 0) { + this._slotsEndpointAvailable = false; + return; + } + + try { + const currentConfig = config(); + const apiKey = currentConfig.apiKey?.toString().trim(); + + const response = await fetch('/slots', { + headers: { + ...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}) + } + }); + + if (response.status === 501) { + console.info('Slots endpoint not implemented - server started without --slots flag'); + this._slotsEndpointAvailable = false; + return; + } + + this._slotsEndpointAvailable = true; + } catch (error) { + console.warn('Unable to test slots endpoint availability:', error); + this._slotsEndpointAvailable = false; + } + } + + /** + * Fetches server properties from the server + */ + async fetchServerProps(): Promise { + this._loading = true; + this._error = null; + + try { + console.log('Fetching server properties...'); + const props = await ChatService.getServerProps(); + this._serverProps = props; + console.log('Server properties loaded:', props); + + // Check slots endpoint availability after server props are loaded + await this.checkSlotsEndpointAvailability(); + } catch (error) { + let errorMessage = 'Failed to connect to server'; + + if (error instanceof Error) { + // Handle specific error types with user-friendly messages + if (error.name === 'TypeError' && error.message.includes('fetch')) { + errorMessage = 'Server is not running or unreachable'; + } else if (error.message.includes('ECONNREFUSED')) { + errorMessage = 'Connection refused - server may be offline'; + } else if (error.message.includes('ENOTFOUND')) { + errorMessage = 'Server not found - check server address'; + } else if (error.message.includes('ETIMEDOUT')) { + errorMessage = 'Connection timeout - server may be overloaded'; + } else if (error.message.includes('500')) { + errorMessage = 'Server error - check server logs'; + } else if (error.message.includes('404')) { + errorMessage = 'Server endpoint not found'; + } else if (error.message.includes('403') || error.message.includes('401')) { + errorMessage = 'Access denied'; + } + } + + this._error = errorMessage; + console.error('Error fetching server properties:', error); + } finally { + this._loading = false; + } + } + + /** + * Clears the server state + */ + clear(): void { + this._serverProps = null; + this._error = null; + this._loading = false; + this._slotsEndpointAvailable = null; + } +} + +export const serverStore = new ServerStore(); + +export const serverProps = () => serverStore.serverProps; +export const serverLoading = () => serverStore.loading; +export const serverError = () => serverStore.error; +export const modelName = () => serverStore.modelName; +export const supportedModalities = () => serverStore.supportedModalities; +export const supportsVision = () => serverStore.supportsVision; +export const supportsAudio = () => serverStore.supportsAudio; +export const slotsEndpointAvailable = () => serverStore.slotsEndpointAvailable; diff --git a/tools/server/webui/src/lib/stores/settings.svelte.ts b/tools/server/webui/src/lib/stores/settings.svelte.ts new file mode 100644 index 0000000000..e5bc5ca9c9 --- /dev/null +++ b/tools/server/webui/src/lib/stores/settings.svelte.ts @@ -0,0 +1,206 @@ +/** + * SettingsStore - Application configuration and theme management + * + * This store manages all application settings including AI model parameters, UI preferences, + * and theme configuration. It provides persistent storage through localStorage with reactive + * state management using Svelte 5 runes. + * + * **Architecture & Relationships:** + * - **SettingsStore** (this class): Configuration state management + * - Manages AI model parameters (temperature, max tokens, etc.) + * - Handles theme switching and persistence + * - Provides localStorage synchronization + * - Offers reactive configuration access + * + * - **ChatService**: Reads model parameters for API requests + * - **UI Components**: Subscribe to theme and configuration changes + * + * **Key Features:** + * - **Model Parameters**: Temperature, max tokens, top-p, top-k, repeat penalty + * - **Theme Management**: Auto, light, dark theme switching + * - **Persistence**: Automatic localStorage synchronization + * - **Reactive State**: Svelte 5 runes for automatic UI updates + * - **Default Handling**: Graceful fallback to defaults for missing settings + * - **Batch Updates**: Efficient multi-setting updates + * - **Reset Functionality**: Restore defaults for individual or all settings + * + * **Configuration Categories:** + * - Generation parameters (temperature, tokens, sampling) + * - UI preferences (theme, display options) + * - System settings (model selection, prompts) + * - Advanced options (seed, penalties, context handling) + */ + +import { browser } from '$app/environment'; +import { SETTING_CONFIG_DEFAULT } from '$lib/constants/settings-config'; + +class SettingsStore { + config = $state({ ...SETTING_CONFIG_DEFAULT }); + theme = $state('auto'); + isInitialized = $state(false); + + constructor() { + if (browser) { + this.initialize(); + } + } + + /** + * Initialize the settings store by loading from localStorage + */ + initialize() { + try { + this.loadConfig(); + this.loadTheme(); + this.isInitialized = true; + } catch (error) { + console.error('Failed to initialize settings store:', error); + } + } + + /** + * Load configuration from localStorage + * Returns default values for missing keys to prevent breaking changes + */ + private loadConfig() { + if (!browser) return; + + try { + const savedVal = JSON.parse(localStorage.getItem('config') || '{}'); + // Merge with defaults to prevent breaking changes + this.config = { + ...SETTING_CONFIG_DEFAULT, + ...savedVal + }; + } catch (error) { + console.warn('Failed to parse config from localStorage, using defaults:', error); + this.config = { ...SETTING_CONFIG_DEFAULT }; + } + } + + /** + * Load theme from localStorage + */ + private loadTheme() { + if (!browser) return; + + this.theme = localStorage.getItem('theme') || 'auto'; + } + + /** + * Update a specific configuration setting + * @param key - The configuration key to update + * @param value - The new value for the configuration key + */ + updateConfig(key: K, value: SettingsConfigType[K]) { + this.config[key] = value; + this.saveConfig(); + } + + /** + * Update multiple configuration settings at once + * @param updates - Object containing the configuration updates + */ + updateMultipleConfig(updates: Partial) { + Object.assign(this.config, updates); + this.saveConfig(); + } + + /** + * Save the current configuration to localStorage + */ + private saveConfig() { + if (!browser) return; + + try { + localStorage.setItem('config', JSON.stringify(this.config)); + } catch (error) { + console.error('Failed to save config to localStorage:', error); + } + } + + /** + * Update the theme setting + * @param newTheme - The new theme value + */ + updateTheme(newTheme: string) { + this.theme = newTheme; + this.saveTheme(); + } + + /** + * Save the current theme to localStorage + */ + private saveTheme() { + if (!browser) return; + + try { + if (this.theme === 'auto') { + localStorage.removeItem('theme'); + } else { + localStorage.setItem('theme', this.theme); + } + } catch (error) { + console.error('Failed to save theme to localStorage:', error); + } + } + + /** + * Reset configuration to defaults + */ + resetConfig() { + this.config = { ...SETTING_CONFIG_DEFAULT }; + this.saveConfig(); + } + + /** + * Reset theme to auto + */ + resetTheme() { + this.theme = 'auto'; + this.saveTheme(); + } + + /** + * Reset all settings to defaults + */ + resetAll() { + this.resetConfig(); + this.resetTheme(); + } + + /** + * Get a specific configuration value + * @param key - The configuration key to get + * @returns The configuration value + */ + getConfig(key: K): SettingsConfigType[K] { + return this.config[key]; + } + + /** + * Get the entire configuration object + * @returns The complete configuration object + */ + getAllConfig(): SettingsConfigType { + return { ...this.config }; + } +} + +// Create and export the settings store instance +export const settingsStore = new SettingsStore(); + +// Export reactive getters for easy access in components +export const config = () => settingsStore.config; +export const theme = () => settingsStore.theme; +export const isInitialized = () => settingsStore.isInitialized; + +// Export bound methods for easy access +export const updateConfig = settingsStore.updateConfig.bind(settingsStore); +export const updateMultipleConfig = settingsStore.updateMultipleConfig.bind(settingsStore); +export const updateTheme = settingsStore.updateTheme.bind(settingsStore); +export const resetConfig = settingsStore.resetConfig.bind(settingsStore); +export const resetTheme = settingsStore.resetTheme.bind(settingsStore); +export const resetAll = settingsStore.resetAll.bind(settingsStore); +export const getConfig = settingsStore.getConfig.bind(settingsStore); +export const getAllConfig = settingsStore.getAllConfig.bind(settingsStore); diff --git a/tools/server/webui/src/lib/types/api.d.ts b/tools/server/webui/src/lib/types/api.d.ts new file mode 100644 index 0000000000..d0e60a6c13 --- /dev/null +++ b/tools/server/webui/src/lib/types/api.d.ts @@ -0,0 +1,252 @@ +import type { ChatMessagePromptProgress } from './chat'; + +export interface ApiChatMessageContentPart { + type: 'text' | 'image_url' | 'input_audio'; + text?: string; + image_url?: { + url: string; + }; + input_audio?: { + data: string; + format: 'wav' | 'mp3'; + }; +} + +export interface ApiContextSizeError { + code: number; + message: string; + type: 'exceed_context_size_error'; + n_prompt_tokens: number; + n_ctx: number; +} + +export interface ApiErrorResponse { + error: + | ApiContextSizeError + | { + code: number; + message: string; + type?: string; + }; +} + +export interface ApiChatMessageData { + role: ChatRole; + content: string | ApiChatMessageContentPart[]; + timestamp?: number; +} + +export interface ApiLlamaCppServerProps { + default_generation_settings: { + id: number; + id_task: number; + n_ctx: number; + speculative: boolean; + is_processing: boolean; + params: { + n_predict: number; + seed: number; + temperature: number; + dynatemp_range: number; + dynatemp_exponent: number; + top_k: number; + top_p: number; + min_p: number; + top_n_sigma: number; + xtc_probability: number; + xtc_threshold: number; + typ_p: number; + repeat_last_n: number; + repeat_penalty: number; + presence_penalty: number; + frequency_penalty: number; + dry_multiplier: number; + dry_base: number; + dry_allowed_length: number; + dry_penalty_last_n: number; + dry_sequence_breakers: string[]; + mirostat: number; + mirostat_tau: number; + mirostat_eta: number; + stop: string[]; + max_tokens: number; + n_keep: number; + n_discard: number; + ignore_eos: boolean; + stream: boolean; + logit_bias: Array<[number, number]>; + n_probs: number; + min_keep: number; + grammar: string; + grammar_lazy: boolean; + grammar_triggers: string[]; + preserved_tokens: number[]; + chat_format: string; + reasoning_format: string; + reasoning_in_content: boolean; + thinking_forced_open: boolean; + samplers: string[]; + 'speculative.n_max': number; + 'speculative.n_min': number; + 'speculative.p_min': number; + timings_per_token: boolean; + post_sampling_probs: boolean; + lora: Array<{ name: string; scale: number }>; + }; + prompt: string; + next_token: { + has_next_token: boolean; + has_new_line: boolean; + n_remain: number; + n_decoded: number; + stopping_word: string; + }; + }; + total_slots: number; + model_path: string; + modalities: { + vision: boolean; + audio: boolean; + }; + chat_template: string; + bos_token: string; + eos_token: string; + build_info: string; +} + +export interface ApiChatCompletionRequest { + messages: Array<{ + role: ChatRole; + content: string | ApiChatMessageContentPart[]; + }>; + stream?: boolean; + // Reasoning parameters + reasoning_format?: string; + // Generation parameters + temperature?: number; + max_tokens?: number; + // Sampling parameters + dynatemp_range?: number; + dynatemp_exponent?: number; + top_k?: number; + top_p?: number; + min_p?: number; + xtc_probability?: number; + xtc_threshold?: number; + typ_p?: number; + // Penalty parameters + repeat_last_n?: number; + repeat_penalty?: number; + presence_penalty?: number; + frequency_penalty?: number; + dry_multiplier?: number; + dry_base?: number; + dry_allowed_length?: number; + dry_penalty_last_n?: number; + // Sampler configuration + samplers?: string[]; + // Custom parameters (JSON string) + custom?: Record; +} + +export interface ApiChatCompletionStreamChunk { + choices: Array<{ + delta: { + content?: string; + reasoning_content?: string; + }; + }>; + timings?: { + prompt_n?: number; + prompt_ms?: number; + predicted_n?: number; + predicted_ms?: number; + cache_n?: number; + }; + prompt_progress?: ChatMessagePromptProgress; +} + +export interface ApiChatCompletionResponse { + choices: Array<{ + message: { + content: string; + reasoning_content?: string; + }; + }>; +} + +export interface ApiSlotData { + id: number; + id_task: number; + n_ctx: number; + speculative: boolean; + is_processing: boolean; + params: { + n_predict: number; + seed: number; + temperature: number; + dynatemp_range: number; + dynatemp_exponent: number; + top_k: number; + top_p: number; + min_p: number; + top_n_sigma: number; + xtc_probability: number; + xtc_threshold: number; + typical_p: number; + repeat_last_n: number; + repeat_penalty: number; + presence_penalty: number; + frequency_penalty: number; + dry_multiplier: number; + dry_base: number; + dry_allowed_length: number; + dry_penalty_last_n: number; + mirostat: number; + mirostat_tau: number; + mirostat_eta: number; + max_tokens: number; + n_keep: number; + n_discard: number; + ignore_eos: boolean; + stream: boolean; + n_probs: number; + min_keep: number; + chat_format: string; + reasoning_format: string; + reasoning_in_content: boolean; + thinking_forced_open: boolean; + samplers: string[]; + 'speculative.n_max': number; + 'speculative.n_min': number; + 'speculative.p_min': number; + timings_per_token: boolean; + post_sampling_probs: boolean; + lora: Array<{ name: string; scale: number }>; + }; + next_token: { + has_next_token: boolean; + has_new_line: boolean; + n_remain: number; + n_decoded: number; + }; +} + +export interface ApiProcessingState { + status: 'initializing' | 'generating' | 'preparing' | 'idle'; + tokensDecoded: number; + tokensRemaining: number; + contextUsed: number; + contextTotal: number; + outputTokensUsed: number; // Total output tokens (thinking + regular content) + outputTokensMax: number; // Max output tokens allowed + temperature: number; + topP: number; + speculative: boolean; + hasNextToken: boolean; + tokensPerSecond?: number; + // Progress information from prompt_progress + progressPercent?: number; + promptTokens?: number; + cacheTokens?: number; +} diff --git a/tools/server/webui/src/lib/types/chat.d.ts b/tools/server/webui/src/lib/types/chat.d.ts new file mode 100644 index 0000000000..d803a5aa0f --- /dev/null +++ b/tools/server/webui/src/lib/types/chat.d.ts @@ -0,0 +1,34 @@ +export type ChatMessageType = 'root' | 'text' | 'think'; +export type ChatRole = 'user' | 'assistant' | 'system'; + +export interface ChatUploadedFile { + id: string; + name: string; + size: number; + type: string; + file: File; + preview?: string; + textContent?: string; +} + +export interface ChatMessageSiblingInfo { + message: DatabaseMessage; + siblingIds: string[]; + currentIndex: number; + totalSiblings: number; +} + +export interface ChatMessagePromptProgress { + cache: number; + processed: number; + time_ms: number; + total: number; +} + +export interface ChatMessageTimings { + cache_n?: number; + predicted_ms?: number; + predicted_n?: number; + prompt_ms?: number; + prompt_n?: number; +} diff --git a/tools/server/webui/src/lib/types/database.d.ts b/tools/server/webui/src/lib/types/database.d.ts new file mode 100644 index 0000000000..e3076ef12a --- /dev/null +++ b/tools/server/webui/src/lib/types/database.d.ts @@ -0,0 +1,55 @@ +import type { ChatMessageTimings } from './chat'; + +export interface DatabaseConversation { + currNode: string | null; + id: string; + lastModified: number; + name: string; +} + +export interface DatabaseMessageExtraAudioFile { + type: 'audioFile'; + name: string; + base64Data: string; + mimeType: string; +} + +export interface DatabaseMessageExtraImageFile { + type: 'imageFile'; + name: string; + base64Url: string; +} + +export interface DatabaseMessageExtraTextFile { + type: 'textFile'; + name: string; + content: string; +} + +export interface DatabaseMessageExtraPdfFile { + type: 'pdfFile'; + name: string; + content: string; // Text content extracted from PDF + images?: string[]; // Optional: PDF pages as base64 images + processedAsImages: boolean; // Whether PDF was processed as images +} + +export type DatabaseMessageExtra = + | DatabaseMessageExtraImageFile + | DatabaseMessageExtraTextFile + | DatabaseMessageExtraAudioFile + | DatabaseMessageExtraPdfFile; + +export interface DatabaseMessage { + id: string; + convId: string; + type: ChatMessageType; + timestamp: number; + role: ChatRole; + content: string; + parent: string; + thinking: string; + children: string[]; + extra?: DatabaseMessageExtra[]; + timings?: ChatMessageTimings; +} diff --git a/tools/server/webui/src/lib/types/settings.d.ts b/tools/server/webui/src/lib/types/settings.d.ts new file mode 100644 index 0000000000..4311f779ad --- /dev/null +++ b/tools/server/webui/src/lib/types/settings.d.ts @@ -0,0 +1,50 @@ +import type { SETTING_CONFIG_DEFAULT } from '$lib/constants/settings-config'; +import type { ChatMessageTimings } from './chat'; + +export type SettingsConfigValue = string | number | boolean; + +export interface SettingsFieldConfig { + key: string; + label: string; + type: 'input' | 'textarea' | 'checkbox' | 'select'; + help?: string; + options?: Array<{ value: string; label: string; icon?: typeof import('@lucide/svelte').Icon }>; +} + +export interface SettingsChatServiceOptions { + stream?: boolean; + // Generation parameters + temperature?: number; + max_tokens?: number; + // Sampling parameters + dynatemp_range?: number; + dynatemp_exponent?: number; + top_k?: number; + top_p?: number; + min_p?: number; + xtc_probability?: number; + xtc_threshold?: number; + typ_p?: number; + // Penalty parameters + repeat_last_n?: number; + repeat_penalty?: number; + presence_penalty?: number; + frequency_penalty?: number; + dry_multiplier?: number; + dry_base?: number; + dry_allowed_length?: number; + dry_penalty_last_n?: number; + // Sampler configuration + samplers?: string | string[]; + // Custom parameters + custom?: string; + // Callbacks + onChunk?: (chunk: string) => void; + onReasoningChunk?: (chunk: string) => void; + onComplete?: (response: string, reasoningContent?: string, timings?: ChatMessageTimings) => void; + onError?: (error: Error) => void; +} + +export type SettingsConfigType = typeof SETTING_CONFIG_DEFAULT & { + [key: string]: SettingsConfigValue; +}; diff --git a/tools/server/webui/src/lib/utils/api-key-validation.ts b/tools/server/webui/src/lib/utils/api-key-validation.ts new file mode 100644 index 0000000000..d7bbf9c2eb --- /dev/null +++ b/tools/server/webui/src/lib/utils/api-key-validation.ts @@ -0,0 +1,45 @@ +import { error } from '@sveltejs/kit'; +import { browser } from '$app/environment'; +import { config } from '$lib/stores/settings.svelte'; + +/** + * Validates API key by making a request to the server props endpoint + * Throws SvelteKit errors for authentication failures or server issues + */ +export async function validateApiKey(fetch: typeof globalThis.fetch): Promise { + if (!browser) { + return; + } + + try { + const apiKey = config().apiKey; + + const headers: Record = { + 'Content-Type': 'application/json' + }; + + if (apiKey) { + headers.Authorization = `Bearer ${apiKey}`; + } + + const response = await fetch('/props', { headers }); + + if (!response.ok) { + if (response.status === 401 || response.status === 403) { + throw error(401, 'Access denied'); + } else if (response.status >= 500) { + throw error(response.status, 'Server error - check if llama.cpp server is running'); + } else { + throw error(response.status, `Server responded with status ${response.status}`); + } + } + } catch (err) { + // If it's already a SvelteKit error, re-throw it + if (err && typeof err === 'object' && 'status' in err) { + throw err; + } + + // Network or other errors + throw error(503, 'Cannot connect to server - check if llama.cpp server is running'); + } +} diff --git a/tools/server/webui/src/lib/utils/audio-recording.ts b/tools/server/webui/src/lib/utils/audio-recording.ts new file mode 100644 index 0000000000..acf4c6d1fa --- /dev/null +++ b/tools/server/webui/src/lib/utils/audio-recording.ts @@ -0,0 +1,226 @@ +import { MimeTypeAudio } from '$lib/enums/files'; + +/** + * AudioRecorder - Browser-based audio recording with MediaRecorder API + * + * This class provides a complete audio recording solution using the browser's MediaRecorder API. + * It handles microphone access, recording state management, and audio format optimization. + * + * **Features:** + * - Automatic microphone permission handling + * - Audio enhancement (echo cancellation, noise suppression, auto gain) + * - Multiple format support with fallback (WAV, WebM, MP4, AAC) + * - Real-time recording state tracking + * - Proper cleanup and resource management + */ +export class AudioRecorder { + private mediaRecorder: MediaRecorder | null = null; + private audioChunks: Blob[] = []; + private stream: MediaStream | null = null; + private recordingState: boolean = false; + + async startRecording(): Promise { + try { + this.stream = await navigator.mediaDevices.getUserMedia({ + audio: { + echoCancellation: true, + noiseSuppression: true, + autoGainControl: true + } + }); + + this.initializeRecorder(this.stream); + + this.audioChunks = []; + // Start recording with a small timeslice to ensure we get data + this.mediaRecorder!.start(100); + this.recordingState = true; + } catch (error) { + console.error('Failed to start recording:', error); + throw new Error('Failed to access microphone. Please check permissions.'); + } + } + + async stopRecording(): Promise { + return new Promise((resolve, reject) => { + if (!this.mediaRecorder || this.mediaRecorder.state === 'inactive') { + reject(new Error('No active recording to stop')); + return; + } + + this.mediaRecorder.onstop = () => { + const mimeType = this.mediaRecorder?.mimeType || MimeTypeAudio.WAV; + const audioBlob = new Blob(this.audioChunks, { type: mimeType }); + + this.cleanup(); + + resolve(audioBlob); + }; + + this.mediaRecorder.onerror = (event) => { + console.error('Recording error:', event); + this.cleanup(); + reject(new Error('Recording failed')); + }; + + this.mediaRecorder.stop(); + }); + } + + isRecording(): boolean { + return this.recordingState; + } + + cancelRecording(): void { + if (this.mediaRecorder && this.mediaRecorder.state !== 'inactive') { + this.mediaRecorder.stop(); + } + this.cleanup(); + } + + private initializeRecorder(stream: MediaStream): void { + const options: MediaRecorderOptions = {}; + + if (MediaRecorder.isTypeSupported(MimeTypeAudio.WAV)) { + options.mimeType = MimeTypeAudio.WAV; + } else if (MediaRecorder.isTypeSupported(MimeTypeAudio.WEBM_OPUS)) { + options.mimeType = MimeTypeAudio.WEBM_OPUS; + } else if (MediaRecorder.isTypeSupported(MimeTypeAudio.WEBM)) { + options.mimeType = MimeTypeAudio.WEBM; + } else if (MediaRecorder.isTypeSupported(MimeTypeAudio.MP4)) { + options.mimeType = MimeTypeAudio.MP4; + } else { + console.warn('No preferred audio format supported, using default'); + } + + this.mediaRecorder = new MediaRecorder(stream, options); + + this.mediaRecorder.ondataavailable = (event) => { + if (event.data.size > 0) { + this.audioChunks.push(event.data); + } + }; + + this.mediaRecorder.onstop = () => { + this.recordingState = false; + }; + + this.mediaRecorder.onerror = (event) => { + console.error('MediaRecorder error:', event); + this.recordingState = false; + }; + } + + private cleanup(): void { + if (this.stream) { + for (const track of this.stream.getTracks()) { + track.stop(); + } + + this.stream = null; + } + this.mediaRecorder = null; + this.audioChunks = []; + this.recordingState = false; + } +} + +export async function convertToWav(audioBlob: Blob): Promise { + try { + if (audioBlob.type.includes('wav')) { + return audioBlob; + } + + const arrayBuffer = await audioBlob.arrayBuffer(); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const audioContext = new (window.AudioContext || (window as any).webkitAudioContext)(); + + const audioBuffer = await audioContext.decodeAudioData(arrayBuffer); + + const wavBlob = audioBufferToWav(audioBuffer); + + audioContext.close(); + + return wavBlob; + } catch (error) { + console.error('Failed to convert audio to WAV:', error); + return audioBlob; + } +} + +function audioBufferToWav(buffer: AudioBuffer): Blob { + const length = buffer.length; + const numberOfChannels = buffer.numberOfChannels; + const sampleRate = buffer.sampleRate; + const bytesPerSample = 2; // 16-bit + const blockAlign = numberOfChannels * bytesPerSample; + const byteRate = sampleRate * blockAlign; + const dataSize = length * blockAlign; + const bufferSize = 44 + dataSize; + + const arrayBuffer = new ArrayBuffer(bufferSize); + const view = new DataView(arrayBuffer); + + const writeString = (offset: number, string: string) => { + for (let i = 0; i < string.length; i++) { + view.setUint8(offset + i, string.charCodeAt(i)); + } + }; + + writeString(0, 'RIFF'); // ChunkID + view.setUint32(4, bufferSize - 8, true); // ChunkSize + writeString(8, 'WAVE'); // Format + writeString(12, 'fmt '); // Subchunk1ID + view.setUint32(16, 16, true); // Subchunk1Size + view.setUint16(20, 1, true); // AudioFormat (PCM) + view.setUint16(22, numberOfChannels, true); // NumChannels + view.setUint32(24, sampleRate, true); // SampleRate + view.setUint32(28, byteRate, true); // ByteRate + view.setUint16(32, blockAlign, true); // BlockAlign + view.setUint16(34, 16, true); // BitsPerSample + writeString(36, 'data'); // Subchunk2ID + view.setUint32(40, dataSize, true); // Subchunk2Size + + let offset = 44; + for (let i = 0; i < length; i++) { + for (let channel = 0; channel < numberOfChannels; channel++) { + const sample = Math.max(-1, Math.min(1, buffer.getChannelData(channel)[i])); + view.setInt16(offset, sample * 0x7fff, true); + offset += 2; + } + } + + return new Blob([arrayBuffer], { type: MimeTypeAudio.WAV }); +} + +/** + * Create a File object from audio blob with timestamp-based naming + * @param audioBlob - The audio blob to wrap + * @param filename - Optional custom filename + * @returns File object with appropriate name and metadata + */ +export function createAudioFile(audioBlob: Blob, filename?: string): File { + const timestamp = new Date().toISOString().replace(/[:.]/g, '-'); + const extension = audioBlob.type.includes('wav') ? 'wav' : 'mp3'; + const defaultFilename = `recording-${timestamp}.${extension}`; + + return new File([audioBlob], filename || defaultFilename, { + type: audioBlob.type, + lastModified: Date.now() + }); +} + +/** + * Check if audio recording is supported in the current browser + * @returns True if MediaRecorder and getUserMedia are available + */ +export function isAudioRecordingSupported(): boolean { + return !!( + typeof navigator !== 'undefined' && + navigator.mediaDevices && + typeof navigator.mediaDevices.getUserMedia === 'function' && + typeof window !== 'undefined' && + window.MediaRecorder + ); +} diff --git a/tools/server/webui/src/lib/utils/autoresize-textarea.ts b/tools/server/webui/src/lib/utils/autoresize-textarea.ts new file mode 100644 index 0000000000..cfee5ec151 --- /dev/null +++ b/tools/server/webui/src/lib/utils/autoresize-textarea.ts @@ -0,0 +1,10 @@ +/** + * Automatically resizes a textarea element to fit its content + * @param textareaElement - The textarea element to resize + */ +export default function autoResizeTextarea(textareaElement: HTMLTextAreaElement | null): void { + if (textareaElement) { + textareaElement.style.height = '1rem'; + textareaElement.style.height = textareaElement.scrollHeight + 'px'; + } +} diff --git a/tools/server/webui/src/lib/utils/branching.ts b/tools/server/webui/src/lib/utils/branching.ts new file mode 100644 index 0000000000..3be56047a5 --- /dev/null +++ b/tools/server/webui/src/lib/utils/branching.ts @@ -0,0 +1,283 @@ +/** + * Message branching utilities for conversation tree navigation. + * + * Conversation branching allows users to edit messages and create alternate paths + * while preserving the original conversation flow. Each message has parent/children + * relationships forming a tree structure. + * + * Example tree: + * root + * ├── message 1 (user) + * │ └── message 2 (assistant) + * │ ├── message 3 (user) + * │ └── message 6 (user) ← new branch + * └── message 4 (user) + * └── message 5 (assistant) + */ + +/** + * Filters messages to get the conversation path from root to a specific leaf node. + * If the leafNodeId doesn't exist, returns the path with the latest timestamp. + * + * @param messages - All messages in the conversation + * @param leafNodeId - The target leaf node ID to trace back from + * @param includeRoot - Whether to include root messages in the result + * @returns Array of messages from root to leaf, sorted by timestamp + */ +export function filterByLeafNodeId( + messages: readonly DatabaseMessage[], + leafNodeId: string, + includeRoot: boolean = false +): readonly DatabaseMessage[] { + const result: DatabaseMessage[] = []; + const nodeMap = new Map(); + + // Build node map for quick lookups + for (const msg of messages) { + nodeMap.set(msg.id, msg); + } + + // Find the starting node (leaf node or latest if not found) + let startNode: DatabaseMessage | undefined = nodeMap.get(leafNodeId); + if (!startNode) { + // If leaf node not found, use the message with latest timestamp + let latestTime = -1; + for (const msg of messages) { + if (msg.timestamp > latestTime) { + startNode = msg; + latestTime = msg.timestamp; + } + } + } + + // Traverse from leaf to root, collecting messages + let currentNode: DatabaseMessage | undefined = startNode; + while (currentNode) { + // Include message if it's not root, or if we want to include root + if (currentNode.type !== 'root' || includeRoot) { + result.push(currentNode); + } + + // Stop traversal if parent is null (reached root) + if (currentNode.parent === null) { + break; + } + currentNode = nodeMap.get(currentNode.parent); + } + + // Sort by timestamp to get chronological order (root to leaf) + result.sort((a, b) => a.timestamp - b.timestamp); + return result; +} + +/** + * Finds the leaf node (message with no children) for a given message branch. + * Traverses down the tree following the last child until reaching a leaf. + * + * @param messages - All messages in the conversation + * @param messageId - Starting message ID to find leaf for + * @returns The leaf node ID, or the original messageId if no children + */ +export function findLeafNode(messages: readonly DatabaseMessage[], messageId: string): string { + const nodeMap = new Map(); + + // Build node map for quick lookups + for (const msg of messages) { + nodeMap.set(msg.id, msg); + } + + let currentNode: DatabaseMessage | undefined = nodeMap.get(messageId); + while (currentNode && currentNode.children.length > 0) { + // Follow the last child (most recent branch) + const lastChildId = currentNode.children[currentNode.children.length - 1]; + currentNode = nodeMap.get(lastChildId); + } + + return currentNode?.id ?? messageId; +} + +/** + * Finds all descendant messages (children, grandchildren, etc.) of a given message. + * This is used for cascading deletion to remove all messages in a branch. + * + * @param messages - All messages in the conversation + * @param messageId - The root message ID to find descendants for + * @returns Array of all descendant message IDs + */ +export function findDescendantMessages( + messages: readonly DatabaseMessage[], + messageId: string +): string[] { + const nodeMap = new Map(); + + // Build node map for quick lookups + for (const msg of messages) { + nodeMap.set(msg.id, msg); + } + + const descendants: string[] = []; + const queue: string[] = [messageId]; + + while (queue.length > 0) { + const currentId = queue.shift()!; + const currentNode = nodeMap.get(currentId); + + if (currentNode) { + // Add all children to the queue and descendants list + for (const childId of currentNode.children) { + descendants.push(childId); + queue.push(childId); + } + } + } + + return descendants; +} + +/** + * Gets sibling information for a message, including all sibling IDs and current position. + * Siblings are messages that share the same parent. + * + * @param messages - All messages in the conversation + * @param messageId - The message to get sibling info for + * @returns Sibling information including leaf node IDs for navigation + */ +export function getMessageSiblings( + messages: readonly DatabaseMessage[], + messageId: string +): ChatMessageSiblingInfo | null { + const nodeMap = new Map(); + + // Build node map for quick lookups + for (const msg of messages) { + nodeMap.set(msg.id, msg); + } + + const message = nodeMap.get(messageId); + if (!message) { + return null; + } + + // Handle null parent (root message) case + if (message.parent === null) { + // No parent means this is likely a root node with no siblings + return { + message, + siblingIds: [messageId], + currentIndex: 0, + totalSiblings: 1 + }; + } + + const parentNode = nodeMap.get(message.parent); + if (!parentNode) { + // Parent not found - treat as single message + return { + message, + siblingIds: [messageId], + currentIndex: 0, + totalSiblings: 1 + }; + } + + // Get all sibling IDs (including self) + const siblingIds = parentNode.children; + + // Convert sibling message IDs to their corresponding leaf node IDs + // This allows navigation between different conversation branches + const siblingLeafIds = siblingIds.map((siblingId: string) => findLeafNode(messages, siblingId)); + + // Find current message's position among siblings + const currentIndex = siblingIds.indexOf(messageId); + + return { + message, + siblingIds: siblingLeafIds, + currentIndex, + totalSiblings: siblingIds.length + }; +} + +/** + * Creates a display-ready list of messages with sibling information for UI rendering. + * This is the main function used by chat components to render conversation branches. + * + * @param messages - All messages in the conversation + * @param leafNodeId - Current leaf node being viewed + * @returns Array of messages with sibling navigation info + */ +export function getMessageDisplayList( + messages: readonly DatabaseMessage[], + leafNodeId: string +): ChatMessageSiblingInfo[] { + // Get the current conversation path + const currentPath = filterByLeafNodeId(messages, leafNodeId, true); + const result: ChatMessageSiblingInfo[] = []; + + // Add sibling info for each message in the current path + for (const message of currentPath) { + if (message.type === 'root') { + continue; // Skip root messages in display + } + + const siblingInfo = getMessageSiblings(messages, message.id); + if (siblingInfo) { + result.push(siblingInfo); + } + } + + return result; +} + +/** + * Checks if a message has multiple siblings (indicating branching at that point). + * + * @param messages - All messages in the conversation + * @param messageId - The message to check + * @returns True if the message has siblings + */ +export function hasMessageSiblings( + messages: readonly DatabaseMessage[], + messageId: string +): boolean { + const siblingInfo = getMessageSiblings(messages, messageId); + return siblingInfo ? siblingInfo.totalSiblings > 1 : false; +} + +/** + * Gets the next sibling message ID for navigation. + * + * @param messages - All messages in the conversation + * @param messageId - Current message ID + * @returns Next sibling's leaf node ID, or null if at the end + */ +export function getNextSibling( + messages: readonly DatabaseMessage[], + messageId: string +): string | null { + const siblingInfo = getMessageSiblings(messages, messageId); + if (!siblingInfo || siblingInfo.currentIndex >= siblingInfo.totalSiblings - 1) { + return null; + } + + return siblingInfo.siblingIds[siblingInfo.currentIndex + 1]; +} + +/** + * Gets the previous sibling message ID for navigation. + * + * @param messages - All messages in the conversation + * @param messageId - Current message ID + * @returns Previous sibling's leaf node ID, or null if at the beginning + */ +export function getPreviousSibling( + messages: readonly DatabaseMessage[], + messageId: string +): string | null { + const siblingInfo = getMessageSiblings(messages, messageId); + if (!siblingInfo || siblingInfo.currentIndex <= 0) { + return null; + } + + return siblingInfo.siblingIds[siblingInfo.currentIndex - 1]; +} diff --git a/tools/server/webui/src/lib/utils/convert-files-to-extra.ts b/tools/server/webui/src/lib/utils/convert-files-to-extra.ts new file mode 100644 index 0000000000..70c6f772d9 --- /dev/null +++ b/tools/server/webui/src/lib/utils/convert-files-to-extra.ts @@ -0,0 +1,188 @@ +import { convertPDFToImage, convertPDFToText } from './pdf-processing'; +import { isSvgMimeType, svgBase64UrlToPngDataURL } from './svg-to-png'; +import { isWebpMimeType, webpBase64UrlToPngDataURL } from './webp-to-png'; +import { FileTypeCategory } from '$lib/enums/files'; +import { config, settingsStore } from '$lib/stores/settings.svelte'; +import { supportsVision } from '$lib/stores/server.svelte'; +import { getFileTypeCategory } from '$lib/utils/file-type'; +import { readFileAsText, isLikelyTextFile } from './text-files'; +import { toast } from 'svelte-sonner'; + +function readFileAsBase64(file: File): Promise { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + + reader.onload = () => { + // Extract base64 data without the data URL prefix + const dataUrl = reader.result as string; + const base64 = dataUrl.split(',')[1]; + resolve(base64); + }; + + reader.onerror = () => reject(reader.error); + + reader.readAsDataURL(file); + }); +} + +export interface FileProcessingResult { + extras: DatabaseMessageExtra[]; + emptyFiles: string[]; +} + +export async function parseFilesToMessageExtras( + files: ChatUploadedFile[] +): Promise { + const extras: DatabaseMessageExtra[] = []; + const emptyFiles: string[] = []; + + for (const file of files) { + if (getFileTypeCategory(file.type) === FileTypeCategory.IMAGE) { + if (file.preview) { + let base64Url = file.preview; + + if (isSvgMimeType(file.type)) { + try { + base64Url = await svgBase64UrlToPngDataURL(base64Url); + } catch (error) { + console.error('Failed to convert SVG to PNG for database storage:', error); + } + } else if (isWebpMimeType(file.type)) { + try { + base64Url = await webpBase64UrlToPngDataURL(base64Url); + } catch (error) { + console.error('Failed to convert WebP to PNG for database storage:', error); + } + } + + extras.push({ + type: 'imageFile', + name: file.name, + base64Url + }); + } + } else if (getFileTypeCategory(file.type) === FileTypeCategory.AUDIO) { + // Process audio files (MP3 and WAV) + try { + const base64Data = await readFileAsBase64(file.file); + + extras.push({ + type: 'audioFile', + name: file.name, + base64Data: base64Data, + mimeType: file.type + }); + } catch (error) { + console.error(`Failed to process audio file ${file.name}:`, error); + } + } else if (getFileTypeCategory(file.type) === FileTypeCategory.PDF) { + try { + // Always get base64 data for preview functionality + const base64Data = await readFileAsBase64(file.file); + const currentConfig = config(); + const hasVisionSupport = supportsVision(); + + // Force PDF-to-text for non-vision models + let shouldProcessAsImages = Boolean(currentConfig.pdfAsImage) && hasVisionSupport; + + // If user had pdfAsImage enabled but model doesn't support vision, update setting and notify + if (currentConfig.pdfAsImage && !hasVisionSupport) { + console.log('Non-vision model detected: forcing PDF-to-text mode and updating settings'); + + // Update the setting in localStorage + settingsStore.updateConfig('pdfAsImage', false); + + // Show toast notification to user + toast.warning( + 'PDF setting changed: Non-vision model detected, PDFs will be processed as text instead of images.', + { + duration: 5000 + } + ); + + shouldProcessAsImages = false; + } + + if (shouldProcessAsImages) { + // Process PDF as images (only for vision models) + try { + const images = await convertPDFToImage(file.file); + + // Show success toast for PDF image processing + toast.success( + `PDF "${file.name}" processed as ${images.length} images for vision model.`, + { + duration: 3000 + } + ); + + extras.push({ + type: 'pdfFile', + name: file.name, + content: `PDF file with ${images.length} pages`, + images: images, + processedAsImages: true, + base64Data: base64Data + }); + } catch (imageError) { + console.warn( + `Failed to process PDF ${file.name} as images, falling back to text:`, + imageError + ); + + // Fallback to text processing + const content = await convertPDFToText(file.file); + + extras.push({ + type: 'pdfFile', + name: file.name, + content: content, + processedAsImages: false, + base64Data: base64Data + }); + } + } else { + // Process PDF as text (default or forced for non-vision models) + const content = await convertPDFToText(file.file); + + // Show success toast for PDF text processing + toast.success(`PDF "${file.name}" processed as text content.`, { + duration: 3000 + }); + + extras.push({ + type: 'pdfFile', + name: file.name, + content: content, + processedAsImages: false, + base64Data: base64Data + }); + } + } catch (error) { + console.error(`Failed to process PDF file ${file.name}:`, error); + } + } else { + try { + const content = await readFileAsText(file.file); + + // Check if file is empty + if (content.trim() === '') { + console.warn(`File ${file.name} is empty and will be skipped`); + emptyFiles.push(file.name); + } else if (isLikelyTextFile(content)) { + extras.push({ + type: 'textFile', + name: file.name, + content: content + }); + } else { + console.warn(`File ${file.name} appears to be binary and will be skipped`); + } + } catch (error) { + console.error(`Failed to read file ${file.name}:`, error); + } + } + } + + return { extras, emptyFiles }; +} diff --git a/tools/server/webui/src/lib/utils/copy.ts b/tools/server/webui/src/lib/utils/copy.ts new file mode 100644 index 0000000000..16a4bbd45d --- /dev/null +++ b/tools/server/webui/src/lib/utils/copy.ts @@ -0,0 +1,71 @@ +import { toast } from 'svelte-sonner'; + +/** + * Copy text to clipboard with toast notification + * Uses modern clipboard API when available, falls back to legacy method for non-secure contexts + * @param text - Text to copy to clipboard + * @param successMessage - Custom success message (optional) + * @param errorMessage - Custom error message (optional) + * @returns Promise - True if successful, false otherwise + */ +export async function copyToClipboard( + text: string, + successMessage = 'Copied to clipboard', + errorMessage = 'Failed to copy to clipboard' +): Promise { + try { + // Try modern clipboard API first (secure contexts only) + if (navigator.clipboard && navigator.clipboard.writeText) { + await navigator.clipboard.writeText(text); + toast.success(successMessage); + return true; + } + + // Fallback for non-secure contexts + const textArea = document.createElement('textarea'); + textArea.value = text; + textArea.style.position = 'fixed'; + textArea.style.left = '-999999px'; + textArea.style.top = '-999999px'; + document.body.appendChild(textArea); + textArea.focus(); + textArea.select(); + + const successful = document.execCommand('copy'); + document.body.removeChild(textArea); + + if (successful) { + toast.success(successMessage); + return true; + } else { + throw new Error('execCommand failed'); + } + } catch (error) { + console.error('Failed to copy to clipboard:', error); + toast.error(errorMessage); + return false; + } +} + +/** + * Copy code with HTML entity decoding and toast notification + * @param rawCode - Raw code string that may contain HTML entities + * @param successMessage - Custom success message (optional) + * @param errorMessage - Custom error message (optional) + * @returns Promise - True if successful, false otherwise + */ +export async function copyCodeToClipboard( + rawCode: string, + successMessage = 'Code copied to clipboard', + errorMessage = 'Failed to copy code' +): Promise { + // Decode HTML entities + const decodedCode = rawCode + .replace(/&/g, '&') + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/"/g, '"') + .replace(/'/g, "'"); + + return copyToClipboard(decodedCode, successMessage, errorMessage); +} diff --git a/tools/server/webui/src/lib/utils/file-preview.ts b/tools/server/webui/src/lib/utils/file-preview.ts new file mode 100644 index 0000000000..3f887ec535 --- /dev/null +++ b/tools/server/webui/src/lib/utils/file-preview.ts @@ -0,0 +1,32 @@ +/** + * Formats file size in bytes to human readable format + * @param bytes - File size in bytes + * @returns Formatted file size string + */ +export function formatFileSize(bytes: number): string { + if (bytes === 0) return '0 Bytes'; + + const k = 1024; + const sizes = ['Bytes', 'KB', 'MB', 'GB']; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; +} + +/** + * Gets a display label for a file type + * @param fileType - The file type/mime type + * @returns Formatted file type label + */ +export function getFileTypeLabel(fileType: string): string { + return fileType.split('/').pop()?.toUpperCase() || 'FILE'; +} + +/** + * Truncates text content for preview display + * @param content - The text content to truncate + * @returns Truncated content with ellipsis if needed + */ +export function getPreviewText(content: string): string { + return content.length > 150 ? content.substring(0, 150) + '...' : content; +} diff --git a/tools/server/webui/src/lib/utils/file-type.ts b/tools/server/webui/src/lib/utils/file-type.ts new file mode 100644 index 0000000000..ccfc2a3de1 --- /dev/null +++ b/tools/server/webui/src/lib/utils/file-type.ts @@ -0,0 +1,81 @@ +import { + AUDIO_FILE_TYPES, + IMAGE_FILE_TYPES, + PDF_FILE_TYPES, + TEXT_FILE_TYPES +} from '$lib/constants/supported-file-types'; +import { FileTypeCategory } from '$lib/enums/files'; + +export function getFileTypeCategory(mimeType: string): FileTypeCategory | null { + if ( + Object.values(IMAGE_FILE_TYPES).some((type) => + (type.mimeTypes as readonly string[]).includes(mimeType) + ) + ) { + return FileTypeCategory.IMAGE; + } + + if ( + Object.values(AUDIO_FILE_TYPES).some((type) => + (type.mimeTypes as readonly string[]).includes(mimeType) + ) + ) { + return FileTypeCategory.AUDIO; + } + + if ( + Object.values(PDF_FILE_TYPES).some((type) => + (type.mimeTypes as readonly string[]).includes(mimeType) + ) + ) { + return FileTypeCategory.PDF; + } + + if ( + Object.values(TEXT_FILE_TYPES).some((type) => + (type.mimeTypes as readonly string[]).includes(mimeType) + ) + ) { + return FileTypeCategory.TEXT; + } + + return null; +} + +export function getFileTypeByExtension(filename: string): string | null { + const extension = filename.toLowerCase().substring(filename.lastIndexOf('.')); + + for (const [key, type] of Object.entries(IMAGE_FILE_TYPES)) { + if ((type.extensions as readonly string[]).includes(extension)) { + return `${FileTypeCategory.IMAGE}:${key}`; + } + } + + for (const [key, type] of Object.entries(AUDIO_FILE_TYPES)) { + if ((type.extensions as readonly string[]).includes(extension)) { + return `${FileTypeCategory.AUDIO}:${key}`; + } + } + + for (const [key, type] of Object.entries(PDF_FILE_TYPES)) { + if ((type.extensions as readonly string[]).includes(extension)) { + return `${FileTypeCategory.PDF}:${key}`; + } + } + + for (const [key, type] of Object.entries(TEXT_FILE_TYPES)) { + if ((type.extensions as readonly string[]).includes(extension)) { + return `${FileTypeCategory.TEXT}:${key}`; + } + } + + return null; +} + +export function isFileTypeSupported(filename: string, mimeType?: string): boolean { + if (mimeType && getFileTypeCategory(mimeType)) { + return true; + } + + return getFileTypeByExtension(filename) !== null; +} diff --git a/tools/server/webui/src/lib/utils/modality-file-validation.ts b/tools/server/webui/src/lib/utils/modality-file-validation.ts new file mode 100644 index 0000000000..c77bf88c3a --- /dev/null +++ b/tools/server/webui/src/lib/utils/modality-file-validation.ts @@ -0,0 +1,184 @@ +/** + * File validation utilities based on model modalities + * Ensures only compatible file types are processed based on model capabilities + */ + +import { getFileTypeCategory } from '$lib/utils/file-type'; +import { supportsVision, supportsAudio } from '$lib/stores/server.svelte'; +import { + FileExtensionAudio, + FileExtensionImage, + FileExtensionPdf, + FileExtensionText, + MimeTypeAudio, + MimeTypeImage, + MimeTypeApplication, + MimeTypeText, + FileTypeCategory +} from '$lib/enums/files'; + +/** + * Check if a file type is supported by the current model's modalities + * @param filename - The filename to check + * @param mimeType - The MIME type of the file + * @returns true if the file type is supported by the current model + */ +export function isFileTypeSupportedByModel(filename: string, mimeType?: string): boolean { + const category = mimeType ? getFileTypeCategory(mimeType) : null; + + // If we can't determine the category from MIME type, fall back to general support check + if (!category) { + // For unknown types, only allow if they might be text files + // This is a conservative approach for edge cases + return true; // Let the existing isFileTypeSupported handle this + } + + switch (category) { + case FileTypeCategory.TEXT: + // Text files are always supported + return true; + + case FileTypeCategory.PDF: + // PDFs are always supported (will be processed as text for non-vision models) + return true; + + case FileTypeCategory.IMAGE: + // Images require vision support + return supportsVision(); + + case FileTypeCategory.AUDIO: + // Audio files require audio support + return supportsAudio(); + + default: + // Unknown categories - be conservative and allow + return true; + } +} + +/** + * Filter files based on model modalities and return supported/unsupported lists + * @param files - Array of files to filter + * @returns Object with supportedFiles and unsupportedFiles arrays + */ +export function filterFilesByModalities(files: File[]): { + supportedFiles: File[]; + unsupportedFiles: File[]; + modalityReasons: Record; +} { + const supportedFiles: File[] = []; + const unsupportedFiles: File[] = []; + const modalityReasons: Record = {}; + + const hasVision = supportsVision(); + const hasAudio = supportsAudio(); + + for (const file of files) { + const category = getFileTypeCategory(file.type); + let isSupported = true; + let reason = ''; + + switch (category) { + case FileTypeCategory.IMAGE: + if (!hasVision) { + isSupported = false; + reason = 'Images require a vision-capable model'; + } + break; + + case FileTypeCategory.AUDIO: + if (!hasAudio) { + isSupported = false; + reason = 'Audio files require an audio-capable model'; + } + break; + + case FileTypeCategory.TEXT: + case FileTypeCategory.PDF: + // Always supported + break; + + default: + // For unknown types, check if it's a generally supported file type + // This handles edge cases and maintains backward compatibility + break; + } + + if (isSupported) { + supportedFiles.push(file); + } else { + unsupportedFiles.push(file); + modalityReasons[file.name] = reason; + } + } + + return { supportedFiles, unsupportedFiles, modalityReasons }; +} + +/** + * Generate a user-friendly error message for unsupported files + * @param unsupportedFiles - Array of unsupported files + * @param modalityReasons - Reasons why files are unsupported + * @returns Formatted error message + */ +export function generateModalityErrorMessage( + unsupportedFiles: File[], + modalityReasons: Record +): string { + if (unsupportedFiles.length === 0) return ''; + + const hasVision = supportsVision(); + const hasAudio = supportsAudio(); + + let message = ''; + + if (unsupportedFiles.length === 1) { + const file = unsupportedFiles[0]; + const reason = modalityReasons[file.name]; + message = `The file "${file.name}" cannot be uploaded: ${reason}.`; + } else { + const fileNames = unsupportedFiles.map((f) => f.name).join(', '); + message = `The following files cannot be uploaded: ${fileNames}.`; + } + + // Add helpful information about what is supported + const supportedTypes: string[] = ['text files', 'PDFs']; + if (hasVision) supportedTypes.push('images'); + if (hasAudio) supportedTypes.push('audio files'); + + message += ` This model supports: ${supportedTypes.join(', ')}.`; + + return message; +} + +/** + * Generate file input accept string based on current model modalities + * @returns Accept string for HTML file input element + */ +export function generateModalityAwareAcceptString(): string { + const hasVision = supportsVision(); + const hasAudio = supportsAudio(); + + const acceptedExtensions: string[] = []; + const acceptedMimeTypes: string[] = []; + + // Always include text files and PDFs + acceptedExtensions.push(...Object.values(FileExtensionText)); + acceptedMimeTypes.push(...Object.values(MimeTypeText)); + acceptedExtensions.push(...Object.values(FileExtensionPdf)); + acceptedMimeTypes.push(...Object.values(MimeTypeApplication)); + + // Include images only if vision is supported + if (hasVision) { + acceptedExtensions.push(...Object.values(FileExtensionImage)); + acceptedMimeTypes.push(...Object.values(MimeTypeImage)); + } + + // Include audio only if audio is supported + if (hasAudio) { + acceptedExtensions.push(...Object.values(FileExtensionAudio)); + acceptedMimeTypes.push(...Object.values(MimeTypeAudio)); + } + + return [...acceptedExtensions, ...acceptedMimeTypes].join(','); +} diff --git a/tools/server/webui/src/lib/utils/pdf-processing.ts b/tools/server/webui/src/lib/utils/pdf-processing.ts new file mode 100644 index 0000000000..49b0f34bae --- /dev/null +++ b/tools/server/webui/src/lib/utils/pdf-processing.ts @@ -0,0 +1,150 @@ +/** + * PDF processing utilities using PDF.js + * Handles PDF text extraction and image conversion in the browser + */ + +import { browser } from '$app/environment'; +import { MimeTypeApplication, MimeTypeImage } from '$lib/enums/files'; +import * as pdfjs from 'pdfjs-dist'; + +type TextContent = { + items: Array<{ str: string }>; +}; + +if (browser) { + // Import worker as text and create blob URL for inline bundling + import('pdfjs-dist/build/pdf.worker.min.mjs?raw') + .then((workerModule) => { + const workerBlob = new Blob([workerModule.default], { type: 'application/javascript' }); + pdfjs.GlobalWorkerOptions.workerSrc = URL.createObjectURL(workerBlob); + }) + .catch(() => { + console.warn('Failed to load PDF.js worker, PDF processing may not work'); + }); +} + +/** + * Convert a File object to ArrayBuffer for PDF.js processing + * @param file - The PDF file to convert + * @returns Promise resolving to the file's ArrayBuffer + */ +async function getFileAsBuffer(file: File): Promise { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = (event) => { + if (event.target?.result) { + resolve(event.target.result as ArrayBuffer); + } else { + reject(new Error('Failed to read file.')); + } + }; + reader.onerror = () => { + reject(new Error('Failed to read file.')); + }; + reader.readAsArrayBuffer(file); + }); +} + +/** + * Extract text content from a PDF file + * @param file - The PDF file to process + * @returns Promise resolving to the extracted text content + */ +export async function convertPDFToText(file: File): Promise { + if (!browser) { + throw new Error('PDF processing is only available in the browser'); + } + + try { + const buffer = await getFileAsBuffer(file); + const pdf = await pdfjs.getDocument(buffer).promise; + const numPages = pdf.numPages; + + const textContentPromises: Promise[] = []; + + for (let i = 1; i <= numPages; i++) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + textContentPromises.push(pdf.getPage(i).then((page: any) => page.getTextContent())); + } + + const textContents = await Promise.all(textContentPromises); + const textItems = textContents.flatMap((textContent: TextContent) => + textContent.items.map((item) => item.str ?? '') + ); + + return textItems.join('\n'); + } catch (error) { + console.error('Error converting PDF to text:', error); + throw new Error( + `Failed to convert PDF to text: ${error instanceof Error ? error.message : 'Unknown error'}` + ); + } +} + +/** + * Convert PDF pages to PNG images as data URLs + * @param file - The PDF file to convert + * @param scale - Rendering scale factor (default: 1.5) + * @returns Promise resolving to array of PNG data URLs + */ +export async function convertPDFToImage(file: File, scale: number = 1.5): Promise { + if (!browser) { + throw new Error('PDF processing is only available in the browser'); + } + + try { + const buffer = await getFileAsBuffer(file); + const doc = await pdfjs.getDocument(buffer).promise; + const pages: Promise[] = []; + + for (let i = 1; i <= doc.numPages; i++) { + const page = await doc.getPage(i); + const viewport = page.getViewport({ scale }); + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d'); + + canvas.width = viewport.width; + canvas.height = viewport.height; + + if (!ctx) { + throw new Error('Failed to get 2D context from canvas'); + } + + const task = page.render({ + canvasContext: ctx, + viewport: viewport, + canvas: canvas + }); + pages.push( + task.promise.then(() => { + return canvas.toDataURL(MimeTypeImage.PNG); + }) + ); + } + + return await Promise.all(pages); + } catch (error) { + console.error('Error converting PDF to images:', error); + throw new Error( + `Failed to convert PDF to images: ${error instanceof Error ? error.message : 'Unknown error'}` + ); + } +} + +/** + * Check if a file is a PDF based on its MIME type + * @param file - The file to check + * @returns True if the file is a PDF + */ +export function isPdfFile(file: File): boolean { + return file.type === MimeTypeApplication.PDF; +} + +/** + * Check if a MIME type represents a PDF + * @param mimeType - The MIME type to check + * @returns True if the MIME type is application/pdf + */ +export function isApplicationMimeType(mimeType: string): boolean { + return mimeType === MimeTypeApplication.PDF; +} diff --git a/tools/server/webui/src/lib/utils/process-uploaded-files.ts b/tools/server/webui/src/lib/utils/process-uploaded-files.ts new file mode 100644 index 0000000000..3fb0a9d1a9 --- /dev/null +++ b/tools/server/webui/src/lib/utils/process-uploaded-files.ts @@ -0,0 +1,130 @@ +import { isSvgMimeType, svgBase64UrlToPngDataURL } from './svg-to-png'; +import { isTextFileByName } from './text-files'; +import { isWebpMimeType, webpBase64UrlToPngDataURL } from './webp-to-png'; +import { FileTypeCategory } from '$lib/enums/files'; +import { getFileTypeCategory } from '$lib/utils/file-type'; +import { supportsVision } from '$lib/stores/server.svelte'; +import { settingsStore } from '$lib/stores/settings.svelte'; +import { toast } from 'svelte-sonner'; + +/** + * Read a file as a data URL (base64 encoded) + * @param file - The file to read + * @returns Promise resolving to the data URL string + */ +function readFileAsDataURL(file: File): Promise { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => resolve(reader.result as string); + reader.onerror = () => reject(reader.error); + reader.readAsDataURL(file); + }); +} + +/** + * Read a file as UTF-8 text + * @param file - The file to read + * @returns Promise resolving to the text content + */ +function readFileAsUTF8(file: File): Promise { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => resolve(reader.result as string); + reader.onerror = () => reject(reader.error); + reader.readAsText(file); + }); +} + +/** + * Process uploaded files into ChatUploadedFile format with previews and content + * + * This function processes various file types and generates appropriate previews: + * - Images: Base64 data URLs with format normalization (SVG/WebP → PNG) + * - Text files: UTF-8 content extraction + * - PDFs: Metadata only (processed later in conversion pipeline) + * - Audio: Base64 data URLs for preview + * + * @param files - Array of File objects to process + * @returns Promise resolving to array of ChatUploadedFile objects + */ +export async function processFilesToChatUploaded(files: File[]): Promise { + const results: ChatUploadedFile[] = []; + + for (const file of files) { + const id = Date.now().toString() + Math.random().toString(36).substr(2, 9); + const base: ChatUploadedFile = { + id, + name: file.name, + size: file.size, + type: file.type, + file + }; + + try { + if (getFileTypeCategory(file.type) === FileTypeCategory.IMAGE) { + let preview = await readFileAsDataURL(file); + + // Normalize SVG and WebP to PNG in previews + if (isSvgMimeType(file.type)) { + try { + preview = await svgBase64UrlToPngDataURL(preview); + } catch (err) { + console.error('Failed to convert SVG to PNG:', err); + } + } else if (isWebpMimeType(file.type)) { + try { + preview = await webpBase64UrlToPngDataURL(preview); + } catch (err) { + console.error('Failed to convert WebP to PNG:', err); + } + } + + results.push({ ...base, preview }); + } else if ( + getFileTypeCategory(file.type) === FileTypeCategory.TEXT || + isTextFileByName(file.name) + ) { + try { + const textContent = await readFileAsUTF8(file); + results.push({ ...base, textContent }); + } catch (err) { + console.warn('Failed to read text file, adding without content:', err); + results.push(base); + } + } else if (getFileTypeCategory(file.type) === FileTypeCategory.PDF) { + // PDFs handled later when building extras; keep metadata only + results.push(base); + + // Show suggestion toast if vision model is available but PDF as image is disabled + const hasVisionSupport = supportsVision(); + const currentConfig = settingsStore.config; + if (hasVisionSupport && !currentConfig.pdfAsImage) { + toast.info(`You can enable parsing PDF as images with vision models.`, { + duration: 8000, + action: { + label: 'Enable PDF as Images', + onClick: () => { + settingsStore.updateConfig('pdfAsImage', true); + toast.success('PDF parsing as images enabled!', { + duration: 3000 + }); + } + } + }); + } + } else if (getFileTypeCategory(file.type) === FileTypeCategory.AUDIO) { + // Generate preview URL for audio files + const preview = await readFileAsDataURL(file); + results.push({ ...base, preview }); + } else { + // Other files: add as-is + results.push(base); + } + } catch (error) { + console.error('Error processing file', file.name, error); + results.push(base); + } + } + + return results; +} diff --git a/tools/server/webui/src/lib/utils/svg-to-png.ts b/tools/server/webui/src/lib/utils/svg-to-png.ts new file mode 100644 index 0000000000..4ab4efe7b9 --- /dev/null +++ b/tools/server/webui/src/lib/utils/svg-to-png.ts @@ -0,0 +1,71 @@ +import { MimeTypeImage } from '$lib/enums/files'; + +/** + * Convert an SVG base64 data URL to a PNG data URL + * @param base64UrlSvg - The SVG base64 data URL to convert + * @param backgroundColor - Background color for the PNG (default: 'white') + * @returns Promise resolving to PNG data URL + */ +export function svgBase64UrlToPngDataURL( + base64UrlSvg: string, + backgroundColor: string = 'white' +): Promise { + return new Promise((resolve, reject) => { + try { + const img = new Image(); + + img.onload = () => { + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d'); + + if (!ctx) { + reject(new Error('Failed to get 2D canvas context.')); + return; + } + + const targetWidth = img.naturalWidth || 300; + const targetHeight = img.naturalHeight || 300; + + canvas.width = targetWidth; + canvas.height = targetHeight; + + if (backgroundColor) { + ctx.fillStyle = backgroundColor; + ctx.fillRect(0, 0, canvas.width, canvas.height); + } + ctx.drawImage(img, 0, 0, targetWidth, targetHeight); + + resolve(canvas.toDataURL(MimeTypeImage.PNG)); + }; + + img.onerror = () => { + reject(new Error('Failed to load SVG image. Ensure the SVG data is valid.')); + }; + + img.src = base64UrlSvg; + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + const errorMessage = `Error converting SVG to PNG: ${message}`; + console.error(errorMessage, error); + reject(new Error(errorMessage)); + } + }); +} + +/** + * Check if a file is an SVG based on its MIME type + * @param file - The file to check + * @returns True if the file is an SVG + */ +export function isSvgFile(file: File): boolean { + return file.type === MimeTypeImage.SVG; +} + +/** + * Check if a MIME type represents an SVG + * @param mimeType - The MIME type to check + * @returns True if the MIME type is image/svg+xml + */ +export function isSvgMimeType(mimeType: string): boolean { + return mimeType === MimeTypeImage.SVG; +} diff --git a/tools/server/webui/src/lib/utils/text-files.ts b/tools/server/webui/src/lib/utils/text-files.ts new file mode 100644 index 0000000000..496f5c79e4 --- /dev/null +++ b/tools/server/webui/src/lib/utils/text-files.ts @@ -0,0 +1,83 @@ +/** + * Text file processing utilities + * Handles text file detection, reading, and validation + */ + +import { FileExtensionText } from '$lib/enums/files'; + +/** + * Check if a filename indicates a text file based on its extension + * @param filename - The filename to check + * @returns True if the filename has a recognized text file extension + */ +export function isTextFileByName(filename: string): boolean { + const textExtensions = Object.values(FileExtensionText); + + return textExtensions.some((ext: FileExtensionText) => filename.toLowerCase().endsWith(ext)); +} + +/** + * Read a file's content as text + * @param file - The file to read + * @returns Promise resolving to the file's text content + */ +export async function readFileAsText(file: File): Promise { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + + reader.onload = (event) => { + if (event.target?.result !== null && event.target?.result !== undefined) { + resolve(event.target.result as string); + } else { + reject(new Error('Failed to read file')); + } + }; + + reader.onerror = () => reject(new Error('File reading error')); + + reader.readAsText(file); + }); +} + +/** + * Heuristic check to determine if content is likely from a text file + * Detects binary files by counting suspicious characters and null bytes + * @param content - The file content to analyze + * @returns True if the content appears to be text-based + */ +export function isLikelyTextFile(content: string): boolean { + if (!content) return true; + + const sample = content.substring(0, 1000); + + let suspiciousCount = 0; + let nullCount = 0; + + for (let i = 0; i < sample.length; i++) { + const charCode = sample.charCodeAt(i); + + // Count null bytes + if (charCode === 0) { + nullCount++; + suspiciousCount++; + + continue; + } + + // Count suspicious control characters (excluding common ones like tab, newline, carriage return) + if (charCode < 32 && charCode !== 9 && charCode !== 10 && charCode !== 13) { + suspiciousCount++; + } + + // Count replacement characters (indicates encoding issues) + if (charCode === 0xfffd) { + suspiciousCount++; + } + } + + // Reject if too many null bytes or suspicious characters + if (nullCount > 2) return false; + if (suspiciousCount / sample.length > 0.1) return false; + + return true; +} diff --git a/tools/server/webui/src/lib/utils/thinking.ts b/tools/server/webui/src/lib/utils/thinking.ts new file mode 100644 index 0000000000..11ce871231 --- /dev/null +++ b/tools/server/webui/src/lib/utils/thinking.ts @@ -0,0 +1,90 @@ +/** + * Parses thinking content from a message that may contain tags + * Returns an object with thinking content and cleaned message content + * Handles both complete ... blocks and incomplete blocks (streaming) + * @param content - The message content to parse + * @returns An object containing the extracted thinking content and the cleaned message content + */ +export function parseThinkingContent(content: string): { + thinking: string | null; + cleanContent: string; +} { + const incompleteMatch = content.includes('') && !content.includes(''); + + if (incompleteMatch) { + // Remove the entire ... part from clean content + const cleanContent = content.split('')?.[1]?.trim(); + // Extract everything after as thinking content + const thinkingContent = content.split('')?.[1]?.trim(); + + return { + cleanContent, + thinking: thinkingContent + }; + } + + const completeMatch = content.includes(''); + + if (completeMatch) { + return { + thinking: content.split('')?.[0]?.trim(), + cleanContent: content.split('')?.[1]?.trim() + }; + } + + return { + thinking: null, + cleanContent: content + }; +} + +/** + * Checks if content contains an opening tag (for streaming) + * @param content - The message content to check + * @returns True if the content contains an opening tag + */ +export function hasThinkingStart(content: string): boolean { + return content.includes('') || content.includes('<|channel|>analysis'); +} + +/** + * Checks if content contains a closing tag (for streaming) + * @param content - The message content to check + * @returns True if the content contains a closing tag + */ +export function hasThinkingEnd(content: string): boolean { + return content.includes(''); +} + +/** + * Extracts partial thinking content during streaming + * Used when we have but not yet + * @param content - The message content to extract partial thinking from + * @returns An object containing the extracted partial thinking content and the remaining content + */ +export function extractPartialThinking(content: string): { + thinking: string | null; + remainingContent: string; +} { + const startIndex = content.indexOf(''); + if (startIndex === -1) { + return { thinking: null, remainingContent: content }; + } + + const endIndex = content.indexOf(''); + if (endIndex === -1) { + // Still streaming thinking content + const thinkingStart = startIndex + ''.length; + return { + thinking: content.substring(thinkingStart), + remainingContent: content.substring(0, startIndex) + }; + } + + // Complete thinking block found + const parsed = parseThinkingContent(content); + return { + thinking: parsed.thinking, + remainingContent: parsed.cleanContent + }; +} diff --git a/tools/server/webui/src/lib/utils/webp-to-png.ts b/tools/server/webui/src/lib/utils/webp-to-png.ts new file mode 100644 index 0000000000..16e7a79c47 --- /dev/null +++ b/tools/server/webui/src/lib/utils/webp-to-png.ts @@ -0,0 +1,73 @@ +import { FileExtensionImage, MimeTypeImage } from '$lib/enums/files'; + +/** + * Convert a WebP base64 data URL to a PNG data URL + * @param base64UrlWebp - The WebP base64 data URL to convert + * @param backgroundColor - Background color for the PNG (default: 'white') + * @returns Promise resolving to PNG data URL + */ +export function webpBase64UrlToPngDataURL( + base64UrlWebp: string, + backgroundColor: string = 'white' +): Promise { + return new Promise((resolve, reject) => { + try { + const img = new Image(); + + img.onload = () => { + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d'); + + if (!ctx) { + reject(new Error('Failed to get 2D canvas context.')); + return; + } + + const targetWidth = img.naturalWidth || 300; + const targetHeight = img.naturalHeight || 300; + + canvas.width = targetWidth; + canvas.height = targetHeight; + + if (backgroundColor) { + ctx.fillStyle = backgroundColor; + ctx.fillRect(0, 0, canvas.width, canvas.height); + } + ctx.drawImage(img, 0, 0, targetWidth, targetHeight); + + resolve(canvas.toDataURL(MimeTypeImage.PNG)); + }; + + img.onerror = () => { + reject(new Error('Failed to load WebP image. Ensure the WebP data is valid.')); + }; + + img.src = base64UrlWebp; + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + const errorMessage = `Error converting WebP to PNG: ${message}`; + console.error(errorMessage, error); + reject(new Error(errorMessage)); + } + }); +} + +/** + * Check if a file is a WebP based on its MIME type + * @param file - The file to check + * @returns True if the file is a WebP + */ +export function isWebpFile(file: File): boolean { + return ( + file.type === MimeTypeImage.WEBP || file.name.toLowerCase().endsWith(FileExtensionImage.WEBP) + ); +} + +/** + * Check if a MIME type represents a WebP + * @param mimeType - The MIME type to check + * @returns True if the MIME type is image/webp + */ +export function isWebpMimeType(mimeType: string): boolean { + return mimeType === MimeTypeImage.WEBP; +} diff --git a/tools/server/webui/src/main.tsx b/tools/server/webui/src/main.tsx deleted file mode 100644 index 631e96a792..0000000000 --- a/tools/server/webui/src/main.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { StrictMode } from 'react'; -import { createRoot } from 'react-dom/client'; -import './index.scss'; -import App from './App.tsx'; - -createRoot(document.getElementById('root')!).render( - - - -); diff --git a/tools/server/webui/src/routes/+error.svelte b/tools/server/webui/src/routes/+error.svelte new file mode 100644 index 0000000000..8ec48dc01f --- /dev/null +++ b/tools/server/webui/src/routes/+error.svelte @@ -0,0 +1,70 @@ + + + + Error {status} - WebUI + + +{#if isApiKeyError} + +{:else} + +
+
+
+
+ + + +
+

Error {status}

+

+ {error?.message || 'Something went wrong'} +

+
+ +
+
+{/if} diff --git a/tools/server/webui/src/routes/+layout.svelte b/tools/server/webui/src/routes/+layout.svelte new file mode 100644 index 0000000000..58749b9fe5 --- /dev/null +++ b/tools/server/webui/src/routes/+layout.svelte @@ -0,0 +1,176 @@ + + + + + + + + + + + +
+ + + + + + + + {@render children?.()} + +
+
+ + diff --git a/tools/server/webui/src/routes/+layout.ts b/tools/server/webui/src/routes/+layout.ts new file mode 100644 index 0000000000..2d3c0a037c --- /dev/null +++ b/tools/server/webui/src/routes/+layout.ts @@ -0,0 +1,3 @@ +export const csr = true; +export const prerender = false; +export const ssr = false; diff --git a/tools/server/webui/src/routes/+page.svelte b/tools/server/webui/src/routes/+page.svelte new file mode 100644 index 0000000000..2cd2d5c373 --- /dev/null +++ b/tools/server/webui/src/routes/+page.svelte @@ -0,0 +1,19 @@ + + + + llama.cpp - AI Chat Interface + + + diff --git a/tools/server/webui/src/routes/+page.ts b/tools/server/webui/src/routes/+page.ts new file mode 100644 index 0000000000..a984c00457 --- /dev/null +++ b/tools/server/webui/src/routes/+page.ts @@ -0,0 +1,6 @@ +import type { PageLoad } from './$types'; +import { validateApiKey } from '$lib/utils/api-key-validation'; + +export const load: PageLoad = async ({ fetch }) => { + await validateApiKey(fetch); +}; diff --git a/tools/server/webui/src/routes/chat/[id]/+page.svelte b/tools/server/webui/src/routes/chat/[id]/+page.svelte new file mode 100644 index 0000000000..705c0bd927 --- /dev/null +++ b/tools/server/webui/src/routes/chat/[id]/+page.svelte @@ -0,0 +1,81 @@ + + + + {activeConversation()?.name || 'Chat'} - llama.cpp + + + diff --git a/tools/server/webui/src/routes/chat/[id]/+page.ts b/tools/server/webui/src/routes/chat/[id]/+page.ts new file mode 100644 index 0000000000..a984c00457 --- /dev/null +++ b/tools/server/webui/src/routes/chat/[id]/+page.ts @@ -0,0 +1,6 @@ +import type { PageLoad } from './$types'; +import { validateApiKey } from '$lib/utils/api-key-validation'; + +export const load: PageLoad = async ({ fetch }) => { + await validateApiKey(fetch); +}; diff --git a/tools/server/webui/src/routes/page.svelte.test.ts b/tools/server/webui/src/routes/page.svelte.test.ts new file mode 100644 index 0000000000..d8db7cda1e --- /dev/null +++ b/tools/server/webui/src/routes/page.svelte.test.ts @@ -0,0 +1,11 @@ +import { describe, it } from 'vitest'; +import { render } from 'vitest-browser-svelte'; +import Page from './+page.svelte'; + +describe('/+page.svelte', () => { + it('should render page', async () => { + render(Page); + + // todo - add tests + }); +}); diff --git a/tools/server/webui/src/stories/ChatForm.stories.svelte b/tools/server/webui/src/stories/ChatForm.stories.svelte new file mode 100644 index 0000000000..6a0fc08701 --- /dev/null +++ b/tools/server/webui/src/stories/ChatForm.stories.svelte @@ -0,0 +1,182 @@ + + + { + mockServerProps(mockConfigs.noModalities); + + const textarea = await canvas.findByRole('textbox'); + const submitButton = await canvas.findByRole('button', { name: 'Send' }); + + // Expect the input to be focused after the component is mounted + await expect(textarea).toHaveFocus(); + + // Expect the submit button to be disabled + await expect(submitButton).toBeDisabled(); + + const text = 'What is the meaning of life?'; + + await userEvent.clear(textarea); + await userEvent.type(textarea, text); + + await expect(textarea).toHaveValue(text); + + const fileInput = document.querySelector('input[type="file"]'); + const acceptAttr = fileInput?.getAttribute('accept'); + await expect(fileInput).toHaveAttribute('accept'); + await expect(acceptAttr).not.toContain('image/'); + await expect(acceptAttr).not.toContain('audio/'); + + const fileUploadButton = canvas.getByText('Attach files'); + + await userEvent.click(fileUploadButton); + + const recordButton = canvas.getAllByRole('button', { name: 'Start recording' })[1]; + const imagesButton = document.querySelector('.images-button'); + const audioButton = document.querySelector('.audio-button'); + + await expect(recordButton).toBeDisabled(); + await expect(imagesButton).toHaveAttribute('data-disabled'); + await expect(audioButton).toHaveAttribute('data-disabled'); + }} +/> + + + + { + mockServerProps(mockConfigs.visionOnly); + + // Test initial file input state (should accept images but not audio) + const fileInput = document.querySelector('input[type="file"]'); + const acceptAttr = fileInput?.getAttribute('accept'); + console.log('Vision modality accept attr:', acceptAttr); + + const fileUploadButton = canvas.getByText('Attach files'); + await userEvent.click(fileUploadButton); + + // Test that record button is disabled (no audio support) + const recordButton = canvas.getAllByRole('button', { name: 'Start recording' })[1]; + await expect(recordButton).toBeDisabled(); + + // Test that Images button is enabled (vision support) + const imagesButton = document.querySelector('.images-button'); + await expect(imagesButton).not.toHaveAttribute('data-disabled'); + + // Test that Audio button is disabled (no audio support) + const audioButton = document.querySelector('.audio-button'); + await expect(audioButton).toHaveAttribute('data-disabled'); + + // Fix for dropdown menu side effect + const body = document.querySelector('body'); + if (body) body.style.pointerEvents = 'all'; + + console.log('✅ Vision modality: Images enabled, Audio/Recording disabled'); + }} +/> + + { + mockServerProps(mockConfigs.audioOnly); + + // Test initial file input state (should accept audio but not images) + const fileInput = document.querySelector('input[type="file"]'); + const acceptAttr = fileInput?.getAttribute('accept'); + console.log('Audio modality accept attr:', acceptAttr); + + const fileUploadButton = canvas.getByText('Attach files'); + await userEvent.click(fileUploadButton); + + // Test that record button is enabled (audio support) + const recordButton = canvas.getAllByRole('button', { name: 'Start recording' })[1]; + await expect(recordButton).not.toBeDisabled(); + + // Test that Images button is disabled (no vision support) + const imagesButton = document.querySelector('.images-button'); + await expect(imagesButton).toHaveAttribute('data-disabled'); + + // Test that Audio button is enabled (audio support) + const audioButton = document.querySelector('.audio-button'); + await expect(audioButton).not.toHaveAttribute('data-disabled'); + + // Fix for dropdown menu side effect + const body = document.querySelector('body'); + if (body) body.style.pointerEvents = 'all'; + + console.log('✅ Audio modality: Audio/Recording enabled, Images disabled'); + }} +/> + + { + mockServerProps(mockConfigs.bothModalities); + + const jpgAttachment = canvas.getByAltText('1.jpg'); + const svgAttachment = canvas.getByAltText('hf-logo.svg'); + const pdfFileExtension = canvas.getByText('PDF'); + const pdfAttachment = canvas.getByText('example.pdf'); + const pdfSize = canvas.getByText('342.82 KB'); + + await expect(jpgAttachment).toBeInTheDocument(); + await expect(jpgAttachment).toHaveAttribute('src', jpgAsset); + + await expect(svgAttachment).toBeInTheDocument(); + await expect(svgAttachment).toHaveAttribute('src', svgAsset); + + await expect(pdfFileExtension).toBeInTheDocument(); + await expect(pdfAttachment).toBeInTheDocument(); + await expect(pdfSize).toBeInTheDocument(); + }} +/> diff --git a/tools/server/webui/src/stories/ChatMessage.stories.svelte b/tools/server/webui/src/stories/ChatMessage.stories.svelte new file mode 100644 index 0000000000..f9d7d5358c --- /dev/null +++ b/tools/server/webui/src/stories/ChatMessage.stories.svelte @@ -0,0 +1,146 @@ + + + + + + + { + // Phase 1: Stream reasoning content in chunks + let reasoningText = + 'I need to think about this carefully. Let me break down the problem:\n\n1. The user is asking for help with something complex\n2. I should provide a thorough and helpful response\n3. I need to consider multiple approaches\n4. The best solution would be to explain step by step\n\nThis approach will ensure clarity and understanding.'; + + let reasoningChunk = 'I'; + let i = 0; + while (i < reasoningText.length) { + const chunkSize = Math.floor(Math.random() * 5) + 3; // Random 3-7 characters + const chunk = reasoningText.slice(i, i + chunkSize); + reasoningChunk += chunk; + + // Update the reactive state directly + streamingMessage.thinking = reasoningChunk; + + i += chunkSize; + await new Promise((resolve) => setTimeout(resolve, 50)); + } + + const regularText = + "Based on my analysis, here's the solution:\n\n**Step 1:** First, we need to understand the requirements clearly.\n\n**Step 2:** Then we can implement the solution systematically.\n\n**Step 3:** Finally, we test and validate the results.\n\nThis approach ensures we cover all aspects of the problem effectively."; + + let contentChunk = ''; + i = 0; + + while (i < regularText.length) { + const chunkSize = Math.floor(Math.random() * 5) + 3; // Random 3-7 characters + const chunk = regularText.slice(i, i + chunkSize); + contentChunk += chunk; + + // Update the reactive state directly + streamingMessage.content = contentChunk; + + i += chunkSize; + await new Promise((resolve) => setTimeout(resolve, 50)); + } + + streamingMessage.timestamp = Date.now(); + }} +> +
+ +
+
+ + { + // Import the chat store to simulate loading state + const { chatStore } = await import('$lib/stores/chat.svelte'); + + // Set loading state to true to trigger the processing UI + chatStore.isLoading = true; + + // Simulate the processing state hook behavior + // This will show the "Generating..." text and parameter details + await new Promise(resolve => setTimeout(resolve, 100)); + }} +/> diff --git a/tools/server/webui/src/stories/ChatSettingsDialog.stories.svelte b/tools/server/webui/src/stories/ChatSettingsDialog.stories.svelte new file mode 100644 index 0000000000..1e53f70708 --- /dev/null +++ b/tools/server/webui/src/stories/ChatSettingsDialog.stories.svelte @@ -0,0 +1,26 @@ + + + + + diff --git a/tools/server/webui/src/stories/ChatSidebar.stories.svelte b/tools/server/webui/src/stories/ChatSidebar.stories.svelte new file mode 100644 index 0000000000..1b1754f9d3 --- /dev/null +++ b/tools/server/webui/src/stories/ChatSidebar.stories.svelte @@ -0,0 +1,97 @@ + + + { + const { chatStore } = await import('$lib/stores/chat.svelte'); + + waitFor(() => setTimeout(() => { + chatStore.conversations = mockConversations; + }, 0)); + }} +> +
+ +
+
+ + { + const { chatStore } = await import('$lib/stores/chat.svelte'); + + waitFor(() => setTimeout(() => { + chatStore.conversations = mockConversations; + }, 0)); + + const searchTrigger = screen.getByText('Search conversations'); + userEvent.click(searchTrigger); + }} +> +
+ +
+
+ + { + // Mock empty conversations store + const { chatStore } = await import('$lib/stores/chat.svelte'); + chatStore.conversations = []; + }} +> +
+ +
+
diff --git a/tools/server/webui/src/stories/Introduction.mdx b/tools/server/webui/src/stories/Introduction.mdx new file mode 100644 index 0000000000..19d0b28daa --- /dev/null +++ b/tools/server/webui/src/stories/Introduction.mdx @@ -0,0 +1,44 @@ +import { Meta } from '@storybook/addon-docs/blocks'; + + + +# llama.cpp Web UI + +Welcome to the **llama.cpp Web UI** component library! This Storybook showcases the components used in the modern web interface for the llama.cpp server. + +## 🚀 About This Project + +WebUI is a modern web interface for the llama.cpp server, built with SvelteKit and ShadCN UI. Features include: + +- **Real-time chat conversations** with AI assistants +- **Multi-conversation management** with persistent storage +- **Advanced parameter tuning** for model behavior +- **File upload support** for multimodal interactions +- **Responsive design** that works on desktop and mobile + +## 🎨 Design System + +The UI is built using: + +- **SvelteKit** - Modern web framework with excellent performance +- **Tailwind CSS** - Utility-first CSS framework for rapid styling +- **ShadCN/UI** - High-quality, accessible component library +- **Lucide Icons** - Beautiful, consistent icon set + +## 🔧 Development + +This Storybook serves as both documentation and a development environment for the UI components. Each story demonstrates: + +- **Component variations** - Different states and configurations +- **Interactive examples** - Live components you can interact with +- **Usage patterns** - How components work together +- **Styling consistency** - Unified design language + +## 🚀 Getting Started + +To explore the components: + +1. **Browse the sidebar** to see all available components +2. **Click on stories** to see different component states +3. **Use the controls panel** to interact with component props +4. **Check the docs tab** for detailed component information diff --git a/tools/server/webui/src/stories/MarkdownContent.stories.svelte b/tools/server/webui/src/stories/MarkdownContent.stories.svelte new file mode 100644 index 0000000000..c8294ba0d9 --- /dev/null +++ b/tools/server/webui/src/stories/MarkdownContent.stories.svelte @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + { + const { expect } = await import('storybook/internal/test'); + + // Wait for component to render + await new Promise(resolve => setTimeout(resolve, 100)); + + // Find all links in the rendered content + const links = canvasElement.querySelectorAll('a[href]'); + + // Test that we have the expected number of links + expect(links.length).toBeGreaterThan(0); + + // Test each link for proper attributes + links.forEach((link) => { + const href = link.getAttribute('href'); + + // Test that external links have proper security attributes + if (href && (href.startsWith('http://') || href.startsWith('https://'))) { + expect(link.getAttribute('target')).toBe('_blank'); + expect(link.getAttribute('rel')).toBe('noopener noreferrer'); + } + }); + + // Test specific links exist + const hugginFaceLink = Array.from(links).find(link => + link.getAttribute('href') === 'https://huggingface.co' + ); + expect(hugginFaceLink).toBeTruthy(); + expect(hugginFaceLink?.textContent).toBe('Hugging Face Homepage'); + + const githubLink = Array.from(links).find(link => + link.getAttribute('href') === 'https://github.com/ggml-org/llama.cpp' + ); + expect(githubLink).toBeTruthy(); + expect(githubLink?.textContent).toBe('GitHub Repository'); + + const openaiLink = Array.from(links).find(link => + link.getAttribute('href') === 'https://openai.com' + ); + expect(openaiLink).toBeTruthy(); + expect(openaiLink?.textContent).toBe('OpenAI Website'); + + const googleLink = Array.from(links).find(link => + link.getAttribute('href') === 'https://www.google.com' + ); + expect(googleLink).toBeTruthy(); + expect(googleLink?.textContent).toBe('Google Search'); + + // Test inline links (auto-linked URLs) + const exampleLink = Array.from(links).find(link => + link.getAttribute('href') === 'https://example.com' + ); + expect(exampleLink).toBeTruthy(); + + const pythonDocsLink = Array.from(links).find(link => + link.getAttribute('href') === 'https://docs.python.org' + ); + expect(pythonDocsLink).toBeTruthy(); + + console.log(`✅ URL Links test passed - Found ${links.length} links with proper attributes`); + }} +/> diff --git a/tools/server/webui/src/stories/fixtures/ai-tutorial.ts b/tools/server/webui/src/stories/fixtures/ai-tutorial.ts new file mode 100644 index 0000000000..b3b1c24835 --- /dev/null +++ b/tools/server/webui/src/stories/fixtures/ai-tutorial.ts @@ -0,0 +1,164 @@ +// AI Assistant Tutorial Response +export const AI_TUTORIAL_MD = String.raw` +# Building a Modern Chat Application with SvelteKit + +I'll help you create a **production-ready chat application** using SvelteKit, TypeScript, and WebSockets. This implementation includes real-time messaging, user authentication, and message persistence. + +## 🚀 Quick Start + +First, let's set up the project: + +${'```'}bash +npm create svelte@latest chat-app +cd chat-app +npm install +npm install socket.io socket.io-client +npm install @prisma/client prisma +npm run dev +${'```'} + +## 📁 Project Structure + +${'```'} +chat-app/ +├── src/ +│ ├── routes/ +│ │ ├── +layout.svelte +│ │ ├── +page.svelte +│ │ └── api/ +│ │ └── socket/+server.ts +│ ├── lib/ +│ │ ├── components/ +│ │ │ ├── ChatMessage.svelte +│ │ │ └── ChatInput.svelte +│ │ └── stores/ +│ │ └── chat.ts +│ └── app.html +├── prisma/ +│ └── schema.prisma +└── package.json +${'```'} + +## 💻 Implementation + +### WebSocket Server + +${'```'}typescript +// src/lib/server/socket.ts +import { Server } from 'socket.io'; +import type { ViteDevServer } from 'vite'; + +export function initializeSocketIO(server: ViteDevServer) { + const io = new Server(server.httpServer || server, { + cors: { + origin: process.env.ORIGIN || 'http://localhost:5173', + credentials: true + } + }); + + io.on('connection', (socket) => { + console.log('User connected:', socket.id); + + socket.on('message', async (data) => { + // Broadcast to all clients + io.emit('new-message', { + id: crypto.randomUUID(), + userId: socket.id, + content: data.content, + timestamp: new Date().toISOString() + }); + }); + + socket.on('disconnect', () => { + console.log('User disconnected:', socket.id); + }); + }); + + return io; +} +${'```'} + +### Client Store + +${'```'}typescript +// src/lib/stores/chat.ts +import { writable } from 'svelte/store'; +import io from 'socket.io-client'; + +export interface Message { + id: string; + userId: string; + content: string; + timestamp: string; +} + +function createChatStore() { + const { subscribe, update } = writable([]); + let socket: ReturnType; + + return { + subscribe, + connect: () => { + socket = io('http://localhost:5173'); + + socket.on('new-message', (message: Message) => { + update(messages => [...messages, message]); + }); + }, + sendMessage: (content: string) => { + if (socket && content.trim()) { + socket.emit('message', { content }); + } + } + }; +} + +export const chatStore = createChatStore(); +${'```'} + +## 🎯 Key Features + +✅ **Real-time messaging** with WebSockets +✅ **Message persistence** using Prisma + PostgreSQL +✅ **Type-safe** with TypeScript +✅ **Responsive UI** for all devices +✅ **Auto-reconnection** on connection loss + +## 📊 Performance Metrics + +| Metric | Value | +|--------|-------| +| **Message Latency** | < 50ms | +| **Concurrent Users** | 10,000+ | +| **Messages/Second** | 5,000+ | +| **Uptime** | 99.9% | + +## 🔧 Configuration + +### Environment Variables + +${'```'}env +DATABASE_URL="postgresql://user:password@localhost:5432/chat" +JWT_SECRET="your-secret-key" +REDIS_URL="redis://localhost:6379" +${'```'} + +## 🚢 Deployment + +Deploy to production using Docker: + +${'```'}dockerfile +FROM node:20-alpine +WORKDIR /app +COPY package*.json ./ +RUN npm ci --only=production +COPY . . +RUN npm run build +EXPOSE 3000 +CMD ["node", "build"] +${'```'} + +--- + +*Need help? Check the [documentation](https://kit.svelte.dev) or [open an issue](https://github.com/sveltejs/kit/issues)* +`; diff --git a/tools/server/webui/src/stories/fixtures/api-docs.ts b/tools/server/webui/src/stories/fixtures/api-docs.ts new file mode 100644 index 0000000000..7b499956f8 --- /dev/null +++ b/tools/server/webui/src/stories/fixtures/api-docs.ts @@ -0,0 +1,160 @@ +// API Documentation +export const API_DOCS_MD = String.raw` +# REST API Documentation + +## 🔐 Authentication + +All API requests require authentication using **Bearer tokens**. Include your API key in the Authorization header: + +${'```'}http +GET /api/v1/users +Host: api.example.com +Authorization: Bearer YOUR_API_KEY +Content-Type: application/json +${'```'} + +## 📍 Endpoints + +### Users API + +#### **GET** /api/v1/users + +Retrieve a paginated list of users. + +**Query Parameters:** + +| Parameter | Type | Default | Description | +|-----------|------|---------|-------------| +| page | integer | 1 | Page number | +| limit | integer | 20 | Items per page | +| sort | string | "created_at" | Sort field | +| order | string | "desc" | Sort order | + +**Response:** 200 OK + +${'```'}json +{ + "data": [ + { + "id": "usr_1234567890", + "email": "user@example.com", + "name": "John Doe", + "role": "admin", + "created_at": "2024-01-15T10:30:00Z" + } + ], + "pagination": { + "page": 1, + "limit": 20, + "total": 156, + "pages": 8 + } +} +${'```'} + +#### **POST** /api/v1/users + +Create a new user account. + +**Request Body:** + +${'```'}json +{ + "email": "newuser@example.com", + "password": "SecurePassword123!", + "name": "Jane Smith", + "role": "user" +} +${'```'} + +**Response:** 201 Created + +${'```'}json +{ + "id": "usr_9876543210", + "email": "newuser@example.com", + "name": "Jane Smith", + "role": "user", + "created_at": "2024-01-21T09:15:00Z" +} +${'```'} + +### Error Responses + +The API returns errors in a consistent format: + +${'```'}json +{ + "error": { + "code": "VALIDATION_ERROR", + "message": "Invalid request parameters", + "details": [ + { + "field": "email", + "message": "Email format is invalid" + } + ] + } +} +${'```'} + +### Rate Limiting + +| Tier | Requests/Hour | Burst | +|------|--------------|-------| +| **Free** | 1,000 | 100 | +| **Pro** | 10,000 | 500 | +| **Enterprise** | Unlimited | - | + +**Headers:** +- X-RateLimit-Limit +- X-RateLimit-Remaining +- X-RateLimit-Reset + +### Webhooks + +Configure webhooks to receive real-time events: + +${'```'}javascript +// Webhook payload +{ + "event": "user.created", + "timestamp": "2024-01-21T09:15:00Z", + "data": { + "id": "usr_9876543210", + "email": "newuser@example.com" + }, + "signature": "sha256=abcd1234..." +} +${'```'} + +### SDK Examples + +**JavaScript/TypeScript:** + +${'```'}typescript +import { ApiClient } from '@example/api-sdk'; + +const client = new ApiClient({ + apiKey: process.env.API_KEY +}); + +const users = await client.users.list({ + page: 1, + limit: 20 +}); +${'```'} + +**Python:** + +${'```'}python +from example_api import Client + +client = Client(api_key=os.environ['API_KEY']) +users = client.users.list(page=1, limit=20) +${'```'} + +--- + +📚 [Full API Reference](https://api.example.com/docs) | 💬 [Support](https://support.example.com) +`; diff --git a/tools/server/webui/src/stories/fixtures/assets/1.jpg b/tools/server/webui/src/stories/fixtures/assets/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8348e38780de3332ba2e1d39fdb81fd8bba92389 GIT binary patch literal 44891 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 literal 0 HcmV?d00001 diff --git a/tools/server/webui/src/stories/fixtures/assets/beautiful-flowers-lotus.webp b/tools/server/webui/src/stories/fixtures/assets/beautiful-flowers-lotus.webp new file mode 100644 index 0000000000000000000000000000000000000000..6efcffc3b82b16b3cb3408d3782c6ac114ee7679 GIT binary patch literal 817630 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
Kze1mj0<9FyqU&ZiWaW`+{IotL?4CG62=- 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

}8&o)s zLO}-U4^*@Hp}FRFZ9ou$xb5BRljUh>rE-Hep&q7HS7^9lX?_5yec-Kj9O#TJy%P~ri@11Fvtcd_Np4Biz9 z#7qaX(yc)}Y%w7!s5m?I@qkT^3$cHdo`Hs}_ICH%qxA^>E5)7~T0R$Ws3CLxw_*8* zzi_(|C)9-hUOiizIGjh58+K5-`J-4YW(=!+os>07%%MEFF@Srn!TU<_?6b2eCc9_2 z=m_x6HZHBb9Py3dbkaa72H*4HP{!w?CavYyG5&QmgZy2;Z>q_zkq zG2!0lmrm6g08MnO$Vn~;3#CdJ=pbUJc}p$TF8wTQMW6&*-w%YOOi97>K}$9?aIKRB zXpHN0U!OsCBqx>y7*?#neW>cyM(`Cp2CdbR*Yuem@3~>6fM}2RH14LrvJ`n=quxEz zK1MlXzsn+-Lm{o9Ed|3SnhYW!8lzy*`g( zJfm93^BI57My#`udLB%meyNBK=Ppq_&)Uxb;gw&SGe-Swt#D7il-3M5r%f-Rwqy*<|JJY*={v0}# zqQzBrPBJqOftxjXV1>UKTD??czsp-1nD&^byXry0+b2w?Ps_p}=#??0EW0&O;2bcT zAo36X=3MGIdxt7k)}hsX$GUiWTL!Vj4O+ro-nipx3f)3OCQI=>;-JT^ts}1g!QQqR z8wa-nvkwQ6mYqvLs}huaP}lPeBt9o(=fiFCWZ1p|#`G=8VHSLh+RT@*N1Q271iY@} z&(_J+mj%?}8mgoMS~2XKnOcuasut0DD(PFgg?a`?wsGI2omqeEpwRAU^IdlW#zS;4J6Qd=)(ViNlZzs+jkWdL)j(Q~E%{Xly{Wl?wVGou-gkq+{;oDeixU@ zjpPhA^#TFqti5?gV?@sdY3I6g@(xR)zfC`onhAD=`C1&Vke}(H4W*Yb4KyZkXyH;o zQE>*lP5yDmPnOZb_4Vc$9!qO;TYJ#sthV1BpI`SDHES=H+P@T{f<5SSbH@m`N*u1k8b>;1%r& zlqm<-kxRF>#tqkPYxsC ze;Sd4kO>ETDBK)CGt?53=WYT#oPM6dhgC~6$?TBr2T_#)+a(_NmNZeqy0-psN^cqZ zA>9QbOL;7s3ZuC{hMHrX<7*hqdn7Gp zIk2Y^hfy&lZQf%1xhCy*`)uI?c(6387+Z1fQU8l$1xC%J_;}XdLFv1G+s`i3Fc&Pq zFkp1pYf<^47vo05#lRMFG};N9yBGMR2gz}@^f$b?;NIHN+rEabMOmj2lOk`d#y8Q= zEN#dxyc|*0zT$~zWq=uPP(7^8>#VpzxWlYq9K~tGKHcut2#|GQ0t&F+)ekvULlP3_3Ha$|vO#XA^Q7R6^z)oAJ;<$@Tviu9TI58MZ zfwLhF@e7n(q3py$&+Nj_WfD+)S5m+`Y?G^|Zz}Od92+UxyO*FMHO1;}m>3<5mtcCm zBvLvDjWs*mOROVgG2x%rDj*Eb zS?e5ZbggT0o;q-sIPpF-vzzk4qi!=nR%Ho(yq#t=maYeU-0c8LdmRv4f$@`I9ti)9 zSZu=aot0ym&?VaM%8r#!t;nfg#8|a~RGc|okn0fE&JJo*8)vspT1om^YQV_k@*kJ# zeJx0L*HXr{a?cN)pHfYa;8~~DORzkMvJj6hvSj&9Tj?eSzI}SqIJ4X*AVS7Vuc<84 zi4(=lav)v!elFZ;1yaq+#fBG79F+wa)qWWRWviNAS$Bm{2mq)}=_GUQp-Cn)Q9~YG zEwy+_LIs!*@I+a?B*^5F4C}pflt+l@;oKss(tIAzod~`6HZ?pmBPuCs88Raok?x=e z3@czPZ(HbE(~BpaEvUzt!!n zmnej+L}i4fvHqG3yYVdefylttKn)sJol#&ugPus)^^wCr3`65N8#}^m@R|Js;Vmj% zkmfP{;?!9S&z@1Qy2n<7lUiE!wd|GfXz8f^6oRC$B7M4}n94hN-ayQ0jn#i*5|VJB zn!tq-f&mnU41wfv6__oAYI*O=_|KZ{ zVR@bSmrO0N4M6znr8#v0DE72n2gQvzfpw=p{~`D;+@P0bectzM@zx3Op^3Z2;uy9xvZF%^#9JW0>Q z>)ma*SoOHD!2kyQBL_{m);+$ySO#oOVVZHeWAU2(6=EtGWZ(F@0zNw#0@CT6{#W*K zLUoW&BFqh2R1!mcP+dWD_0A!iF|n55*z>lf*bGC;mSW8MI76Y|KUt(-zeKa$)@~jSvSr;5Qp#=YbYu==Tri1!kd`P0BAdh#T8c>M&q<*vqU7-q+l!lo zsrdH8Ax{!1w6X?8X`rr^3*s|RWa}va2_eGQVA&+R9>nONGJBg{sUxbXSI3$8_`J_E zQ#eg_`yxOmL+EtOr#eQ1vx%)j;>C-fO1#=;&ZcLnRu6=brDyreKeqAP5={?c0I+U? zkn-eD9j(JY9@ZR_O#T@P+outIr>=!~+THg47ROH-M*)=A!3tu3j>K#d{2)^DP}8yC z@d4Ir+z$M55#U-6=~K?7z0IbXk`z%&pr_41xgAYP!MfD|;z0|nB{T;Z_h=4418d%Z zVijNj3@$o#e?9Cu>{tLFfMZ6X066frm4IEg_HaaxF0Lz*aiIZW<(u)UPb6{YZL_iFPVZtbn)YaX`Vn}RtA9wQ>+I3SHJ^Pe*44y@BO5ejf zhzdHu>>G``>8?7s;*G2|z}VcuuVh!xG$on+t03?AtC&7T4c_7hqr=*Nf zDw`xgWH*CBG9@lJSA?~`nv+}SO-{|ScYgpP^?B_|p|THC_R_R-+BUrqAczbqGFE@{ zIhn0jG++Hsb+LyjHl@%RiC)h%F1xQ8YGPzH}#5< z3o%qaCNUww!5F7_=i6TXf~%C|Ugq9QPbj^2dAQ(9Kj4I}7I}MGZ7Yd`QL})ha|z#Q za>N8-Q(Mo|nhI$sIW&0;LGf$gaj~iFIH#_#+`C90$rg4@7UWsbCQZ;0i91DUZM`*I z*c_F)+kZSdGjw{3!4pj-!Bu3(_cm>Fbl6IgL9D9Z3{se>p^w&oDIyDq+!M|nvpBXS zL8Z1S_fTw8=4JsBi6Hep+3o z99pCLzo|14QGou1W)A69FRFkOQKsmMIs?UB_OiTsZ*!OsqD>E@h>TqueA9Fl zq>g0WWbsWoI1Wm{L8mi8vJe)>Oz)Q=TAfkL3fyN*{xq#tOs+x-M%#YnMhA1x<}+XP ziCPd89Y*KfX2dxQpkTSjb_w~*hQ<1%&ozszuI;3G^wtEr>)=vUVH7UJ-L>oju(Ku! zzQ&wiOnKAb(IwIcLrwrMi?nyd^R$z2I)cP)|BMdl%{wuzl>z+!vWya^-u8y+bW33_ z-U5FrDM!w|k*aO24SY6U$P=8sWHqv=l``Y=&bfKvm|K4yc2J_%S><67p<~WFvW{!)P|U=!--)UVNaAWX9tY`8us1C*Ui;S1I1WpmSuu{!0G>q z!QltGQ`7)wz*}LujeB`4?Ls6qLz{@PKB)`QKb~WQ0n`8gzx`D$8z(GG^Y2Ut{JwmK z_%7%g_`-0Z`}-$xEx~+KV&)VID|3m+C zAhMhPhryd?y00pHY^V4zqzGng8HMEuuBX}34S_O)@mlGc!@c@b!wRIHF%lR|ZwwnA zfHw{}MKsYi>cWtz|8|SOUY2}NUhaoQpuHj@Z6ht!lCAFZIHHzHDiYur6~?1?9VB-j z#xQn|aoQ<_dUer!5?hKNoT8YY6fFbW?{`P^hmt(4B7|3 zCO=}W_x7a0!9afdmKg>Ybm+}Qx^U#nj!PpkpbRrRHB>iV(*s`h5(?RQE;N&n`S=lF!TKS<{Zd_=7lD8&^RH2J4AG%KEVk#X2P zeudroYa>f*)m}8uvqLoko<&AF9{EL|Tu^dgAL_@1mVLIL0X|(BSVj$TnOtRdx$f*Fk`-^}<0%Uh@%v(>q z$oDu)aW$4oNDiagAoixY!89LV`;B|1O46$v1sEL%e-1Qi`Q-BM;2SNL?-#dFmWSC? zXM($|;Dn7JhrO*A!Jnnob&Z8ZaG$+R19j>V(UDw3TmL#dpzSb?T3pH0r2h+2by1lw z$gj*0ftLh{KB5NZaHIe7m;CfWDkA9Smh zO>gm)s5v;o__Tv=j>$MG5)rj`WHCu^p04Awi2{y3en1AE@Z=;u9jcv~%G1Nke9~NY zdjiYLk87qUY;r~>Cp8cqTJbO^+PUxl>uZ0x(OrS7@vk1P>5G!EVMb*A9Pqg>kmc{X z&;=l{iuVbPY7(t{|J1JH{{Y$61a1?$&#b+<%}#Lu1s_4CBN;|r$Tftpz>;o<4*$+M zjq7e}+gKYoEWo>MUxlG3-QGIjl!I-izt`zRmu)7zMu zM?z(d5Ld7=&iK7kc$#s#mRj~NT6X7d3kzucIDxxua{nQOTT)Nsd6-th!2=!TS7sWk zTQ~{YI%0N49(b(K+#X~o0i1ILrBoD-5YfK^4a^V!jFNzFtw#&$+!noopBqzz*NoVh z#f!-!^At|jF;u!z&?y(JB!j-4VgP#IS=l0EBA;nYkj2h@cm#=3Cu^npXJQ(MJbn)N zz(A1l@=B$U556`14>ot@q%`$G_2`CqnR;@v0%fumZH-}pSRVdUGa*!sdd3Cw9b((T5H)!)~mcC&);IP^g zcO^j~TA(qWf+&h~PDmuKzCb1}Sl9U_r7-&*r71lEm4FE6f&EY0R_YOe)JY@&9eT9+Y+M)hA^ngb5D$nP>cjwZKoSTY)-yuQmQux7 zdWuh}5FWuG-etT%FLla;~PGcwf{(#ZJSLn>z@QKuqU6{Y?J-DcLQQQQ_ zW?KdnaW20000J zlx{aeLOV+vLpNVXH4QEj_iL(G%mAwIOp-dS5hWNK%4eeKjNqSmh=o?%S>5&9eqf8Y zTe++>yFc_C3uKkN@UA8r+1?hd)J~WetbKb}i(Ki5eMRYCtO^7)|JH1^kXl9|M7G4o zC#rfwZ^pt;;uF7~n$*x&Yazd*kI)e}-!vNviFE3%w4CscDsi&gvP7xu8QaF}l#u4!yr>X09QK}i*g9s)2Q^t^ zmNmduKtAoEEK`olXiL~ugEX-O4Z!rQ(N2YdC~nTcb|E5N^kID#>MpPAc| znsUEuzBB}Eqz4QxccA>-c`i%}1&~qX%~fcI!8mf@>YZM40m_P~u`2j31#Nv?D`y#u z3>B1B9}dePudHAd+|?{7)0U;dk~-NM`Uv@Y8Uj>JInA_FMIC$b$$Zn#yDgr8;|PL} zoi4F%t^w#RJ6oSoPFK;k$Xrai3k*;DXMpc-OQ3|Cv?e(zlnzB<%hBC@V0E0V#{bawHz_c(fo5d(RLH6PhG2@>g}U+vAq z4;su3WOO|nSaTZJWj95OaC#1}ku}C(5_}~kMNk=xJeu}>f};XkVwJd-i!jTt5sRDu z4xkxFzrl#7%4Lg&Uk!<%Ow5K^>Fg%biE#~w3HpX}6QygY_}4`AY(?dbT&F|(;BSZA z4R`zU2SrO0Lih+n+jVD3Xta+E?_>ah+iq|A5WtPK8i2(abkG*QT@ z6RQHffCJrPR@Zwvc;??~T;kilv|)lx1s&n_|cN&Ft_?|dqs5lM0rUEYcVDkB4^bzQRrJhG;D&%Sy zLPbTk5c`F;OwluY=Eh5SL6^11bnlIwd;a4Y0%tu#|D?kTdjS}W6jN_cy7=kV&h;dmugfid&RVVsO&?44gm4svOhC7a*dvmvx+kCUi7qWll1Z- zHH%Be?PBAv$&S<*LVq^#8nv@(vf$rQEweEu$ouVos*ItTzZ!1x&B+gWvE_r9Hz5?% zKkZcM8My4gW%69YkmlaS7Eu;>md0JDti;%$Hf)FCPvhbO{XyjFtFo*S<$I3>O2El7 zdMV6N;MJXkN^oA|%}M&ETwetQ#M8_BCo2kp6AHcYJ zuq5h|GgIDn=>RrRP^SzRsc5~^w9-=8LrMA3)ic-vP z&B8*!0|o*^zL)?3dc+)fQSLE-0002a$1fmwkd4$&HQ3X@ObGx06TsVJEU+DH5jgmclMm70SKu5-(ktT3o$*gLkmlEg zSF%cb?v1eeRTy>gecd=IO|xo3r%4qy;v&K%T( zx4i%W8M?nOoQAwOsfG(W;JHJrxBth%fRsyvv`IJJhpM!B#E{i)r&B6%mNKnAR0XX8 z{&bS(6f6fx&%(%yNV9f&KR?`AzX6KY+$q#VJ~v7_jeY$<(9ImKBDq$y%Xj(v{(&%Q z=*{H5N9T%hn;%`{hXg9ZFoAP|N6A<;%TRZNE?~6k&qhO?3}yaC)r}eJ*3Xp-Ise4o z-8JqdL5CDGZgSFKwMs;iw^}73>c^b*l9pO|1X;@H0uCk|R~+t*F)u(yhg3oSx~MZyc$6dHh_4ODl<4{y~CH@K%Nc;nK*S}MR9g339><2n4ulffbEF> zV)hI-DtzLM@Tl37gyXNhbB@7NsyL=;%%mUoNO}@?(Sd-x61D&q3-r$EiPJ~_a9NS{!@>NU zVcX96&~2!xy0?jC5kJ4FC?%(Nk>-p+-LCX(x~drl$fYPn*&(mP5hp;*i*AFTs}&)@ z#xG-AN3F2UKtD7AaWOzpdH^@M=MPM(zrJyCQ}+vi3^pIBMh=m)hXk3^2CjbnhWyx`_dn&7 z3Zv2Eg-|NtX@)<_w=!eBNNO9TOP~E7VV~nK^cofp(`44V=qE)X?b@E$0e1@7D#yEL z?)_v8+cKF%@$3mJ2g`C`sg8N4R3B)DvI3<%Xbx(F+#6I%2D2OzDgyLu!lw+fhpjRG znOM6wh8T2FVS-X!mf1t*BTyx)bOoEPt;IjZj-pxn_TB!EgF;(i&t(?I7;4Od3%fL3 zYQDviq%{J=P4+8L=v<8{2mcU8k}nf@k*lkJcpFXOc zddVlo?|ncZsZKks?kCrm5hZ!5-LPBcg^vS6V7}aMmDXyB9Xn`ZkVA=W&31TeSI|*#D3FAE|k04uk?b~ zcRjsp0iJsWi27(k*gkZ+DCJd+hXbE)HD*_YIaQr0TBCU$HL}LH;laI5b_s}>6!d!~Cl}SG?bo^XIhGoQLxHCDy4k80R=)z0c!qqcK{~3*r`Oo{8=ee7l$)lRajW6@;8+7mJq!SUa_D7j zILFkk0mD-n`}t|Kboc^Qg(oDx*4FeOua{J=;6_6@jh@C3(KI|xA8#Ylh=e5IznN zps7lf$14sfsP?0=z^KMEfs^T2+Ts#zX2%ci|9*r-B<~^=`QI!;=?{I#i2DFo9t{Ii zI<|u%futU8>}k1Gh!GRK-|hMG$%=A{hW3QOOWKI+14D9^{jP>eKco3LPizv|aUD)Oifu9?zyYLAeN+=^-gv21=WJ z%1Mh*!I+d3im_->jxrGS*=UL+-ooI>Q2+xXGNbHpf{*g-DaTpRe7Tuf($>^~tsWy_ z0r4&cDJw6*3XY;{TJQ!qLxU!BEC2uk+U4rCm3RR^n3gpGnf|i;l4@|k*t5V80`CZs zbwNM?5NOU_q0P7h&3aGJ0Of3f2p1Szl7fH$0q;ls^79T>W1)Kx)@|AqLDXpJ3%4SZ zbb##~*1`t9GIhZCTbF*MfiNzvJws^%j0~kYws>g7O|=Js!WWsB;W2ab1n_RSz+xUm{~(~)l#Yo#VAlgIiOR{NDUScN4x#6fCz1(83HMu0N#JL zRlaMp=}UP?3mjKA-GbpqSz@2yX&V6&o4HWcXU_pCM|(3645vh9q$1ST#)I+OHx+JZWabANdmU1z;AZZlJ09Qb$zhAH1G30!UKJwURo+gsq z!s5nP6>Q(8G+soMW=tYPAx|UFPID z5d=Amk*ADJfQ~ufp-}^cr%8g$Qs%Sa83t-rmKKgJ~lr4HoF7z64;XJsd{ zAXx(Kb@m%4b~r#ymKj3j#=JMa8x;j~gD)Dvu2Q5drk^8(g>~6{M=LuY=iNoXyX*bz z0Wl$HYbdUX(QqwD7z7vI_Ig&!>-wQ4T3X;cDzUR*2P)rT9C5+lXP%bD%>*zqb|%iF zFMn7clB^!!a_v;w8fexQwlg>v$)!e$Wd{&2<<){wPF09DjiS*rK95`AQ*a8|Z`i&^ zJxRC7U@_$XN7y~FZPfzNj;!{M%}PoV^+AxN1?RaHjsihhJSInXPqM;HC}Tmj!H^6V zIGgA=Z8tFSksEmyKmk{cBK0K{p_$SZ@K8wMLuopc?A8b8=|KvN;Wt(vG%x~}6n}aG z%}$2R@ek?A`@OfKFs!Q7<9;fiy;w7fSpx-D7-6(G> zBd&`bWdi^YN>*c=c*2O!AmK_~PtJIC)9i>-*5%U&FH+s$z6x-W4#%i7>2jx_e<2B8eN|&c{)4r$~=(#1UY*Z0Hn&TN3 znSt00hMq(G;!l?uh;k;D$d9{7=u%iMSmcWFQ2b)#@@aN^alO6~^N+VnG;&)^?=@3{x+ z#R%@S_PPmbM2X8oRp3&U=8e>}KDw6+4${pfo|rgf>^bNCo-@6w7OnP>HJ{iQGEPM15yI3AA|V zzJZ4pMG}}S`Lb{jhHOZ#jAh_0!8J3@?!?CAO?g2QDEnId7bQXs`cfqT8J%Y>rVF&b zhGis3)lx&m@_LtZF0CE(s__^A%r5jXiG9~#(1}Ewr(fWsTuh;YkSM1|r@0M>om`wk zW-nEHvVT$^txbz zT+3d$=8#T`h+!xiu>8Wj&~x>bI9E{^24#|N%gB4pS|#f(P5x-=@>*(=n5n_5$xDY! zoRaY=ND}9)(@#~|ccry>ve&(U^3++4)qU%Uw!>F?2i>4KmbDR zjb`nX4YFVs5eJ-Z;N}21LxBE{e*J)W)ro{NqPyvfYb7IND^n}kALf7|rrdJ^j(zcq4i{ZcaJf4hZ!Ul~7eF3!XxN}~z~ zQ_uobc88*1KkQS&vY{Wj#Hz-J=m1AiW;N!1vj*gHmvU(vRDy!^tNmBF9#VT6<`p7%H9U_Bn&)Z|Do^&!xVHJl6u_ztJkKH^&|EZ zNxhRfB*yh7ImruV-Y-A_TZobTxu8AH*ZER%JbaSpKC4Oqf(e|tIF@u>k{vo)CUDp7 zixdtpG*uUU{A`XydjPprCYfM7B~|;dTNf^rp(i2M8j9qQ=dzF%s%$^w zq!v}*+*L4cVgml}ANk*QfBV&@&ZjIoC@}Q^_M<(uw3HjG4RG*hD3jn6)~7t?>>|Mj zPV^4sNKZ+SvJLyw8kex~m`?n@xoLNHYgrMXBwP#({p282BiC4)EEVs)ufr++X)t~z zmGoJM5B-*rfw#|HFOt$1Qy=!Vp7a-eelO%6s~LKM7>4<559u&ZCUYpMevKA*>{0T< z8y8Hv2EqXUr?NKQn=RuBLMf29Sh%03xcpcsI@`PwX{bPl#4;`vrH1yj|BJXA6EG|q z5KrAL@IZ(SxN;7~e&&xNIVXErC}#HSKHX4af;C4xzYrVhZ~x>|kd#qqEGjG##fP>& z{$+EjnbNeDA)IvxBo6J0(EWZDX{b`s;1Z1;c(h@b-S++!c1sep^hHwko8FZYlj#FzaU zf`hx2K{Y6@093sDZGrkEsT~4_-{$OP{;_$#cW4WyEVivEd>FJ|0GJo9$;T1&88$oD zFj=#I|JWM;j~Vl&@zr2lU%>q)K$4{8L{9bx$JzR2J@c2LTOy)tBIe%P0$W;60u(GS zQdyTQu@`JTsR0MSo@A}V011X+WX3^w0tn7x33sFPKl^=NShz3o3h0Jv9JUQx=xq(0 zS->u6$A2Mo@m?AKEd=9}dOd-2>4r#UgJi?;3V$v0JK11gQn={8n=R!3Ew}!-(Rb?P zc#03%LtCcHk%9H^?M>dF&RfP270h;5=f+L0>d%eA5i5%etZEOHa$K6F#RWO{l|=li zpI4Ftm+U4p^Tz)Y>WEd_&Tt;%PAg#;%@;QeWru_yJnX1xh3?j(Jg|0hR%a1=Ibe7z zAyS&mA;;_Y_N7b5Fma#rdXNuRn5Wv(Vg%0W!Z}(F(r&qbGT9U|+5X2O=NvfjwsaEG z>CrCi6ac!{nikM~r(cIWxXyc1?EMQJlrYY_B5CoB2E-B}u}I#EyXa*Hy4jV=7Ip$= z*|?3(jdpC$FpNjT$;%*bH-xI<%NLgn&p&5;C zB1Okt{Hs#qSYv2>&#M4yZy-bf1f|f=er7Dw1557=$}sz0?&vdZAdao#?)%({RE4$M zWD1+?da@J~8<=Rb4KS;HFesQXYqnzBd5eqsppKnC%T{jo7fG52P>=Nqxsm(uH_1@eI&?22j)w*_{u@en2eo`UK`mgf*#@1N$;V!gV#0mj+b{aXUeYq8Frm(oPsZks|~{6 z@C>wVdDW8cg?u#tH;2}3AGR%gZhvlC1(ysYC;SS%ix!j-YlhwSp&Y2@@i><${=uSH42RmSW>(q zH~_TYpu)CD6&TS8TUDzmGVGu1m!2Je4^Jc4ps%ietsmqg=xYK|D7>-B1EsR9G9G9f zmmlUmM8qQ6Spc@ceFX|Y1q{X8L|cz`1x3PI2cM6?GboPIk;Kunk_xC&{2(6EHp8If zhkv3~3?z+kb*}=93ZD9gL+IW#dsL{erM-gOo0)G#M05Y>FkqkqV?x0nB15fQ(tvSm zDFJe>cssG@zrj>s-MX#L^-w|@a0X!I7Kru$b(h1N0L;GlkW+W^^a>|U!g`oirMFGa z$-o>n!vFvZ@qP42B)a0s)9iD8lr+%G$=P55^JFzQ5{<`3Un1t`8szLO&DJv?%)M56 zr|Sio{|)0VCsj)}wI^Jq1ilN#F%zMbfNTfl01_gPU-T0H9A1sgR)Q{3FvLiLSg(xf zJ9FVny9!?78*F&Xi8GWTzQt@u(!KZXr*S*UXg7H0P{b{bk^c$)@5unUYrthM?ujW| z4#W@njxexG8O{*j!|BX`R6|B1d+HPivVj`F1AN8iz$0aj(5%_>m}%a(@^(YMdliUR z@ax>!2JZx8IlUo30!q>zwgI^(+2d&wgLlj!B+mQf)I~4+3stL>N%bhBFjjL~-!sjG zUcfuw8ekgU7K&un!pRhrOE)KoQRTMp(qcy?i?6eZWDC@@J1BP zdexPsE*-PabuPj)q?Zu$f)d|_4iLZ8#Tm7L)WAZYJSIy6F1Xu#b-rRH{=6&M;l*{H z5=A3-yDOm>@pu7?AQ0{-SCm_CCd4libz+j*KjC_R=2GS!C4;MuPvye+O&J7d^1tIII0+rzcR8uNPp{@P2TVs zj{FKJ2L+fm-`5b{T>JR~uU(*D&K(PuCzQ4N*RQhBAS0h~U*bV9Q>4 zbe0l`fF21e<@_#vEYzmgf=6yNYNm`^AP(ADp8(u@<9fPc-l z=L>j7w2PCAy|%9Vo0T(%j97V8&W*?YowK6M>qVdD!IJ6AbvKzjQ+sp_Gzke*jYZzC z2*oKTY^M~!fhb4G2CpX@u;>XR`A_V#8Cd5fC%>E4G{X?at z?-verDKmoK$rzq2eH3P4&9hYi>&HABND!ctb~uXGq1b- zZVMWnJ2xcQVU)Y_XTlI#X z@`=v%zk#oQRh`&bRPtN!G3F7ty?+WWHe`W!R5VF}uSL{1X*)R_lNIfv+c&X{>FX36 z^?b9q&~`^Rp=Q8unz+;q00pyJqHF~ArMl19t%kS?_XVu3E6+n~<1aG<>tAPd9ya*1 z${2KLEN^Pg5L!);WV(9;VLomEsxF$07!dapW=H{cSEVweCG+dxz>WXV8+1W`=4!t zc^iv|0n)Wc6mZtUeai=~A-9CMuS&6=I=6{KG|UR;y+w7cepe*_N!xBey-EjQx8uV* zWF6SNz>~+A=$6BPZN&@noM)b4%Qyw0d{Uvr_Kr#UgqMv=k=GUKpOkf2QSPB?NxqPq ztUR_0__-l=ElQ3lH-805E-WuY=TG)z?ra9E9P*?B=@2PL@Km|!MfbQ}4y4$)h~FTE zf-+u7e2ix|1JylnhS<9;tBs3uPWncpje}1(rR0BW58@d4H=aS8tHlpTE>@NUu2)uX zl;Dw|YoE~Po_Z(Ivsf85?pi^TsCj1F51lmB5?urS&WAf~U^=}{g8E@K-osTT7r&z| z7Y3UOPW}?cYyU`&V5>eduRT1SJPIQB1#;ZCKyE>Y`pMA*;8@!P((<=d<%1CXwe3tT zaSbsLZ&ZvtXpV12bWr5X0Yy7d%OQGLmUVtj8g@KU>WACr zcXz(XZ<1Crev{`!J|igBV8bn1#KQ7;w#GhtxRuH*ew>fhem6b5002u7Z0exUOKoFB zO=BacR&Bbsw5d$GN+4>g1LWeuI1}zAFV#VGN*b2~TOi{x;eM?JXQ+%6qFih2dq~h0 zV`r1Ub}Tlqh4fc22V+1;+i*F2HUZcs8^^dVL9`}55gV&GvzUEh@ibz~)+0w!d1~25 z6O*|#xlXmq6jU`;m?ORjkQJVqR{e5r!=T@qi>wW2v*wzEok~K|mvq%ba!-4Y9vrNp ziBtk zs5=y(x^3nuk7=HjjzLqZZsm)|I~3+vwOtkZFydYnK2#@Ctqs zQT88m>*TS7J#0!bO-&5oJYb}6TmLNLAa0>=Ml|fNUWM@>PPka9I$+hT%kCO70JXHA zC!+^WJxnEF00ko=#DzK9kR`UA00hQctwEROHi*}C;8Jbo7Nh)!sYu%T6_c{`0+sWX z3C7djY+Z{0N1;{oyOEz~{+90Rs8hsYks!r@<4nHuzi{T9tfsnAb4TEzDW|WAY{q+4 z6_xxuTo#9*;glsW{u(rk>H{e)u=leIe`qqVuK{@0luT2ISYIQRd|7$!7~$eHsh~ge=vp>2 z2zUSo6Nu$o+Q%wcC7ArvatG5+yy0BBfli1Dt@;j?$Uxdsl{gYSdOniRkp58!cKQ4$#$u!j z#KTYwWq}%Gx`j4w+^klnA@`mXT&rIF`uU>G*3-BhO&px(UmlndLF;9~uSGcIm<|N; zP`nu4C#L^?|aMK41x-k%`K1qKy=)JwXr$sSaO42y%ywjMyHgk(@`!!WwkzRM; zZiFCXTMF{Wp1c6Edj~Oi^`*D@SAgstzAoLiFcN0^j=3r=+8VoILQ`-9~TFkn#Wy-)U)-2q}++?r=!`%YH z!LGC8<2au&-8e-Ga(GgHqlH@;aPE_~xZ#V8$(1{IviFyLf!N+eUYaHxlR~8wyxW5F zkSq*w@Gjn2K;}Y8*+jK6LT?dpEimdoj=UxS;Y>~g09kvo5Tq$#do~+*FVa;TeOD7n z#g2a@Rs0=)dK!^`3(F-O#6_x5YBA6cTmxjJ%fWXYUV^qU7|Rrqxc-8 z^ZqKpsDn0`I5$wPr-e+k0<9Ulq0uQ)IWBwksV^vm>)DCLn3=@#-{X!GQb%$q$`&+QTq$oz93Vj7V5UzD#(U1Vn+bjzS>hQBxkcmMzZ0BrqB zAagRHdEj{ls7dCx>UaZ)K=72W)tNRCyQ&Fver^QmG-6OGp`>8I9%%<7B6BL+4v8XVz@{qhp8P`fPk)a$Q;9R|67nAsc0>^Hs7^PCc1`U$H5z^N$Cs#&G-PT!*iqtABzE2 zUw3r6GQcYT{|R_TIY_p=%x${s8j~b{w(Il(8z;^fz$x{rjiQRrYRagN$o^mIb}(Gb zH+!DjI~-@?JTrk!xi(lzjfLYudsNUb`Kp&!y;fo+&9ZWMEGubHVrwZjI~fQr^!KJ7B623`haNfUdW^F-rveY~->f z2~RpZywOVPfDmwuE=yDONzI!#GU`Szhaxe&=9rwz*o)Ka7)>~u}8)VQi<%Kk!);q_u`JW1a=h=AI=8ZJb=5l-BNt}?^yc&Ux+y~vcb2CP(3Px|n3vYApv)uw7g zTX)Y#N@gj6&1pfTmwOmO4AkSKL1~J{ng|6R`;GeS35(eeUVKiW*kSpr zV?^wQ4u7+TMZ~B1!_CDuP^AN`3|U+AUxceKq=Z{7o#_B9-9>@XGc`@o4 zDcrc~xPj~mXz%mwF_;xLn9mC>N_HEy*ppY*X*j&V(R{ygG9tkQ&{jZ?N=w)-nwss7plJ|isf4w@hZjJj;`wKroG|px znO{pNnMm-pB@6I%txR7tgC9KK(N7Nvk=j?BuJa``2}%GOw$5P){Rr{XrxZ8hwMAMO zI9nFhp}GT})kD(ZqS@>q0gKA(M9v!s{rVJGjsgxM(XPm@oNGqHS*O8-66s$x5lIjI z#RmNs3oj$}j+a2TVp>)M@G{AHL?DTULJK7yP@w%`y;RUBP(>n0glQ%T#?RbJoSpA9M2%D*O<=>92E2p(gE!)* zi!QF)DY^S|og&{*C#B!FvOVzHPFTmqe`AMc=s4+Uw0BBWc)&c*U=2&=ks(|V&+Rh<)13_00qpVUUsL{qoNPkRu?|w>uDfELVlhOT85`yO27bVXqz-t!?^BqOq zJ@7T!qPA0~!+Q%Fd%7&_nK(7>qqG9#Gsy9Z;IiXhPm&UVL)e*`qdy@dAXRXf-MO@n z8!Dos<@YHge^z0nSKWN+8J2zVf6ULO5{fx~qNeZH0}J)gY5iUNUKD8JmLDn7i-rik zBP)Z4NQrT!f=fL_vKAtzS&Q(G9_zFQ`i+G32;rvn`bgz&br4T-&6)2aG@ zMyQiDk-ig7*^@s&pL8g(Q3|5?HO-&p%IWSao!mVih(r1kREJSfC@PsHr;336s>AJqm*+;>K6Q zuR7R6@st8|V~kC{14r2$;g@Z`m7Ewi$`@+MDy~xT5-~X)+7V8wVEKQv09+siZc0iL zpbRmIm;s)-#1Y1Jod^H`DzV=@#3d!Hzzh@sQHJt*`Kq-XcF5hBidh&pjDQ8$%pD~^ z`G>QLK`0_6aS2w-eGr4mF0MwI^@mW!BOBiHR`u2a>YFl)A#Ry(9dss`T}t)kyBS5= zRaOEXXJbc^ayIuM-^%v%7&zP`!=Co8Z<9s3f&<@eys*#$@~a5)h~uIZXDL7j8rG3n zUd)kO%!!Ep7E%yWHXa!y_?Q1;G4{W#4;GTl4|5c&~K@cmMx{cu>hLrB{&vfCr+f z9=crV`0>5LJ4sY`smJKz4G)#PgN6?fK89jFRQtn{E65ffuc~Tik}bltq5Gd4YY{3s zWWKj1nO@v@WO3(aA>h&7s&dTb^*{swqFOD6bv>s@w2mnnhI&i8;CC;ll zbSSX7!cU&;I|6`GJc^mSl57R`^7(4 zTZt{DcM$Mu!a&|Sh|D=8!@4p4l4s7A5gkL%SO3h0Q#L0cgIh%dzstDiFa%i3eCMzt zC46yIU=`G`gg_6CQf1D!te3ccx2G{}8Cryj_F%zriL-fjJlBR&-IT9B zvlD7nO549`x8o8yTbk59M%HU_5n7dxUu{kyME(E|RW;1~85zgAS0P`QjAhOnxUpI@ z6O)ywew98sYlY%wS$9P31vlrIvlv>7JA=D`5GCaMkho1Z5QC*lNhC zA04=0r~#!S_frs=fQ3B(*ebykR+KiSSMiIbtYwDF9mP1Qsy3C#H>M{nwmrL5{p43R zQUe17_c2JxgT(MHu!>e!#>5KhtG6LLov!%cRqvZncm)^VO$xz%rCQbP)W?-6By3=h zDb`Xt5=-f3&|O52@n|jyNe!w2#xW%NvG;&$Ax;12!O`0#a0t?0XHKuKtM8}D>ZFk( zXBroYGL*N}8S%?tnWc71CbOpzOIQ^=KjLL4&31LwC~LUki4r*unSR1o zFwinT1UHlrw_O`}%Uj2kZCRp822uyPu&^pY#QOn_o}0+Mpjh+nKJ3Jwi&gTG~4O??;y0rY&!6Mvm&Tu%Bs5SY2C;ytLo;MR2-^8~a z+}Opc23%_O7V8Fq*mF_utc}0Ycx(?BBK6SW^(80OY!VP~rNM|SU^;&VrbXz!AOHW5 zs;PQO14@91b<+{v;rC%#DAR+Bp9N-U@sceP=+`ir{tk!+PO&8l3#9RP#04TM*Q^pO zJ^~r@RKOu^^U~-0O7bkvI)pexOmu10%qv3XLJog0uE6U6@u#XnQDbv;B)+CZPG3aG zLDk3{=ySbjB~BLJ000LLQSm%F2xtGWlwev)I3DN|QeE8#@WRI7c3j(Hv%dU-rOza$ zKhu-?HNB+J89st{MUe!S-^6GpH`o{>?-C*k&jvetmkwpy4}bs& za{81^hfRXvG3cw3yTQ@Y|H-)|@s3x8FQG@RW}pG&l*3O|R~saGTd2yRs6b0T6`Vv$ z%^&ox1~31Yw9iE@h50F7g>)Kap&&Mr`v&UkHG<~Ywz1` zgY{|*KN|_SV|SD0A*e8XZOiZ_rF+W^Ef!gcCdLn;=e!>J9e$#EQ`0g!^ssPiFKz;f zcduDC$Bqv9%yx&lZdtQal67pyVI@FP-XXMR>2OC;p%$R4T%v~`Jy;?Gp^dS2!Rz=E zf6F!r+_wNsb7XjRGjNgJ+Ye0qnym;S+|e6MJkTbt$J_QcLgF1_D z%HGwG*=Lz?I|mh+083TI8!Oei>BJ}^oJp5Rm+xLMfp@juBo2k3@MoFy&Cdj!0~i85 zR=e=K7vdFu;lhjST%?Szq=}!dT3WZrly2%-kt!nUzBIB_e8L9>;V6$`w~H8?(tnty zmWVK4-6!fLQ{2_igtK33!?Ce-{?@XXZM)x#%_F&McOlNgZ%I*YObgHpBN|`?2-v5z z66Yy|n=}XL-3up=xgQeElUpU_<#=_W@<9l+F72yaDIv0adr z*$}Ix|DpiBMCf_j<~7W?{sXP8|D_mVPp_YYCWqHZ`y{ovN}+Gt>NJ<{2-w<76^A9g z(0wOxN=(LMT;3v6^%hDE14!EYlnCZej+Sa9gn@l23+%_s-;?*La_1x`6@R?`vp?y6 zD-~r4rF;Zg$&=pJ#>J9ABR+JIW>DD?PAqOA3=cCP* z*Ca6L^c0jGsNrw;vuyg^81L6UOdd=$-nB@&OA)K zN(lj>??SJ0!3{c^hyr|VP!3xt>datt^q}B)!Iz_D6TEkcWh#$6Mopxk{j#vkWwt45 z{JorTbFF$kaB2T|BIU^Bp?910wqO)g5gn;d8;EJS{e{76vqOPm2V@(va=-7#do4BS z{=}@2h3Cg6*WC@2F)_UQzlx)=b9>dGW%s5mD*wJ`(4~Flj9sg3{47Y!mavB8x&)#Vi?ct9A$@3fa9Co4Ojfcj9ENKD+BZb5 zF8VFgg}YH1r>3i#u5zPMk`Kb!4KnDor@l!)^<9Kql?D9~YRi)qvj0Aq&rl_K- z|CwSw%zzBYC9Y1AI1#|g?xDBKyxLZ!0)(_$O0s^|1x_3y_%H;MI?bmcz@gjZ^HURS z=Ol#o6Z#3RoAY^f-5J~vIr^%GlZ63dC@+^y0j0x`*`vzG{lt03Hs6_*Pr#J_@}!e{0SU>l?7CRND7?jvJvy{+Ck zp;nN!ojpSxV?oMgOR|vu#@g2ZOw0TS_5fQ9F=YZX3YUoA4)Ddb=AfcM;~M{gql%kg zyyj<-8K8lq0XtbZQ6#~~P&LD_0FsUnfqIzkBK6|0>l~tXKOSi(H}y|D@S+Ph`}j4@ z?gOH0GrcZ(0|pKA@nKUKg3dXRp=D!N$wahTr3u{4@cpOl$m6ixGDE~wpe3j5nx)u`WrOTvcFlBDG zN5ZbT`S^dmheP*T&R6`jh9t)-a`C^&B6Gu#iIJ0GK@3zIVZML6$5 zL>^W)Kqb;RErUidq;Al={%MD^Um6@!guM|g==I$yR}%}_u+L;Fkspa)0Qq| z)Wn*wNnrce9+X~}7p6A%S3FH0@)MSuaVq%Fn8AzP5h7W1!yj(W-3tMeinrJr++K}} z!a+Ay3tXubpZL$wT#9kD`>vKZ@Mt4Ka1Z|}%cY1>sXVGsafl=Uzuaoo9-Um=>mAcT&#L<;hCg_Do*{8^?ZiyRCPGMS!@hglH_=Q0MZ(svh%t^0n$(km_=?;7EzV%an zGokCP&?v|@8DGi2WE!NS{ctEcWEk*!dejP*KsCmlG+_|(XWn^+?mfY>3Amn_(fB;3 zkwab_dWC+JBZi+Sd)KhOQ;vbG-7VuOIn z30({7#2A8ZHl@qcUj(MQg!8~Hx12HNfa?&1iTc((KRSAcru80SRq;H zCC||OPbR0XW+Hw<=%fi&pp!7zXiANMbq%z4VtVt<2!@mekaE|D%R$1FWch;oa>zYs z)-V78M|uhUDN%Tb4Z{BS$er*Y1GOKlg3UoyxfmTF^o_{Jy+mp@2TtO z`a!bP?}$a+X}y*XwIJk|Yl7-Z@1CF^o#%F*x{}!J%Y}v&+{`eh#z@I@>q#Ic*OH>6 z@_JpUUI|%5c11!X8k8xH&_t8-P%TR29ONb>Lp&>*!;Cc4kw9~o|9>2Ko3YZ)l8Po& z>?t-|#ZcM~Lb5j>p_18PrR9Op>Mv>k@j38OKrTWua(s=Pb|~*Z+`9%|wq<{JV6&mC z6MVEzNU~zFPmN(ezNZ`5D&H|l7+vI}Gg{OJh{bO2FrIH5R<|YBWCQFTd+b!xZ8fP?ll;2Zx$T59P`<| zQ0I+(O2mHq#xqSHj(ojkn1D*XJ*U&X=#z4z42X}kw1j%@3*d%B2>!KIVV}Nt$$gYz zNG#?fIZIItta$ERl>a~SNua}dj77g4BV_wm5fHQuZW$d+#4lhn{ilQ-eoiJ0`#g{? z#4BJMp^;|nl?I`VpPe9zIJ#vI78cGdZsS{fTlmk;F;MC-8Goqn#x0mEKgI-%`F{Q-t* zuLd0V=w?}jp~7RTHP5;Yjvp4g7oFk(C&tHnmUs9paN9H^BI+J-9Nr4i>C$Me_O4=e zHnClb|JRAPq2LeWE>30GnM5?U=(30e0t80Wk=O>B0EII|b2G7TBL#(o^V+HVwS?Pj zOMfzLa~aN>030w%0eLL#M)hj$u1upG+OW{dW5WUnP?%`W41&rapbhycDBcx;LllC7 z?^w)>K(nJMGH2=l@keX=z%Zceba37cJ==WyKATn?DVd||Y;kQ)=Pkp>nZ=L-QUcs| zGac0?6maxGNLT;>DHCK|_*)|Mhl2gBZEuD7M#FQmwhd>+ChswWQBAqDBQh}^H03CA zMW4819;hWl>8i_~!<$#mLp3ts(ZN}kZTxmC$<=x>8x1pr^uxr+7x9P#5C6G3cBT-M z8IP@ufDvb~GY8<)Qd>0b?|SMrWj_UzqmpgFYJcpbk*&rJEx0A>_J!{trPTK72QF(k z0(F#m$YT(;AqS%M$u8**ZzKe4r(3tQJ`|&1^Msi7&Co;1F#1?y$490MpTv#Rs9+M5 zIu+=-sCvEX`WkX8@?}=h!odVz%f8Z&>{uxCZ_zs2>ty7if3>RPE9 z3VYWf0}p>DITvNNT{U&}9IuXOkBpD|~BA$hCR2ffEZMfalXv zqI7u&uB3Ojx&Fj&i0NtrLZ=4^c4CJKw_l=T?H;x3tr<$Dz45G}4mqZa06Sk5+fR;J z>w=K#C0Scy_b#b-DH7Z$t@8v?7Di`83J2yy8H!%?Iu_aSj^nY;{opbcUBD=^^ESBu z@t^r;4z;B~rMym-O%Cez^R)0M(O@nlUF-Y{9>~ISAg7%>pq06-8?7)-&y*FV zqk?H~BUz?#Wdv1&Vy2KP7V2LovF?c0=8YJ>QIYn856%AGwP}&5dpQTeSF(%@f-ZAR ziHys;8UooMo{1Y{k@)Y~NmAau<^?(05SF^^NPh}qB_S1R;zrN}xWzo2ET|d6m46Hi zSaFqjZg)>_CJ)~8cAhLHlDVE*@c`ffyErkygs6PnU;qbSyxpIL$N~n-aF0b0ILU^w z$4Ph$VPV2}<$02Y#5;mgM5zE8#1ZE|-?-d<6;dTk=&^A=)(lL5%f{Wa-EC8ympOD4 zkhsK+YYCan@FzgJhdl6LyRY~E%nOou5}*Pi?7zeM6pCyB4o-)(N#$WCe+c?QY&!yg zCAYvvNravOZ%4pXUn0z>s{8;SSwyt}BWWYR0=9%i;{yqC0DNSCWKYDTQDF-8Sz}@- zqQscgHN3IV!gIV~=%`x8M36HUbU_GeR*hB!io91c-1MspvGhVMM^a z^qun~d5iKrvL{8leZtBZViycgK;?3(o=R2A@rSTMrW%uz+X98YNTn7OL~pZ5ZFP6l zeE8E_vb5)pEv~VZ2X2C2)65v9>2i0V$j_0@(5spEq=s$g(YAj&A@v6Iw_|Dj2f#qk zE6z*h$*XktEB{;NkQGf;nckBORtYoM!{^}ZC7OQ0s(O$y5ikQ2{h$)m zn+%QPrWYo76TBQpKDxlEa~Nd#a}ME!Pa3DDk#sYm@LCHsg+Ao-NpGTsin<|zTi}}s z5WNT!M3Rk{sv-oip8Ca-P;H2{<#bdy+uMg+JBawuiKJ$JhZDgSYc}+Fc#C$dtPWYm zoIqRaAQZ}}VfAiD$pDB`gRYy{6wIRaTT55ldMSqpwI^moE&f6wBUw( z7?2rR#T@jL0H^B(WKWC*y>>G_W1eL7R4{z+g-v$pHtAtfOY&)%Gya_h3B zIm`tyc07tusw~eJueFM^Dh;cSu{+GwS#S}G8Nv8G=#+I6GnmkpA8>=u9QGuCm6j&H zgQ=E-q##Z_3^4-?cZC)_ZKRlZx?cQ*BnXq2D9N95s|&*v zz)@Q5h#9DT%V%30;DHsN z(zm%{BV;L2bJ#UP(jJ9l0RRB0?MYzE)|f2}^MM%?WWL8{Y&fnH@Cj^L9uBG7WFtKDVg=!8t(YdcHJkVb#V5JQPUaqV zjpzst#B_%}Wi(3J0KiTH$yeBC!Q1#)2G0b>=3+BNlWrXZs9m{Up#55=62@#E)4#Aa zq^1-*7T!fH3MGoE@;&4rz^%-C>J`U-hzYCtXyEH`e*UEFY9@`7)j4z|Vj_Kj9kszN zVN5nEH%hU6h|QNh;Fox8Vy+Z2fB*nK8}oQJ5hqGO;N;8((3ndTxrL|XZv52Vg7;YE zoQ;dnAK^VoJB)D==9>cl%S#N04?HKN#e+PsL^BJ)O3vUxugeD)mr7smtIRyR~*i(P|T7j-!@DVaemeFxlX;!l%51 z38|qn3g;S6a$xJM_tay#kL{M%PpdRelte;c;YIbqZQKs=%%x9l3Ce#SlbHfOM$mJR zZ_rzbOewpbfCECzQN2PT+*X!-)dMzL*EZUrrH(wK2fJS)D+?K4(5zZZv==09Qb$zuJR6ng^qsKe5yQecLI1GiJIao zXWgfh^zgu98f9J|=vp z!{TUE-_;%sUVCN6_KMWA`dp5E6y=P7owqL;>+Gyd^Qqdtm=fDqTlhxSYlTBMGXvj3 zI3tFny5&#I=Ae`isrj3QmtXU*;>K$Mt(19+9cA}-Qz2<7D<`&g>&bS9pt-MLNH32{OS+0D@gsJxKa0mhcSd3Pob3fD{8n33m=<~?|16}DUDs5qHk^}^rp}m<;k~GIaMF;WL4WTo!C`xNF_4Y)5D2-4cXkB! zcv;Bw1*O9yK#P|^iMmEkp~WGWN{l|Xza;eG#nfxlI3}13*mEmRl~_#x6EFiqCQDKL zQYO6{8r@EvAr!LtK>!Yj0BGN;yZ`_Q#|F(~K!dwJ+#~Sd4r!5F3Q>~Vpos-5sICDH zE(dflK6zq{isZu}@XdVeuykN@o;)B1U?!2l^C_S#cj&T+M;aRx>@*X=#y^e6cTn;a z=g?DuC2do`Na4Ol3Rln%Bd8vCiZ{A5E|5yKbzs|f9H`A$Xd#1V{3E{#EkB&3`E`0G z1kfGMlK!BgoFATn+6%@0dSK%cJb~+cx~JjKXpRgeohcMNxJWUHY3~~3Z)1JdMxP<{ z;F5ymOzUjO4MhwpdGr~G02;O)$oK-4=p3sfCE!R;4?Sq(yO}YGiA_H)Q`@iY9oNTE-4bsmef;FsU-Fmxe~N$W9KvE zVbjk~)+fWWF?Yh@fPh!pVAQ-{U0yL~3PwN0DwBb>w~Z)XNBJ7*FMZMwjC#mc)wWRG zfyQ}y8Fx#Lb9d5CX3dB>BW_d2(McBl)aJ9m^$_Djj9}sB-wafqc^kFMJd!&Lne^WA zf&&bAr8jE=q84o2La&fqE6j_t5_R1ESEX7mTLCt#{c$~8B^q32rsyLoXV2i%zm*>E zgVR-g68B%Tw3_C!L2fARqny)Co?w#YPqKvBnbL{|poeK3`sy{ZzJ#ih99oKZ`L=mqmBL0q2Wo~x6sHN-8R&oMI@E}Xr-YB>bsL} ztpjH$8xXVTAj3x%h17~+h5}fQX$~8%@5bVvFuwap3d5FetgvFCRRO{wwE|)Mq1U=f zk5e%puFIR^=;7)a2Vfsd<4R510xQrq)=Xt}<0R6_U+E&q82W|~_d+RjzJrSNiJo0r zmKi6!E)_*}KhmSg|8+v9emj7TO1MI=nsFFK~P4V61kmSrlSn^=; zG`#nuAuM&^;I*53S_e{4vbTs>=st zC9ldgBbghUdBZAuRma{$u%AyGq8iTdc{1UbMZycPG_(+lg5UmjD$c zT!pr-+E{fjrCrC=@+{nPjkTta7D#q$;Y%b0g73C7(0S5yjfD8I}=)j>JKcP0| zM$^;-tQ_z%2-533OJ&!R{R;Xm+54YD-Hf5Sw?H&$-AHN2amL9H0PO^aZP1zU@lRw; z=KZhFEoqMo!^uYYGn@d<<8ng?w%kVhDl?!meYDJSup$f&kR*K>uJPZeWEDKEzUQWE zg?j~lv-=YCH?K>Y1*f)HAGK8&YTYX+R0kC|XI;|DJ(PU7R1k&%NiAA^mGpPk)yfKP zMDwiF@DyLZ_#ykxtiCc<(cqn2cO&Rz#QMAgY&wA@_-g6T zh=2->g*(hm+hv^6cFiZk?z`O_)6XTpf=e5O0tOoMR0PNOkO7Z7s}C7>UHZmo2A7o| zde-|tZJidLvgL@k1AMg6Jfz&FDa}>bn=Uv^HloK1?o3IBYWqe+WlSeO+2eOXmG6@+ z@wRO<=oy-WD30Z6bMTpi^xHWw>_un?o*~@S!HxYn0SMmR&W7EN1C$pKU7x zhQ~*PIbK3svm7KMOP|VyiM?;T2uPD}ICsDirF{8(L~}Ve6y3yMd~s`h}Dm?DeAw;y|kI{6LU(<%;)y#NSXS<3p5+pV%XYywkt? z0kCn>+&{u@`E{-9>9qn!U`$TNDD*4#x0N>qhXTxrl+>pmvst4ZZi?l=-rj=eu#JgE zfIeKsOcG0T`V~rcDS*F4A`CRM`%N}rR*yY6Y+_eC>b46*oLWn)1q>we%$@$N+eG7R zafdD*$m3x;(6{N40eZIiWJNVYaB$riI|kBNMN(=tPi~k^Tia+vbf{B}OIv^>%C3UI zeC<~m4*k6@aNXQVvj2cRw@8RkgZ}GVe%Yt~INdM&Kmv~ckW5vPCHr8cm5Aw$=>Wbv z{4uzGI`FI9@wYg+)p>c#X+d2QVkU%`>jxe1oS1~x$tQ)zzJXN1rG3lOd|}=c&CQ>{ z^c}&~NHpCOsHPKr@{{l7r{NH9bhCc74#Kz!S@0k2v2tph%I|X z`#`F=;B=@pbB+qHj&QJ!E<4|ogm4(K>cmq@Lztk?P*8SML?;{E4n&LqUBot{Hd{1k zkv#Ov7M@KU;ytE}U$gFRz~UEZ!DEo3fyOc?NBiOmJ$#L13SY$z)^2*zSwMy$009;< zgzKmm7I@^cYBK=d21#ISv{zdrJ`QFAWD-gkEq#Uw>MQ7qzF>mtRkL49xuxdh}C_8mA0XB+`cbNVAgOh2$*$UdYX}HTySG}3RC}ZiltG=y7`+i-t zbPkCSr62+Hq>kl5S1gucctg*Y)h}nAq^>u5^l&m9o*k)!CwFlLa6WWh~8f7>Ih+{LLl1Vjgpo8ZA!}MSsW?j9FVWU)^N|O z#^rXMk;+lLyGWWWGH^vWXT&TP5)XO1Z8(rF$dQ6B|kycfvqqm>F2beIl1Wy2RE}Q)BjQNKf ze_49z*Ri6DRG}4%N#yu-aWH0CgtEtozzx63e;YYZ{Ao89%#N(*Sqs*T3$Pp+X3(4u z<1eUVD0@3Mz7*LB!P4#DSQLS(A2zkoXaM8^$EolxmUsk41 zlNUR#vU6tV^bl?6)X`!LTX8DW#Vo9jf)KXQ^LBX)ah&R5S*SkkvOZ5Z5{6EH-Ym#V zARrpiBd;sVU2BSrI1;ghl71Pu*jalpptnMySaivLRQBr?&Pmm z`)j63|Ff}slx!t+(8MTph8RlrXrenm&%U_~1Z%8J7yrO08rYsUgFkA~GMPQ2fCIub z!;g&0>{0Usq5%}k?)}Eq9@8<+sGPg2>Phv8hDF zEG3UY(H?Q#I*n(V5kFlkJ4va1{r8M7AjklKsl}EOQ(-|TX@BT9 zdV~So+}?1;6!f;E@@geC2O$MZSd#5auVEW-*V+GsSVa`IS`vBypC*i$!zi!Jf6z4? znt=7Gk*|Cx$qJBERQ929Iu>~O0To-d`*(2<8J@vKtMM$JK?-CyPiz6Ci(D;d!_J(U z!Pi1rM3dmO*++`PfU@0(IhVF9U#?vT3sUE3=IvSuWdLCcsZPP|=oA$20^h8v z^8dfXO8Pak?w=a@#V$AeTXm_7tR69kPIrb@iIu^kQDX`j{x*K-by@*j>~1+)BR7nc zewR5CMB>Y48?=@}q=Uut) zww20OzoUzapi<9!3c*`j(JLy83}7p=B~Jc!$ae)M5#W3Owo!=}^Mdta`oplT!82FkzZR6=0N?e@p_D}d?udP?Sm`Bse^Pe6GayO?w>s$O18S9mpd~;H zU(p(y-0D5L!uid=s+c&qV5xzFvBOzq+-tnBEziJMgNSkus+I`c7D%8L21w5jhu}_~ z1f!3GcU)vVF4Em>X1dw|pr8E(35M!7;kZ~&y`8h$qW@fv8_%AA<#2;8WqeQ1;=qTV zmowLGZbE$K0LxvMQ;-UDurkc6<#$4g(cwpr;ghU1AWEYXM~vD#?SGynn`l1p5-c!! z0`I)t9{_y;kHsI;^m7|1xm>p&B&4YJpjw0q=9t3dPZpY6iWcFWDT7X3Nr}Z)ybR5% zs3{$)L2$b2xc1if_PnS_+*B(Q2%|71+*q#1*)%CNovXw}`L~zp9t;b-wi)lmaFTh( zT4;)L@Nj6N$KoBO1Q}CleHGKab96>gF-cKSZ;v+~turo+0e2-H5el15L5-{^QW>C7=5%W8CgT@}T0%$D7^GOaQ zwtCNv2y5a!PF+H^Ik+UP*R?4M$U_@+O#j|Viv6iR5K0?SaE4CdwQWNwU9GQ7D8Df@ z>G)Xv8s=|NZn-CwW7jXr5~6xOqf>PsTewk5dcdxwJ(bH6oHsg!<*57k;2X6?^q_A7 zKg8YlJHa~yC?8GpVO6f6|A92v$cn=m2e;d)Y(WJxhhe`x+q+3m)fI>@D+l7{tfsjH z<;H=B%vQ+X2iU%vbTN{D%*8nj;9am=_u=N+%mS>1pSulXn~ywgv&b8JE8p-(2=+)Y z$Cw##5Wc+7v$D_wg~OAdR?GKC_Jc|h_}>j`Zc|ObLj&7J&9TBR8BOH6h0@$-Fn$RQ z3D8Z#3XYL6z=PmwFx4g@m3e@LscF>~47QU{1p)w?BinQ8jY`Zm;o|`z81fTbJgp|Jta$QdI!O;+YN*kQ+d`G}J z47{L5_@{t<3F1wJv_QZBW=*bf8^QxPY1piHY!9T5Nk86u_t z0zuj!Q+tKx8kqr4000Q_8S`EDmyrStg`jk(g#v&R0Le@zr-_u6wfu!j4kObh!>x9p z|NXzmt}0%4r=ilhs#_AIe1pVIEAeX5QzTl@N#*K zAi}N080U^^B#LBVwkS&?&~ZM_$~zTF{NwH-cECJx@s#57ip#ef)GFdMC;jUp{aLF@ zKltU+nOIjEROGM%Nwl2*2NPDqE610duyiNpV>f?C;6gIB|DEwqXMf-2bs(`?@#+XE zyQ2RkC_1^G_S8UdreccU6UsCWC{1(|ji5oo*qgnUYvaayF>?F04#E3Ojll#Z!Ry|!!B zD{#3BK;~Y4TDZSaBIeiT^`l_$h? z!$()XcQY&v@fj;E2pFahqo`AK7Ssi=M9E`WZ!5h~a@~MAAy&9w8ODI2Tkn*#E`gSO z0|B|B)D_c0MluDhrlCh22CL}6$$%2L3ay)HzB*V7YAcXXG?kJqwo&#@oQBE9SBVyF zX#}vH`*UtP(pl$b3*}sFXYaV_(M5fS-=Gt7;Rn)pgwRRZJw?U z2WsYA^xq9~=r3y*MAW5>*vGa~kQ~o!$Sj`l3{=IN#b${D0%fx$C%|R!3lw3HVM- z6E1Jd$bF@|4bG$iJ*VJA7DUhnHURCgEkDpFGr1N_(AGsx*bWD|8S7Q{GR8&O`rpFrr2UQ=K0BM>-zMtS14-r&fWTR>%~w5nBJ0F zwj8WW?0tZci0O1uJlmPXc#IYm)Ox?05e$X$YpRTtU?wAN8$_DJc*Z~d4tXz0s(bO+ zm-`19P5S^;p;n$AVGxZZt6pp}Kz%w$pVe#VD27x>$R8@p0QDavXHZlqB&5QylMz8w zv&Q=L-!1V_X5Itl%k;Ozk1mTS2C+#VIZA265K68aa7Q)h*7Js!Y;{l|D0Y82xZ#`O ziafu2*xI6IKw?SEI!$*hPy30)-FdYLHhoTtKM#}-n6us0kpGV0<6>2utQcFHg;5l& zW`k=%ky%G7B{0w>(SL4ghn*j9a;S-{8@U|U!;O~km#1&-759)KfLJ?m-e75Imhfn? zj8qD`_OO_!wFDL~@cmNeNLR!0V}W>>ku?WjtupB(VuSM+LonY;b96cdooy!DpgJL| zM^4@y?h-tKLW0K z+B#8#h@ViG$32(qwJ((5Ykp`{B>~?L(LJO91}<*{^RGHtp+|)&COAxo`Tzh0t^l&x z9khfCPKMHhLkS!J2bGM=PtIwM&{*Zgi?^TVmJ$O~@)0)hCVDS^vuFxp4CMP$@Rimw zBqWX4h0pd+HlnNsu)8OZ<90a~2|~Ti@q|(V_w4A<%%1>8!5X|s0n)1$!ka5H)`FY> zmeIz#j~PrS8U)7=0074tU~t~g;jUzxh(GEH&;ccJdH|Ul8dL?rk6X^EzjgP@; z$K6>ZZSFoX^Fuz6(rh?4r~?U8cLmXoA>X+gF_b*5T$*%0maW=WG7q4v) zS4U5iS!tpgSoT!eZI?yln-zP5T>VwO@YQ7Eo*%Y>#Qo<3(nf}>+2uZPfb{Sun3)#b zfTe`wl0M)v<`owyTmSteGS$?#BVrl(KnGWRE6w1``@fj`23PHp=xh0+Y0)IY0b7(- zz3H>-TPs(&*3QW}M_C0V$^H;n0XhT8G}*6)BZVs1j9UZcSo5ODOUQ6oI9k55OC=I$ z*H|DJez}9pxwoV&Q6{~@#$>r*)OHlb-5*AH$p_CGhyUQcl%CFhA4(P9XRX^davU_E z?IU272Ml;0E&KV)d60!DmISNtX8T;$-ChWd4jmN9sVGF~$e%{Pfs`(zDHat(oPv

FKzoz=V?Sa-cwGF57Z{#y3{OnZu>$~06&;H^ZPx1=tNn?5=7#XUfAE% zptY8bP-ang9M(Q^C;G>2J(qKN*0@^ML)5@ED1Irt*bA04s12y@de)Pm?cwS_XA35D zRQ5!o+I|TYgD`})obhrgrQ19)TvSee>Sugci!qAB3J}e=2n2J>stxg{xZ(GF0ZTIk z8+2Kemx1}Krx|h+rxdVUfL>LrBqud}0NAex!Xo%XZIo%KB<*)qw9<=T#DOp}H0EFH z)A`I4rj4#E{o8TEP=pF|31Di&6lWBsF!Jsrjn)b4JS(5=_Z}}4fNa{A#!GHw9e9+6 zkf!kZ@}vjm=sFW^I?Tt#SJ1>)9R{U&TOgXt9)A`Vp%iJ#f8G|F4607LG2Vy@Ui6<9 z{I(GW{nvLc3Fhx^En_95x_nAhJhj2ZsVcPT<Cma!@eg z6dP7*Pj4n)d!ip z(>j+5F;2E@cxEZbYcq4NiJzB0Go5){}5tLBv#S< zlYO2rgqj^H3trDt;xnsJJf9bbIvZd50QiHi`9HwTQ7o8t9*~&YlyQ)w}K?)>zmt}I~!w*CXpo{nFc z3qu(ymulwYLU~sl0M=tKc>%mf+$YWg>1@`CZ>$bQ`5b(nG{D#b(`nVi{DDoHP+Kuk zbKDIzBBELCpbmbp3yy@`lLg@)B;|?<^>9mgd&m+)~Byn7nb7X;jnsEn!SdA2`ak!suDKvawSiRb@syRXTg zsWRW9SD>QXAncpX{LIyaw#DHhKCCjJy^ywY>xRC00AW|K#e`Qwx+|k#cOaLb+Jfu( z>?4mkN0cX^V%No{N20FG8iZZ}-Z`<4EQk3-RWp(~0mSGl$ELGZ!FR1aWV)=Y6M)tE5;AO;-6SD}UP5k3=-5lP#I106gtk{TA~d`r`3h z0m$*4B8(~n*jxn*76^WjuH``kJ10jePcD$u-oTq>Q_}%*VZ0Vvqs=?@+arS4qj6&E z&qRbN9yfexHpBoC0^_fQ1QpAG!==yI=>l~4&?CstIJM?ThHu~6U;;6Q`sMnzeXz1C zbP~@dU@?HAzk@&k1-*lN7C#sRW<##r)Bpo#0A{Gl0^6mBH?GsgA_6I&k{~f9iW7E` z`XE(dntv}E6Vc>{00FVRfW3$W7Y@Jx01!1k)gu4{N*ye@fVj#H$ON-o?|=hkIY0@# zYQF#gw6AWc$G$o&mVf{=#4hw%|9EPwe!KIX^P$_F9;gCRWzk3_v_nuMu*u zzDbAqO6V$U7`#qI68d8Sc|4JP8%_FsY8SsX#@_};qXX1b24q%EipHF&Y$iI%c}=Zu%>U#t(&wTXhN`Di z%{%J{;I25|vUgd^I(@om-XE zh$EugTMfXM1C$VC_!TmZes8=GP_8@2a=3`(FyuN*=bhIguq_zhEQFIXmrb$j9$wDK zm-IE+A+qfDb8w*}T3=DI7r53YIvIC0a8OTq!%kFsDI0%qu|D)lN@psM`g-G=Lm@a1&DIjA^4(o$CRK= zDWM5*&#yK=HmW?Mf?KV`jk=cdDxcm9x*ii)G++8Y$r3YapKf8Mgs9b9Viv*7n(JT9q zlkVJ%hhh9ane8#kUtR&`_tZ~7uFoC4utPNS2^r{k769n_LU+jiet0J_{ zoeJpyfE&E~u9&sNWag*aZ%a%=kJO9}Znx)N=Ls#UJR3xQOz_GEI%`AsH(8}SC|K!{K` zw`I*b$EF={{YE%7HeY`hug8mvl=7rs z(8z|SDY-ah_og_oi%Mi)PSqDq5`eVAa}GoO zcDzkIoB3H^$K5EmL$iaHyNARYC}cvDF=g_{z}-jkZos*Z&Mb%3BoBMPyaSD55OT)O zXs2YEC-rfosH@Vpb8N4&Bsj?bQXPEVlk{D~U1#rH`YuM4ot7CWoPS#mG9Ha|3)Ocj z1}uQu4Iwu!1vsS9k)i#%85fshBYZe|sg5nyVa6Jrnf0gm1ao^W8Gbfrt#NBWIEX}7 zdsR9jXVoHhqixC{^M?pNknZEeQ=3sM@;c%rRdN-!HfEl=>~$e(Ps^tz{#8dD&ZY8X zdII1Tq09iufJgqV*|v1SosnZt-vw4Pu&W$D=kWZLUlqlV1JA!MfDEoveMlRb4%Www zC+#pprct50NPXrH+&;=l;$~S|K&rFp?)rfK z*p9ZA;3rZ%e~Egn_;S8XqC3)j@3EG&prCYwAbI8@d%SFeV+tMj5BXG93QCQ(l;de} zEag+!*i))-1<^WMPBw-*w8l*hbG2076#g1GZx+|Gdp#&2&2wOHU{d?X%_Tgp5yF64 z=)DaPZ(wzVT#ox*9u=~tcjYL9ieYamV%P*PDESxzoj{d2RCQkjnF)6ZHtJA#e$g=` z{?#AB7aeHAs;Q<;HXjE}6_D+HZKuqZ5r>|UI=>?s2*TCJBa1RM65tpI*Hzp!&gkhF zqlSI(TcbrK#73U&ch0cQ#TjE26e(!z5qFfUkI3`xJV+q{>o3L~8{M zQAl@y07GOm1(ksk(?0wDDd4aGN@`1xkS-DWoQ@Z@JdnKFrJuGg>-rEa_;n_ImCa$(4805&a2yz77f=ZNpJA+Kep zuB4CvCFtC0O{@uot|BAA9j-L6)kvy8sYKkZ{3B>3tvuCLL|{BIdeqg9)@z&R=@ z&5Y2EprjLDGE#$G%7o>(Y<=mpYj#gy6(GFZghq-NXIA)uFq*?%cDBc+y^={)(G_yG zDUrwV521XJL?7(U;HCT%0-$fnfWObWZIrryf#RoyBaQ>G0+SAC4ZTLV0ZyZ^Xkwe1 zt1hD~*(i6AKO}zso&p0a55R6=mc47>IW`KOz!R zCL*6J`XO$ba%}}em+zRerPd zh9xjZ{+!LYh{kxm3)k6_k=kqVeG+Y3vi}DX#7$(Zd-Pr2Ji|86?uL-R4?A~^IKYZdL^*iq)grn9AlAPzRh@E=w6|AOC zNuGEgbL#3n$AsahA$A!g+P!gk7me_#cL4xDlj(~a1A7?Kn$Zo@M2NA7vztxkixD;) z;R@_#K`SfcXGfODXA`-mkM1?*Wl6}%r+-Z{jqDRYZc#It;}yGQ$!r zF;f{ia5RU0IcKy#=C_~ELUs`s`j_8fnbfFk>47T7L#dMhXyyJdzsXizZv-tyP6Mcb zb8s8zLs$TJG}v0BdN4TDJ|@ey5wyai$#f?S(?09lRKxYRG+0`v6bkSM9V7SA@<&aD zl5EWVNM8KZp+m;IkrgIF?hIjyesJ56Qq9E_voVR~MIb8dQfNyv2-Ud7o%vdiKDOcv z$+38$-jTTQbw8%JpiZ|H0`9q1tIA~VYS7BP1KV-H3|M{1aEZJ-IB{=DLNhm1(nO6Q z^QY*_ zh2D}RXbtXTg4#aScvaK2#+{G6i*b5x4w z(lYBwafh?Qm3Ep{okbTnwHac!3;8?PNNw{C!cKwR-6e>WYp<5hoK0MfbgP;Uv4bhk zdjf{(_A@wXzxp|Unp~P7DLVE&&8q3=Ve9kvD@9tFP!F}fY94Dg8|q#t5iame)ashB3l?!KT5i zo_W^kNz5Mg#f!0C|HiV9$eQhi=I!KvvlS#HYam~zh6q!8ero}JHGU^i5wN(;)pef~ zmcmRlJ@F=a>U$bnoW=_Zpp?#S<))o-HO`^Kv7R7Y;*{=h#A{{veSju76!7O{ML|OV z0q&PBb8Sdy$8z&H{pG_Khur#Ea|Ys9dDbN5mQ%3JgmDOJG=DDMpdXjm91>v?o@6O{ zK_;xpk174{VO;Z!=|MA3ClXc_kPUCatnK#k;@{QgI}2YqCMB#T zsv7D9lUNt{iEL7+vIcVcPjsuDkD{^V8jNy{{$f-0_*m?cRZUp<0XzYfu&-1mXB3pz zF&7Uj7Lgo$#8W;e6A+4MPsoM#LZInmAsB|*s_la3;;6yV`~ElI%?uYFt$&5QzCi{) z1&M+07Kc4+$I}pXriF#yW-kPJxtO%Qey%jHtd-re)fIMK0-z*|KWEE%D=~%PNW?s) zO#r5e1by$2@R>6u7R9!Lj}1gzKZMGwWEHx2=N&u^H@!%??c4zuvsC1WojjqC5})>l z{yPzbS&I~)HgvuO%};BLtRluuPpA+2br$EH&wa6Y@}HA2mI8wWlpMtiUr`}3{E45U zc^mdr+u>vjBWQvQ%}CX{44H!}W^tF#9*m!><{>owQ9{jqREv9Fksjac=f!Iu3L$%3 z8|e$L4!OYsGw>=GXxz!uDHc1xqz+LGb(c93TDT=gnA@tr*Qq$>yzqw`y>jI}Mab|; z|BdBYgFy@Va>uXoB;h#Ap-JAJpd%+!ehO^#$?0s+Gf5|4v;^KtUraTvh4@xA zg+A){9tR#gd|C>Fph>9aZz6**0s? zxc>RRh8!&<9gAQe7`0vmj$Yi!;}sB8MOcK~7jtm|{Me)mZm0VhvTJ6`-k4Q+=;%zay7^-oM63}vRGKQQ~nN$$;Yjj zAX@pvT}BI{FQS@0i~#V@=zBRcY(1Wb!iw-sDjhi#!*!$e>wjMw0*YM4^9d3a%F=1se3o zpV>>1Y3V?l;xTj$1#c6kot)2eMdhowp zCbfemLR9r_mnUs*GX?d1MK1=2H>jAVD)0cu1A28^{Ef)h`3m~>Ei@qQsF*7BdpIl` z#sTCrGO@F~aGo3L+K70qS^7+Nfs2-ss_>;IeKoKKf4tN#`!i)FH6P$i!w5KYwP8l~^HNbWE^ZfEz%|)dS?jvp zM9LDhCPFF)P8x07XvE><&S4Poe`lV64#10y000oc>V`(LlXO%x^Kk<~OJzKTjUz^a>tq0GK|_#HA`jdAqeDJ(m}w51a5#$mG6Fw41qw)F zmWW(7np;nrP8iPHu&N2H+WKYo2uh%kCGMR>9fj+gM51i$cvRf>>XgT2?khb0IZjDd z+d}+)sGHmx$luA=T(E3{=$hL7!nM5#7w4vqK)dJ}fhbws{@Rg<=YBB3H%3+3S^D5o;hCm&-}nydD!^RY93lp%xHO-2OQ`lCn`g1m}?p-`HDk{0mW4 z3SfE;;++WuV>{4ik?z>^nd1We_bQ;=vix_R`fpUlGF9Aw9n2@=^mv|0ndSEdU}Nm0 zo`(!Vn5(EoWArG7B3?N4gDlPW)P?~zX!uA`#^+FNSPw*f0vnca;)7H&tE;etw~0f_ zd5_zVWSmkg7+zKpAFGhdqWHth5kd8^pyy9p(f*GQc3pDM z?=xhn38y9S4{@&J`s@*KwHzTay6J>dgVy4{(#$v#j1b-nSTxtM8KVLOW&da5 zzTGF@Zyun|OQF3v832&d^9Oo`eQHOD*;!Z*xb7PBy; zN!|SU>j`PX1}p2)WmZ9nYS6tMrT`CFjwWsQyq1r`j*_U9 zl|A87j1jKU*?4yg=A9dGKu<*_3w<}%DvZKcA9S*>d0I_p?%u8;;bhR8Id!WMG z|1AfP0Nunzsrea0j-g=!(6IZMY1>R9)w!`<9WhAu!wmpcU&QoC)SJFqT83kZLH3HCBL?mzu{kc2782Z)RCP z3s0bBM$g9O5q!dm`sl-BYkN-pVGP(xwh~!5Puc{rg&TbJ1EwzJ63hK_;X~ErL4o1R zkgc%ZS<%V8knp4)GLEv#e^`} zXqZs+Ion{R#o(9&+lO8{;s8q{JVu2^0qMexdQhVco)3y9yj;6&32yz_(Bk8Xj@%HU zBe|?ZwM)kjYLB;6k?JHGj0mexgm-+*WG>qJ=1AU2VijLm6E`a3ju-3hSILBiOs&fiAKv1pq`K&9{>@L;n@_uxS^k!Eus-t~dxikN zBpY*Q#%jbW?@IxLbX_qq$+zKxEb@kMqgJ|wk=!JEAf769z$9FTm;3OdO(=N_dnGT~ z$1z!q;Xog)Ly<+;$O8ujO(H;)fPec|W8xTFs zyQg=9eQ<#`G#kKtYIK~Xs=oq%!fM%y0(NQJjMP=HSa=PKsE4Dt;iNhbi{`CS`KAN4 zr>`%cWb%MYNJ;)n_cgeJC9777@`|sz^-z0OfhIU$SU&4Q7fLI{Yob_7H{(LOFp5hd zKN5bsGcWHgk0Buqp^Tb)n`nd(5;`z427Ib(!Ig5{74!b#5Nb+NQg z5XS9vYveqxA_zHjJL;w2t%xtE-gPliank$42-8$)88wMmB2jM7twR1x=d^Jelb+UA zgD=TOhw&A{%W9nTVxHerr|MmzXMjQG=>M&>{BJfS0AiAzYJ(jLyR;D^%);H!)3Cbm z0P+Lho!nW6Q(w2@GP~R%PES;h2nH6ma9-#y=_LHvWF-N;Jx|p486IOm7RxoFtVLC+ zv0OiE7!A5a&6A8Mp3=NkWs4(lJ#AXCOW!y5t?SeO2=e^Hf7PUJeRI7(oou2}+9;)J zMWPRM3;~`xPGd_*rkxTgJ)f*niUBaoH+(Gi2cfs|%1`Ve8N*+gnpbzzOBUP$A?!mu zL?JxE_|#A@ev54_vynxZ6D$fB7nno=eyXkAg-buPia*H$;t`_2k~d38K4mI-Q|YpF zs+iejcnjg*B~3lP2-Q91MdjDqAxuu1h+ahT+`K0=EmujZe$}c7nh0nlk+$RWG}2dk z^1Q%vVI?B(PDDVtL|r&&H`%P@SD?r8bH2QE`n*?%&O8_6@`i)$I!D9Am+@4fL!msc z!Av%WHe2nn8=WA-i!|K$I-mx&`<>%2+4P7mG*-vB3fphR03V#!2(+594&fJSR%ZzF z7YX1Z?*RZBgi_kTa9L%A;WzZ`=yP5hMt}`4{xL3LP3xsM}Y zwLZ`WwIO4*3haxu+294VZ4-K5Y89iGcFmm+I?}`;P+9eE&H2*I8sPS@guv>FUt`GE z4yCsJ1LfmgqrnBq*|M;s2_=hh5UG*f;~uS3ke>qY-;p~<8i4HRHRXPBZNx{OjLal3 zHs_pcZ4(c{*X<4F6(=!-08>D$zk;uzZ1kP~m{o-V$pE_3Siw2M1Om!_6NrfQCx@7j zeEY#`qvyg0^8Q74v6uX?=t}P@>#OVVR1a3O#?{CmlN#qW$|bM_cuBhv9X*%(q3B z{TMZIpkGdqPKdm!mX%pB6PYBXfR9>pc{bF19BISk^4lzzPYoK1q_R~7*KX;3^4H#p zS(Go0$&2$a&#ff!#;ktxQHDiz|H>B`xIhcsf>L7qcv0$Sx;+w8u%I{6yii~`WOMm_ zO&{Tj?5Jr=MG?r<%V*mWi(~8R?R1J(=3u6cxWJ0L8?g|UgeO%^7jz~T9;n%f7!uJ* z8NtZZCOtGFS;^9j*d5E|C>_Pt9Xy!p;9m~MeXa}lQIJ6L+J}KLp@&xSk{chM002?D zTu;*iWlWnRkOWD^QSgZdT(^|!PqCxq5QhYJ;&P$Io_i-kpK_oHpG))M&060(B1|fF z14R>h^PaKur^<*}+zT~G3E~sA1qZNVa5vGm{^heZ4q^q8n&Z)LKc?Y69T>#PmBJC)dZuGPD^% z&AFhqo#I!2B;WuLC)mAEXbb_3A^;Brl&}f*0eSx&$q4+-0;x{DffoszwYac=Z$^pI z>5~a{@mDtaM8(fa0;UCxke141H{_B8+7Al6;}K7;(tI}}eg2m*8-By@6!6qXWCO~U!88+6j8WV|5H;u8ee;qn68?(naEMPy|VXmbk za2jnIlR8&HKdPM`*A)QU!f0id8_$_-E~c{OR1#kOqYxtlXi=y&d{DNZqRuEQ1yEup zw-{sdq(dmz;`b3u0tR>Qofbt{Yg|OYerEj@^4lc1F?)NBaCqDIV2H~d%G0!i>wr6Y+Adeeij(kQ zWb549{PXD0Q654jc91wnz7MW%*+lEmEI;X~hNGRu2S068g1f@k`Ws3`BGk(~#$Z5z zUrtzsYHif^QJsHwFY``CcGo%v?W3D*u`+A-s>2kL%Xt^2A76h;t^?YfATXR>9S z`O+sB#4(f_GL#1&3LLZ*tPcFM%q|mh3g;VV#~ucXT*u7&6Yfz|4{8$8N|tFG0k(js z&>kFGjvgoVOUC=YAA!>W+(fhjvC|bV$eRCCF*S(El`w#U0bi#8(OB?|@orhak^gFE z^NZgX0e)mw8AUy9%9&Ul9R?s(MUE7M8Ja^?jnGpw!P55n$@7~e1%%TC&lb&Kuu<6_ zlB~>$p|sonpJ3;UoFX5B`++UafuVdeCOgO>KzI;$+=P#gIx|=zDH}i$L70+9s)>#g z)QA5?ba2uQ;D9-DIUBg>z(bLnNbT`FuWT81768qcP=zm_EpNQbFol7{*Z8j+s?;iOUBZfC6t8OXXpZU!*Ep5f9-hNi-1xi-WY+9@5_5jSNz}DV$Ys~YW6ds zI!838*){IFil3hNzk}#{^;R0wf7Z+d6e0|reqBDDo%_`Ktf@zBzY3*#3Ql%zkyt+Y zIyD&#;WS{T#aucZ#P;#JZiHmliA}(;=;t@92dBAX03)|IHSOpGM{r`n155OwTU&QA z3r(b!2b8)BbU;^-uP0O3Az*6|%Jr3u5jeNUKYY#1l>$SeIe?Fb{yPx&q})czEpFWp z?67P9Kr$SB`5)0_t9z8O?3ObBhX^f4K38|&$!y~(JMmHlHJ?4eG%4bVJN&*c6}+#& zBA@H2=F@9@Q8Ae8!WSd^$yEgwk3b1H2e}MV(^g$o2HT@Ixfm7_+0ekG(O|BA#G_3(_c->`5!#1HIM*|-| zNss$({iq+3uYAA&0Eq`Fa{XSN=ptH@>Eu05%CpI>{*BB!<}%!e7illdh}PQ|XincY z4iiTA_6+x(IN;*-7zGSn{O;*Q??Tl!Lt=Cd9UZ|2X!2ot~^N_KZ`K=v}4E2 zGyu$PDF9J-uldOA!>OZm5xV*zPCrGjOiG5vJ{>0a`rYGozF0SvUf;VKbm$@wLZ5cd zs@-ZG7p^3JcCRfmQ(#8PbvwZh3Dr9un8JO7r8$7Jb)Rld0jxk@;KK`@?Y+@-PaQ^! za?|?o0UTH^4DaU`6;}OxJvhlp6(}?}Mb)T964UTNkBjs2VY}B8)kjnXF-cnD%@)1Xh_>--H5rXUyrZnt)+-fxFC9IkNW61`>~1)OdeG z%O&QDMY|u8Pja#A(_nJMbehl~0^=4;M!F0pj*6)PrfQ~UJM%qCbDkOC;fq1iV6-El zJ@z=}C&WwzOs@&8{^J?-U^*({+NQ?;D=DKl!Nd zfhhg9d`O{iN>=3EWT!5&xFV_X)8>pf@(}_hpWjj=SHpPw(B=0yVZtW`w(H+Vd*HILiv?X z4(u643)?f-@6+WD8g&WQ-s{xY;(+7zyJ|`iImCgW()YR> z_p6n?J;$)_FO5P}vZQ*_vwM7VnqlV#sl`bk1+&FH5uKQlqM!B>T6SS&<=ceQq{6+; zem?{r;p@==qhR$IEQjieAD2R2-M@i2oD3Ur) zF}Bu)0Wog>f%2VH^y8}6q6k+D!5$dp=j$x?Y=5Z!!1JK*&5W54D_R zT3alr1?o(VYv=OBf+Fjis{pYh7Kf4Skp0T2MaKuu@NM*Jfjll?wmwH@iDT-AiR9@w z0A2jEL3D&8$?hM?{_gDd>I@*sbq3^-QQ?3O#0HZ&CjG9)n1jZtXe8pY0*PXTyWi1W zV8x;s-=r%&x}$9D&G>XN+NLibg9mC0Y<|JIVtx3cpL{7gebAIe zJ7aA*eu7AID2=v4>KH!HVO}c&k&Li*Dn5(*Xbv#^HmcD$3djepk|iB9!FH3Cc|E{Z zyqf@&b!7zK;43*I?ZF||viaVpZI%$qhxO<;{WQIhabVj-uf6NOE!MQA)O$<$d9B1M z07tq29gIgs($FJpv3s$c-VwD_|mD1Fr&U@l|mrJwlAPe8~fFWPr6sf6*!o6 z`cn3Y--VekDpH&8yJ1%|5jCfo2*D27JA&O%qS_(7IidkSF*gq7gRh5?%+h2NT2kHn z`}`UfBY<+q@c{(%b(~l=gokC>%ekWUI|ab2JASq-=Fe5KIB43?#)WOw=#@skXLiUX za>xUY{QtF@1ht0zjYiV}<;Ya%gcjzF7osjLBIMW%11x{Ri!i~MuY>-}xO9gX-`sdZT+s3u&xZRFZB1 zwjgn@L&|XNAi`#zVu3J~Bum52dcuRwZb@9Q_dZ?V!2o3{obJss^{1zug!|4sJv;bk!cZt$jx2&G4R>#ht^lKx}}F*1GREo~d=X)v~WXLaiS zlkf86LS+~(&u-q8zglT>;+3+UOwP)$s=mlfd=6LzPZ7&6-FClmGTOTT4il2ee=s4d z#hoO;6VdRBz}7sWqW_)qtNd(JMTKbeeb{`kVeFb*ae@W|8Cz?KU=|q<&*NA2S@su# zr~#E1GXbi}dz_&l4a1}VO3-4~>PSfY5dR(#@j+E>qkeh~m(43k-c1?e`;sx5NG9ql zeQtwk!eY|&IVQ7<>mZN8@GcM3@G}s+BNW58@k8!RWJpFIO zIbVZ7>77tU|3|gvjAG}w5%0MUAJQ8b)cAsf3v`I0GiVpB;v7$mMC6#1_6$xb7C1Uy zCGB^yD>$ zQ4|hJL~Fao@k=yo-S)&wCGzpl{4TcTmoI*;F=37|IUEuKCCmSEiA@+ZQ%Bqiiw4z$db-! zHT)Hp4Hb}ol+5Raa$EwFS?T47)qhDV0$Q^a-9{I>=y0eKcO9ukVB@rRD%pwP+YY=u1j0B!T@$* z%fyBJHdturmbV?@;zL;6JsLDCFX#??z#Whm=Gsi+dEn-g=G_(JumS#6Ix#@UhzEI! z_V7v^`j=(&$FUKWg%jzH(4VZkMj1$cCFBiKenEzKqB#l!^tQm;d)?vHV7=8_JT1#L zW7|*OA zTp!K!?-rLv!3RgA*r<7dZ7aMY^+`1Ffq)S&17xQmGxaI{(alm&UFXXkt4kcm#++C7 zslQnb>8%3^JPz5;0^}W+r8yTp@}Qz?!1R`(dZGfsYV%AXBW$YLk_Wo+JU0O{()gM;Yzm`%?y2&AcUG4F{3Un z95ABDzH6MCV%hIdq$_W|rBWutA*K?M2#Fc*0q3fUnER*7#OMW5+-H?Fe3*Ue9f^W- z%5~FU!Yhxz?X1LwUPt4(Gj~r506sDU{JsN-HcuCM#%vrU9Ib47^4V`^U-`7#Q$4;A zY^M(xR*>_Z8BB33G!H?tWV{z&!3~4ZxJN{ihDA z*c!^pZz|q^1Jp!!{i+C4oxl9iX@Yvoi|%qZ3OSqz*_KDl!%_4CLt2X(x>)4X2HdOy zKNP_;F(lfK;oymR2{Y$5CgtYBb3xh&SN!8rV*o@j=qzOj`o(7|4_@y+qf_K5)(0Et zjF?EU6q{@r;y<7czwHPL>qGv{)Ec$KF_YCvDIA0rykLiUCYq|^y&cEzIiR^NRKWou zk)1w#IZV#G;Lw7=+XP>j6%L}Ya!WLb?CdbC`AI)v+xM9Y@(_LOZWkz~Vo9SD4Bp=Q z$r;W-?Me~f`1mK$`Rs}9yQ=a3$v^HQwBwnF7z8VsB(|LO8KOjs*A#TCI7SS1K>N$_ zZ^yLhzkl)goi5+LCYme(^k0Nx69&KO5QguI!YJmxkirZ>|5Y8Kp+VZ91zuL7H&&&a z|F|~_`xd!yW94H|VC+URcxJI?0BT+i5U}cO;OWt~!nB)RdYVk0Qg%&SZEToeqla!o zL^e=J7Y_WfMNgbJYqVM+GaW^*RltoRwu3KCj_r?|m|)F(afnS2bn*YTP@%aj7p2uE zfbuqd=4dvzOjc6Y>Qb(Jo;H3|x1N?)VJf4dSN!a_;26VgJ#MCeo+{p__rs(V@t!_d zA3v62_%>+)>>omDMdIs#Zw;muX%Ds?XdQpvqv<782wA1c(Edy$*u4>kZ_T(H7k#cI zF$G;g&#tDG#Oudzad#f**|}30UPQgIW6{A1Xrz6!nO-irfy)c$f`4vkuO=-Zjb@i3bZZaoah51e(O;|BN#QK({AA%!=-N%HtYf#>hy zB&h-^^09FNjO+!Is>ZYT{X2f}aX~Pr1ywOFZx|2(LJb`ZFV@s)ggP)HVCarIp!dPx zn`R)n5J!^WF;wIL00)&|8QF+qM7D!$1kAy1bTGBBDezu$r4*K3A)P+qsWD)SEiMJZ zc>@trQ@1p!2}%Rtp8l&8%BC=pYo@BG!tCl}hC(#{D5%f17Y@I0@TP${5(f)}2dPrn zl6dU)#1M<;kyZaK&QUk}gXsOTC?VFz$GF<~4!>X4*#mjf%zHRi_H0;tHn<6Z`@$e) z7pA=M7~udA$jJv#pzHAlgX)>}G@C-;?%PTQpVy{VWdm$Qb_V)TY?BS1Y?402H`X4B z)WMIXJvE@x<5i@p2{2-Rx?R_b!mY5Ula8 z1A3V~lxHDLv8>!Gved131Mo?`L8nGfXsmTPNMlteu6ZW9i~i5&F2}#aF+9TCj*0g0 zE^_O)c0@)6U@RudUKL5&jVOX{#M8&nA}?H|p14-Ya9kJ;(b;sXMV2uxCq$;$Bb>=4 zB;e9{2#^c~DB~~)S6&3riQ5yZswPedT=Gt(NZU$Rd-9?zY`6nV0t7~$d&j`;vvYdO zR`Q2dcy=@VyuL`MM5>;AXZhD#ySVb_exvHJltk=L5EI;IQ;cb+^O*tDq6yu;!?qbN> zN|3$@HJ_R9)mTNy1V{e2B#X*&+u5&zx7WGHa>$rXbAzS>eJAC>ot2=P<({SY&@pGb zYtLQR76*XtIv0QWC}%Mbv`J#cd+Ea9yn4w=Bhai>t&+HOYqXoz8M9DvfCx1#D|i4L zd>5!_r1RyxEf&Kx@94DN=U!9&i){IFn0+!HT%s|vLajlSn}wo$I+66ODjj#M`%B)C+!g2kl{j6+XgF-{g&VoC3;|S>-cbFS)2P71n zeAv;_-!9{{3nASPWw0D3MFi%lnSny@-Ic?7k&JGQU|4e=U%CWP2FxK(&v<~<6aqFZ z5NgY2%@{Z#Dn^NyI^UGuhq2if7yy$MlJx?9-jHE>!iF}eY4O!1V%&Q+s2Zfwib56} z*SJp2I;4H;t7{roqE4eiKTp2oit-d}F^mpv+e79$MxQ$?8rdC z3oke~^IfO1R!ht~bV=L=NF8Qb4;$$DIu1uYEc@oyKerXt@sEywX%9GWc!Kb7{hp_` zLr35tqb_S%=pC2xgGfUcUH=cU&TZBXu0!8)qD|?qvp2*C3s)T%mSGi=uwXl;MABkU zIBywN6~Nwh<+}u^B4E~jRVUu$qYIyC&i|mHjhm9It}=z4%o=wKj~QQE#wV27Bc~E9 z#fVeQ2`WN0@FZ4knprP=OI0q^g`#Zc0`n9A(bq5FLI5Y7a=lBPm@Rwa(SB$Atq-)G zEb<$m5`YP==u3UKU!VX(hF&-a1_V}2&}InS2}gD#A16fN(GW_l?Ib+WYmBk1IArkV zV(#5gVXH10#>N%@VnLvVj;q9U%Ufr;}@Ra*7L8O0kU4({L7b_ew^;&D^j1ZyQ^FZe%OLJ7Jhs z+mwb<@wn{kZ-JroRYmsrrefD2$`a3G3ghR{rTnO(LieRDvHGm z^v-`&N@rYKp6d(srH;ZkE$~de)oM`*R zC5ST?k4P!5cy7n_HEUZ$i4Y>o6qF`oBDtUd{nq%Rw!vf=1RBPGbaPc?sLG){$feS& z>?;siw#dKTD@D&r-tlv9R_@KS6xh!zLgEf1ouX|1j)i(!LS%%ZJD%|DfdmyY60%fJ zgXwGfhU44zbK@r_e3wLkiN7v|X=FlzZeFL5QKH}nBObTwbLghs)V=9bG&GYC@P*%Z zNHAw@iTbua3OUL7k@I4;3NvzTkJqsu*^CbuFx=Ui4JJ1@M5;ZZ+*5qPE;@Ha5W^ve z7QlSZl=B4iCZixM6qbtG*nnUu@mh>@MLgQaeL-z_Wj>fanD1L{PXkm7{Z;D7>eJwEUOWC5u);NNvpmb`0Z z?}jh`BLvp6G!Ss*w?wU-NftX{^h6Sc^??7+-;ow~d2^0B@^NtQLEg)6j(%t30Hs)o z{|{9R!Z##GzEmy;_CcV>OS>cU0QfaO`MqrNjmma?Ln9z@%C?u8~3`Q#SU=!klPJs%uIEg8tdRj7`!o?unipc0aIX&$4%LKCZg~ViLpN z=_(MT@A3z7YV`Dr?{s1n@gZ3eUZhFJc`8ONHf<+!*MJ2-23?el_D`#dWMR0t-5_`Y z6@qJX^I&;!%Zy-5ED{`LiW{F$SJ&;fv~vLHKi`&YTn&8A}qZ)k4DD;_8ReP6O*6UyB#}XRf!U+c-T|ZNH^Jw$@aN&lL}9ZxtP|;pS@xH z6lKsKF#H@J`vwOPn!MIU0~3~+hqq0(<;I8@r8Ex&7{$@Wi;DrZ_e3w77#7Ug2MDo~ zjbY9jO$oJeWJp|EL@m1~8=ay|dNUq}!b@QYB)yaTE;J zy!9XBR-Da3i+?OWN3TOTFo7AlbQ2PWj6hx#r1 z@HyIow|#1Zk=0n$0L+Gw^kUbq0G;;0Zwq`Gbk(;-B9oa7)8r^eebRr9=cEUq zfYi1jXT@=9tr^p&bDT5%0${EOJ4+)hf<*=oj|RWoiY1Qw z?WTyFD=`qz+~|%kbtx163roiVNGUPt3N*+uNO6rXDmp*?Ia{DGyBkgZnzaE~)nV@p zDro(_5^)+OSYp-V$iZ3}t;6brfn7CpwD!iHJOZ17#xvg@li@D!A2cz_+z;G5L*qCR z^X3#{>r8#l)`K&yEtZxY=w=Y`bdaZVCKGvqLg~k$zR{%+aK3ZyD zVpEHQQY*%LXZlx_(%A6V{OYEEd;_777Xwm{XUTYCr|pHM-kE3@k~U#0VJ)B4a>EWj z{ao{?n2g+#tFTC`%6*38P;P0hPjM>n`E~T_ebsOj&;tQN z&^58_$T!7s%^L(b6bkku3kdYkBB#(}!4~ z(QS-tZ=U3OQ=kg*4J;X3Njd~8l*@%$`5r>QI!_=0-H?3ZZg!<@XI0tTTDRkL!45Wt zGAtK6M-$qM96|>*Z3rkq;GJxhFYt?pnKYmiWVApEHOK3PATKjm80E2+FOI;m0uRiG z(yZVFd|-tpn%laYDDnXn-m#(1_&TUg`W!m9IpXm=n5qpsv-QbwE2D}5#z%)}hMx=x z^lK9Ydy9}2#Q<{x<{~nv$i*|rrTp|`3B{i0i7L<&WM%e)O5IEU5SK7?01FHD_yy{C zvX-}dJ)pDwjdMa-emqZw>JUGk(nVu=O6qf9Yi^4{cK}G@<>g_4rD^{fG(|&TAw9x0 zD<1%8Znz@;nvG~e+MLokL7tPnNI0t%#ESgpuD}?Y<19FEgAR&y7dv$;r3D-0;s65s zoimjV;t4D;r!>kzCXTqysURPx!ZZCdmiEmhUM(d+lU4N9dIZUyY3OQ%+g<^X$aEy6u{ArO|xnfgkO9(M*+c`PV16z2;sv022Wv*7ut=}imzI^b1=rNvU zp%&Kxg*+KMAAh{S(SvYaTd^cf;V5kSN6rZgC@S>u%221YkoXcl?hL+Rbs+kQ)2+G8 zPBIIn5%MH%B9GvVt%p7!44Z^iJx9)hBRd^oIoeaTMN9BM%n9->t!rxux z9_geM9!qyeK@9l)_FY0#JVZC%$#4oETVo199&jR_A!PMpu>&>bsc={b6NQvIht}kz zapO?lM?;rmI-kjVH)b;(XWZ<(rNE}1K_YjdyG@$-eR^W1gKgrXRQL>4maFE_JlMLd z1xi`G-Uk#8DXrvNpTAH6DZriaYh-FO=mbXqK-}Pxj6E-zzN5%j8FSY2fMfi5h6Ud+ zUNvwA5v(4c1WcdK4ND*ca*lU9Eg!^jZr#M8XC_72E{{X3@?t5z7S2tMnqpW_8y{<1 z+W;Pl)l$x1gt5FCE)pc)!ei5UYX*YNZ=*#LBQjW$87Ju<=`0#rCo^t6otlkF-*}}D z?V8z&*Z&v*5CT9qsB%;IuYU)%RIhf2S)nc63gk`F-R0Kn_yV)No}gmS00c6&CEx#7cF~+!26B_R9me|&%+p5x zT+&G)m_3_chR6@Oc3xqqm+b1WXps2#hUGw~(GHtgCET--hQb2U2@i?tzqc z^lPBe7A7*@i1k<(bgBXfZ1Owe5Cb(G8~LU+O(8iV&$HER%~kD@Qvb2Q7$`4Fl+Y=&lN zRscQHDU6!v1Qg~2N3!=98x>13pJ+Gec3jRX8U+Wq>@!Owrize+*}hb{dcQ7C28_lJ zp0|xE=G$ryji5pRF~oIo@3(lAQ7CC%_q;pE%rF26_#-u+RxdtmzqJ8NJ9(3xh4bq} zX_lghm?;K&Ahm+&s?;#W4#}8-Ytx|mwZTyvC|s~^Q7I`xR~g`lzASv<@N5*}^9MrM zX)G|Qm)Fxi(P)~&W{%XBW3G|`_zLuzvrn&|5?)!D_Es`y966mbPSTClcK?qy@JsA5w5uj!Q05Lf(J9~M}j z^2jstmk`^!v8R@r6uIPHzc&0mC&SGIgtd{0#~`&in6`&L9_O+Ee-P~=%Q{%I%3Mv} zUlg7(6xao}9&=Tm_oFhgm*+s``$&Xwyn4M}+$1z*!bP;YDtm=;pr?jf7ks{TTum$Fnv ziwXI^_QT;L-7#=4=O7)mNdZ%m+N|R3s(=w*AY;GEbBK>`W5{w)yPDZH3Erq< z80OfBREN-XnRkaYDy_@}?Y`l*FodgLot<6b9q%QLoLi8M1SxA`VRFppEE}Y#>LN<= z)Z!sA<(L!1BP-RJBebujzT#O7g(UyWYqr6*BxPzJxGysXil{h4Xb zq;yNPO-!Dy9YHKk2XaR>s5NsQE^)Bu5nApzPam7oMVby z0=MCm$4ExML3{YqogDn1<1)xkL43{G$T@9BMO>#ym7ywm0c{l6xn0dy@|JJsTow!6 zaYrkE`dX!Cuv-LhF<=f3_ef=sw7#j)2a8pV-3^#j3$AeIxnAiwbwNiZG)xlwxYGG> z_YKSuHT&h_;yBQ&-f`>Ja5gi@EnmY1fj+2UDOiBTPMX;uvxn0%==^W9OMS$E8HBWl zDgP&=MOy9LA<(z`+$UGM>f~g2`lmjdut@*p3c?3QfKlcKpsFG3qvZFg?7{Jih(f(G z$I#Wk9KR-xC$FUq+(i_8Og7XKnPGtKZ+@_oq4c#%~{HYQ1U?q5vG9f_#^Jcs#^OzuLP zk*);~^~D@lIXHY=8^KI;(qVO}hcvq&wN;xO^hodnYzYCJB7*KE{OKR)Z5@+_>vY9S zyVJnHcp{#O?Swb$Bj2Cu475his6Dp>Sx(^nq!EbNfei9~$Qzl`!7kNC11&gve?7ei zg|vsX?0fZ$rsyHzjAm=9`xcrg;o_!s&h6au3xNf45Kff6ihUbYB;EW7mtwZltL%Iqglnw6! z`i#iemX3aS`FDZKni|D&-OK{zjlLUsD=Uw6p3<&>nu4aG7;xeo$}iwP^F$8m7GhT| zHex-4y)^<Y? zmNe>jFXI8oL=hJLx4n(|1KSg+EvAp`@cVGZI5`?1Ppnxn`lN#r;ayThh{@qVRauzf z;Fht{BOP(B2KeRbXgJqY3Z=)@9Q`5o7U(W#5B3_7=V2*d=>B11knvfx)05fMB?K!$ z4Lkm18;XCKKHmjFBNRVd3=e}`8<1ouG294q%55Pw^4Wls^`J^p@;x5aL&$H76*-f{ zyxxPMCh)zC3xHV-H6Am~Mbyk22d1SVK)ZbQY&|z zn{O|RwF^5`oC?14O}j274TJ7NU(($3ZGCxJQn9lc#99ObHAFmTc+H!E`Zy376HN}^ zd4jcL-ry&v_$FH)Xj9UMkX#;YfQs6uDkl87z@J$|>TqQhiu2eKL#E5gT$S^61D&Wh zM7%%}Q^wa~JSOHW1_ho^lnpP~sU#>jsB@L^$GHGu=U~r{DW79r->HA1AM`45M%2WY z34kX+eQ#XUK9aF5pSXD<5kMk?)N8@7NiX+!ph2`w$I+9HXWv`3#di3%Ty>kr4V4L` zV@m)QFify|S5z~Mtouq4zx!{};f)r}3)Hha1Fm+CdIlK?%Y4`d?M{d*GfI)-nNhHS z3z18=O!oQ$9MyciXZH@=z#`@UrRm?oB#lu>&f~V;&GfrQ6!KCAZR_*exDB}>Xy@`$ z%OxbuR#B{z2&()EV-J`#24snBa>R-Db{V%cVdL!>&MRee zLbVhVA~FPJWndOC7Kj*|FF-lqH(?&q)B)(h!eVFN)-ArM;eub$krpUt$o1kH@Troa z6F-{Mhx9xQFFRE2zMs&`eEmL4`umHlv_SUtbhQUJymybkUtC&qxP+x`UZxH}|FF8|Di*iY4%nMX2rTKIy#V21JlSe^d{w-@BL>g`XUz%_ z4qrYv$azykaWYcf0_d3$anjDE2J;0dT7_Op2hryz02<1;LMV)z6`|IPnBT@aYJQnw zd#_W5f(yl+>`m2CR^+r?*ctx31ON*=p9cvI4+w`CBcBc7Pdl%wVS1f($LiW28rIj| z{RzgTy&b8VVO^+gN#Tbt9^iXO zX%%1^@=nL4NsFsDCwg341errF*1-){30ptQy_QKgG$RXK)ow}+V>g4%TfsyaJ?rO< z85rb*L{^R7?+h<(!k9(4JPx}~ym)&eqgZ(zt37X*0WmPV;B1KRd6(^O919(T3)_Nvcg?FeQ9Uzi}l5MvBLQtGL$G^Qx+ zw9t`kQ9YCz=8cONQF>!D$Ci?C{57rKNqZum#iNdv64%Du2MHF%PlGED5L%a>XI2E& zBq(OS=ag5!h9DktwPLr>d^MtY8y4jq<7W7L9z&P~1CtJ2RbT2%9rKz+D#hVrBZ^?R z422vOC{xqcY{3qqat06-5C_2%FL%)Vb=#|fPyM4Z!DE8S7ZrXUDuj}}`G({aV*zM| zoEoD^PnO5Jgr(<#noT7q`u-yqc#6eOSvU}qeV++I;Rhte+CYwoK%J5O^r4?hy{t~T z9?e{WjpKok;4UGS7MZLnu_9$jxN%<6Rz*757RYj(SPk zDf<%v%rvo~+h;5GgkSJ>L~b}zHN(FONFo5~I!k0u&!ZkodZ$wS{D*Obo3G6VtP zk451vn$nqxx#)|e=si2S^&*znts34>mZ18|MoVAFlNI|uPZA^EzNz&>v4T+L1x(nI zpvB{-JtOgJ1;?=oQmvTcn@QRjvE9+#oqJ?UC#;rB#UXK%@~;k?&+7A(G87PuCR?WK zzdlZY9n^8l;X<>ytGkb|CQ02Xsjmzb`J3B=<0Z2-QvNMp=rB-c2DB`DWj&~g?+>_5 z>nQ^NYcUib8ncK4ep&VW`p3;oo2}}|FW86PRl^;vY+T%=Rk&-L^|CwF{VH@<;kKNX z7BoKdx$o*X4$=-KPBwXnbs@fh_rROe@0C-vW?$vn6v(yGDvt&%=FL*LdfV{ZeSJZP zYE`*EaR(c73de4DaT-?S>DzA{di9U3TCr(&G?`9jBRZ=(Vx$Eb32lIxJC|MIlK zzRU^yG9u7l@+g43rn{-~Rk1L6;;^ZFA^2HGCxzS8X8K#SY zZ<7SBBEz93+Shu>d0SRv%h`^=rWt_q2m^FB1i!!p#Sgy&8oP#4ttb)cK_r*V9~n2R zq9Wb`5(xitOOYG4%F~NlT$StoAsD*E5-t+vv3UuA;fD5KB-^E4RBBe4;>oe4o~qhxXwL>r*qzTd!!}loNsJTMN#q1 zkE{d5h{l&wG*CW1b@l*<%CZgi(0Q@s@o^yPeu&yIj)#^+!cb=3ts$pa>YGv>InN`P zG^_@azj!U;UIgru4wbiC# zS4b3y0K)8kwPbmexzIEy8c^}7C4mk9F>H*pKDK0eD!VDweU$9|oPVJ4fT|(%GmHOL zwF&%%as;aYfKAc|(n`FPCWMbTae~(j0R5EkXod+2S-w4thgVE3=$G7Y4i_r#mRf8R z(z!o`GMw8WXfrQl)sx>atpb%=5=Fl!E2Frn^wrz;cP9FA8e!EMexE2MeK$ zIia^8&~mC#iq@bcKJp$wSR(y|gl#;@Yxh!8gNrPqr&Fb%Al9heH@0kI6*0Kdxef+O z56h*fdA%Y1l+Spnf#mj}1R$0zf)1T(l$TuXw*TfXhD#sfB2JM7FBdFK&!L(-8X9h1{>eFwDf3E`_LSlXBnJ`{JC~!2jdW$Rp$`7;3l)d$e3)~b2`Q>}^y75*S9o;P42p{k5J1Np_dZ72nPCMME1Q?X39Yb;vt6*N~8Rn9PU0 z191Uz0;`}89z(W6bqB~}no@lJ%C3++D03m4Rm?cLn}Owz1B6zvfE$x2lU-f34!9ws zEhqTxkhCR71cOm46il4QkOWb6rg(M%l#(m}*ux+eo{{$fqo#23h0U>{fFRfc!6|wK zw1FHB+R6a>Vyhr}BcX%&@VqeagFYOt7xJU>`BAzw`csLpOkRDSS3$0o5M$bd5^QL| zJeSNk)=e{l?isGT31dtgZS?ku^2cW1sk>aTBi3-MKOn1SG}x4m z5fw?RV@GfjXM(19V$26cA%e3kqdSW4ouA8kKjp@T-KU!IcZw1)qcYi9Ibo&=% zL*R`eex^RZH_6j_@kKR(2>zo39amq~Yr+U4N30rF)!~7TLn(-IVd?cGuu7`P!0(D5 zuN#O5Zakx9S3L~_!c+nk_ z^N9w=Lcza5$JJfXkoq8^o;!ny)S!-}x!Uujq_&NNz&#<9+C}efe2euz7Td{iTM=6} zCgaXEh)$x!?>UY>-KjL-WIxq1rB3aD0V7DOQG(v(5-sn-QAXMJa(k@Bfk+LJoh`d> z5?|o&&&-)({)va(*Gu2t-F(u#Wh`ry9Z^$lRM$QDMwo94zq{;a_~JBYj=5M3E^4w* z%G(0mxLVc*{sBJ9)=1}|?+|sooh{3CQdTr5V7k`KRXOWuGbcm}_mtU|ag*$(fL*St zGTl1-JP)LxWp(3hbM6&zsfs~CyxuyWEBGf$rr{IE3=HejTV&#yeLoT$+pH(3@9O4F zZ_Uv~@X3rh%m1_y&pSPol_CDdHcJGMebM<~ua7oa_(1Bgn?+|z4^v*vUC?^qmR{e{ zH_X)yTZrh3tQjTMo1H3$^JW!Z=ArB3Vl^8VT_-v5fVYi8NGy;-(R+UOJ>bbJ*CNX`n}w>vH(7$+EP2nZ5Akl^I8^z)}0Nm;9f7qO_M57 zkNl%NzsWfuC%cC?6|Va>giA1_BITlSLUKhVSAj0)Klzyb(%p-={9~A~V+Qtr*&39lOkEiuRwtziLW4yhqW}MQiBBFVQQofn;9L|F09nXpqpsXC&y)=fPY=vf3p)T&BPrSt+sb$gq#cheUs zY_59B!2q7h({6s4U~{Cdojz;#4All~lwS9K9C zH*K4af)&h1Q5t1M8u~yL?+G##Ys9W_nu5oroUBE6(#wv{>;dpyPY|-V3omer#KD#jpE{NK24P=#_dq*HRaBcV{XIS;PRZ7Y+qJg#O?sV@a?mGg6(IyG zDJzu+`dM8Cj#-gctS{Y82^ZrGRQ<<~Ib=+dBPS&@PCg=np(=A6SmXFml}pv3TB0K_ z(*aX;GUlA4d=X3zpYXU}nuY6?8x@VcAOkWQK)%dIi^qFZdW}f$O2t&^d_zr%tcLQX zJa!!1kL9?c?JI%QD6}?Iei+meqLROGm7IyxlaqO_6w`@vA2fjr-%Gn7L5=cLPsG+vquJ zwc%Q7E%}jdzC_WO3N+naQIrYXZ>WPard@`!UC*mD#A$^Ljo(NZxH%M)tp4rnb_-O`nzVEf z{Zu3o#)wdKdVd%=MXkk< za)B%i{)}3X9)T3pF#}IZNz~RvzymKX{8&G!oXMnZUcp7Rs-yaY`WJR2#uUWG!1E#I z{fO=Dq7nj>E#X*nw<&g~m!)BKX3xe`XH%l~A}`=YfHg@+Vw``# zBJ$)In$hsGx=!wKt9y+xW%d+XPhS3(#r=H^8<KEjfz zu9DCBuG@yY^ek~y72)YaEaN@Is~3XlG_oOeT+M4?ALs{xcb6@)5n3?(LL#kb{=5Un z>I=gR6O$;9NTMCtBeDy=XJ;r-2L^1pliBK#!tQ^A+|ci?!}qL=DvU`Ja@2RowpepFeYZ(RzHPKxZY%W{Ctv- zqIov|%4c!#R77ZF$vaB8@n8}lw<&*zk(eLhW~q6LH{=u zz1Yad<15|CiW4l)2Qw?f=-k>6sN5U5BCj;;Og+Kr3J!<1dm~P{*>L(I)8 zo7>iR$O2W6xS5V#TI6if$3%S2aWfMhwAOS4JxnfBrbIh~RAFjal9={7KcKNpN?_5It#Zhq2)EIlP)Xzv#`U}P;M#v`xSG(s=+ z`jbpIpd)mI^TKHg_3&vLz!>+_5?Z>b!yPlt=Eo7t-#GIMVF|_}+wa;@kxf#}0&;*-Ijqn9JM({TXMT&Rt1tvqrh|Ex-t%MYKDs@iLH zygzd`yS{B&sgeBSWt$SAW(R@WXl=5?QJ~+6%&EeH8FpbzaC78U->rrsBczV~wT=Fl zK?&2me!4T{NhfwcOQaz4CuhyX`GBSL)Q0+iVSWV;PTi;^UZ!zN24w)LJnXc4Twzg5 zUe(e`g-127ZjyO=06uBp8i!Y&WQI62yL&)C^mWU`YlC+o%MME7X7B>cRPRnYJW83# zkg@r9puLPce)%cQu7~(S$`FCXb4RI&{a-tn?1L2In3ncB)EJOxr=jC%StHSRcjt)(Y&?%@mf4q$|0q zSRG#GKx4K@>sV(IkQIWySZwDRL z=?usD9ZD6x#VAE;DZePt)_x^jEhf zq5VfLd;sBwOTaR3=3(xu#ya|Vwj|T&v(%~_S}Z!aD<8R2GTmuqK(%KhmZ@;3jgL2-7fOyeo^VX zlX(p(Uh9&y6GOQ~>mq^C$r3)F%ouW@-xVc^J){&tLJPiIz|1K#NMR;hH}98C4&s=J zCq2i;?k2TBwFEdCaBy&Wnn#8W!fY^rz&DavNkXGG!*v>AhTKikN2C01ZbGv#&2beL z)Z_g#U__+}4=+l*0#Fix8O%ZM$OSr-cz?}vjfySlFFNSFjz5Rc{mK6 za$9wHnCHOyE*gaQ^Cq%(KQ0RHH)wq4L}jmVT0NQw5uaT4lP&LjBXx+?eg_e@w>EiM zev5QLC4ng8;f`K4tC9rDD~hpYLIrEbl30=n_dy2Fg1)VB;G99LuNv8rvl1?I1%N|N zS|@#F@iAehX6CXbFzD!NId#xjb{@sPqrw1@-Z0rBJV)x#Mg)iGBmc&=JZq$9n%LYM zH4&wi+F`zM$$lGDvhv<@&335#o_ym+v*hXdcr&w(0002Qgt3J{017WekBA;2bpQ|- zWlcNL!L6@pP*M#q*0eBm+wG(+`|Rg>szTQ%{?LboP-ly~eefT#l7yZ=c&s|NlLg-; zk>U?|5_gs9Gf++sbi3n$ci+r0e)>6x4PYWho94io;WaHsP=}8b{grt*!Qt$k2h@uq zLt16oD#BXx4if80m)eilCgHGXPNMpEfPBcH;5lIe1|m*o=Tc@3j?rVY_rgF-d4@J% zNl7T^T8t9m_eMNJDo!*u2TCNY7YjRT>G5@{zPc&tpIBFNtjnBOLY0~{f3L=H_CoUn zR)t6iZ1m|~TEWVy?5Q}()=EoWEolV&a@GcBfY`bWVj&Sq^6aNW1$weF`1=U%(OG5E z2pPAtkuSlu4|>{$&GE2CgorD835d$z04_Ab*Am!Ef@1;$Pjb@oxTyeTf_V~+A$f~z z3Hg3-%%IqPZ%OqRpZ6}uw8I1bEEqZp>0SgLmfQTv7mDX5qe^5U+hWUEO>H&-?Qj7v z2H~W`imY&h+q{KtC`+P)FT=m%ZYmCIfjkB&VFkf!1eTc7TdbpwK5Aqo@|j0{q;ulU&O3J^AM}bE{f9+te37{N70_P}ii4 zJukBL!etS}T_g=$u|?GXWb41$8`}1^^tTVH;Avy^&myYp57=DWfQy_)PwSc1(C3O z8n4y_8n6#3KO*`Q`=ro?Hr4oSc#=X4DyuM3!)q~`1Q|%c7LXJ?ZYp<0 zqBx!72zPAo$But#$w@UH=r^W2)C4E&01az3-0d1_02Ux2dof&LRLlJp-}5}x^^c-M z1R0EuTE&YpfW5RcMsaj(2|0K!+rJCcScfvS*5`E}zN&p!Lt-U@+*8-6 zm-e%@su8*2JxKKB6IWusQz*fa4d&^J1T#4vzKISlRxq3tmdao2J8U_z22}}%EVC=e;c6^$z=$=V@NvPK z4ga0DNw(i-KB2ro8|K1vxvE0)6i80UPCCBSx@;r;f8$N*FYGv6CM0B;8%l1Q#_%M$ z%~$>%;Nem+0jhUFtrL4u{hgdmiI1-sIC90EPWfP==0{a5YKg>abQT&PIbVU&rq&DP zRt3Ng+J{U-NuKE5Q?|v|4pO0PxPpus@djUkTz6*`)cG!GpAT>37QML$WDW!S5*o~n z%1=vAVc3I_0AS&>q`bXRsNAYOk9|MK-d{VzDKjHlHWDiZ*($&=6me4?N7|Bp(jpGgSZQ3c-@45p1;

    HmsItkx`3~DS^=I&;~j8cd)HzZJxIdCa}*BOCH1nqu`NGV^I-5 z6|)`Kf&9rkd*;A(Rz0GLAxq2q2*HKHT#GKjybU@B*IBAE$gJUBXvgCKS0Caa!3@lnu{$)Jf&c!^*Vi<$HvC ze0!xTOU-iIx^?;Kh7<1;k&NH43E8DiEph^w7K@EQA{#x$B|SWKE@PfuQIALrw$5DA#;OG8M+m@88?>UzKBz@t){~UmW4p+jLQ2U^u;!rsqaw zbvx0V4IjMp%45W}i~V&wHl|4iG*O++hyGzbA3*l|`xl5OG}>Z7&S9*5+-aEmlQq0( z*#Z+#(0QDyK?&w15y%b`1``cA29ex+mOCYxnNYTqSAlYz@OPDpZ*GKFClqMFo6Esu6we_%1dbtWi7Y#Tky3YG2> zMT(T!J2w)1F{h8}i6f~%qLBls9R4 zBe-9K8+G9C_-K$~V#+08A`5Q>jT_=_O({lsY3T*lZwx@cMFYm7!$zYlvc{ z762lRR2?G|fmrj{%+DwRgc4c_64S^VP2Z?%cPO~G0KB+a%9U`Lg)+wyjG3okk=UBv zV2onx7I<}eFS*g(P5y}1>P@Y~cU<8DkZK(u-lIn-O3<-z36vL}p}lO&=qFbW{K%mY zmLZOfNvh{{kI5C|JaPqrR&O?BqU!{}hw}C_KUA&2;ib|j7y0GpNl<>y(OzHc83CG~ad{&&#s?ESZ6tLJp* zCdLn{=bCcKtZ`BY)zZl5@q!+mKLt_s)!A!;6%0V2+6m7XS_m8?2#ox<{Tqs#KO%RH z4sWN|E-eYK28Dh-dh_FUPtq+mk3rb_)0!7bo@fpaN8=RLO`|P#k)s+lYwA#uJhKT- zAtG@t(RuJ}>1VzNh4aiJ#1Y$@ww5&_Hu8Vqb8+Es z%dlt%Nt)j3ha!&J-A%gUDCz}z^Vdt;D|)YghQEa7XHLjy7Qs8yx%#J)HC@P9QNgxZ z)KlwwCN6%Mw4@P4@?S6SS70_MbuO4CR*zbYjQ9Yr2S~?JL1B4jz=p~9d-UrTf+<*v z`9SARB~RBYO0D70&%^fsC7)c;u?Lz)`3N3EVm}aHz5KJTk5{b>rMKM*cQD8!?Cz)7 zPb;0hxT@-O*aID4FHgcc;Se(N__p3&F$Ur#0chX-de7JPdz+CPWuEKr39IH)2TV(xiyeMplDqD|Y%X936 za>C*B%EL4!s$J{#IQoiIm6sMRWBbcP##9Kas63i9K1-a?{a8?RdXnH6?nAf~5$t@{0K;fs5b< z$bACaSWvZ0MTdIeb>tm8{YS7T*;xnvnZUhx@N#DhAv{Ehe4ka}a z@{`_Pnb5_cocGki2Y8j~aET;hSekTN3y#}(tYsoX5=*!F4o(4cL7^SC6SJ=~*fRm? zgMHQD;_%_=BK+DD%(cPFmnZNyLa~&7XZVAw220ujzcK|Ol5YbqHCM|b%rxQ<5R@|M z4F+|#IMb>MQ^bV9!MzkQ)nULF=AqO+mSHh`22_BJ+b zBT%ZO*D+0y?Vmik^jlk##Rd6=>`3`LDQb=J19v0xd}sy5Gjd}lZi7749~=apSvEyPi|5F$0b zpJ>lcG7af~+ALK)dy7Nc6D9H{jv-0UBzqkSU_KnF*l#eXraPkM=Kh@AqnN4pQTBbe zp;r9C3_uo+xAjUOV}FR!T-Hg^58rI^ALN*J9APoO=3%k!C#_>XEvDi!BWIVu2#x*T9ofMF&9+0EDu^e({ZF)WUCXx&7h z>Imcp$=UoCQPsa66*Wo*k+*2C<=nU@R-+s%P7BEqA7AT&Ia~Zf0y|43s;LqP89aQj z(ue0U2>Cm)X__H2-`xa28HFV?oc^gW&XE>37#=8c_$wo@wAcZGmSyd#x;l)X?;Xlm5VKq+C#T>o&~=RZ*bw^0}S zAbtfVo*9mB$zJk8&v2Kg*>s|S4X6(EZ61f#eIL)z)4O+XtN5snZZT19fC~6#OjDxH zvgi%~P#Op_T`CJlXA9Yl^U(6emTR@qgv#8|dT(u3U#fCQsPQ3Pu0FtrB^@j|;0zzB zyVmDgSPBcOsBMunU1`fo+wmPW>DB|**w&LM7iHHVUJ9*vB2K*d{v+Zm3yl`c(o`y8 zi4HpdxVhlkk&tl=?F|l7ui10P;qdO|XKA0y{(>Ai-}y+|6%fBY9TO}g$X}SiF98O6 zLVcbh(vKHn+RHX-b3i?y8sap%ED_7+y}L>!3G17Y0gP#mLWu}jf=ks95V1tK@WBWa zG7-8dC3J|qsqkkP2tdQJ+&lMbH26I5l)imp_%{Roj4TSoW?(9dWalG5PH9t z3lOvlfzSfq#;9IE^pUmR7#wR@u^XygrjUtPY08@*D8iR}OH8DtwnV)Yv)aHI@yz{$ zIz3tKJVhTCosYR%gM{Ho;Lap&m+O4Yt!UW50;oW?o9vn)9U4{MB^lD|%*dKJ-zh{N zHz!xf^0(e00;*s&W>*cp{r*;?rj7VDPH5;a3Vrp7R?kaRky3E|)7BXxHZz`UouYgN zGB)upR{Bbu!kMkGj57LU1`OY@4hu*nE-<^H{HAEN2FQrD#T)Q@8nKrjB*CmoAsmqb%e6Xf_1 zwO-6Ib%G(xhUde(*)NsY0u|8rl^1jz7C(U)QKv2!$%*}OfY)UVmao={J`ORA;XTLz z`(uU*1ynE^DOM(R7z|`P2mh%K%IOt)+tl%#1B?(_vu(B95V?&~oiwS8vV=xgSk3Sa zKpjweODnhf_*Pf;Nj|749g;4*d#dz$1mQ&-4^a$W?t*3kO0&5%`T!|$M6YZR-jdjK zShVb{`(@>XL|8~`q_RqOF$vdNKn~3kkjO0`Rcd3{NcW1C0J{Pn1nGx7VFB|*)8Chk zbJq^aYUVZejXp8xJKxzYH~KGN=?z4Qgpjeb%>O(2Od_K0PONPWX8Z2UMWTXqgsU?4 zF1Y112J6*#o4Bj79F$79+L*welk-UOBF?iP)930f=eI=RPDs>0SQkBaRN8+klAVDR zqT+P6DmHrVtw(`$kKY~bh-KgD;6)x|hLORx!YdDj^=Nqu9$GoE>Dzh zy%^(cL7q@~ z!@_1XBG0_$?2oOo*iI12)VEHW=I~SpIZO-g;GDeIxT^ptPTy>KN1y+RiiL3EO`o58 zD*ikOxDH4C?*;Z6pKduO`Ksr8SfoK6Ry2t;oW2qA)Nh?$>^JD4sI-*=98(>;Z?Ooqd3a8H`#zfZsC?Kos z$VZhHvmvGLpkB(V$;9hrz!)Sq=ho|K9T;l>4+9(@!YNCGT;zY=&EKlZDA}&PO3ujl z>EVa)*a$5O5it3Y1I&(Zlfz;qV@Li`xK@C4fz0Qu1`<_{PZ;x zD6Hm+=S=|uy}iW#4KR7$IhIn3Ui{i@@8fO~v8f`y3TCzASLlAS6#MMk^Bhqkol-&| z2^feGclIA)tM(d53hux!V>LH6A)0y%1(oBCB6Q zvxIdq+#TZy`Q%p;0^TdS>iyS=Sk9~m4Vq0sV#EeqMt*wptN&jzz)^w4P;R18l{)>Vgcs2)Of*yR%s2|Wb1Ct9L57-R$e#je7EOi$V@u65@?QR z@Bwu*D^G-#PJT}(4^;uTq(jjL#^QIDargiL01=})`+qA%08it8GaC1f^xqByl*#*> z#*?IOHUgDz#?$vq`m1ei5$(~C8Jr-tO5D&9>OG`(PL>a-6^Ja4BLoBaP*>`aDJH2h zGQSp}J;z7H?~?){;z>ZtYK_hGWW4Z2x8N2~-AzTc1&%AJl`9ead%J=Alh}E{2WXY6 zv+}QpxK(T($;^*Wo+3OfpvF-nuHal%mB*)Ox&T6Fz+&N7&Orw`E<+zf)x@$PDUvt8Sx)id5h19xLYSS5c8nz&I|N9vb@3K*7dE^<%EuA!x-4hF z3ZXgPgakKp?IcK@5eE7!KB1z=M#GjJu#EiP67F^v2}-gGkxurA7U3S1oFC$A5OsCU91tN4I5=0zL{X}BI;V8cZo<@ThPMiFStKIb+L zGybBr8#^d{wQ!+~`lB@9N`9$($Qbp{ z#POEDlYz6@$a$^MlelXtIIOora;qD2&ygKJ@C7WkI>r-Y=yY_{bDTs8cTCVym*I)H z3cM4W@%_`hS7lBw7L`j?t1F1pdwOq(1ihR`p~|d^$d1d-XmHa!LE=s!r-c!HMnh)h zI(6)fR4Uy@Gc{xLRt5R|4%D3-6dTcE6WRbd5ys(Ue*n(F5(y9v(J`+;GwM>t z{fF+DqRK%f6X&i@;(?-s(3OXwnn7D4spPaR*eB73Kdem~143)& z9_E88V7c!FFu*xc_hb~)Q!LvTtp9<%@@+rPkd#4ZH z>V`K}@j57f4MX!L+KjhRZ}H}5cN2y1e1_mtLXPD`1s{TRI1s~Y!;}O#8oXs#-6()0 z-QoA0J{Yy|esVPjD`%+I=6#mLaIF?m@|hvXhWskrlD@pIY^;tqmaX~=zIoKCFLo{! z$uT4NMy`agB$k9nLa?}38t1$J<@N?g@hLTK z;}_1mX*5uShKWil!BnQ_dU@(P3fYaYkz#$o7qk!%G6xeE&gw;_WV77HUP{99$bbY= z9aS{N2(CW>>xyGgkwtJ&5B`L>GAv1Qkh4l9f8c`fG-`V2)a?LpZ0J7J3{XpbB2|nA z^%Vv0A84NHF5PAt6cmY}-8G4gi4c>bY>|k*y?uD9hN_E68G;&5ZP@0p`dqr6L^VC9>u@QoAIMlhC90!T34SMO5Aee&>YUy^IwC|S?@ z8Pz|KqkHLOYscDp*VL0LPF}FHr|=23fM~yorG4>Fm-eon3##ezzlVE?e)jg8IM;)Z zLSYXik(6ffTfGSwQWaF?Fk5H*(?v@=Qj78e?#8XE*IHL~p`I8Z(j7va--f3-h|GQ9 zWOL9@U{`xZNdDU9+9kg5d!5<$NYY7kN(|YobpM`G^1idKV8%NN{MZZ%6Xlnc&R_-i z$IRJ*!FAAgz`hjUU6B&dZlJ29z}ZLcD;)##m}C_x7d`9TbqX1cz%xp)3E2GydWGW3JQeX`fM`Dx%#N_tPbz z8jO&3Jz=lI!?sNu@Lz7VEEht7oEulpXd9S$fOP}biwVyP3HPJELo*PVDdMxYbHd+C zjp$dhh_&_w{ch*Q_K8NMKG--*L@T&=hHF zc!k^zstt*o`%SP#lM>k4PgLt_j4MwDoHf$Qn_c=JmBGs4x9XqK{Y(s0=k4+?8q_I+QCGlvWKzz4|hF+KweB!$UwK#x!`$&Gmroca2T$gKb_c>aMaIB6Do zToPDN-SQhHfQiMf;plF1aEk+wwVR-avfpi!{mN~#$aAHKGO$3$(uMXA)zeU zzwH1o*N2uV%vL^6m+z~&m@wE)zz)3bAZ&wJ57z;ZLpV(P%6a}m^9_FJiK;hKv{dP$ z==zUJ_4<{F8OGN}T=AFLPiHQLi;+oM-WX2f7L{2++N-KgPncmp#Eq3m;_7 zk!*?xfWg3RbX%gD9lc_3WB4G#E2Gtia0oNtmSB|SSxZ-yFZ)O7nrWYB2Udb`qWTIC zds!FJxxwJtnD|*0uDvS{E9r^^2K1K5?I?ioT<<*WiJ7V95ix|vnPWS4gA-&|!L+oM zLVt^f5^e3l*i=s2+sy%Q$3X(%JgP(zgk>+xhK_U*omeslAzBgHZrzSN5otd6UaG&7 zmx0-^E}Rz?mCiK>Efh7z9i#93a&ynqJsv&rrZyu)Bk=z>ClQbYeuvH6Fr}I>7J{9s z^?bD(ar2Q;ggSfAd+QNU0grHYsU5I*su#jVCHxJ`*YsY5`?ovQk9XKT7F)`0CWvS{ zZKOsJJ;b`9Lrhztq_P~(E`liQf|a0Ya6c>Gh1Wq)uKw^mLDuxo6j;e(8He{vjH62K zk|B}awts44*a3FFAKfd;n{6XaOs=%jH5(z~+DP^%MS?)0qlajc7u)1mn zo+|CLAT*H<1TMPk)Z?QSgnppM&JI8jWZlQ6ERw0%Bfk|#0%kZocp)G!4S$)R5;n}u3?S67dYS0=E;+u%`_Ft;=% zJGvYpoC}83tywB+k}X`;QL^W_pz78x&`ln&qb0k`OSnO00Lta zT5ylN9O~v0GBf~VWQ*!G3>r7Ek<9EaCP8gei4lqtm>oCMw4FE}ia;%mQDuFdfMuNk zLVJ=!x+Y-7e=nXlNOYwx&~6h(AEqAI$G}H@+lfv^L2-aghkz!lx}bl;@Y5{`O_@tT z5a4C)`x^r;)ff(qbnMlm%j0BX_n*MzrJ(=s$DmVJ*@32{XJb&?6G%yX z*2fp^2cAH?!a-?)S0Pc3wkNRPk|wsngbskTqBk#U-N1~F`u?>0oG`mPY!5(FX&O(v zOEj3hca0nQ4?}?`AVpS0P?W^OG%6eNyOt2qk7Y5;y-T`7IoyO7`1ZBln{W^6{5s?^ zQ--!c_YE3fP!vmr{V(mN{GJZ=t)J+b1McH}zk6hdDpp0KPj>{hFBX{8KAwrLAIv}d zkA}lb*^>#jKfK5IQ*bE8Rx#k3spchXA}eLqn$%HQo-zXCKmjM|ZxvoAD{}h`IIPFvOx=Kz*Rpb6fmkheVE|%67z;LScVP%rR3h6!~+P*C1pjNEO#u z$|qVAr?6Hg^CXDOx;@ofr46gd4D`gJB&|o?U_#4W5&pmSINrd2zMXG2GsktzXA!_D zS)mZj@Gc|_u_fvbVxk|VVnNOs8#K>p=0KQ`B|r^N( z^7_#-&fTskdU2_SHRXKU<7&RFHG0kXv_h8TrURu9=`o$p3GexONX?%cU+{}P+RdPSJFX8yqaL&$`-x8xO z(&}*)L822hiFB9G*N+Qe+LS!?UmwBe@}K&YA~0POd#b%VTkHeuKP8OLK9zEO!ZNZ- zAiQbBFyudVOE7jO3X1%9U9xFZfQlus0;4w`!w5y_lFsGN2KN=JajZ7rvX%b;vOn>i zpX}wV0)>pR^}Mv1;YiVbB;}Rbk-e5d`+U})!)+HbOHZU3HN+y{K!-Q1ZD6c%_{pAh z$Kuh!;U zd39dN-SH`+*S`cJ$kjIc)Pwu#gn+l0%OeY7f?WdXD5kY@)#U_Z6Lh1lPm&p9o18&_ zhrv>%mLArH*ofvFHm3G)ptK)CRm*xh*y}3|xQVsSP_o5Y@=eZ;N{A%{iCc9y>bzY( z)(i8$GNSXSL-8mcc`BiFxyg^pKTiL*{9m!sZxH<5ree?hQHAJ zftpG~4h7dcm>M3&$Rx~1&1S=z0004xj0*sO-1Iui&iYm+bCXVZg(J&rt-v3>TlSdi z9OB*sP_qS82F7^EK$#`3=5~5i8E2jBm2C*5QMmfTY-KNe3>nE%+n5QwLxkta8Pv#q zy<%s#Mf0*5hO((O!xCPi0C6^LtG`KEwcHRQ3|Gsv#xwbqKKP?BNMuEbQ7;LN*XbeN zOy75EQ86TKxB0V^1$f^ifgAPCoOU8MF3+r9*_V-bV1s&QD+@XEhRC~& zWi4H<(j2zmOZcMsW+=ax!f*R>lFiU*L!cEPgeEslDbGb@B9d5iT52UZ?|a{5LVwa$Q$o?IMr9B?JxzphABtul)rIZ6zBEbQz2-7)uu z%X4OfAb5p~p+G*oo8LQZ0P*`q4fHS$e}6DNA_eA+!wQXu^ILRhRXhqe8h6qx5lblI z4GP-3bul0Eq7jt?yD{*R&GZuyW^~gXPC05yNyFDkz*|S^P!S*$iKm;?xt1Ca*G_cP zlPI6Ggg6rICb-}9hz8#O!wR1^kHO^3Ae9+Zca1A|&%x&Kq;DUoSW4)Lh_kjhd>n7D za@CCJBVph?k#p{?2FT{hgC(cj1Fcw$+)>UWEk}5)thyWBsT-!vR}RVi354fXu2$}S zM`!Xfd<)W?Avgq@HV_`5Ams1%&6~WbqfF3&38-Svo5ul<1`PH@u3c8(vn|qQJh(Q6 znhXCtTTsizv+zfg>|F@zm3 z0|Ao)wcQM>9;n%9f5lcw6^xeBLuXANuS@&_>@ack#tJ_s*^V-GvKR*I%gZZU&nw!# za77A=5|?KHJ@)~k&YNRZY@GpH!~f_18z$y@`ZbEwTyE}A`$#|(W`wR%U|W}>kBmlz zJG2L|)QR(Ig8`9bfYJIndDi$uduy;1Iq4VQ=v;oPkN6amiEQv2_sNYoXTl4H2C`>< z6t;@qHqpuPdSms#B^R>5RHh-a)iFt>A{U(nBOP{y5UaH)-Bu3~lHy@u%EbRSJ~JB7 z7P982_bImlr|CP53*G!Ia;ifWRJ|VS$G-WvG2c6sEjiiCrdc>2WJ{i0%!;@*9~X0R z)zijb*uz$1DFNtxzT0B(UePYa(gZHp^R5VZ$57OQOyW%tOK{LxdjnT+RTALjHIjUASbf-!XsP965THW z2zFQ`sS$!~pFeqeEE+>NZfS&PvR{Q%`XFktYD3WC>Mq8*=1|jV02#6*U+KiHpa8tc zVjuPlcWR?hXt&}jYkI(iLWH|~d%UTjlWIn5>h^0AlUZs>@|d>Ie_UN=6AvNB+!_Wq z-h8<`K~;3`$!sRA$0;)^J&5I|lOYehrk{5Xuk%=!XUUKAAO=O=A>@lHxQrTZS7_Xx zLFKOWr4w5gMLx72G<>9ce%R4dVV&$u*~@jx!%ip73wcrnli-K#kJxtAU#F@kl=6~W zA?~9ZV!kY1Dp-7zVlvoco%*=unRE*!;<0O!)DyaqS=D53aqcfS*PM+ybna!x(X&B! zh>{6CE#@36ZP)2VlQiTt5U=8sqV>eQL%|c zVUd($6$hWHR*dbA@-6_Fj~USi#I^W!GVw!Iq#*qM6wp???Uz>;lLHTwsHjBw1>A+9 z%QSj`ndGtOuziQIFeP^ewWqFG%nd#W@Uss-lgC|Tz?jdG_@Q%PlwRsux+9jIRjS%Q zo!(v3V7_p5DfK75>cn`Hrcn^e-qKVDl+}^6Jn|tW4VCefVCht5zP>c`6QjB5b$;?{ zg;n-;0No)6w$qhDY5LZTe58$adt-G1=KEbUVMLCW`!zu=)Y?g_7}QIKq=fmm=NoBV z(`WFdg7Tkr2!@(NKC^aZ0P^Gw79%5!8-UmrU>p#@XIl*MOq$cXB-js=Em$ z3)hmvJziwThO@Yg*yVj=j@CmHC@a($es^1JVJ8x;p^A3Cn~y%+*nwzmx5tYp@Ejw% z02<7TCl4Yvy%}%vetOWr?Rr1WzbmBfG^qPu-y51BRirC6D-ZBwQ~sH{C!E(8YEum2?zbpir1jO%!6!?VG`Ua9MxVzuKOP={ z7(Ciq=7lm>#(BBmdP=>TpCD9y%!l44K{9os(@JR*f~ofZc@g2vMHox48$KCWXpzNGxCr1Yxxw ztWI?lS4v`Yo{jhp))WQgu4v_1t`gRj!H$#Mgz2E6K>Q4xrTq#3E<)y0MLYd2dgtMz zNv5TM*@RTP=vYXoIo)F}VUQO>(T_u646*zjKOeIc46{aK%)S-&az((SDidfpzp$Go zvdj`#ou-2Cv3;PXFaEF}#ucjVIatRir%Zlc`9p)q28t)2)IBFW45q-u-t*naqKcaB zT0)?1obX2-t2NRK=+dHqiNrhT)d$`nEM%m|+Vd<>xo00`rZ^WlWM)JE(IJxMw_M$x zK(qDdAN(4_Fo$N4`0r2%Ju=9p9TO40KZ0AW+lI6zjrX%4$N~Q)4>3$%am}^ZiG6i6r@IS-~2mX z{GzrEP~hp(e}XP^S0dX|eijS=744q*#GJR~*ygZ&D1o^9f0h1B&M$HBqq*$<#u(u+ z%HqKrPe!gZrHOlEUWDr$vZLq+J7t=S^`ut_^d)30P>Tqs+wIH{C)6q6YmjvCHrH%R^HaaiBFC){7u!R|u7 z-?Wd|-YQ3Pp`%2@(4F`8s4r#E+0nw;(4ozhVt9#26DCuJA5yZ;*JMd7d??GpGp;L@ ze(p(cztQJNk`PekjoMJby!D`>>l993uYw@|>lZ9<_V3nj9kXubD>W|gC`3m}1TjG& z7ptfFwlcFZR|1PZ?xK^%dtvcu%BLSlQ0X-{^tR4-HFeB+(P~AYS1el8lXvoJZ5o<5 znT`CJF)NP|msig8qylaai~094paHGUXi3<+3l7j5$42402gFkIP6&x%nWG4&6~}h; z=fjC82w_rlwXtu8?Xegc#;D>Rh1p`ZSkTY9LvnUPX=GBXKyEeCSt@bc|(ITu}a-qZ>^IT$&yw8$h zI&*4jZd0lVrrPSluJdBSRtfB@^b1pZq?GKc0kfLIJfngvIrtU6Xz_GITvIQ$+WAxt zu1sQI|3NP-1C4mP2X*?mJHoeDa>GbI1w4m@6rPErhFFr78W8-?iR{Y0MTuC^y%!>z z1>TU5FH&1A59>ahQWvQ~$%b{31j*=C_BFBF2&MpZfdY&UrJXxW4G(|0df5I<3@$(2 z-&oIrne9)gNWhKsbYn*`bZoOMN1x`riet|I!yal+Qy*v5b0si<1%mbauts5sy-6-0 z^AybwPhLW}jn}HOXcN^tbpn7@vy@)UFXmy>aRW)nlTPwSZlJ*5Rw0#m@j7kp2D21h znNuqRmhsd%WIw1w$mWdHN)sbHy|YK&lCrx-oj7fAJ)z*!) zE}aKHGTnBNO+_#V^taXfI)2`7i<)6ZV=Dx|FVW?P6lot>uLb4UV?$(3*_#DG;^<`w zPS3tG!f#=JqyfT6rqS@m48wHchp`T{d3~r^!~I6~RbDqTw}+X0}gL zk8K3g2muz%4Kl&3$qw)ruU9h?JNRm}R2j4?!v*B%Xcwk&E z56%5`7GClI7VD;Udcnd><-J7dNdfx^1~+LL9#;oHFGm*Dum@$YFnzdws&qLI#gFB8 z1o?;KG!p=NGRsn^N24=N&bb8TEK4o#W>awiJeb|VAlZu}QGhrzJ4W$*AH$^eT%af) z=la18WrVB%PY@bRQI87;u*lMMNd=7EIN-1v9#`%hNAh%)q4%a8JzKBqx4Z#>$Sugev{0jxw?8J>#Feu7Ku zE4%0{x^P@eS*!Vu%S_k2Oyor$C*MeE9F6{`DNLO_p(Xc8Gq(B_n#DBlU?Sz8h?Ytp z&?EHSKR8s5t&z+Bj#;V9}sdUdpCBPy!nz%dSGccSK38F@Zh)z%zAm;^`MGlaf2o z0!}kpF{bVyGU4Txl7>}W{v~r=LjUa9;rMBDxEv>qJv@f)6ZV;Z0y2va%fBz>^|6*F za78leRWTgm=ed5$kPOzi##qk(+AP9!@I50Y9X0waPHsDeB|dHzlpMT;{Bx38IuU47 z!v2@8Az&Ca)eCwIeu8FR*HU$e1Y)o<*&lF%s|BaBpYlWSqE{b$2(HE5Z_!J(Z8J|v ztJK!ESb9;|h3{GW@2-7*{Dk@+={}Och6%`IVDtt7ZYn{M)Z-4mHDd$kw#=7~N9k|K zHpaUm-L-g|fZ~47$vgsYfqTxcR7Q8Io_9&%g!+l|BlcLe)hr%O5u+6n19nhDD=(r5gNl$Jn~C^c6B7~l zytHhsY-2ceAgx+0=AZqk0BIulQPeH$4X$0BiXOeKZt2WBgj0oOQ4z%YDWgQs3FCIY zQsY|k!^fv#R}_^GR9?P=ZbF&lx<(fHp!RFm>VS7Ej+Hz<(T}ezLfNBiyPMSNwdS&z zY-NW2@+&xB!UVQ5X}wsCUgMYb7vba<&jsY*qr}^V4o>Z$Xq)dIr~xBJ&M_CaaULSh z;Mn8L6o!v^Jo4BJAG#J`Brn7z>w5RI>YTyd6@t5cHVv!gXTGX8Eh+{#m$R2G2Jh^O>6_`}n1(w-3 zt{|m%H5d{FFSiF5s#6%@koWtj*&S_SLf+$TY2UGI>Wy8>{lDz|uB4b}yImMaqqGTz z_|ciZq|RfVnQPI$vH9M49(PmC$*LCCdGEgaT?F9|DkzTddqhb!-3oDG!}$?gd#^tq zi{CjsnP0GkefiY`XUr~WDZ{a}xr~ytSv=lXx63ggbsr|Yq=d^#vJZEUoWDRA`tULw z?v-QaY>I*E2X!QUye}^6P3M`IZ02=)d-DHdMXh@s2b!w!tJBc_9ryP}p|wF`BlET^ z?e<@A?H;v8j$vgdZEc8KS375$rYB4+9cf(mV!ESl{t;=~>}R1;ntr2Vss4xmMDZR+ zv3tCZtOe&5qM93ZZJ_)xoZu2k!rCakRWZN{@WGKZ*+Y5=M{2DM%*YElbc(Ph8K0(W z<||%|HT6oJ&ByqCWMnzN=7PLAcu(iV_(E*W!Lr~|SVh}0hO!ZjeC&LwxiHlo!x<`p zO|mCkR?ap;*o9xnqxdu5>4lK~bWp;qk!cz>eE+#-kqQe9LUJyCxjV9uwLncbt(DKa zy6%)aShi3=#Z(C&b7}T^SM6G&BpZ2G1i*1dNFG?$m!)-v7!-X(9MmR2VJA%*4d0Y} zTD}c5P8pYM3!Xv(V=R!>1s>q*wu)ljszaqvra&*@$a83RzM3HWCp{wmtB>}LX+VGe zcx%(9*$xTTLo-Ho>d=>q7-ukAg2MY~*+m`d9Cp*NRWRhfb6|s8{?+3;vKL^3Z@c>^ z#1o~r)3~XA??N5;J40Q15udD$!lIkoz&@F|(-L5sS@?0yg#&To#oVauJE2mIpZS>2 zK{F#uu9=RV?>}dPKwVT4*{;K@!FL=iX!il(lWQphBMp9$WDGdoI==hReEOCMs;3;X z8$kuWbCWLi!+E(;XX|lp1SUijeOBR^tGj`r4`M>&ux1}(b}XiQfhUU37sRyp)Rt%AlY&>dmNye`+5&YH!;eI zbaZy>Y;KVXth^tgV@&!~43Q%z=dJvMO_z!ni3E_d6ctrVmnkKxRS5wyUEyaXvdhy{ z5`}bV&z8=9p_CA6vYV9FH;Fj#y=R3}t!SOY5LmflyT`?*`k!n?P1@Lb4Uvo4r4ZW> z&7$QL_TF8qqP#86(a(_INcG)j8;)q@n-11Y00`-1eB-|1AkdfqDlnZ(O)G-XM`77w zJT{zn8qDi7#dxdLl0gvv|M`*c!&1sEmT^R{K za_$VXb`i+;rA(XT2pRY={L0vhFW!pVi>^v69NIE2kW6DO11|pGlFR^l z+5la32Jki!C=_IBN;0|i^NX<0>LCc=OI}*ba zBFVr&UO;aIXeaniD_}qF>Lv@eLG*(S2~2onWn2AG49lwy^LyqvNOGh~)oW6-&hnQA zRuYF$6z&}zzshSh{iuT0>$uN*RPitJ1zF;RZgeOFU3wLJOi|zB@)~gM)`0G1q*mz7dz^Tvcke?yqzIgb4Ip9Xkfc3J5-myg% z>)UY9Pk@f=2WLV(gY)4fszc$oB!l!4T>>lzT>}6+g!romPT(U+U`5zlCShA)R0Hv` zAZu7`my{rrIZZPc8ZaqoC)NFkHJ`Xz$$Yfdsj5tB6YoP9*271+U_3MGp@8l(fcu#> z01r_o_IU&#nY>A;1}V{YowZ|~)+hJYy+VPr5CDMkp-@g&th3e6aOdHNAS_ANW3jMr zQaitAotm}uW1iHfAHm@OXFdE2JcXvt$@J`~?xp`9qKc)CrO(Y+*SReyVBd)pO*z=j z6-3+e9IS3qDTyW@NCzsjvJR4bk*NT4CV8wOU$&;(84Nt6iJq9-YFVp(&8OF$fQKQf zuDeG)ezecBYw>UM0Fn8|$Ea?R7YP5zdYmUAG!mhpw982_cgIEne@!p$Iweuh6RvHe z&$5y0WiyNNKnej+RoLz`Cn+jcVU^zystfpWW&`_q*fhT)M;6S8yFz_lLb?&g4m0fM zB8UIlP$B^8&W)@JK-DW5Q7S>F5HLq(>1`XJKLJ`2m-Srl+dG~V0N}iaiw1@#0LcBl zN0j>EoMr|1dzLyTsxY`pzZ9w2pZMcVLCZ}70NQ5v$qgK3Sd2Zv@lvkJY4v*1Gr%ru z>kM(zm7OJmSo%(t{lbSG$U#eUp4vHV)2_8FLSbWn4%0!_s`DI101dkDyev2O-;^8i z`Ke5D{P8PG(?8fkq_=40xMMq22B7uPw28DJU@V^m-OK zp2kAt6P}%)4TV^iuzXKaF5P}%F#MWGEb4hzI(5EvkfzrBc&#jo0 zjU=s%9asCH8=*d0{5$T8bqIzuc)KOuZ&NH!KB>1HA?L|LO#pk7P!v{%_}VUHru1?O zzBPP3@zr8U-0v0iIGYGi!xNt*&I`rMFXV^`)QmlNo}eii7GbRbN=RANe?kWA3~gs@ zf4AAVEKNQKjR{K9)`P%)QNrZt_dTQ%s+et+j7mE{$s)v@lOEC71LcUQ1mmXGGQ9VAt<` zqz{}gP_)A)(sHY1E_EbK2@~GO1YktTd_E_9L#Xt~EifSQi!v8l?MU#Acr;^%_UVI)UhsX$GG+~_S<84sGg(KWYUD*EV9x~b89KWD+D-GoO*Z@j-3OPDH;%Ginf*hQ~iwaj6FTiQ|5 zwC=u>z);mC4JjCko|xtRaE=J$FQ;^1XdG7VZuo?_4G;J+>q)6-XjbyAQyPn&+Gi<& zEf_fGw@EjHd;W9b5-3SA$;oPr^AXS7(TcCRgPi~UXB=7zU=i`3Y!|yl)g2GZmcG{r zOY%)x_iAQ5hiObT0kqGgSPCv`hrGL$sQZ#8U=fGD*7R>8@9wrVE52TNHW15vf{tT3 zO>+Y4j@02U51UzE;xNF%lFB3ZJ#oH{gEz64Rs2D_(Ko^HH{7oMC6Kxo6`SYrujegb z&giJVlT=)B!6Uu2L$c)=KS?gb&> zD$2e2mnC%U*)3jxDotKZBGha6AjV=%4O`WjNYjES*?Ml0(-LyKih)Bs$Qe8l`RYmA z6%+R>{i|gxC;wrU-58q`UxFVw>-N(8Jn>us@^5(=3@{vI(vst^CH~ZkjgRMk503L^ zg1@wKM2*0zYe?>Lw-z6k{#5f;Igvq+Qc~u_^SEw&tAZ;T2x2=O@td}j%5bDe0)qm& zt$E~@o2BC757Eor+E!e9TTH@fV5;rMp?RYe=u2SL3q!&EQzc7{WO87bwvX3sL_fXD zY14AFz0nXqHp`%1jh5jRgy5)UeqR5MR9AZ9m0t0y)!O15JG8Ju4!{FMiFtYX0gSQi zvUeI4{lY{EfVECf3H0Tdp|zWI-7BTt8_akr32#6fXbPhkGMK3pz+(^=Sz@$K!GN)| zzq_>E+#P}|5g$9U}QA+wztkWR9pxTsPImx}r z#C3AxE~K}m%&sarY_GGME@ax)Zq7ratqXsG8$)k41xDs+%)sbq|4a?;(Z8(W7;b+R z*zPX_8TP2&tFMSSj)65_U2>1@CAvVmUC7T7Jg57HU!C*iy7ia3TVV^*td77l=FpoV zji|sN$sGwGm%BK`_n&0WxL@`Lw~_fKJz1gGDOYPVmLb*)JURG*R53*aSEQy zl;>m@g(0IgpuPY+hSr~>k07PsP$LXbNH{16v4$c5F)Cx=xTXF=x2Wh@jtZiok?#J{ z6HvxQwz+YiG%|&oaJi}%zLE>S(^7y@ zL;nr?nTa;?+sYI~^&Vwr3VOUFo}njwjo)2DHmiSN3Rnkt)ASZp%5PDMz5>q2or3lO zMJkL7fReKS2(@3==}J;U4C*nS477=X(GUO#Vh|38Oo9Csv-wYd?J1;$6h?4>Px#x@ zj>91@004U^#Q*?Lpu@3)@AFUH{Pt~x+Rt-#>hj@!(N5yxV@>v-RRkSgU^83p5jE(g zz=@F)-|LzNAvS*rt2#j6SP|RU3Zb6}Lga5xFK&^Qs0}u5E^4o^R#%JND zwP;n@pxr1mfXj2t&X%`D~iw#wrKlMxPA?bVDRr~-|&;bDsO*8 z`9+xJ?-kaP%9qzmmNAZR=6XAKD!oEE3L5?I$lWdRa5CIgz#}-r-WtZ!OC7rc)~D4{ zugLZoh2Vf(wHw)s-)2{2d@D7z=PQQmE>pU?Hn4%Az8B-5LIr-S^M(-z>w+qL!mQ>v<4dNjT3U$)kR9iVqE#o^$Kyh79-mHLsH%H{+J$UPh+ z(OZO=f*PvFR~={ru%Q4Iz!BEY`xI3=@6KOr#S2?4$vCmQnRmvLPfpl0$=qpIp<8lf z^QPR+mUF|-tv|O%Lzz!agGh8e5R*eeBL?WgsI)PR&#uF%i`~sL&lKm?xcsHWw=N&?z z@5uG7K0JI`M70y6l!S7DgG^ct$CqgjXh&9Quhj0q0QxmJH7mtnU`j4*hO>^`D>EIb zKv=2XU;r&*bX4Q4dXAjjRdAK)KB@n6pWvNUw5Te+kwO?e5RuzUvUA=7f)Q|4h6E6pWdNLgh5aEVx(v;bkg~6g&CGpH>LeQ!%cY~l8$r|7I z)#Y8uO)eiHtrBsS&nt?n0>+D< z8%hfce=ja>Ms;Q+aP^8}g4n){x#%>w2}Ah`OT>iRy}`1svt$Rh(%Ci)f8qaT?_u8R z4?#_<(03c{N%ks`&&BhZ>603wM~%&fLpWyK4o=;-jEdGwD2zs8{aXz%W^;PhX$85f z{TE&T)@PBwR)cnMH#2V6b>A7?XR+wT+2-hdYFMxH_`p()1N9eWeNEhqIVx~Iq_~IW z>zc~|XzS@a;{krikSn9m;n+e0-mcf7V@#B7-*kNs!Cr&T)f(o{P4rdkgdo&W?bq=kuq z+7ZHb#)ElO3qW2yx$UitsON#kowE0^04re?5UP*8(n$Ja`9vw(^4{(ugu_opBUuKK z&)GiUi?Ct?jZ2CkBOd@q3_Garl_$6wl%>I19(3W2Wod)8i(8Z@gBC8!!)c}72x~80 zVnjDT;A;++rP24XD1*-q^}VMD7(VTr3dgfFmbGBV-C-{N09Q)L7mlK-G|Xpzg>WJ` z4TuqRzu{HiMG%=Xc|Vp z`@G;G3W9zUa3!Gj7FVrpKmgwmkdf47VYbhQE@7`Rf^P8Wj3lX$=5eONUN$i#b=jb& zc7`d`kWNV_)cS7}1ptX7mCj>*!Zo}y;`g0^lU8>X3*uHwC#{LbjHB&opNmW9<+M?A zw6ch7gH|f^;p>5Vk8-k_-T{qDX8H=8wHGQo(wz`bFUof6GV8!t`y4$Gs0C(cyrqTG zMqzQ&%a?VM+t=E08yrhq1irqrph888&EQ zc}^Q5u;#Z0c4};RB8x%u+3TP7_wf$kJoQ&@!H0A2+9zMpFZhzHG@|NhO6{GtjTVg= zP*c0tUM^hJS^2?p<$eZiykPdxQ*E=9jysI}D%`E|mjZnN0AYqjaUPXBm`sX5B+t-_ z-Ugqh7|Tk;IM@+lj$NzJLnJl95lsHeNp!|J8{jjG$KzQs&I1DmWzl0YTp*2~{QkOk z`<5{*TagYON2LV0v&yPV(4r0k{WKAuLEWR%g_--Nqf)`tTkiRShW3XnOPpsAqT z3R>wXiTtK&a6|u?YmxTgZh*MACj`~Q-~9*Yc4wgU#-SHd%)j!a8t@s&!$)L_=K7!) zlr|kz=OIb;8obJPoGom?&3h*yC}rmb9ir?%i;`Zjq$#KMyb4O*iHzyyqtwSA(BSuU zMjh}~?cuUu1V?BIorHXFD!t*SAUGU5)u$#hJIgK<7t*U)C1!?RUFiYB3}WTnsF?Ny z*8P|6O2L!jI;bdvpfxK~vbs6{;Iz?yEhD&L!#&&w;CaGd6Tq?q#^MRn zg-F8W`I5k%W>8uMwt%zmB#L)feqG-8nWu%aOT}u@k!wtD>x3TjY|O&3vesIT&4Z?d zO5F#!N(&YkI!ZwI8ruXser`t%Kfq8H_}l%hNq|amsjR{twy`e>m<%|o6qs$vxug!{ z9aEvgZQljtR*@KOEsNG@$UhY-ZRfB5%MLL~az(v=J{O8)6h=e0h-H$r3CMs4v02+^ zJnsYmFcFdAzgBga3jEaX&+n{*?FTwo|1BAccFK8+OZLKFK9fO68<+Dvhma zvHU*%DjLqsGYt#I>F}O*pEuOE7eWyQ`GCrYIRMZ-T8oR=EKq#ax+Eyo?-B(txN!xg zaRR2Wh)pOC-WzL>Uth#uxQ}^-4#CQP4ZEnAJNTO^P4j3Bm1@*9d^DqR>GfdhSmLq~ zKqNTFJ8ufR=k8!f(l?-+2U|03hZc?bMs=GBl7<3rQg!QKB;afRcEO0Z)Dtx6Wm2WZ{>BJq(8REJO8VO zt8T11M~%_cm*q+Fr>c-b+uZN^5xnW1JMd1YCav3fAV6_+KrSC7H+cXGNx8my-A7nx zJe?_&n9tzCw8Dy|d(3jxZx$ps1OhG+0i#x2oI|Q(*XdB3Ho@R6GDO-Xz4aGdWG~?$ zdsSylZ;z4i+pZ>%x?D>Z#Y~AhsaC;|oqU8n^}iou&st8|ToD40;0(z^CTicON{D#_ zKiq}w4MaKy)PwkJOxANgGfDkyS&^2{urxRNjB zg;6LHZP;64cxc0?Inw4vRDaT>>o5yZ6`FB&pA#?pOr;~KHNFpP{onZ));~2$Obz0{ z(Wf%N2$4V?uYA1HF1_c{*JCY8#ORic@CWU(mAl77_4J&>$Q5o3hLX0|k0!=Ug~ z1MH8>6OE=ZOM``VHJ=^P;tXhqF6(Kh`+v)0BrEu193y3;OlwfdbTpP+m}H-?8~QT> z(-XPC+cu0}kmxex3+#vXLhUBWoHAKWK>=ZUbOXhw653Ky$qZK~GcQt82>m#W@sEqu zf(%HKJs;jQmr{j%nFhbv;NFxH5m2yOozx~gu9Lb(So3IEA&?O<0vAbrS)`8 z8V8v(u_9B>`NgU;LhfT6Na~S<)7hu@Udg~PTo zz}uHDsa2e7p4u!Z(t%f|)#|iO00`PSRp{|HiTCIL$Me~Dc`{h)4<;&1g6lb*7)VT6 zP4bSilB8cgReu_;oA;(gi2gNufC*PlJ-c+XfBe`PDB!i?0V7AOyi=>AiuppD8r;Ry zu=V%#HImh{$^&^qFIWL-DU0v+k1muL|X^{_w~C3IJCY4DE8|V^*Ga zuLvnd=$sSlnegni`}nN$ODBK#FeAnIHCL@kDO3X-%e{8+DHhvZ#wcnGyHg*93zJE{ ztA+c2zSs{}NGnI&A=aC`e`~Q)l@}l9#74D}v?VILM~eV?OD_+B_R0_1bMy55$;pB6H^V{SE&Wbyvdw2IWWNsjq!x^w|-&JQ$P=SVp zIM=mPi?tDVDB4@CYUHq-4|L+!)TsU1ATm&OY{Q6dEhYcA%-jgU^-^Zj(2!Jl7 z@pS0dmGc(1qC!=j*mVu%HXqf#UPH5oKt1EJUhNa0M#i{ULqm2M99rCB8o}16U#Rp{ z@GqvZ&u-lKjY*C2?al#>zro~UNviYfLkMLC-|*_-p;u7?oJ15(gLA)1S)WT_r~wGG^65^-LnJX$-F&E=Qr`Po7b0wJiaIX%x5NyQYSvptis zWDe;8_E6J~A$QTg1}vzi!VF{Ig4f&WaeUmA$K zoB|*>J!rcxXoDP98l*$G@=Tm62G4h3dkP zV|U8AmCQg*_HOv>3QoSlK^``K%vH1um5Kq`2{&X=~9Vjs=e;#;ffTbo)56FA2dW9mbcDD$P)3yjgI0-ic?i zn_dt6<*c!j39gx~CFPd$`HK-o*=T;^C%)Na)4?Qi6Zy4jH0lBzjL#u4@w?6{gNn;C z;-BiPTyI$eN!1CJmhUpimPV>F z;(Y16=?N5SjxC|(U8>tYRh)O?qCsnU!v7DJJ}FTEoE3h$!>|t3CX29e0kKY`2LvEK zdq4mJ2Jm5tPz`s*cA+1}u!J%NH@$$SYVHB~X*uNEAE;)u3@cfMVpCFRuYe9;uHaJ8 zHTUE@Nc2xYs{9-o{?mNF6Yx&!P~UPAR2cY{?x7=|NGze7lHd_0z8f~Bogu_b<}%>| z+>;wuSHE|AoPFk18*&Y0l5xBm?fpXzS02W3{|o-+NEoHva($Id__u2eg2E2w$1! z*&HY*4><(^_<$q4x_qY7Bm-(oZdI(oVzo90$eP5x+?tBK-0Ow&+M8Pw2r8Yecu>~~ zXH&_i}g9X$xzuU(~=Z#=}cNGQ6!L;!5Y|gDFkmlz>{rcZoGj*`yQM zH#Fh(rJfiY0=g>f5(RET(I4afC>43dS_j7oz`2%3_?XJ2<)8vT~ZSf3aLvO zHG=PH_fgpiY^^=uoQgt)&_0C9&f+8b`LE)uX%@)zj){)ScTVghM>99@pjz1JybI*HQ%c2Z zCVG}gvAxaH!FBnjysgJ;ZlZ}$^(?%BA~MAo^3QwkK^226ymcz*=YZ<;90vBO0DSF4 zHCI&HPn{$A*r>&xw*~%(uqbbPaUA{<=r`7vTp$JhGIcg|qmbCLt6Qf@*r^z&&+x`lPnS6ow_ODL5z95fXCCX&v!t)kIrK zHyA@z|1!KFq_S@KCAs5cGFDp5PB^i*c_A~F;D<2{Cfa-vngYC z4^Lw@jqgTc;qlXOcE)+QV^7>Bhx{44Yc#Od*4TO<1a4rMAPLo%G}4*`=TOpwr)Zym zbeZ9YML7<~E{Sm!yQ$_97T~)9NY9~wuL)gQq)9Va_jtB-{pgXb=iwJ7DeXiv>5aX$ z`>YZ{Zk-EnC#(&ZgQq*UH2*iCM+~*PTHZ8$mE48E_FY2W?z9@-Ca3Az5EP@}9P_xK ze1MWvmmwN4hX z=eb*kw6=md2lL|xzQ-qYkbdIiMD|mC5FyDzKppr(QFT5#^8X zsK$AveS8T%mL*3;3!60j#0@=~yugAPl0BA*#+4YJNVH z!rzx(BP(IdHUN|_<|1nZPow>ICL4N)fy;$$gP-J-nYuLr6f|3T--fuJAma*xXGn0p4;cpAQzGlxF>7shK45iifBySZryPkkfFB z_}c{o>vZ$)_3GNCgi{<>_oi23%EUmrrQPTR;w*zut|Sof&%4CCFe-oO@wSj4~N z%~{g{!o(a%$XzXF``yFy;wpPZi$8`&}Uu5lWS{nY= zZRk+O@FmyMUD_UrfSF5-wH_Ybf}daK613JM%&~i`D50;gBw6`5-1x<$Y!2v?^0O19 z$s2e;Vv_?E^G5KpGh8ok9)vGqMLKp9-R0h}NH_0{JeqyyMo z!>jMu{%PSK0o#VNPjm9zZGRCB;^w2j1$FPUX1z(_s*4uOBa!|b1#x27Lncte?=vX* z$*3Y?>*y^3F-$u^Bwz41lvd8Ommz-C9rTGy2`tF5M)Uwn!oO)IVJ-RD`55Xw?K}q5 zJB7QH#Yr2SBrPuJDv@24Td4{VXsf`WgGw3=#2kBQOB0Z7S|ctkJc{M&Fu^fZu7Fsy zQN*cZj(~`K4;pG!;BT-X$A>T!fO6qGWq}BD5MqvZb}`lgd3kjucgjn=NkopzH=rEH z6i0Dh&C*vYl#Nvxi{2MJ=4OcUGu4mW=WV*}_rO9maxTQA6fU%LV{QOo6h7^{yTZ|M z+4pp<87y4oGu=|se4gx=+D_Ezbglp{pDge5=3ExYk}?1mSl(gn!f@S-PMfOB@p3PtM!~YW&qb~mVNXRX^f_ywHnTrEa%Tq ztjZRPVe#e?S7MRhMu{KNnKMQ&oTfVAV2(`M&^287z#8zQ%>u?HXFrv2nzlQQA3n(p zr^Y#>k7bQNaH+>f8s+xN3CZDb1XN|9NTpf+qf@flYl_J`(mm;&l_LqEcX!4a_v#5b z3rp^xKSIo;!R!YsHHoq8^NDD6yyPFlRrM_np}ry}zMs_uUT`_kdl9x0_D!BZhCSZM zB4?PE)VH^{umbBU!keXJLnKw(62ga5X?1oI1b5M*m(KTl%q$db;#VM*Rzy-oD~$k4K(xO{rnkj_(8Z)ZN<5<} zklIncjf(PPr0|@iXb~_w0L)LYWFu85zTR|1dEQV>$f#L?GP!Ixmc{C5FA4VU`A6J> zD6u#3=f`^kg=_VCgLf4)MtM+1akr#WbC1I=Y7K0$O7GSH*M!qN)=)CWZ5$?lZ;UN^ z;0Q~FLx{M}v|^xWAO=BBcDn*9QZ!w(VRioi000vZ@Z^hkGaq0Wwfx<7>UOZhGk@AV z*A#bLpVc^2djW{MDw^`DA5S}GXWgeuZ4kQMtphP7I-b-#F={*M?QVTf%>?Az^VzJc0ptr4%{bBQW z@K_+Wx6!|C8WbWZ`;l_2P4w9F&7srxIs9vzXV>-sKs>EYD!z?f+*KuY^4m8|5jR5P z&LvlpS5f&hqxb2bFACsQ>n7}K$e z3vNL8>?maZ7k1bA&g@Tq%cK^E%Fs8WT`e%oNcU8uZ0gfAiS-gU{^VX2ZVXr zMO|nb@q%M-2%k=VSir{)CtlrLke?D?FxvTH5;Tc?f>;VD!2UUiQ(LkM#+^Fa+R&QC2%81%JxIkmWSa5B3! zvS`V@ZqW)k2X$B7Hy)}gG;-mK5r>mb8u>GIyaGPzE;MVcFnQF z3zkN#z40NVchxOBYSOd~P?79Z6SgUp>+uZRB$-nS6ic6i-3Md8LVu0OP4!oe^MOq+ z9Y2BtDCZDG#XndSV^^qI)5nD{5qzyz2-QcHeS@2W)Kf*yv{%B%6IyqAL>Wa_BS%9E zO{`Le8?L!`~$qS->VB^oogXZivIqvpobLlJ0pHRW|8C}DUC83hySfzSqxys zv)4GV-haTOTp5keOVk-~po=Mt#Q?9OkNc7>%7G4aF6n5mlg&!ADrve}^bCirghM{$ zK8~?Zyh|IKAV6QYMZdcD`(g*sz}vS39zLkdM|jIA5lSoT+L$MA*L=%RQYl9!akhW_ z3HGk3F=cAG#~tti%Q__0Xs=CdIN zzd^5(ci0^DPP|vjSXb9u)UwrWR9>%OWN%s2gY93dwj>Mg*dFrwUf2YWu$N3yL=-*S z3g3Zcn>k^_gDaf>+O088tm=a&A_+@u-;x{l4{b~P8g8!?AZRhwWhzKu;KycMAFQH- zj)>)p-e{jLYrV@U?|r6L-%%bTo%p9@uT6gEyO}~9hd+L!@z04fD;o^(V)b1R8j4`r z9xHLnY68wt{F&Z2M{@`#X5{#v1W9Xd2yJRC|5Mlm$mLs8nX<}eBSd@2^|NUqbYs1wFM6a0DQ0lRX4ra@wBSBT+sY*5NBXZ4S$!7EOelyN znta1(IjOEqX#p~FgBUdCwfy)Wj#YT@JljrX2Z5q&D01n!J%odFEh`sP=|L)T82W>& zynB5o<3%eIgDuw0{BSEy?gfjRRZCV^*9tPWY48U0?A%91DpB5@I<2I`!anD~?|*98 z^n;c=-u+vcJ=y}T^naUH_r>Kmc&-yCYT%48i1DFLwkg-S^k1#ri#~yC<2IM;AVpOCAr=)Gw8mDuN zgPcqh>(l`_yGF60(FAxj_!gRF@XF%N87@{xXo#9!0p!1h0k`V^;|$NpNx}Pq+iY*> zzW08EiIEa9F+7pjegGrmC0@swF>hpV6VgomTCmahF7QQIKf}BqK)7gV8j6~m0_M(j zpBT?)yc@enbFBWUEN<_^6aWW|00B-AEu4R&G4Kw|{dMCGhX0>^jyPm;IWaCxYn988 zxow}0LMZ+?C2aRFHr!5~h8j$+>&oTt0;>`?)YJ>WJT-65;jFf^yvN}m8A8Z~+$l@p z*~bS;=*ic6GgK-B3&z@_1fXj^AAHw^ZnEd?j?d8X$w~M@R6KJjLOlKoR1rm9!`Vj( z33R0b`WpG*7C}APAJga+!cV9V{hLgw_HKRKKqR*K{gM`{NQ)ndBl4>Yfv82xV3W!t zX5jDpI)??K$~_nh;1MJc@)Ae@Clm_` zi}~l_)R%ArLQGoBMRHS~M4CE1vn!<{w*XmrkN^NHo|&xH0S?c%U0x^@9d#8tN9sYs zi5PF?@493+WJP8v;+aGoV>p!X{D%Tuh809253wr%W8dS`Rmiu<|C3ZtgvbC_%gMP)7}KAAdF-|QE|cg7{bs-b1-U@h{GNg% zpmg}$P4T`NmMc?IwI=unMSuX|07gM-8RHNwVgOg$BgP(~`X@xR>230Iu7_3i_ufQ* ztO399Sp5bOC;&Z*bP(uwo;d&nz?;42aPX#4Z`$xe5H&F;Q2NM6=PFcAj`UtEI5kiY#cT_^JCdoIcEY@PC^Uz3KOjZ9LFse|1^ zU#>@{WbxL$_!=&rC8N1LBs-b9R`dcfE~q71Jy?Mz4K^xd66mS}f_lqI!ft=r`Ewzx zG(h#N+Z_rhT$-03a&G@nru%&m8enR>|9E@J=LUm}D9!x=3@1x|gef%6DkCQUO_hvm)Ko`s4fg$M)& ziuWh#GyDF)-^A@Loee82jLc>*yDd|tKU$=VO(F=fKblfz`FA~1IA5%cFO0@P5$q)~ z2*H$KsJU(+8wI2^m_P>rEv@JRH!$#~?X4jZjr z>=mIh&>Rc#QkX4jatiZv7!A<$odqon^ z!k_OV)W8CqYbP%!c8%weJPT$y7zsW2U6P=v85y>y^8}5fgY0|K@aC%$EaH-DMzahQ zFoK|KjUQ+^#IT*1k=(8@aU+tHYT_w_a};IaLC?qvH#2_f*NqGP?aKY=Uu&*m5Dw@^ z(*8-BibT3}lQJR{8FXtmiqo zFM`wst_;CUw@Z(@$@J@Ja+aYxud?sK^r38vt7?vsMr6+)n~YrqSBG4p|L^8m2WHv+ zO?l(s!B4l*Y&0VL@v2&H-ke4F@O&B@m$biUl0E2!n>!cKSvWnB;|69P)B=fnC9gfw zmOI+2hXgfmR__o!beolgX7+$Z?ayI*_&NDQp?;q!n=d-hftRF^cH`TXBv_$}Z|Ak{BGTnbmE5KZeeaTaWqT39`d)#pFhnP3VWf^$^GPUp`;%cWh z@(6}`y?~kEl>(X^B=41Ap|r>6_sK7vr~C2BqXL=HFqq%pJHmvhC| zrw5%bsi`2v4Wxs9b08F)@S-6QOtQl_$%aCsUP!hq2JNmHr3D`>0oG;>5aiEx&v}0- zZq2VyxVpL2c>^|m`hGC08!OQ_ajQT!Nvbv)xaih*}k-xzeO> z+O-`TDTUbcN5Bklrnq)weeQwe6bpv#y3!?Iwfs0ldRr-;|4UMJ@fPNOvAlV}$etPk z0WaqF%>wP&tqb;9%LQtV-ubg?bP@lv8qo-6>b?;mZjVDy@ki|SNFp?inM<9Rw85-M zJiUcRd0S=Jmf4NKF+XmPMXu?b@3qSKS4c;{LouWM>FU-XZ5A173F_C32L=!eR9aOv zPFHUrKZ3}c+KRj=1u;%i$XIY2{zDe*5LwT3V?vlD`9{HdGNLh0=lJF~@%K>(x4qNq zP8tq6eG!ztdn?eL?qQ&8Lp5DKiM{=`!K(kSX?eSR7~-hvXhestB=L3! z(LcqqVG|Z?`SnTkElAnH=L!Xw+kj#f>$>aPsZhuMu<>no+78yW1Amt=7>2E5i&$E_ zM53H`TctVl2g1Je0)&Cly$J{>@jZr&<-M0^@;CJTJ{Js=2Yb&(1~9$sff~>6Rpox= za_fe1Gkina%)-gA$wK$dVf4QXk%unO#^8W4b!z2F$YS)>^DaJnBo@lmurrD6055?= zeb|;TGshl)qTtl{rMA4mR7v?0_=VEni4JEQw{^RAVfq>TKl~e>hvRN4TEMXAbWfvn z7|#`KIbm%NztRKCyL`GU@ON=AbeW<{Qru}4#$hW~>uD5E)h*7v6~hDdD(uI@*!fh8 z_eC8EjQ&A4NAgJ)aSd>s&T}PRShH9!){CxJ z^OrJia21GTipW@t!OJ4*1HygF`ri<=y=LU$E>kdzhMU({;`{UQUa`AAfm%DC1JZ)Z4}R5G~CHLS6stIq8- zS&&>p2KvH2zeI7l81P{u`7PI^!5A=2JObzyrp3!B+4X4AXNakgThTZ`VUPY31Xtj} z&nx*m-VLhXm~wd=_yJ!Rdold9OK8RPg9DmF*}@u@Q0P^5_sNSMHoKQjQ5G#dg&x5p z+(E#)IuU^)^e26VEk0fnEGDLB6IZ*$sM9@9KhO#Yc8m8D#XaUARX_?fa~0m3q)+x5 zf_*B0;#X5dHHUvvasYZXzPy^>I&1q4d-+K50dLKq4P~qb@f@6KmtE)q_Rru@W<9y8 zTHNGTV_c3KvJnpDhWowQxtsZ9L}12gG1_ApRg>E8V+5jdd|%b|Rb`twvIH35y#WDH z7ltfs!c#g;7zFIXBA37L01mZw=24Dgm-xO=kv^I(Bl6=0CLUuvvy{XqpPtqPV-b#VWBq?CIOo?tP(MQ&HpHehCVz`Iji)IJ zIXhV@imK(PnS*4LlVE#h6}G6&{s6$oL|$*sBT&)>vv*DCw6|*x!G^E26qJ)?P-#|; zJn{vE#@2C*chI-Nb2}R3*1fWVqm?0xWc

    @LxeFXC!a_Wd8@q&%td*n8XE6vAQcuAEC2w_ZQOtWVU@{M z*&pBz?r!+QI6-rS;)$#G zDjY5V8EtH>6qxye3;x|-5YgwC#wv9oin%Ds*lyiqvi3?|Q8dHR=3uBnAGgjyEjpIt z;|Kc7g0$oQZ>D1MWZbMdyQ2sJ+ra}MCIs)?1+aadz$|e7>zWzPv?nzOvj76oJ+Lhp zMZli6DO+EZA?=T*C590TmlOq#MY?Hhf1)t8-uMsPGQcGhow-egF01K?-=zN}hmDQr-5vuELb0~G5(5tL8>H{v~g1n@lf+@ZI z3ay{WQKiL(_z^2yAGN5`fuj}yf!{1VD*+bup#_I7iw&&M#jVH*YyTizT07ul*RY~2 z(E9xCiy^Q@{BL!6Ci9nIAIK^r6Q{e84_cVUrt${WZP7qqx~I&E0G@kQOqLqg7Xh;V zE+xc5^59MgKZly%(96?Z9W`vWMIPT_bI1^-VBl*4U+25f&IE_M%=mOgmvw~%TL^>@ zt&xM}WV?1w>G40pX5YQA8n0mAe7)R<=N;^NAZzhX+XO&NH!PMh0kQVt=hUT*lBiAj zpV3(CJ>ck~fukG!sFCQO-+ipuGGv85lzWR{v?P>^QR(Y42RuhvZ(#MVTj|J0n{0B4 z?Mv31GjnV0*>`9bbvO*~K~%EMK*Tz(U7if5{i-m;w8C_ALZJch5ycNU#!{v@s(g}X zRj8rLR)XXpzB-5#ybzN8{xi@64kgUI?h)(=I?%a>V7ox^2P*~8g;yu}NElfqEwM)t z9`2g#e&?<98@m();7%m8Ckh$PwJ}m=t``b) zp^|;ewW><&84#cp8d9G07GFBkiHC40=jIpLmQgj|8>;xP9$C8JSf18v=&kQOai2XZ zyy#P}pOz-&qg!jCMbPY*5p)HAYV!kLef)8_IESzSApW}biQL;eB4(EbvKZKc*UM|Q zuQjIDc=k_bZ&d+_2KvI7(d($w>V{uhT0h7z3S5w~)4d3+(d`}uEwUQ9r;P1ynG8Pq zc)TI9%4&{Lw_WqFK$LfcyMW--*ofV@1q+2`xV#CuYH%gZF}&d+GlghtkAv6LA&_6Hdy`{~yxW&#b9YIODak3w`ipC{qK5dY)tFJgW3-M9CX5Pewf9bqG8^u$q3PG6XPd}o+ z|Gb*Mbm)>Xc^P+wT3X(@o}lTWW1?X(0^ya)KwF-P&ZWRw;@>c4$J;2)*PUlgY!t?q z88zrmqP}i?Ok8*&2E3bnm)|*!n9Iyp_QAGc5?}08Y2VYt#}{PcCgc}^SYLgUqG(a0 zE?t>Gouplj;rp&JPIi$c%$fpBGE9Ge8j|!)jOHT|WK@#GR0Alzv(kP!K=EXm9Aod~ zTE?iO>uUgm1AX4OIA^GzuTXNT_~@ax6m-_6P5a>?o%c*O#RsutJ-00BgluQ+DQ17b zA=CdGGCld2ygZqE=KXG$q_l~!(@*6Oc+Ev%E6A?)b(_btprB|{4r?Fmni0ye z+b6`f^1xOXI4t?HzY``w%yzxkb))d?pdcN%(PL#VrV_bLoX)2xfYQHNn&Yj|Y!W@( zo=(J)%BOp2T4N^m;_fF$7ve z)iBVFPu!lbqbxE~$XpUqXV)1!ePV->5-P_Z(uUmP{K;BH|0g?l1#i56Voeq=Ufo zU^E2aXW)&-CegC_nus5VETLu}J)4pWfohA8A=R)HE;^00vej-QVb-ZW-{uK3o;KZO|Jw+083x{eEF|i- z0PL{tnBleJPdD=?uW^<%66<#7o0%nhXqifWa_igF0@Q}4G8$TpmWS5NH>+uk5ab7a5T<11`f8KQ39}os zbA+^E80(SVW5VFQC)7hN29=Ni+8-=PDFvlY(maKKE{C;=0@9UmMTZUY>85aSxa(nC zG7H=k;3#iC11~}rCj~<+R$Sx3GlVNf^)DGW4Huo0_Ny2D@OUvUxn*jvjM8S`=S(iZ=80+@Jfr-~z!3x+kt6Q9M zB9YijrxWTNa*!5YMo?QI7!f#!)2xkAGk6)0I^)nw>K=Hd`@@s1N^rR8^CKm~OxWfr z#EY6C6D!c0>8SCmaTmj4Nmp^st=$>!GqCLT{j3P#-w+5Z!pvy46;*eMJs!Up5HzWS z8h5%0oXz&!Wt79D0YA<#?3%`}v9$Mr2UG*K{KY!d(t$hEwGKYp(^Sg_4D~k}w{VWF zk$b;b0n#2z4(`wVTUt~m{w@-W!aCcLj15eMi!64it(8h8&1ZrFs~1M9dFjuGx3xZo zz2t9@>O<<70bMq&>eABhG}P@F{nEdAIXl;`Zq|p9Ara_&I~G!_aQE!l<%q@hM=Q?k zddn)VLx=R29em3>bfJFMNPcRU0h8MjH9x(u<%!IUv-*|yyaSj&&u6SIOx_8Mh>{c4 z1n=EP6x=SjRN)QX>^TBr$bgH|>R^?zk$$=d=+m7~?;qANI*kcH2METB&IGMHGx)xW zJHdOw<5pTl(HuIJ&t_&{3Oj!}%Bm13pZ@y%0Ca}CCd?iZ?{BSiE02}DrYjm?zmeH9KvESc9R@&Xg#|4(yJ0SR;WnNfU@ zgPd@adC>&EnJ2vk$&rf9uNUC&SzLM_xmXvZZ)th1VSpu&*DDhRyMieXl3`UojR?9& z&d(>yXiDo^B1RvkQ`VlBQr#fzGgmtRn<@%@gn-|E%e_V=1K~2qZL!~|-8);v!1G)m znv5+n2xyNZ#NaI(EVi{5;0&uw|z`#UE&Let0YCa=||# zTAk(L?-LCNZX~nF&p5@}nyuaj5i7pdik0s=#GtK2ZI=V+UbjV7Jze@eBx$~nxK!+^ zBi{2HXSL1`_`mD|{5u8NJ94SLu6dERpZ~#NX;SuW z07mu7&)*?xvv4RE3t2z36*H)83~Fp;#6qlZe3G|BfnxQlA*lv-2V~p-Gc~nB-8CY> z_w&B|gk*4p+xX1bT?kq~bPeg470BxNKhk87C3RV7e)zY1hUn zajRP4l~Ynn$tSh4Ck5gG*$9K(#D}tn<)p=O%2~22xi~!-*psDbehI0;5P>)xfu&l? z$g2#?=AnYflh1fi+2FGxK?Sf52wt?HAE4*zxD?06@*$n!vnfW|UnNELkVb@pYo3I) zyE?>qQ)=s0(GchHXiRl7{&innjPOP~u=9j>hm@HIl53ZtNtN2U_}tgieHtO2l7;HL zBCOt*THL9P_>=Gn;*cB+FTJN+dCpCL1uep1)?pUX{N~nFM_%hACo2P6Z98GrrgzH* zUEyT=`B%0ktY>v-Wve|Eva|rwlQ)k7SF5Z}Ua`4L~2cd5I2G;h(rcG8c8IqbTyf_u>n_lRArhtF-s@~ihB zS3R2Bp^uh4>QDPvQ3*!;rZAWUI_HXI3dwd_tCF+gYOy<*y61<-XOJ6?kpE>rD|&SE z-Ov5iGhq$pwRq)r_1Y^-zEISfGGk%S!lAF|EN0Mc<%J-=NTNUcNI^DwFD{LNe(-Cq zeC~9cJPWG)xCxuBOux$@ipK{I^+z>_sE8PmJteLVP{j@-k!FM}a$>8F)eC1jGa{~4 z81=lg0`-~TXJCpThGOsr+T{?#WWM7Po#@wA%5rl_*2r)`*vqOtH~k?5JJw;=&YN}^ zCT&X#(SLLwFn*D8QS0OCAi-=Amvu`!!l`n)_bmUOxEfr<`lh{C)I36HEOVetLvbSR zIYwP6VT%1(j+LUv%EDFdS~*nylq8HGY2Ft23ho=PTY!tDM3HcT%TN0=y{wJtldT*W z)3a*=J?={=9%?I~v;!+8ogEhi&~Kdeg0RN;V+UmFOv>jQ8U z7GLcVby$LIs5>ny^^mFuZa!zUGwj?6dmh8*{iV|yR$$L0_+ke-#nf|gLfK-^GR*8? zgD4rdU363nOGK)NN;<6wV>k5raReO%Q0(K%Ju*9Jj@Z#@_7nAM3FaEvKYVoVrqU!6 z5IRbW6iTmrZW@EUgFFL>`cRe>oewjG`QFC*DMhQGv%DkV%d4YI#OaSL2)bZ;H8e|V z5#%uG3O(PbCL1tcvXZzcO@UHi8OwHiv4ox+$?!_Ew99kWyPSTAAwqT-%PS&0bpClF9w~84aw(~@3gYk;tVS_hezn{$QJ>Ak2$uTBAN6D; z@5hMp0n4K3SQ{q%A?#H|`yE_?jw{34%&L(pBiV!}6WQn*6D53i`T#XuL=Vk)VQ?iI3ODOxIlXN*cPA+YO|X z5M&a3qWvqHAb1fnRwqt-J{b?&mSna5$pFs-Qq-k8v%&aaDUi*u%TEgFG~7xC}>KvbUD8?fn&P37s7Y_WFTvT+a~hz?{B7xd#Q}Mp-~1QE^+S! z4m6=%KJa~8Nvb|aWY6WmxKy>@P;dgu0UfLTTjINcUpKU>innJ&@e{S(@rKdH zY9zK)LIP?_;ST`<^$7!gwp`!pLGu1G%;*_FP(T&oTcuXa(_#Uw!$gj-U}^vBI1@KZAx2xi{;mTYk|am{(>H}<$M(lCvctC6`@#nd1Qe0m_5~MWx@UiJVoIEw z^Y8Uo2`Fdr?J^qtGpOstL6KU5mU@kLt@9ch*6PhgUmgR&T3-8Jv+QGs;x;H$a;Y^T~9V!!Y#-V3Fog~O>n?TI1z&AnJ&et z+(PShRyqq)+PjI1I691A-kn_HUI2NX2)3Iex04hc+!AmuS6b}z*IBiP1KAQ=5x0>8 zKue#5A>d{HVeva0&vRI2;r&YiU{r`CgRSrfC==)&eTD0!xpM%;f81qNKOVYyRyK3c zFQ67_Wpbb>?V!OKJ|y+5{(ZBx&D=0H1dio#7#Q3gTxDTExO6q(D1GHWZ=`)${peif zp)_5cswsSDB0$HzF5+BJy*152J#?C=N^?qh&|rusY&OV3XR&A(Uu`Xo`)XgzDd1cS zN{vz-(lu$XsG@?c&0$Y`6U-+*pHy7a^<^t-x6S_wrL*Q~`JPf(Yfw=`6IedTSPn!{ z7&-p~nRgv#eKPudK|qyU8Lbh6_EoOr$t?o;<8NUNZpfVEX1set$JhfR?A0k8E3J&)KPO@c$N!yKSWFufsax<(rb;`!pF;nehJJAjNY6}aBO~D8 zv*{!*3}G(nReg(hDaO20ehx}E{PkiLxH*;KQ{4At%}G~=KXH<-O+>1Z0S48Dq6x-J zMOS+>1W&u}Q~+JDrGbMDI?`IXS&aNyg7|JIi^e{Y4Jy5v+}&f2nzW<`fwTYhp%0>c{zQh-W(^R6KaOs;}R&Q`+&pw!sV`w{R_ zIC9FojEAZae6@m7?MeB|HX=(}cjh7^6+jx9utIg|!Lkc(R2u2W@p>XXY)XC}`GlVH zrDa!DvbdIqJV8m9Pk576o-ToZlKpm*J0=^I&(t+GI{VO2`yEw@*1U5)X(p%{Cw2@z zpC~)u8aH8ZbzG6}#u}<&T7U}s>l@=NFY=Xw%H@BQLa84LGvmV9X~E+Q$Ag>_Bq5G( z&^H+99IXlMovON%`rrSPT^)QTP6Td=XBnCL+(LIIowLCWQIbeb9#iC~TW=lF#1cQAw@P(TDC+BSQ?sbdSI4(~vgeUwO`1Qcl=s_- zc}JPUTn&7gf(f{9a4wN|Cz3H*?64r$Rrk{rVCmmKAjQG5HlyJ&*W+6`5v!ZSbx%Kw z)#H2fg$$TAr;cU19Xu})tC$_$mE{fAusgNL$|jrm9ncH}N09%5spUK_!Is+_kM>T9 z^ab*@sG}CgQR!AVj7DL3uqn&8Q!LWEi(|kXgP$F|bMme+P~s*{#|HLsOff+qX8)CB zVByadyY?Zu+#{UqiRYm4i~}#jX&uyL833CH04TDZ82Bx%9l+wH)y=2C$+f3aaTBrPqmgF<36nreV}aMlOjjMjYdlT+;AENJ^M zlhmgUViZ=0O6x76Z=ia)Db{DIGOxpz0J_FKa0XNl(F3y()_0?L7-L27@@q^(&^gOR zrD1M#ShZ3us!TIU&(Ud$jMln?YX(2on_)3rw&@Kg0*N4c2p#z4Ps%9c7syaRo8~QA zTrmec4iZvn1+OcBVG`6{avOkIO6iLnsi%>_+`2IP+I;2wx&reIe;I{Hl9gqJWH_V}qnijo=WY$-X_mwQ9+g6@EmW81cj4_)dYPmA}V4vfenG?e6&{@eyc`&6(+OE)ybV$usJO zHZoC#)(jZE%R-m@*ztqjQVV)wXH9s+?upQ`0i8o(Fc4^RjGQZ1$W>tyw>08Kt zgg1;EeU>OH_uMT=`;UT%o5dD&11T6Kko>JFaG11;AbCS*V2gY#@MEUWlR)%x@459R>8;`rQnBF@c(i=*GY zR8nau1K_dFtQ0c(6{GzcervKE2SDq7iC0b5M zPFQOO1qWMj2ZXQ|73AK`Kbh*u1II*d+Ca17TToGizr0rsJzAxtN-q2GJRhn0}2Wqv6_(u%5Of1BMXH5J z03RL=qb}$=YQA|GK5)S06O3hw{B&(oyTG}qCm6{_)cehDbe6EL{ZWGK6N6bT8Za|# z58js?nQX6~LfIl@`ts;@6L@_xcG#aCx0px}V7~*G0n|b+clX4?W9P-guXHX4XwG~| zx^$B-(o1hFpvxluX@0jgdt~0t5wnP}z3_p4bXO^RfuhH$nPRpJ1Q*#&J&xFP0?loj zba78fhB7a;^L$_nX9)assqJREjueiYl4-oo~AD9;=*5< z$7u+VF21mcB9#N2WAf>`dzA8rTNnie;xi08S=BWm9A4R1e|0d8m3%t2Bl)h!FAenW zhf@TyCE@^WM3ZFds2M00LWjkwBA0*HcfO?k1pEXK?0-KL)Lz z>u=n~m@Q;yNg@zmE#Dl5FgMrw*R9G(td3`jv@rVO9>X(H5fs-j2wND)t2R2W>A^@X z5IhX9;s9P}E0P0SF{6@}QslYiMWD9-_03_X*_9s4Oonx|#M6XST6vn1gU9uNNNTLf z*xo)z+>IlYO@a4V9X?SM#juE~D znQ5o-yp1T!u4VllZvrH>8HFPKw@q~M$YJ8OG3M^Y3V3Bd6Cli4_F1xG)Dh0v>x9<# zTr5%i9!KoVipC4n;Iy=+%AlTW6#KSAjz+Ek5|(5cX!NWwoQjNJs#3ds(HN{7$|nWc zxihde!}V!8LtoqO?@wZj9OChRZH!^}v*G}A{{axWIIZyK7<3IDvvm9ntO9Z-ZTsk( zj06#;@26a|@_Y6rH`vUC6qE-~zW|a#_0@e~-MT|0BSAp%A_DdZfZeNcdT)4J1E^|( zTl*S2)sxmQFJR`c$BGa8CT(pWUC%mZQ4{7g~aJ=@E@wWuq_I%x73N1YYM*&f4m z%K*kU5zude#U(7Ahxt4^3j0$8xE;FQ%EpX`lI^n*lVmkyxpMU;mxL9IN5aGx*GK&R zq#l-hedVxbAZSHox$?=FU|5I-`A2&cE2E#{6*1<`ML0|RXfELybacnkia_&MosZ0H zlIf5;9%j}}Lpw4MO!0f3Ti-oTSavCZ4(DS{@-^SyI5g@LnZNFp3Gcw;0*M)-Z%;@h zA5|Ursv6HB3{D_+Gaf>`Td(-l9LW@^1X}Cr3Yg^Z=OEom9nk7EA#5G>wFV$f)2` zCRNvg%CYGc(@>W#q~?{F?I>4DW`~mx5*kuqbb2RWwoGG0$6lDMfn#@)#S9Zs70}K1 znEJL25Bzz~##u%^g|WA;TkgyU7(#W7g>R zhmnK9X3!-{h*tveW5m68Ku}iirWSz0?-WV$TqOwb}4_iC0M9az7hHHebMUPfA z6zpBm+wb(DeeLrmSkA>>>)d0IPoW5NwRLe8%ebGPQTy&^v3bze#fI*G# z(kANKqu4TPLdiRjb{9ybi`F#X?}8JPZ>K}E`}ro~I?A{e)FUQR;!FJ@$E+9;<~HsW z$+VVWo*`>-^K_p2+CESG*b22e2LB%M-Ql(7)jf-D0Q7i_`hbM^QrgCkNZFV+d)y~{ z!C5%?aIto+PC{2LO+MU^1$sdmN{zIARmmdqZN(9c{4MZ_V=}kOCP{G%za`SaHEO|D zsGyb!bxUA1GwM)Lx`@PydceKfuHs+GWas4!pp6B=d8gX8WGjHM6D^IT z&bw{o^)3W^?jvFhXTAo+-#KN{8pnP&rV}u)ptmJ0Wx^}qf2{mC!6t)q8Jtft`_+1f zIU>wwtBPjKhz$%s*_l@*Jz7@NFDj%B4CFd?Vb9d#AEjRWA0oA|zImbmB=l(73^7$L z?V}(*w1Db$TKBs26hZ&pDG3mVWj>tQA(0^J=e1ww!NOTNf06!dPYT;GZSgI`8@~lw zu-g+VvgQS&yYf+XVxA(;y2vVE>~XM|0rw~d4y2F9cJRRC-!qG|0=wl)fbk7X1g)FH zZVKxXWd6k@B1BY0y~~R1VffO?S5?R79d3QoOD_i9DLx|SE(^X6WGWqVIO|II+$hWr1(f*+B5i=}fzhy% zKgnEwU-bfGn(aFIU<5iH=$V@OoSXf(&TwQE!QF};#g|T~6D}PY`|0`(IrN}Y(n8xmj_PGR0(Vda>ZqFw~6hb3hs{BQJ1fyOYo_Z3}n)ONQvhk%?juJV@KaCk)?awP5F_|l83>2hh zhb2D1L70Zon^8}-`uUjfTE+At!t&1|h=~log_D#D-&b7{TV@m@721y|F7Yc>$v`d5 zK$LS3CY_458@>va;cC>NcVOumOwRTG)7}(iwxQbfUNwi;e?(fI@MF2bodsucfkUo`Bc^r@c)Y zYPr8CX<9X6Umcgv?)4^I@;@XDX)lJ>)5w}66IKPRaQ)jxM6$ll9_4smpqv<<)OEMZ zHyv70Eq3pO<9Fu#+phpqK&-z~Bl%qVWDDiWIJqZox2kAwsxr^pGi6q zB8d*PZ?Z_-#y7Qr&`ykS04>e{00CQyq!iGJdr=&;>1`cq1e1s#GW}yT?|#X`xv3tb z08lB%YC4S(azUk0d((p>EGr77Z^bEN9 z&8x2f3R0olO%Y}D9VS4jNx_uj{D+mMqq_n4``FUt=_Ha)feysF1Q6wwJ+h_+VzCG- z5qSy$I5P3T7GV})3vWxDle?^_5J7SQr8_v@H>x7N)#i1C-~EBeNIf6kSPpO7?8c7^9i-9yTf$4Sit3Ui6cpP7Un=Oo^rrpHR* z8xD$UJm+=Ox*WaMl^IX}cyI6=r}d|hV54J33p?;^9c;=n6=Oe8cx`8ZG@L!!r=*lF zdomUXlG2LTSt$)h0h%m&>n*Q-8}_vaKm0pX&UdxJqqwc0YK7WI~(l3j1Hn^5Vb+E;q6&R3pcDx2K(t>N?U6!p2;j9ZrC z|IGU94K$1H6wi87+x11AZUQlU@r3_QLdIb7zQ&fU;#_t*HoIOzZ1E%{lrPSlLQ}`z z+Y4K259$9yB5KZMu~tNz0^Tu>q|sh$SCN_8=jg52;mK$Ne%ANdSk!Vf*`nF!=BqNB z7^O?VMehcvjoL>)NP6ds^LEQ6V!RQ#KmWYOQYMxr5P-jBA&-3dsub)?BBhuJqU>~Q zhxcU0h9+3Ge{r4vu()Wu>b_t-Bol%u`ua!rV&mKLcZtUurq7{QF?iTKa$wy%M+2R4 z{!CpysOywHvM`g^y9}sWXlF)X{wGyO-mMgZ4&&}~M`b=0mY^TF6d59j<3OHOcMLCM zh*NwYVg=D}mZMC>?p5E`@s~n}2^x+aD$I=W>W*Yram8x@T~R}&f=0Hb8lJCA-z(6;FEq)fH1{But2pe& zANv+%fxYWbx4ZB0pXM9pguj$Po?GNZ<72%TL_UaQczMPDqtQ9C2F0%4otGGRyqxJaRt(uS-l=U7OQg zw_4=q^r}vaBO9Si=_7PB*A-MhDNYQ?K83#um(O(0nHiJ>u>KSi`JI5{YY1m6OJt4(L^1_J=}anK_VrA@_*sBNh? zt)ON>uXnvv+z1m;RA~QbCi&LAY%AjYf=6Yx_Kf7eoQ$z^mSd;-Q%CS_4VBflc)?6r z9Fitum|yN7%%$RARvdzo>{v_dG-W>aP+qcU8z|e-s2zb;-Q<)lV2Fh&&KDT`#Ij4B zE+ShI)5c(FV)N*doa(cA<`W-Hq;A~!keo+~o(r(etr1(2Sr>?mgN+7aPh&3UTyicz zp64mFD|A5a@7aPuqbzBu>(={ru)xY~$Ks&Clr^%Fn#YMxpFY?Ye9=AuCF9lF;9b09 zh@q~|$+Uic)M_z{asv&vf`=?+6|87Ix~d;JXNHaJdux+GrRyhtm5vq_jkaUe2h5bc z{%j=izAlWR4RaEe7Q_B)T^PA}vu8e7s5P;3K!OoJSt-`QqISI|^PO_@lfSe{nlGBH zB1!5w!+Y%P!9zjJiX%>~aBDJc{IImL^A=m$^bC7SG#h7kd-9TcXf=! z=Fe2hoaY6Ovb4vauk7yN@6EQFPl>}(2E9kAyfsl<#E6^jkUW)1a4nW0oUDK(DhGKDF#9xEeypHe;QAbu$9?WmpWp1}isRVR zJ>t|ZVjkjNHFuyn1>PXD49}s8DxFS(axohjtyXi1I5%#G7&J2z-;ywFLx90PF11>1 z4YQcjwOukYQY6e+cevb?4YEZ4P6Z};Bttt7 zSi2vRP(U>lKmZ58_-YS83b6n`e=x^V^uKO*mPy#KVO=D?15nbz^qz(Y%&P5DH4qZ` z{ANYL#gn8ZQ<*Oia_NSZ8_uAcbG9cCW_VPQK!BoU(|$DN6Y~39$)b&F=w2GxHKYL#U6yPHHsKCe z7byoj#QNFdA~3nj^7W3g4AgEl$tV&HmfhmaOe1;nQBL|iao-c68`oyaT>f4K?HBxr zI_|0f31OD#Qhwuz8~TGJH5U`S^}a+~2ujcrzy%Ux(hP~YEXmJr#1RbE6iJ+-M2TVr z=pPYZ5pREc-=ds+r~!Qwg<{2&(lKf)kQ`6k+k}BEYmAt&xD54BL6fGCyCe@5w{}Tt z0oS?*mVH$GXf-DPO<}mgC!11i8xY-)%?1@}9btqQ9Ixy!;a_Cu^4U-3wff$~`%B=D zR0_)dtkdK3j#Mk~l`uj=@7k~-`aSy{$0?fOxF1U~7Dkg0x-MyI;v8pod{)#iPX60~ zX7tI$1#mb7=t%pvdG?XtDw!(vtRZ&V#j0ndndcIZcFu_&E-qXX`xYK}y zjkL+?hB7A7ZLGKl!9+u72AP$9o|^8|5^y_L&%scur8zBiOc#CU{-jPDP@y%H0098r z=8-y@Rs;Q^Ix80)TE||#i-4kav`P9 zQQoR6y?bkuZyLdTH7O5x?4Y5}{!^RU-1$R5iK2hBz9yJ-I*&&!j0o2L>wA`lop*m_ z$uPIRGL@x8Xn=nR(mS`;xu5WcacDi^f`#ueq2*S%a6 z1V7p71g{S7TLuHhl0p}iC}6IM-@HAN?d#TDf2!`OO~Qhed~l=n@wAIzeBR6w&f@hn z*3!p~%Y-!e1k)y?CzaL}8yR9;SrkcpV^GzuoV^FynXnpb|KnIzIJV$3grY#Pgj3W? z%GKtK3wEqCYGXhR7EoU3PUt!2bFGMkyk|_&O~^X6re3npXKfHmVmJR_hUm3P@^SD@ z7j-C8PeIMT05fL2sUcdFW38MN$43uu{uOR~1M$N#qXOVKiwPH6vsl?(bxpt>+Y&~J ztY^v1SKYQ@R|Y7)%>nW8P3y5iN`q=D7g4f1Q=%`*w}>SS1DqNM zw%ImZq2-;6hHfKP>S!9~NxQ8)cWa)w>7->$Nf#TR;V-fgU2Tb~P4@fiqDm1a zzF{b(5!Y*0a^e4cSG;GBzD+RciB|@09kcC>MO)#3;VjbDsf3j!&kP$D4!GIEqJq2I#>wlUl1ogRLIS3CdB4Yf;j zAw0X@wY^VMw%P^J`6rXWEugQVF%�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 z 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

    -ONemB?!Gp(q`mpj@@zpa-HQzi zIGrJg+S+jiBdg4tfSmhW3r&wx<^z~HFFJb=P=}(8=If=+`e0&0(UIK4-~j}x5>zgu zCZ`sQM#bK#80ke()+#U}XGupD{Iyn15x^hq)r?<+@-mWufNiCVR~MHS5yO4bCOw1R zWW|-Uik7`OafwvL(MPtQML)WYyI|4I%@-5i{0EsA0GvkxWyyF=>gr)l>pBR{02#)zmEAZ0?fn z$IZ}+kdu%eYVxq_14|yyh<%mbCAL~>$7T^-M&giVFtxGwEXPrMqZ8h%{P31kVK z<_=8Y%!UGC7yx$61^1T(&KJK|n6Ks{i`Bw&Ob8k%u+y!^04?lN+&!bNr>>OuBC$@^ zxlgyH&Ugb!P}wE;ci%m?Fo5J!c8U>hEUWLce)vp8Af?tg0y>!OnTPNEyrL> zjxT#dH~_ERW||rqxC4-|ip|OOuIw&XM)>xolvr?GHzec#)$1V3sq-=REpmNBMr?@- zRc7-XrcuTE6c^$NEkT;yu5FpgO=1J3$92wY^}5LseElwNWo6>!0)sx@C#e# zmZ{cM-e~MLej{3j%~(44V|;&rr;6h8IZAY!^f@jVNn^Z&a3%<4&q22Z1cL*i`bNUF z4ri|8YHg-y7b3~cWm%;DzCZYKDf`vOvrT(t{$WVZAs7Z*)+*@yBJrJB@2;KMQx&T7~T%tz;u+WIrkZPoG>DNBC7s6|+# z1l6X}YjyaC-1T0e*3s-IQ>J?HjDkXFV$xga%C%?(v{Uy1sM)4b(pX7s5zz>Q;YfBd zcr!>B($z!B)DsBYZQHQ=+KBe;lGzH^c*0X>VG6K~Z72z%u#NV|PBLV*ScX8Xsmi9} zC+)0JE_#a}z~3@NUZ~h>C(X1Ef9IRlSVF;0sm-DhJC~r{nh7MsE951f8BXO6Y7P2X z1D6R9AdHCBM)J`Odz0cOnSIEKT(MH=E6ZSb&Hinl;92>=Xi+7YVCDz;693m$@aAf@ zK8~lCdkPpA>gj07D*H$0V%0=0E-G#b zto82%RSzD@pDe$4;&$NU5T|p2rBwSY|@j zRg>`CZa0bV%5Cg@JBU|i?-$~qnUR$VxL?xJ?Ez9{PufSI-59Z*H7O^T!KU{L%BF2a z&1^;ByA)CgN2P7fe28RUo*P~bMw!A)rnblQVhdLdcJ`PBR(C5~vv|Vjgf?Jz-XZ{s z{^Q<`GOh3(h#nSCFkdr57xl`={6z9PNA|(u)&O?;gVK1zi&x^W_7B>AxTnwp|{EdwX7HqfAzmf7XO1;@P z^7wOiapyw501Ah#(<*R`Nf60z1wLu{^~$>o(*kIz7D=0hity5uLhWR9vS)<&4e3-_ z?hdEI(bU1rsizbwCsjdEI zNKG7sn*|TzOu7%8@(cQYw7>uO1r>42z@f&MQxYDILQVjS=n3$bT-fohNZfb(Fh9oM za^uqoB}7+4QXb@{`YMJEGW)AIk2U2Qe;}C0fQSu2N{Cg%kFKk#f>Yt}2?n;bz z&vQZ( z+5Z-%u8tXbI>A}1rQUW*G1 zalxtx!690>n8Dk^mrwrA`V6}HWoZ~it)%MLx-*kW0_vl*Sps2*V;&-7-uOEb<&B`O z$fl2F?z0)CE`7Gm5GxnTzOSB5R^otusM#O(r^|*`*38-;InJhNEpyTWtO~6Y46*@r zLW>zOw7wckZsF4ep7?>B*sT4nT+d6p|v(s=#-ne_H5vCZkc2Igq0#heCZAfQ%oo$_EQx@N z^XA{=e{X*yPw6!y@1dgEU!eNssG)jt=`T=+yw*9NW&V=Qt(au^8o(raT@^TrQ0SxD z#539l`lY5f&L(AJwF6OhPDUd5&TVJN6#aI(_nX9-s+_JWt39njapDn}K3ZKR*5@K~ zL&tIpFT41cn$WZGc6s=unj3yV=&D_gasZ!xf$0dIX~6rbSONoX@X9K}l7RG4{jJvY z?Gha{a`K83OHcNU{s)WgJcmp0);DElF3k5H8@@THvHH+DZrnCh*-@0^WSO$4`bBOi zpB`9%8OZtd+AJ86sxO$)b1hPxQAANXJJ%*yTdI)cqylnXFDyt|J6{0$v3!LY36x%z z4+v7%@9NbDp29qi%NflQs#_P}gjG*gpA7P+e=?1ef>vG7w}wbm2T(aUQ)>DiTu$qc zeM?RviA$pR+EU?vmFbueGAYyAvSN?c225f)ev-yVGT!{&$a`+nAGaIZ$kJtlnaQrG z;Go}wV;iyq6b{apZN*iTdonipaub9}OTNO^JB5-<(59IvvQ2;&A;oC&?fQ0EQC*p9 zzX4s`n+xyeZHt8XX^ccOGx*a`vh8SsWa7Ds&TZJia+t^JH9HSGiM9#QsPtAw2s5Op zG7g#?E%1q#V~noG@oaYT9qSrTzh}a<<#uIRIp@8SJ1Q=5xx_ffl(L#lczhsnFW5 zG?l%SDWRT05lJElI;2+4oV%$;?-@q|-EBT}Z>@H8^upp|As9;n$~!ILwjvwPMK_oX zCIZlLk@=NAzpOB1htb5C>PG8~>9t67>8-Bi3ZSm;dsFDq{RNq)<4|zD!z=ZjJ5bo`~1}H$RZf1QypG`H1od^Sc6SMKpPs; zCE+m$8=hY*ST{Wn?(8OHBw9>rBZrG}r`WfD4TTz1|B&gN-l8$lla?5VE}v7*To zV)Siv2g>0YlBIOhpa9JO3eE`iB-YB`iG(j?9lE7GYv9QPxl-|q=!?d7;UGCW|KT?Q zG#on*Zs(=bD#r{f_+vwqz(*fL^>zv-$1&TkdaSDc6~+K=)iNdv7>X+;p+t~O+^s^; zv)AhoY3JHtWB~x0kp`bSk*wwlg)6|+>W>LDcH)(GI`QsT9dr>r)mox$shq@KU`6P7 zg|@8(lIOibKI_&^Dl9~{UFz1NxCsaslC!a54a#XHZ4F|KRoT>A!X`Kmiw)na)OQVwYY zbq*hlC4up0{Y1%4RbiV;eCq!&NW4l9c$&fmn?p3}0`-MP7-vYJrMW>w-%^l)^1c2= zaBO+GC-~!k4ch$<%u4=z2!m<~9CkDcsK89TUDPg+$w5kPne6eEY-G*%cVCuik&+a^ z6jlu+QV|1p@NE)u*9ZU?1H`?@a8pU4z;qwG+7F*ZYH^(a{7@k&M2$GPCsR{;h?>P> zvinac+Ik#zarYbU6quAQn2%jsgl$!ES!Y-VdcQS{iSDr2XE;0WG@~LN)XU-^b_s5) zr6hu|V{Zypaj%y|Y&}wfMvWSFCWeMM&5FTI%gl_hEvuc|#>QoLFM+1>EgkcfFtQ3u zIL9UI{wdRaFxLeno(%YO%9ffy0?P1;y8Q8tzM@aT3>r{6A%3XRO(h#oMQ*=Sm%wonXFF14r; zurrfx*d98~IVq^(R91WyJ)7Quk;mMAxbV`hq@4N;{AcuiOGDJ2txMECI-Wc2hFX~F z74&*Cvla4jW!`-ca5uZ}`jk55mPDjml5RCr4R7GqqoL)V;lltnW4Q8@K*T_~P zB2p1>s9^u@DwO1BMm>O3nw*K39X)Hdfm)gFp|H(V3mVN3NK=_QN*6XC>n8x}xhZ0t zJM=5oPzQV5jn5N=zMr{3)M5f@22>&r#SY_J!s%gZ@F`c1?0%zinCxw72rA$7*w!Pm z8K!5J!C=%ey!$_*G*oYd>!(zg8zYk^o`Z*i4c`UaUd|t`!lc>KQ(esbs63gF2q}ZTdfQA6jr&#KJAL*6@mwr`a}^(7DPlN@wW5itoT!# z-p&^^sj-fZT%rk&+TQ;cyC!eRK>M?uQ|flvTu0~wl|KJP z3C8{e_||`wMmlTFkl!Lr_c2tGod==oTDWU(`0k}Cu5{SJXGBuPO$?OkZvs_IW@vY( zoFf=(v*1b#_XKo1`=5z#S@vq5+26_=k$*^fDms^AeYNVe?7iE@NPKtkr>LN=CtT8SBf;rWeS*}>uAPBk0%d2WjG za?oKUy1Bb`NE>ggj;hxyZo5Z}UvCF;mFhG$Di964 zOmB*YVsam1SUzlAA*3?lCD<>28V*Y~z6>;2Ho43Mb{}g-4RA|>^Fc7nUxD{UhT%8x zI&F&EgoUHBQ?KSHN--NRz_`qGU0W>Kw*I^nbFQEOFvsfKh%s%Cs)(pnVrl<{D_*oc z8>RPJ;}tu_7XT;>K(~)sRaj_39p;!4<+s-rOP^jK2a2ubxJ^b9M}RUU=Gl~N^;&u1sp4$$z318 z%1qqWU|44nfgCaQLNJCTOA1y_3yTW?H$ce0dv0oZe2ojXgxi~SsiZ^J7wMBxdcftP zcYERsjVHE8dqZuu$CP&OGaj*Nc-w)~Jv&gp+|U;TF1q+p5!ZP@67L6`7vc(vYgnD( zVy@uK7-`KnCcKlr#GV+%39WgzKgw25jvWm<)wsPGDW{WD<8qhoB8={ji!0W_)!YjA zu(t!0#dZq1gAtm3rcDtD2RfZSO67>Te!(m?BY!JHfb)Wg5v$Eu3Iu=|TB_;Pz9Pl7 z2QE|O0JhAHZNkS}9w2?v7sr3*g>~)L#LsfSbQgNb&t-$i(gU@+TJboi&lO~G$m_)0 zx;StYKC1vRw5S8s0)y<1lI%Cagg{(4R7tZY11HzB8f!p*v8OWWE@p#UX1F<>XYvRJ z|B~ywrPz9r!qzJFZ^CfH76YS*WTGH#D(yuP(TZjgXp{ z7Cx2J7s0k$lM$~+JvSPU1MYB5MKMa$72PUFk(*j2C>#rcOwF5kT^MQm~B&KV9 zsxr$cbcl>hf^k~8ix_faE-5h+qr29{s*cA<@#Iyl%o&Fu6TQ?P%Lj!HlY_SQTN7cq zQw8bYzBeu%jpgSaQBg?-6buDwc$~|IXl#A^-TAPQKGpQ3VP`q+WPf&hh(cwoGl+6u z3QfqdkCIH+o~g^h8baM1)>q}!)=90$csa9)Cf5Igm zTBOGysgrgHRC)IcrePsaTWUkvoaOiMsMzeXPdVNR-3o@x-A&RQa!10P|7OORjsH|s zBbrN-25aTwn$%;CZcVA)JBK0PHxFaKA`j1}oHHH%j%$J`)e*jY@5NxZ88uJGmeYjJ z{;+3$Aw!r%an!qUK)sSJX;h%}YUn+d0s)#ZN!vm@%%1fN^A4&MQ?;+8U2ZTrwk8lS z2C{y+Wo##r*BVu-oqt-ojf zlhXI~U@+d#;LCtj(!4SWx*#gx5wf#fcIIW5wA^6vON@MD9JsgSe>0K)Ccm+k$HGuN8{~ENTX~yVE%$^Lx zB1T=B9rkq+-AW9eQXhxk$Wpy{+9LsVY0mmRSYK(jOS=NkA;-U_coK8hHZ zbyoUrT0~K$+N)FW=K|WRuPc?qudQh9z^~-dAwj&Lf^rqRhPW%Ggkhi?gkIJrzW0#_ zz8y=}*tme>P28_*W+|1}H@oT%a1$mP-r`gXo%cF5@-n6f8(#%$r7_r_hOvyly)cDU zSoDeSpvz|fw-Qs69-?JTC3w4I3~Tx+s0*|fPKQdQN$((}UmhUy3A|WNZGkx7h~6M3 z>{c)1@EG(XMENQ~2%x&Qxqkfrm zFm88Gu;$K`85}S7aEjWKGEVvQyI8>T%Gj|rdT7~EWa37j${^WzO5*%FUU6R*B$c2{ z3;+|ptgUUgQ<`}jT%`E^d#s;Q)eLdtTRXz>pFWJqv>|=R6d2+;i}}MygpBu0-m#*l zYVP8SNMN-V={j0F0jMBF`VfIB8I@2`18FEs=CCWK;|!3nTuvLYr0@v zCnBN^F}anHE@@W_?tj<5t1p0fPcXpu2aPd#rck24x%PSv9^ zXpbr;i5+Zg%LUm2T4!El#d78sukU>ecPI;c5eG|H!{HG>Xa65-In$HwRwE5l>zGOi zK>0X$Wdddgvk;7r9_Z#}lZMY1yHh`Cyp*tncF`JM^Is{$%|f2}g5FI224=_H{o(kE zzWLAFPik7pisL6EVCpdMQ_8b5e_Mkz(22cch9Hth=(o~njb3b)Ub5K~0ijqKk8 zvqj{Z4|?tda+LZcjXUvlp^rOc`xb%>LFiLWN^5xd5C6l&A_Dw_CR;*P0Gp8rlLux? zG~Mnw>-U1pPG8!R3rB&sbIz63Nf=6r1xuTYi{}WPBV?e0SElr9E+umY;ylq7-%d z#fFV;so*G7MSoZ0di2QVWCCgF{={e8efPAqFf*kGXXpV9D+U1?{BCl1-f&6#@HM7u zbTEksH(Vz~6{4Uy`NHcsm=FeEM20f?a&8kJ0R{r|U|aT0kV@B4@Ckxp5Vkx$7f-CX z1RxeBM4<4|S*fO4_uDkiszi!N@c{{77>KGOWZctdjV|>AUe}4rXXv)D9V8lZ^`68D z`w#_M2zR8{TiI)qg3e}FFm7}58lhTos5nN~DMG7&x#ew9L6&YK5;@T~LTWmYPN++J z4<>mV1{FKgmae!@8(SSgY+Vs4H&cI|C@W_Kdj00UW?S?tuDT{xh01wA&2Vsyn=@EX=4B`&)-#z{* zPQpLqx*(*y(Qm|nh*2HC?q{OMx1qMA$#Ry=EmY0$mU6+Y*x?9YL?u^ihIHAH3q&O) zlvX^K6J%|DE#Ko$eJBss>=x=%S?^$J#zwmQN||yekv7w|uxe03&03!TAk{|Xg**9r z-(BNWgV4nBI)a%m({%V$D$rwwc5QK$#10o=CW70u)6=0y8GuC~fi1;P=ICO2e*!&8whN)8 zeh}KnTVmP+!S7yuBbOmAt}rR+XZ)sbB)CD5@{NgovP?MImfeG|UNI?_k7!F@((Q=d zv@*udS3XPMZ8WDHduDU7Y=fdG;nf8VzW{HR9e!6k9YJ&ql#ai~Jcbf2 zoVrNY{9uIA-W2QP0YA%Sz_h&=iGyc4WIqFqMR>F;06cF3!lv3yfF`{tWV<_^Kwb{? z#JGVgTeb(ldF5t?8g-{;CaZVmQrWkeTFif&0NqQJFi~OW#Oq&=%I_0@c9I31S&)x` zsv`3$n^72Kj{jZ8obrxma4pu@sTA+D&q&(t7*{w24lU&6>(2PrKJ32L`BOZ1^%zGb zJM7iHEXDHbtec+IlR5z7Dr2&oI@p<%ScX-IMDBCDVX&t@NbZ}SvoScaESR^&S{BXo7Q0p#<5=t%tjExl657G3c6e2Jbd*{K0E29ps z)K8Kso56!fetTM3OwBkXc9jZC?~w!$eQe1txJQyk)R{IkCMO;HuN{FnO^EpcwG^Xu z_Kow|Tym$O{86eZl|2o4_Aa5&Ci|@;Z)Km?cjJU<`t>0t|w+;$@?X| zV`p7xnVZkrKIjIzEz-i<;vQ59tL-MEx9 zGkRtf#chg0Q75n^YySMa3~u;4=;CFd+I%c^L{y*5g+8@E?s-6)^Z~TiDt|ZQgq${0 z73Ewl+X?*3+e zSDItWoQIKYDBTYYA$0j%reXx98Gal5RE4Nh@BzstNkK~Ak{kT$rk6Xgn*n!@nrtT^ zdgq0+LO)lA6PIrZo%|sY0&vXv{PEG1v=U|sNl5fPdm?JsWoHQv6h#3rm^r(0LZY!< zW0Wh_Y^;7bOlmz>XI0sE;w__o*r%BWBC(4LcgLPYp5v$UTp3j!AePHxjyp& z`+-`f^`D30OU57@Za%VflRG_bH{KRIn>WkK{S%SNtO(=F;B2akFM*(CIdKW4wb*gI z5Xa|^hu>snVLP1(j~-z>j=!g-E6z5Mw$#Y@4nv3W&%9)^ zg|quGhg;W`H8pLt`sb(@X1cBlr3-gXGt;Ia%FZ?toonLn$_ANse2+{vOtoue)pK1C z{>^J4a;}eTeVRV43Xp~g;1hj3!iCnmv79Qi)qzGcSo&L2%v4@?G&}YuHdIyxDv>8E z-aeukb=Y=*fM`c^#59`Reyt2El`tkNw~l_TTMzDPvlt-jrx-8fQTeSVHID87WfE<;OhY8lnI*VaVoP=~D~4 zOu6_^IH29|CrQq3y?hA$Y~7xR_j6#Zq<#Vdo{7^ZW|&56Kzow)9P|ty#xV|DoKJD< ziwZU^-EtK(jPQn{1H1@^>3h992lqh{Qe4yZ?VAAiI(i9Ol!>c+iABPh_~vQLU-<^R zR5X@56W|IGj_V-wFpcvsLEZzqzfn{xZO1JF3dyBBSe9`6RPF2@yxu+YsFICw2Wsy# zC|mpGyLbKe`fFtZuk`|^=AXn6cmKdKDfa)8I}w`mlq?E3dxRs0&kWMtWu=Ri2Onqq zV?p<$As>jTQNpD()d9`*bH)BmOzCDwJzCL2-gu}TU*@Ssl$5}H2N^Ea)~vp-HlN8) z77%?SXj`?8dSre{_!JmpR&~wP?H9NveIw6AcqBj`}3?GJ+6rgKs{a23=+wY9Sq{0 zGei3Eil-dLSRiwm#yP}@saLK!hR zL(Mj;bbd0lK;Pi>j*e*_umxsQ)Ovi@9r`RAA^0;Df5uAVmIvnY9AQRw)z3tg>}jMA8!w8!MRi)6`YVw16WVQ?3O{{dgh65V+mNvWO=3=5O8O=FrU9(k z7xGV82n93vF$-&XmM|y;sB-6-k0qX>O@oS4do>-@;nN8!W5WLB%kEA0pvMX^=}gVR zsw4`dheRG|GbFUeR}1%Uh0);{!zgMS!yf@*E@uOv)RSBVwlqSaBaA)p`vY388OaQs zyrtP*ruzc-5?i#}E*(=C)R7QgkBWvO@L6O@oUGr*IN1;j<1T@aUM|}^1&M8kk>+w( zW8YOHFGIl-OM(u98n1CJ!axs0Hlm}zDrtgddUFmD_G5Y6^tlX~|!UY|AFN>25hTedRe)91R-I2W(lm%r~;08;>^2>|!qciPZ_|<(n5d z&NlK<=@rSTbaP$NRq#;!R`Zf*xluWImsT3i;KPV1#`V=`0>em>362uwE2H9RlU)H3 z?7u@IhG`<&#YEsk8duk`_Vw4Mxh9`vah1Bz?X>Hc{1z1fhGQ)DW`wI4eLj6PW^gZ9Y7 ziHrw#FBv(pIq#k>r1~A4Qhsqa# ziCw;9j)a|N`d*n|`;DvF`uu61#&CXN2gBN+1za7xgEDvzm5mN(k$fYkmvvL>rTJd8kQP*)Ka<`7chQ+El-8 z%931?Pc^^LQD_H%RUSUmy5PmVFaMwC_0wzxzhGVD>r5@GY`9B`)1|+8*J2TGzjD(0 z_NbuPhuZ{8UqY7!ye2-6pLoei4-Q+JgP^OZlcGUAy#)RhOldR~Rj9QBvODMriN*K+}OJU6${E4aa`6iDT|0UoIvGD$4lmyMu8Ax7lEIu??>rF zJu#cj&vzVDwDt1xu^^kyFtMv6FlJitS^dHhJP5G>0A zS!e?z-K#zODezxzo%P-wm()Umc@us2JR;A(bn+3A(8;wY1%4n%TIvC;k`Iu;n3!vG3F!lcvwS z;*{m-9hP(^0Y`=lGsRx5sgnIa4155?b2|LL={?5bAO%NS5wpy*c`eaKeX3*KBailq z2h_vg`W^e(CTEeMC+wM$=Psx*e!QQF>lp*g4@&MoO*Tm0LRQ|)a{zd0jnOaLu5H)$ zQA~g3AMp->hLYO@V;aMo!->AE*^UZFiuBSFm&WcVQw%1`(mK zw$d>%++Bh%U^|@WzOOXb&_$BpE>;nE=&G;DdSbOh z4#m1$W(MW>(LO=fW5}?J7xrH-=nF}{Ql;oHoB`q|EXV5NS-JoQ5+!G*FkoFi$yVaJ zSJvt1oHRvq3AFa?Ny)}XRGvay3%@8=F!u;_yl!qwV(L*6FpKN%Qs1Gbr1}Xl&}g)R z&5*_zQv;rn0%rS6gCk;D*ZYNr>sSnxv)u2BKs0gRRPT!Bik;{3gUfa;T>Ub!F!}id z^bC_CDg$XhT`2lFW?#38!9jWfWkp4nnZR+9X^#Sp>bkPzPMmw16{tx`W&j&30o7vT zpi7_7s0`a-2N0o(;JZpAO>XhLt%#>~xZ$5a#`Tv&9D@j?eqOy@pQodJg-B|#zyq{6 zFal|SCC)K}5{@G73;N-3?)oRlZV;8+ClQDMf}}3)!OmaRyg%utw zX5J3?+Rz7ou{kj7Z}o%NnDgPhc+sa}a82mmjM6+ac-G;<0}X+4lXd+ks+7N&j-wTS z#%8e$2A9}-?uB!|<{C##p@)@gj~+*DWgjkW=IMQ33`LbS3c9A~TsIBHXiG9E(QYMT ziDyoqzqWY_lm3=*4^>qPfRq&Hq;*jH8BuX+tG_#O!yJW8>mB8o6!xVN*=G9Dyf0r; zhPlv6aIpgiIxnzwtAho-_eD0DhM_i*(s1ajaA$2|yD;;Eq2Be6dBl)P%NbMTY=zz7q0>PNUq&wfW1I{hH2#QX`>CBxe+>z=lVdsSU@WX1I= zL?;?Vwd|>h58ZW1ruKDYHZqLU{P*?7e*T^-$4%F#-RYk6#M8x}vt(mb@I=;Ch2m}4 zXNc|DTTyK3@}a^f9P z7YH&Fbl@NQ=*1L9kNjbxC~7~+4y)(_ei6v?g6`{S#vrp4PU}#CQd|w^3d(1aI5l__LxCd3DErkBZ5L)vTN#K(_CCX#S(*P*<2+);rTB9Kl9(@Dv+MN%u}x1t%(Ek z+kj0WXLKnnpHT@f=TfJUaFyB^?s?$9H>K+&^F37CdvStaaZyXkwXO#;4_r&6)yFpR z*hPkBmxC#OQg`INl4;|E`Q|J7v>p3`<5q3tKSK;XRT^9q8f;`d#qT>FVimFF9~?FltrxZ7wv{71)%Id4VFawk>Fd%2!iA);be^JTh>Lp3-Dt}Jh(hl zHTx$C8dyP}H+y)bC9@_LTVFDva5Ps@O4WW!^`LJzrx#LVth^7tL#4u^^thVwA*txN z+BF1UjxZD>CYDMtq(ChGzG2juzT-5y!-IXw+Y$tM6a#TeoXJV($Gr-}kv!-F*4qB` zezS|WKxrX8Rt?r>wIS~WUl7NP%0L+ub|~IQ26acMpJ9$gI!0vRhlG;w9~D6?862=+(7&8>zGZ>sG8xkLl10-$9v9%MN73=GE4+(Z~| z<>AC6L^gsIot?xR_=ATrS*bS z=jhd!c+u;jjrJrlmqRHFFBv_HtfSGMqcqTx3O6xH3{46tx*`|Pav$9xS|Z--455^@ z2m*id>n|L|eZwyL^$TD4sg;wGy&Se74eF*Ed1m{}mbfT=xk7>f>)62@Q$GX#pkq9k z+qxG9XkB|#O8156aA=(w@>E~pMzHL!mad4Hz;()c*GLsoL<67U?;S_>)B_u=j6o}$ z&bGB{I?KrnWA&paKVC~zQyex1%Z;bR?mV)kdL8hhuPbMq1va221Oncv?-GQa&luOOMDE&an@QmkL~ zZ`@M{nZO>LjBxim(9S=@GP=%eDLkf{fc26}QC?BVUFX-T>i7msHixsm@);tP0NT6k zFJYKsUnM$kljaO0ksYFJco2kXu)Wiigi^&iuJZ+(z5BzAmkF0lWB%$$cf*%j( zUHQ@e?tHfz_zJORSUsopAtCb_LroRYARyS~aI)^IQi`w4AGqqbwR_36EGUs&1w&cC zaTPZtGX6~4JVvHq`65xxup1e9 zOZ0|;cjx9Z(MjR$SLtnW`+^Z(wm;3+%GNaXH6E_Lr8R)(wYl{r+q4q?w?!5%E+{w9 zfTTQq24E;A zz;OufrkLug=Q@obSQUs?qPDy?JwuHxiV zeqj$yWv?X?O(yILBW6lK5S^`dfJF}TYWtEc7wpG)>{7rNk&Qg-894x`P^p9AOXlpE z5nsUuZc>LxISb8cUABxf8b;g$;zIQn{60X=zF0JEI6q1#S9c*ZA4b0B?ZPT@ts^Jb zwFd{=Bh5Lt{*ll=ml)e&cEWy9*>~%(CAPTwvxamOzSVy^w3=?@se>O?w6A*(G6Fn; zcNu($m5+?svc>_gmmJPGDB2wE>|p^WqBv+9?ktm*<~isv))EGxNZZmBVT(K-h^;)p z=NXH5t0&ABzAoT_@)#mrAZdk*)*Dgx?4T=Nw7lh{stb#VOv?hgo0;KvL@B~wjwY!v zGW2T{Bu2iSx`%Lg=^7P_gup?1e&>Ul%J`JsaWLkl%`}{-J{vrTXK$%ko))7Ylnt88sv^5TIeb)8Ms4&g)Lj&6r%OtB-rY_jIOFvz*I;*NXzbuv&Owlza05M;bPGpV#m*!E0+n z2x=ZY*1bZO=ijI9jkax+F7!&dIPxVfbo)Op@hu{cxu@P@HHX@0NIgESXKN-obk^<4 zQkMKqn@Uh5&uU`p>g^!t%9#95*OdnDYtbghf#yREL4lh_)q*JJ6|sfgb%tw)nr&7L_qdtBQD$_+ z3xQ5*Z&w+W*OdB7?-9gi08*ci{!Q>SzF~#7X{pb`@+q68l*}W^g66=^XBXiJVq8ua zaao@eF!;E$SocO)7ii6>1_WS}T!B(=&@x8Fe3Aa6d>ktC-$*c4NP}8(QoIwi^+JVdeyhIWeyYHvlssXak2Fm_TuIYkQ zGk-P5_Li!k%Sl}+5Q!x5r{#}X!1{<7kb(}t89EB!qn)7CtW!8qWlDynQOyVQr_+&| zX4JK0fh8>F40<5&H;&@MzLtzdN~v zW8IBc3w~AdUy0r=&V*)1rUhMz_ajgYjOz()OMtBnGTgRz0{s~dVN+Pu$U~ZA{ z1{j{+_OHEMZdkeu{V$#*Lo?_jOov%S;^A9yFGi42_@P>f$CNSIk#@UfI+b}nvOmdr z!6_d>Z7<6?{e=X#E$|Vmb+fZx-Ke2@`k*OD2G)#$1- z#I2)LegO@t-N|Z16o7`?L(;YLIU;|6G{jWUN#vn0hk&gc4fPrrBzO529!54=wM4lh zqg|9MaVhLvly37?1iPkH|I5ALh_38#&rTS*sXv;rUCiQ@O(HIKxa#Bi)R=c=4Lj?i zThbD81EMU$NL%y*A4KAdd-kwUfeE(ZaSBmkgWc>p0a+^)k#m&@I2Ab01I_sCB0yLg z^!}^aSw66>Pe-^2n-5gfxQ-QhQ_&g({9w_%OG0Gpc;u3sJAM~+mE$gS@(3*Rq3?aA z(l!>lu0uLhjh2DnwdI;4M6^_=PG_gAd+BHLdEDQ34y_Z+p1!)C%->WEEyX|}Jrq;k z#69Q1_9TDNJ^6LnDvB{?U+$_4PT}|q(j~+x8m=lLt~;;bHgwDH(-k%~6>KVc2xl1>LMbXNkFW7pnS?GQ+NNJ8YzfBoEoKb3Z4OKU}2oR0sMisGt9R` zVVeraHW8pZQ9-rqD#5H(AEC;0u_T#Il_u!^w~#?$UVyP!{+-(h4T(=(G98szMHqSL zYst(~W1{O7Y7T{TV-8IotAY0JaH5{d+GZE*}`Oj1)-5WZ&(WfYs76&9ta!|f$y}BEpl;S9PPQu7k-CIr2{?f z>7W%envR7AgqUIpMDUwg%ee_6ZUypYpf5kkLu~QQGPs0#nXSkK{LMq>k}+ zy*zJ|pSI}CR&$mh@AIiYlDJ?WzXGl6ouRqEuCSmUwmEmY9 zC6Lea6%+yknC*989^0Y*`%d$PyH%44)R$UbBX~}6nKr24%8hQ3th5%w{fEC}VX1GR zl~Xr0PF#Y%O1sXQ<5hQw_#S(wTB0xz2|%2Oov0#rzWjU#ILXiqQK6T<;L>I^HDI5w z=%{NlXAFLxrOLzfit`=L&BO>LSFi7m6NMALac>yU7%}KFEddv@rjCwUmUjb%PExB| zWv6gTGJ9IBo5vTo@dOtpgBqIW&QpShSzPfVz(FF4s4iTclZX+P5o~Q>mv4pcW~JYj z^)K(5!&x8BlPvSY|22dnEvL#d{7BptIfmUfvC0SP5BS#q)(Ia(H#q&jG_ZE4b8SXQ zJJ=v6?(c*X?)Af{|6_8g3N9oZYN47o+nUL#nKK-iy*IX_ZzYm2IIceKU$;J#8zv(h zv*Ra`kWvAORhs79fQ(-sScZVSx%z zQt%v6qj5%=#UyS=Ekh_kN&$Tw6I>G%P7V2v zLz;caZj#yOm+oMmaNE!<7cWO;Mg6+@%I@hkVN%q&wIorK^%Bw+d>$Qa%=-4OBW%0o z)3{5oW(I+#M+p1zg%##eLa)4yS`T#Luw_Dy)R)b0li=5zC#~nk3!yAAklcery%fM@ za@~~^ACnIJZMCOt3uoZXIdba(UrRBIfcTiY+>>c@e(`t8=##mEX8)R#T8@c2t26vA zW-$1jRn;Rmdrh4>Iod=?_WvI+%-(?St&%LL+Fh9hZV3TsE-x^D5HYU3m?)thBIL~{ zs$WI{PR`_uaA3lJ+L)xoH0J*_T3j8p_O}Hvpti;&_I9Y9!=j%>8cplY{peing9+KL z1H1`mlW}k9FqD5?n$0UG3%jZYk01-m?0p};W~uul=t{S)ZVkkFF`Cg%#k{Di-r+Hf z^n>I_)+RgQr_)mmc8V}>BoJ=$)H9=_T27QVO| zN1>sB%O5sHU}CGl+zc`Eui`iqM9_{EKt_7)OjE7{;bLra9Rn)=QiOWTZ;NM3C z);y8*0_&!C^sZ}x&!-&ZwX$~P+cJ5xF>={gdvZiO(RGWz@^H9v%x%`-bp+MJL+O*k z^tQ_7W{ze)(Zn3mzXDnT^J(R+RsLZ=)FA?7^17`6{D1Z;qr$k@SNbe#i_x9a^xhMY zrhoE3MAQu4d?HCOA<>xm$WulFePxN1`K9tysD0DR!|lYLu@{oHdK$M z{XkRrz=LM6ik{LHfCGIB6;UGvGpl-6DZ!E?&Xyr=Ve|&AcD5hFLPPl{hBilE}Dw;7^+}7@~6G$K{I=||i ztRv5L#n&KXn*Wh(UoYAv&6FFM#GKcnZxg*c9|uvPaE3FX8X<={mJgmzkY;>}xub4G zV4?k4m0G+Xbjf@v{6S(5QyBA;V)0iQ3*HP9D2|^6$EQ9pLgS|lQe&Ea%0WQ7k&@9e zpcl#r-1ny(9z%o$d5wsgMo2Z7KB#ae&ikI;Lw(Ow1E&o}5eTK}B;n=qH88OSArT9% z;X(WxaaIHJ*n!Xr9zWPXZ~IZiZGgs6TH(L;Q3y@F7_S?dObwXP<8z`cBp>gLQrdK> zU@%}gvBn(@gaAzDeMuF5JP(EBvkqurFdpCt)r!kQnw|ADaHhbiU2ifo;Ij3`z9~$; zMM(N}31bt+DM|WlXfxYM`$15e7VeOhTJ9|+6{J*HiX7i)r(8Uh8~^1}j=ksJmys80 zQqIX)8b?iBM}KMhuFebjz2%;oz{gM8MCZ=piO8;w4jh&!kx1pOpJ31n1pyCD7^{cL zZTbSn*!N3F={$_%cCl+y`Z>DiZX7=fu~b{r#;^j;O4aF&;)>o+hLb;}=kdT*?|5)u z16rZtVpWO9207@ZGspW9J(s@eLuFt}9^Ix|7$ygk&+C(9#oXO;+Q{$oxFf!-?+KVG zHYA>ynBt+bw_UGm930OiZl(w`=hEYy)W1b#LupyI;Zshc09>}ZR?!#aP|wozkJme=Ey4@Ez1nml-} z?yoJnSi&ekT6K2K#y=7ZGBoc8?SztCl9K^nd##K=jGF$Wcr=X`E4}q}vby@WJx=jKaR@qXJS0 z5D^1m3h2%=pm)j*LLiu;xJWEdWB9?~O#&nW?)QBB5&nd%-lf(pa8^XYP4AaE$I@eP zKaJ-S)Ar(&oYN8o63`DzIBeNvob+6xv)V{ms}0L=S2p>&uY;=XvM)T2`_u*4U2V(4kiqVk^3N&o_0BZota=%;F0r#V3CW0 z?3Q_Pdf5q|^VW!(a>EZBzevgl%#ET9(w}*=dfDRzaHMg{EVE)lrCi-7cO9|u1|X4T zIV3*5M}(e^kYjL@cU|PXDEj+wTI)T=(keR&>bvgaXsd>303nf(*H1x`LJ~-(G)+3c zwr+dKetHM6WR($&#YT$H3rC~vxT_8=hKxC2HQ!eyOL}S_Q8}14bfHxYGfR72n$xw7 zVN<*xCVgmen@2flR1R^^1eH=Y8mynH{2^L^{qeU^V>ZC_=migBuE-*ij4!fGaeFSq zn(Z1tA*@|87_NP_k1e|JfZ42s-rvupa&p%q8X8^ir~vsDKH#Ru~7)?O%V|80|R zAqGgiajX@<-RP3?UQ#{OA;3%)rj;EMNa2-hhN8 z3aa-jY!>7x&XimYVhOD~x&DRM0BZ)%IJVIZM0w)$ zofg^5F7&(0uKkG{$+T=8ZwCk_%+Y*~64#YNTuFIwnj^ememS9^(mAU1-B1R6dEnf` zTDgQ?*_9klB#&z-waiv1h}eQ=pyZli3b^F6P(5RuOZe6p$RmT{p9WTdbCd7B=3ny_ zb1vXF{* zeUni&>Ol*(}T-y4tYRAVW{kCVbWcj{F_J|z=1!kU#Ob-UP z@%qy3EBB8dnkJCAag3^YOK74JydU-k4nY0n&Y@BW7ZD2m^*$j>@~rXTf4;k;6+L6| zspdhb^mwDwR^%ya=C?9({;j*MK!1%VrLqe0Y+s5LHFRpP8Fg$N*cNa=cD+H_Cw7Wb?4Vjick2X{9s(U=VVdcgqx%>B)k*tN@oVhmUMB|)) zg{2_+D+tZ8u6S@jOC_Jx6(}>#KE}*=iQN_jy-mF1Q`)%vPgE7#$$}v$G5sAoaNi~6 z9XHuHDUAE|sB8RI{UIp8yu{7j&gJK#FWT0V7c^Y}Zn=B?j!nOj3=axLq<{PlX{+NL zk&9Qq*Cn2%P;7ovP0?&s89r8fCwEL65s0}O`bFq5C5tggAocPn6wfyY%u`v{{(oi+ zEBeZs^KMEH2fBRPr=Tv393Gn=ML5$1aMD6EAb2gjF_Y|NXK1J%LY|s(+mL2Ga=ILEy~wk1P5Vp&fGpb9`O-3U8U}ZaM1`; z^4>D;y*VNmWS`azkY;c-Het&`7wRVdC8(Im^(m*v4)4q|VNsde<3YgQg0;(xQzER>vLKox;@qfA~b1hkhu7I)Z8Hl3iN`#AP|#am3WZ9eJCB_C3)s zK)g@F_N7EbN?DIM;IKADNXKZfS~n0$G#31k>8yqF^h+q;1OV&;2TJoSa1WvB+b&Zz zJVlW%v}WJRV=Fg_Y4B;d<$fIAe-4IGgP;s;q{ZmTHs=4u;sWa50S;AEY7YDis4%{F zbSyv3#iPNcXE2qxrB;nKvevgpow%22p=RN}TGugBC98Iq8Dmtl_rY2_Cd0U_?hiV_rMZ30sS49yL}H zSn96SU5E0J0mdp06aPcI7gT0!oen}Tw~D0PcL-|HoqG0S3QD19TeT;9jW+MSfl94~ zLPPtzCZZfn4u`7Kny0=E2bV->cwR$nzOT6s|2hl^@gXdO+)u4M4#&80oo_1a+Oc5r z>lpVL72O`!Z=#)Wj;?T877!}pL>QD>JP-3AgWsS{ZvjS!9>;XskJTz&T{myJODW;o zkNF5b-kAx@)C)3ED$j7Dp4%#0LCg+wI{A|Bi_c0Vwhb7h=nd=Mq#4wBmOpXs^&X^1 zt|)6Wm!!v^{P5F}jDI5HrkKl->5vI=q5i))p||g)Gp9nDsp9i~AkFKs*k!z3ZuiQj z{H@Fcc`qN`YRkPa@fHJ?_fDgb-On)`O*<~mdsS95WwxD0iNy|gUq^9D%F>+6JZmK~ z?!gtdTKh7OosKrs{T1oA`p%OciK>y$rDPVy<1dAoGs~lTRzkw?^KD7Y&PL^AS6y5! zKe(sB;&hoh$i45h2-{lYIl2Y5aOYT<1#EV)a2Oz`qVx9bHkI^x?C4V=e<^D<*MIjnGc5V8=d7ku7 zfRXdRp@+|tiGP=5c<{^mt_G4gy^fzUdX8YqqxWg)-L#D`Ifl>i0S6nKXQOk>cXixd zosfUDG;%gm{Wi&592bw_b_b&AUKJr*JEr_BO|o>|^Enw+^SvmEfkFmFD--S&ik5!4 zJ-{}7y^RBiAAb~FDq=c1(pnh@v(wTCrWS%&HEaYK@?X5|_|iHEDEUJYo% zoYS5sQypk_NEf-$&S`8!37`&i4L@G{CvKQF3u=^28~c~A+3KmoKpejSjW&Fg2VK#L zFX-=Ta^ChI;V_E|FQ8Kftlw^Z#Alx;PE z)%jImvr^spayiU8bR^VJ?#ba`uc`va*lBN2U<`>(c=w20Un4X(xY}^^u`Cmf;vwg0 zXv6M_g|u<7QcqePG`xdwd+nFtLEj1poJ2vOyd03@W z><$owy8$t$2I@p@wsnH0Sl;gJdL20D4n6zptMgNn394U`1f;zZPg4x4gAfa@CpG_i zrr~Ce#q1*rvaPj&9_3aKb9a}ku1Y7WrhPI?c&4jZDA0Q*2`hmIH?r8Qg+u)uXf}&^ zz3DWDBU*Qg@hC6{L(PNZan8EtuVZeY-M`tcD9U2K-y#H+_Z(TfN@~eWamS5s7mD28D$FqFWpq)xJ8$tS_Z}5N%#J^b)2I{r*(;^jQ2nf5adUbY>Q}eBs-- zw@Q)OPgaIjN-&lQYorYfKMv3y@yMzS{KZ!2-7-U$8gBS5VoiU*I`vdwbt**ROx*-O*^4ttkXN#haGnIdilMp1H=3e&r0c`aZp&V4=(|+1f7G$MN zEfDs?(bfF|tC?m7G$P8q)Hfv+kMsC*N*`HQcS6u;^r_-P<$y??p8HHB0_?@Kv96kY z>xkMtnq`dm?YYnG$vIaW)7cP9>Prq2%1~zr;R6wWTr{o3L~}fvS`{9mhzBomB%e_& zw&F%*Z^A<;Ek&m!@+$Z<2)IUb`t;X~L}E!B{`g`nmfzWgMt1115CdugU-Z`_)%7-s zBP#6+@c-(=GhOM0VzD?92jVW1%NRypIA}T|1aBDo&h4u$i?1XA0kMUBLmDpMBuSz| zs)B{oK-#F9z6NUlODWG4sjrZ_*7NTV@L9Z%sk|SzWe`4<2bRcy0qW;wGDgRAO9mw^ z=*0=G4zL2|gHWa?nCY8V3B*s<)?JiE(^4)mQv}5#?Ow7us)o6+Ir`OC#*YVB#2Uph zg_Uye#9)6fe)3`*dSH>q5p%}w z6N>=6yRGY@@{%YHo;4^NF2$%#&*2*5rO3gQYnuS!4o$cKEkM%0+AUJ*w9Rlv29#hh zLf5yDVEW&1Y^@LJjKk4pA6ShN=VYU4M#Ih_3b+7{ZF{=eb3H&;7%}PU;$ned00t!I zeI=5r5c(4cN)Wu5H9G^K*ZjCmiou&Vx6>(8?P_iAvaoVT-c(zcmv@w$!6zP`Cxm>jD3P zGHd+1u}SPge6v-q!gIl&*!=K*pSQ8lD2dw_L!mO2n9gJLdkq~UOfGwBQ-|!WTu^>6 zWF|k<*Vpbn2L0*#dgIE&&yBq;&RY98*S#2Ms ziWafzq50eVC@Fy{_rI@dTYZ~C(4~x|xNxaCtV3#O>OMdUVX3}CY7;7-lZgUb3X`CX zrAbJJO-1w1k#xMmA1J!2x8f+&y4tGlpTGk1@m1;{1&c_$3{H#(@&M)fRi&{qO^sQXBtjM`}EY?K@y*~tV(niptw$V}Mt zNJa9i8A`4?y`Q^*Lt3&WL1`{nU8qBNOFEXZ4v5ILX$rVQ)#CY2O;OJpNI?&_q|&L5 zZe|uv-iS)RV>rh>3xDHKzSo2!gdX_sCEPjJv^{k`9fxNg-0n4jv9MjaK1Y2W zfC7J^30e&nQ~Pai`|F%@V$!|Y<(cG^SPU$8t!VKc~o$sd?XJn9mcguT1)g!GZFPtBw4qxfh(t<*xx z-anh62jp6cnCTX5X1_xr-IU;^W*vU_pqUr{ArC-o6a4IR$ra)i9*}5{ z0Z%O`&!Kw^=slr{=$5`i_Xy|Di&frsuG0->wz(aOg(fTGSF9^%emx$TbEXl@aLz>Y z1Em~WL1`e#Dh4~vrVVT2OIrEy8X2Vem*SG+Rp(~Y#x+<-M1um!(@WE!=?i4}R}w>6 zO+jmYPJEayF1d-|F^A+G98%ErwT04DV@0o#u^}|7lvF*T7NQZj;PHt=oRo5jyVz=D z0|0GugC#M6&$ zE_REc3G%a0+U$?^yo0-3H%4fD6S%&HBbm`&9BHkdu(ywM4xEhApFnClyUqrhQNASR z>2sVav<{~xK=Vg&wa%l*2gGd)A|m*a=&>82vT%BVKzAXRb`@9Qa7f?8PNuFn-`^C( zG96yC-n1mM86QKDTf?nNFoZ|^2bBw({-6ebucM#Rx7q;Bme2|@d3hxVVaWm(gMVj{ z2~jCQmfdvB#}WY*6phY@L&QzVu>X{EX|=)(+>DMM@vTONi+)p$2>HjQ5_R!*$As-;**9G zbI|c=I}%plnW8Om(GrNK91EV)3A$bjWJ(mBM6(vF7KL_Jo>N!3S_uPR8nu#as}XU@ zMd$^{xLoqrzIX!>I>Qlbi~4?!@Q)#u(NZe(bDGSd!nb^VF5%$LY@f@c2>0hjSzci% z(b^fD)WpT&C84XtR1BKXwMs;YCgOFisPlC$D^VsyaIQx;ufsnyxdlK;AyuV9I0gC6 zWC6lE@m1t*O>a_z?2%Go$Z=ZT$Tc@RHg4CfuoA+hc@B|^D z1T+7cii>(`rp)7VQ1O5gj^nMshy*YT{HJGr>7p}-J?%Gnfq+>wOdU)1_9H>!M}YF z2XL==&4~60>l~*gvTbSmpyGdlxVdW!EpA(^! zFC5B}gLsJH+Cgz+TCS2@o5K^K@nC-> zHc24t8vkHbgNWNMbAKP*5SXfQ7v`V;45iK#R5xjady71_z(o$nrsW|3Uu^3$lcaiy zPN?@W{?gZFG!K|Rp#x_tbB8S>uaJ!Os?~N95yFe{tycQ*NgFvF%7lx?P`Jnz$&`gxj&@s zm*nJxY!s>y3#{i0k3qRO6CWE|zX=3ZX#08X?1*MmPT2;GdPGg9Vg&ybJeN_N z*?-q=3Aw&l2+vI$z%}0!4d?Q0FZU8;RD;=i7q_P8^o2iWO=iKq0>NHG0Jq=+I;%9M zKIdIiUx(;id-*SjxFh0{zY6pLQNo_l;A2y4KW8bEApu+xhc?T4!R;sHoprnq(HYZk zFG_l|apd`*A$~K=oYsZb6CC{aGdh!7Ie1Qe9Qd>iO{h^TzF2_Tl2t5cF(;q^w!b_7p7M=GV z)+(q_A{2f60)ExOuPjzNs1%aR^8iT+%veU73(N2pd00$HHKU(Q0jgb1gq=k9`eii`?^46kX zm%~LZ3rt54u`dh6(pQC0Vuk2`&Iy;($HpeT)19a!ot0@IPjWxuiJYep{UiuJwr%gV zoZ2-Q`vuS$v3U`JRL$P;OMs970Fc!Ll&yk51l#j5e& zX3wreH@w!oUP2>Ejel1Cx0c z_UF3v8lApKZS&#Z!S4)cjUkT>1HbV9%^>-R;u*?w#}FL>$f|BJ@QMH+BbAyxo$F-i zNh6(|x>~18cO6s z@Hr~^Suf`Vh8UBik1Iuv^B&OtJPRd)-s}%<)#JKuRFTf7l2Je%f(Ht{Aur%$`eX}e znO939?9wGwb!CP;lq+AC-SpW6dN?#Au@h}qO9NudMx7sR;Mz$%s(_=xy+N4WCbpVk zZ=piz6D~3Ir-0iAngWWqHWIanP7B127k${jUz*g^EVxfxC4i|v78qGPZ91Ju6D3s# z<`*?9f1 zFKF+II@YMEtfSB({W?Zlh{QX5y4xY#;NjL|N!X;%dHi>4Mt|SZ-Gk||FQzjJHV>$?*t}M2?_s3OrTDx7rff^^M&cdiKNL9Adv-L}Fb2@!nD?vhj(X594Hn3#{7^ z0Jm97Gl>40#T%ET$|}5>B}OUZ?o&Vy49@C7{+vfXuHr|znDGLx;_O{QZO~X^xmP^1 z0#{eePj6WK712>q!DLoFnH9BLAPGqN!|M?xQw@RK&;~JRE1yt)2N+(%YW~<`at8JJ z#CBLXCA?|W$7I$2+TgO0rB_4_2}t6TbTg|V!cE$h8 zS~O!Go2cdng`lTP@*0mnv28WaEd!fm^3h^#@IgEnG}>+tCKjeU_9U>^NomS#7&b0~ zWM3TntXT8j80y_@y5Js!0rS+{7S-ITdat+PprD+X`{M@}^Fjl+j*w>tD}1sqfGqB} z`FdpF@F74bh%z_tzn6s;!|i^~7j;cs9SPoKJ9D(7S=v4l(yPtd<1V({e%ra5nEJpi zJ`pbg`U#AoY-1CEg44+#+;-LEm^b-77kHL7OP%uvYd64H9LP|_D2|rvH=u|xW*;$w zz9rM|m6q5z3f;ioC)(LE{(z^$l@2<~T6t}vq51qSJUrNoG^0Y-T@XwLoLx?d?QV(- zH|r(Z5zQI9gcc!A?x@%D2lXpy??wHoM5|tT;s`BR{bx!SQeCM$Xk2t;L;Q}4;ETj? z@8-Kt0~kWR%j!KiG>Z+S!Cm^t&x&!rysbs-gcsMLpEPNsTqlhUyQMTD+>vsNxHXFk zeSVuaoqmXWM;(ugkE7(zr*y5ud~;)cY{**za@Hl;tyH}-d5Dyp_tx2y;+MGa}r%X zA13F*s{om>WTKbC5)CFwDKTbyA;xw4R66expIA3VCQS_+_-+u1DL!Bv<2XP3h#HKF zVf>NxMut95t;iWNkksh4?9F4{@8faRK{U#JlORSXre4tm?HqYKH_*1rvveFUDi7$W z!A`_Ww`7uaahY_G5inX?9Aw{^)D57qz*D4=U1~{W#zoer?U+)C^!gw>MiVXLfg=hH zErCl!MI{{%no5Gn{&XW!+&LZ8l=FAo)uafTu$-Krmotf`uKTpx^anHfVAjnXV6PH> zdUvvn!<`B{+j=}})ya_DnF#p0QVsG5U7jhJRYswVZ+=8R>JbkhS7H8+_uB{mZfNkdC0s_R}}S#<0(6=9cg@>Ut9A0tfY;rR<@d{Nll?!_+KT3aA_byJv7|v zMaV$jC{9MrlA?|Q@*B(3^i&&Iq}TWrCSi6ByvboWEt|~ah==#AMT)?nrh+}8;`fh`Avsn z$po1DM&SM>X@4Tg-J+|4&btph7=_A8^-)h(K~g~X?G=58djCUm&J`(upTm}$Ave$g zp{mxnGk2ok06%P3IEh1P8R_OftdNCL!oNd+{x0OhX{p!4HcRan_$Kv?YMR7&O-bH< z71U{&bBTjEL;Q!g`*=Ezp>Xr-?`OMSRh0xsG(FT?#Y;k!7Cu^Wm1Jwi6q_qW4In_j?!7<-Nt9SUq`bgbwvo z8g&v==vLtKj!%`vi_+q*-nKsPTppJK&|AIyiBz7l{Z?{EYLLK z$F%7zMgTQ=xQyN0&~54D&~d#>pK%6;=ly|Wns9O5u_b~I5g5?_d#rW<00K+tNNDej zXa9IC!ss@=1|Q(xy)A2+ed&*`ssLj-*PtY!L_UBtIh_Sx+>Bhy4=3-D9BC;b3cf!} z@rpJEx>w6zx~j_p7j z*Y)~n7UI!$@^s?rk}umK8y{MFdW&KDssuLGz_Twqg9OP0Z8g>dFGu8icBa=G-SM4a z!)YqOiBBEx-MstX=FG-rOzDKSK2jN^T-XoW6Up`bnUcU5IpedFnpLfzkg^-*IS;m2 zrOMPR69>K@QrzYw2LbZr2L>tbh25LxcPf~`~7%ZE(TGw;Cc*Z+^5bFrujj>6lwr@#PwOHy#CTj zGx|;dk(%H4ovW`}o>qRzca22z8BEviEY2IDD7jduc{sydE`nt7(zg8hhqr`bM#vI{t=d+(>rd z8Np+i(^=j9KHAZh-c+9aU>r=j6^q&@UDTPX{-05kg8{fx?PJ)FE|ju1b=1Xo?Bo1d z%JWdA55{5}faF#(;N?<>`OCyB1gJ!Po6BxT6A0TXke~hwx5&#;@4lc;)zlf+IwMKtv@RpeqgBgE1onmPw$%sdA3b4t-e-9YHk^&1AQ)2 zcc~C)oqu1B1oSxSsEc1|#}#YW%~yQbC=41C4lCPMZ>@&4VH+xpsW08F@aWpsf#N*J zM0!ABxehOvSvsn=uW90@)1_5GZ|!rI!*9rAz@G0H1(t`4dG7v_I!l`n8$C~;ueR1m zb3s*pt-m<__-g_@@i!{^CN9-6(8O_9Mi@8+%}D==*0!?{I3v@lD)7nk+vE?lHbz?s zBa5l_Uh3b9+DrOw4KBI2E*;Ne2pFx9t%!lSMwqD>d7L^r>2Snk4wnS$n@uxg^x3{u zye9?LHYsGtHmW>2Y}S7o08-e@GqwrO4v1OjA1fRe&Si9495}GvUuZ_;pD1bP4tRUX z=v|fxC*wHdb)rk~v97+Tt2jCOEe8t>0f$P_91~+3Fb@dGxoWmYYho0~&qkphqKYIi zmeqK?dcQCR3AoTk(;9{jTmtm6Der&^TBFG1N;ps-x#x@&7PZ(l|CkreE6}- zhN}1y#ah@q6HVg_I74tHxFibh>^>{JcYw*_k6+iw@y;}9P%W2W0`ue^#LW{khwkGB zAG9Wn#SAR}xb<%&{&>h$V<>3^f!9$Kh{?(DA>ACxT@h8dqWZao(R6acZHbX{U2R*Y zQ-utqb9}G2YIknm5)3`nazC3vg1i{q_|t^%1gYs`Cib~T@A?d=>~fYCUn=>g!EYZrnz zjL5mNK{&hfF?jR7ox<7_UH(Lbta^u{mi?&Zm5kr{dNWH_3x|G{|GvCwKr~_ggNR$; z;k)}*Sh~e?X2@c?Vtl}&{&hl&XV@e8mdGdcJJqO((E(2UnAO8$b3EBXo6g2Upqrk`O+ z?yB?HFEP1BInk~a0(V`@aQ&Q@{=C<(f$Wlz8Z>ISRun0*n)$7v9!oll9n418=JhZ= z{W=7%5&*4ytN^ML%-=@VwVgFEM;A1-lWF?lNHXGaaPPtM=`1)fuK|kC3v#jE!gm6DR z)!K0?d=U~uLCITrpIFr-{Iy9{)CLFVAR4tW z1;*R1dXQYh*vHSL!kU}o-7#&L)CFUdcBI6_O89ty=FEZOMb5>lqI@ExGHlbznp@9G zu&QpxHyn{SFx@RCRS+6p`!DFclAL4bI(=m*)fWFsFEQ_Y; zFtf8jJik@!S%w_1jOLwLfOlAE>LHlyneS5@01fLygne=bn#ef4)c|ROL__nROV`<#98e)GZ3cNL|#oqHrWkl*P{|HHM1cs@Mjl0h@GoW7-KVf z|Jcb!jJ7CdGlYQM?y7Cu4s(11+d!lky{L zd>dfY8@8=FMoiLXuw~WU=o;eU0h3nsNQ8>A%bwrBAWr9}$GG;jV3&_6xkt00%-Qn* zfEwm^ph`vjo=9DYK_qsyR(ttbO~~(3PzdC<3t3U|mC+sQXDRO4?r_fF9f_STx^17vQhS1VvFouf zT7I7x>)#Z+I%jjd25}?<>tp>nJ{&=Y-GaRFTd?5q-Ky3-OiS ztxwPA2n;>`%@wM@|G+rvfW3l4XhYM9P93QU?1=aq7RHj^hA}h(Q0x(3WQ@s~NgDBe z!nyTSw78H}RfkdjsU!Z?vs;_N(ZG(){cR(_tjk$nm8dfw&s0v?8Cz3Y5(ydoINmk{YfoQ9Klx>~Av2N$IMnx79 zA)vIWa6>^0UM^J`n->{W3S@t0Jn{xh`Guc8n62VkWEKX~D1{_2jgamBRxOQW03dNI zP{4QP7wdG@MynVa9^pe0h6_&u=t!SX&zVI9!#`GaTs)2kJysah2l+AeU;yP0RPJ{) z6r4Rx#4DZ1jcxW3K**pKH#4M-N#THK0HI^rELe zw0Fw9{D=ttPsm+mT!gnBjAp*Ss2*$5$YOC~P14Owh{@@QsuV2@P0yF^3KSQDf|Q z69~;GM%tK$+W%syDB-$(V(ZB3ZwdU4_hhiygx|NW+`WILS79lKP4@NL8fdMlDHV0E z;4?w-Q-pC*DwvskGrfWmJiCfhkE()B~syWp2^Xf*L*@?`K-)0Wz-HU0imb}~l11b!-?Nb{zBofNeOqlNZId&45Y(=vfnx7sVF zbOK|Kv>Atk_Gy|Y>;Sf=nH*Dd15m`n_n(+VMT{SmrF47F_&FjNT&NmB0tRBcv+Mp9 zhuatTgzFB_xiP5)38@muKqv%>8hibW^kE6#@@%WJ)~15AZC~P7<*V8qH_?X!q`CB{ z51%NXjDg!u^laD4;8~spk(PMQ`)a*B5qK2HLB^q~I-io+1{m|)@>+jep}i>Us+KpJ zqiRpbqVc~9rryr=Jrc7Iy?p(gLSC?QZ*MH`y_9W)dW|dcOt7FeRJA}O#^M1gM;p_V z@)NCqSqlM~f2D(gdL7GbZIBwaThvmDj`pgExeVnsjGaau7zfY%XLmjm_qDLWP6zX( zb#pRsUW@TRcmds%6kj|{Q8zWa;W&Gyy3vOcioepfEy7+f6~+YgJnGS6_3BwrhvHG) zmzJw0hu|HmY=jUE!mHe}xd-bi3|zqv2u)0rJ!pPMq~=19$X!~7H^lXmw(gIp{iy&N z5eSI<3v>b3@(K+YiKabSyq+R_Ip{tYSx{HF_Xpe>w!|NyP6OKRJaSPbskOO0&}?ho z#wfgZ62K=52ea9|Xel9hkx+1D6(yNzrkaWXoI{o1Z-}{LucfT9Y!#|L$i8H}%xfxS zo!4g)0YdUWa-pHo@1!JIc}+vITyO$RG&;9ACLV*!qF&@6Dwtvgu-_u4N&)&x-%TKo z48n!Ehf z*~Q=|&?>-)2n+U25}Z*!l}_h?TxG*}q}lTj?|eFiVSu7zdVlkSws>p?V#As7V|UEz ze+h=k$7sR8B>a=8fMT5?&UT;v%GhXJ} zv4#8Q(tSUkEqGTsl*Kw83XRD#ZQA*;^~WC>1FQxA4$aV?xfV;dS5$4K^~e7+a67wC z-A#nSF>(z(AX(W}!F^Ut7U@wM#K30iMGNsY*4|Jxv@1fo3;E~nn)W`tt?|kT_3nir z@a=v24B5Z|)EnK9h6)#&Exv zcm=!rzpKhm=zTRe$Gky67A=!gt#6QoFIk(#!j+_YPVd<_qf|5AAHztE zKQ8@k1NWzR(VoGkT~2c;fGg6_lJ;mHCA#RRHLX@~Nt^FGWC@Z7YeNMRd0(_Kg2?Ib zq;RQ_9o=N1njDFD3&lrWSunF$`Hu8Z zK$+NiUj7pN&(SzU*n->rpp8`wGwc^t%uViC-2<){otfQ_b9wh&ZC=8*)x`m6oeYxG zrnXUoXI+Zhuqb>;jq0A5td>VDl+6seoflzXrx8@YTcCE8m$bTE8r~L-9L8;vU1MTVS=%84Mktm^AF1_U7q@ zi|R>{8x_ytzOqP>bBx1$2-gXI2wh^4NJzN&iNN@nF;r2x4~8{-Bzc#(07Grc|7U%6 z?7oR#m>xH3uj|IiUMq#dFQHC`Tv0HnhauA*I7gYygc5nD$A-0MueewO*TFDo(}3`x z_;1DsGMG4Vky`*9`5E$<%*8C$9gFvJc{a&NfeQ!Y6NI?5<+LJuVy*hq<0V0Tkfg$|kuH@;^z%i_jq zV=+vTDtV^^WT&RB8#)-$tp2(~drBuaT9C&0M@%4?+)gml;h(z5KpkPCl2jK`3EP$M@!S6jsEKW9ivbaJ;AE?lNcry1&MHV**pp8nn8)e~~y zqAIZG5lNqbOI|^i+gL-^Ji%_749?Eln8$zIPM{qiHz|QnGOl^|9vt>Qcx84&9dJW@ zqY;uy^qP+i=p&+Y9c6~aUSl%~Nkf28dCQF$9n>#zc;x**<~}A6G^{yu=}6|WnQ;8> zGon|Ih4!XOm*oubnjqam zkQL;iQ~sGAIuLtVH?>UU1UqYK6)#TZ@dgS$UWAyJ#Lx{*-#n_A+6N+fburzbz?}iT0kWhG$d2J@fXo^7i4a7`YxUNgv{*sX zM3&WKl=+|;NM|tEJzRFL;wR96sdHt;ZP2x01k5)-AfY{wfo)}}s6l|?h9D%oNNjij{(ktgQ9JQ7ReP|cwez=Uj@F$$ z6cn3MysA7~%%Uq#0pk@$)KVu`*?hS0N)WgqUAI>zZjhigLP90Do}dQIu{!lWSskgG zPMB_*KV{4BiiEJw+V4skbnMFwXbZTb54;e=1wgm_2-r`k2_>P}Q|9Qvd3h+BWu#j3 zfANmN8#oj)ausHp?2`rNeg0>`2G+3#=V|btvTZUt@)0oKj!%z}tw1c_4BF)^BnK0~ zt`&xwwk;=VK~X(@Rk#8_&-ui5a}+qKz-%zngIhX5P^iRpU=boNuJ+=BOFfF)Sqd2-T@7Mva&h; zh;*iYVO}ezyG`?6+CUii*>BX^+SD={GLh3DHh!Qa6Dx{g)^Bf$vfv#6u^NC@Z&8_< z)bYTD-o-XB9=_m;xN-Fo=L|1) zF6446YBLEyUZ7RzH`Psqu;ei(6Cp2fbS+LnN7DvtU*3rMeM^3s`<3S8-mDTJA8)W()S44v&&S1MIF48@Y$k%PwuUt%lc0E%o8Q#x11^GIW$^wMDOq0!XLvc1{!}3RmM}g zmOAbah+KCq0!%?$~#yjRDzG=A#wEZ z{n1WcUM0Rxb<3(1Aw|pW?+5TZzYb@~_>hUY+X;tt9TUspZT6kc&}Lv>edG`S-HL%W zE5=F}xX5xeUi~rFM-8tz4;raI=LbdT`S)b8@;UhJ?&ak9Z%x}ztyev4T*;n= zw*hPUVXl7_#|(|3d!ZhkzXV}yn{>)>99Sj3~UWnLi zLu9jkiiP}_cm(K!A_hL<&uUNhaK7eNM(%W_kKe=5N8fkLO(Ue( zgnYUq_5-B#Wqx8J;gyqd9FQmt2ak52K^vE1`C-m)RRyH#b;J*?J<5^tl~s=Ggt-rE z!R8*5TJU|MDIRb=X9c-LV&j5-|CXjmh*K472^kj#sU8Vc{Ph->ShwrB=%q$zF4 zsbtM^ZTbVWSxf#`@E45cJ|jjhpitY{p3i?*IyBnI?&Fa;rPgrBUj={-OkIW7R}!~H zf%71<3~ZX=2st=USZ3_Af^Nm)oyAm#p!`5HgvDlGO#QS*l2ANoKlPg6LU)|CnyyaL zj&5>oHL6MJ9%cpLw_V#?;4e2QfOr~OMHUSlQ=Gxn-{^!KL5z5zlYd>B!HwLmF49h5 z!8_TuIq|o35=>viYZl9eiFjrrk45I#e9XClVe&3+H}De80$aadG=3jn-E`8y=n;^t ziT51x@)*ZkBv8_%i9GTf$yd=z)n27sBPjIa2YwKKhHV!43$lvHHjX(GUFsn117x)( zY0#E}PIbx*c99^!qp4bfm7#E>3Cd&^*jbm8bYE$xcH7NJKb*wJo#}eXHt$@yzDw`5 za0Ru|SJjpVHgYVnoY2?-M>&YBZInBy2i50F0^@170ABOY-%@Hubc#q3O>OeGhnUqznm|J zq`MUqtaBNG92HfSQaK<~2; z2-9R%#K0tg26lP^oT3WrjOOOru|oVe&C5gziFb`Y?`+Y) zviThct3f9L-Yvj6@l7U!`cRG!WX#0@8)Vn;7eaLVGW6Zl)_#)4&mV;Mh#cXF7<3&c zHvqV`#WCE;%zWpjYZyX<;ZZwOf*PgEQ!RQ^9OY!s0peaHD9witUM0^oSI(hCPM%(} zm4`ueI(7Rs8E$o(3WjSJlrL7dfoEckjZ4?eD8s`87M8J~*I?;XCiOEyN7VLZJ1|>{ z(?D)`gYR8=V^Nkkahc17iA62N;^o9X2ucs^vY6sWWxH=wimxr=mxvv2=sR~FLMNIo zDdMh=ZdAC*63$+q3h&2fJ7@^Vm7+3cyS8}ErAT}dh4x4-vlYTJipD0gOX01oiP7;;$SOsAk9iqurN`c zOzttFts($tK*l4Aoh&)R6lLy*NvT-2V%4|N=nD|eiA?nzr?GoXtixLHOonb!&=uG0DOuXy%F&$EGNf?^vfadT;L3{lg)WnUPFEay+KHCYaI59( z)&}k3Vr~bH!V?R?7{-Wbooif~@(Y7F8`o4mRk)*$44+jr8JEKm5!^F}#wQfG84hTwj z<{_IP&k^^Lxp8(>!DaS$-l!@dtQE6(Pl8FYzSXs;{t@z^oq*?RHMMtau73{KHGx+0 zDPMM*TKZzR`i{x&vKl7WmdCJ^SclxEf%N?8>=U;7G3|W=l0ZtnU%}BZ-q%H>3$i|W zb}|FpCtmH)KV7?CU-6OKHk<7i9qpN&)Yy* zM9DEaofrw1uFHxfOvb9Hf-1wIz6){=a*`l?Tg;?pr~0U!Ms!e{>_knjbjisgCVY#6 z#3vueyEJr>{`?|>>S!fWni-;|hoEkOLiX2K_y3|=&R6?h?h&*jAC}=H&&r~O16bYc zu<~}Hk&B=fl8@%Oer|Xhzt=bKmHW6hkvaNiHctWA1!gZu&nLiU;r#jh+#<6Lm!#+U zr!Yvy%i&{;gyp`n6{#UM5U{Kv(^Wzlw3hYp;l@8lX@|VuJ@zoU4=#a!f5sW5Ryv)z{9;_;4W?0F z_Fgd*w@|7FQ!1JXdn-hbCAGVxLAsylS^p&4{N&*~!WZM}jP^vFWo|ry8Tqv2n5z`S5A3-F^-5y{d^<*;Yb(3`CO%+zw< zKtZ?w>u8XmEoJgNcx_s71Fin}E{>$Nk$e4GnZ;`loRdGH83JTR{>Z;3)O1pAcHX_q zFCij?EKrb<-1@ zBg4zKQ(W_Czd>`Gqc@lH6UgK`Ic&+9tFy*{XL0tf=d4gzhy9+Egdhz_X~Yrv zr|pc+OOOubwxX{C$ZgCB(3G0H$PU1El8neBC@V_~0K?+E3*pWSST7BWkWKB7iiPDA zkm04G9kpN&&v{VJI6vAxo^4yM15xUIrV{BEPgu7DG)MwrPbXEcLho>X1h12#uk)l; zyx`%z=paR6>4Bm#g+=I3I?`3XewgF#7wxF5Lbd)nnL5n}E%jdZxoRzQv@EqR5yAs0 z6#)HoNc(rrbNF7x5wP0Y_jp%-n*WZ`1Y`p22_f)cb#lIY?WsI?B5?~#gW1alpyY)I z`(~g%NfOCDKad=W@5sK}WM>MU*zOa|8ovLF$&~i_9wG^X{~8OU%dFAH0_S# z%PNY01On;)C$;2vu~;Q@)gGixbJSyE77A^xIIH7q#WifdxX;+-D*nOw6kyI?;}Ie8nrM-dTiP3Pb0 zBbdHn>7R;^`J_J+G0Tu1?q|u%L_lJ1vkVm#Fd0*wVCfs?ZfEVO0nGJm%Xk9n{Doqq z_KW(~ZuSr!1aL-|5402${L`btl;5p`e;s`T+Tvi%I03p2^-{)^YBHE0K*G})J%N~C zWfwCHz;5J+ZK`A1y@~P@xWWjua7goi-GC(jjQ}AJh4em3+on4V*8}NH{1R=dgJI8l z^y`mTbq-a$O_S|foBI|-vDjETzeYK2ctW1pdi~hcE+HO;9+@A`Q^0kR3@VaT@Ky*V zkC~>27UX5TeBkm zPOu!7FhY$M60SnJB}T=wMro=f^P-SwMA2}bzo#LDUfo-=P9ynkp)GIxJC#O?Pw$$4Dt?NPVbGVWZRl!r|nnF7}+<4?k=fze#b zcJKgnavjI!q^QUNV7r97*-!+$DT8r^eRq_R!TQkWr26aPd9^z?t49bp6A-V}nWt zn3utNCuK^Xxb;nqKpPt2AS4DXBiFX$9m|y*#0v27LV)-DxHyc#R$!Qq zC$MLOsHo9y+Qs{{CmA12uWjMf$f-UXUJ;M!YpX_{yDE>FNes);+}QoWOdAPVQKEk? zWHIA>&jWl@@a-{^4w6s$KTL)^b_r^Toq{kt_(+blq*mgqb{soh?15(@gt+FdnNq5) zhbIC`+2sUY$|Gm;y1fGi*c8D)6l}fhGY>l=Fn{kVsb`s{IeKrt_4rY-- z#ch}#sU~AH-1=sPo5IPGT;}ug+iJh>3P$$=-QE@Fp z3Banw0<`7f4WA#C(IWkyGO~MT&`o)Ip_S*&y`pR8R?H#UonY+p(k~O-aHv(#!qtTFS=CUQPGf~tS@~+KvO|*=Fb~u(R zo%X7^r9QP1^cy2hD}NXoNOV{MT?i9W9H1SiPmGN)k)g#~Pi zd&v}5C(IY)l5F6z5e^^$X>t>0;#w|xk-{d9fyLNM;>yT0v{b;IByI4tqI3|iJ=;9!m*2k~4LTMn_w>(ns1Y2za2`$Z zIhDuM@=-AH&PtF-Re&m5|Jsk#q;Z*mCd|=90Cje*s(9$#My%MI;q$X7Ahu8*hlB4e zV*+JyiR(qt{u>dYN3;u>$*7#1FeHI5G=rF86NlS)oH}%SePWK|&@4%MzhAMCV??Gk zWsg(5Z`nQag~2Ay{egbN3yME@5NFO!f$H7?F(;*{euBZ#Rm2*rkPG=lTFtqCPsy_d z!J}3n7{$m-DAsYl!&8GDZdyYqz9fadPAhs?-@CZl)$W7w;tOdJTnqJG6zV!l@@w2h zlVRma+0UT+acqGLU&6i=vosrg9^@oiTRj>)W9cMn!Uqz9;V%4`B)w= zD(Pj`2Juvniw)_3Z!X;6i#rAugb^c8@6 zRoIp(SarbX$`W$m+2uxA@~{pU9xZ9(AqDD34f>Cmkqh`jUBO-Ey`fQJ5sX4nDnP6U zp02$V|Mq`1FB49Dfqp%7)R-zd``oq%L{pq>oc|d-X<3Y^-q?Y#4RP=Fb>ez~)>k!3 zM?Y7{ajRr$R#K?65DzHfP+oZ+783F<%qoTqf`f5FyanQz<`li^vBQKIWg};~+^sd4 zhQ?b1M`UW;O+iPv%J7KIT0Yk^k<~hpp0pzm843^~Ww{8&P*D>`7Dv;S?H?!Lo_iFh zt~GbP2qm_H{tBg+r%hBZ2*(I&le98E6~k?-i}$IbDY4pa-_XhB_X*m9bN@C zRohx)@p2|NF#}M&0bi-CW?r1rEsQL$p3^#w)gahJM5Er5O8~{^0wKxY8fcZBdKAkO zEo|NHRsWrE@tM%GxjL3^hyCGwk`@c7j`M0O87;6ume7spUCL?qn!#958Ap`a^{Z(k z#IZsn`TW{wzq$?c>XJ;7EyWC3DKDG%rje3N2Bm1;ts~zG(Fqg(OOIXI06$>WAM!vc z)n+zJztrxdi26feKuoFB00h4~3@T7KZM~46FXzZDG3=)Ur&B;Z9MR}y%TAfCZHv}Rv zO$y9418dWJs#7peSFTCYPU^~Bf|EwT@Iy%-cQ`xrNlc0j2++;E6{%&J3am@aaMsbZ zT`P@9BWWN@>lgc#c@+TQm@D#)qHNqo#AFX<}V0<-x33)S?Q)V9C&g zTYE$cu5+4u<-0mpxc+!kxAbi?yQ1d_9S|Gq|4e<^?%Tvn!vz$iZsB>-7 zy`)kD=Ek=$<{rPY>|~2Fr^v7-WjkV{>dH`C^L)AIQ*d_KgEV@>XrRmD-f&^Z7Tva8 zkZSqjt+(OGvs>)!{;CC>=5`IByy;dawW-npm23AwcFK}xHx7t4eL$GIvr~fWp}+IO zfZ6+0T>G?i*M2htg-A<`!Hi?7Nn(@cq*3o-cRGINbg+z`|EEb6epVguFsDnKplILL z>&g!&8VSrxjLNyGL|0Aey%j|YIf#@)p1kKU<0szWD27ik91Ch8S>sN`vmqQbj z@q9v6ulnaQVmFr_U=H+zNqhlqSg_C2Cq-wvMl}1NbkF|Zrw6kH^|H{Wo|b0V(=u)$ zVgV=(fCCuNpj3-Ikv+*m$c!ab&x!`A&j6D2Eq~#nfiA<9j?j}~L@|;ZF~u($4mBi{ z*II-|+iT0nz)nes3Z9azU|8jlzhMA_fG`>me?EgI;?17sOc^>3A{bq zeoXomR|O%?rd4F`5l*J0%Zt>rD_+tjGR&5Ad3eLx66>}$zn7$n1m~RLcbB zdh{x3p6c6v8I>Ml&JBQD4YfSehWS_qRo8q zeuwMnftwGeMgD4zRsRzty6?t!Rcki_1o2uTFGwYUi7zTBNbup()YCVB!`N7VWx2J2 zJw7yvdEtiKdSrQ=?Hh~5(p7Y3Y^3|u4ekgt9;XHzK0cV6N^N+4aQuUN)l@D%o!IE6 zgmDA7E|YPH#i?{W?g;Cdh^b=?g(o(u(=6g~Uvk;D*l0o~c0pZ0rUIEQ$w^M=yFJia zP=Kz=Vxg#;Si?%u34{p-pwLZ0AddD%0tAr3t#L&tG87kNGuV;e+gTJ-H7UjqB1d0lf5d1z7 z2gd`L)15z z?&i5w6}ZmP1)+kFkW)$%SLF1oT1Y^mjmBE(%1Cdp49=j^CO;J@IM#Pxz~a&n*!YjM zyFb69aW>YG@W%J5AoA?$&b8*p;hk_=mfg(Y) zR#^V#$pxe}w7q(g51UQ2BLtwo5(p+i;Iq$2Q{ff8OsTr;8-si5M1F0lY(LYQVHTtg zf&El60{?>>wOoxZ9N_L^28M_BKEQnpuBQ+O|84~y#l~=;d2{Pxr6S|^55RKj`{of% z(o%S7*7Qfp#sf)zJ*1hY(}qB~s+g?2rpSV}*e={+K9d8ztH@)VVsW;m%vyFFp5f8(92`k}oIp@TZ zBraa}$sP7aU%^ptI6|edY$8KVqAXTo!t@I?g{1|M)cQ-Ct&5u+jkA^#Yn@Sk{!Y$F zok{>t0r9-!|7Q^UDUj=Ve4cQ??gdAd&FB*!m*27(#_^LJ1bDl8)L>^hm|1N={R8}0 zAq;u-q8?!ApeLeQW9q+jZt4iBd<7D7_FNQ51Gm?5(MJ9yWkWN-u{9rlNsowpAaCa+` zoRf+D)gQgZYfYeT7Al^mv?yt!P;wYrU9pYoxT@Dm;vUxc-RKP}R!_DgzHmv1=X}b8 z9t=5-S-Sj-TxDlSmhxO&xT>1lA*d5jiN&2l<0B8>|9t4B;>Fgf#L1m6xg(<1e=;&X z>8qBNe$d&M?G^CCyA|J-IRg*l%rm3P&4)2#p6+-X3(XlaFPhL`^Ot!kF=y>#;H0|W-yfWw(digEDNvL4YQ z1iAJ1X@Qm@AqxAffxB<6qU?&HMQ=Fq{D1Rqj8}-X7Nc35%PnAChxi>vFk|`med&>f zItq3qMeEu+bDaf3`39ICMy7mMNT)Eb1Dj>n-}##mP$k2nifMsWCQV1Xpk3v*dz)c{(dVTKM-hV@(X{JDwYARXz+APjySFN|1mC}sN`JY4{73CplC z-H0p=IIGlyTK26E@+4Hhi$YjKa;&Wi_*-5uZcz89l#TOp3Htp#TYHJ@B#B>kMD}Az zChQL=%y+ONVyZ!3whw(}ip9zhv#g}tuimSVy7fYa z$?6{WjFi|b$9RP{se1N9bIrhDIEiYR11;~p$O;&Hxt`$h<=nDlPhDt1>B4xNK-R5* z2mK<#rb`Ok#PPHDt6))!K+BD!wxv|ck(cVUQ*EesVM^O$%GXFB%K`g|< zKQrK|n{g!FU#Mj7Y|KC;INDU8Ufe8g1SAcR6}Ca!2Yg;K^r-inFL&U8Oldm3kHrRc$|TbjLB&U5->%POQ4Si`HIRRH*mOvm{7 zy}~2oX%Cn}Tuf=-?+KU3?s5dXg1wZx#q?=f=?f9%cr1vRYv43Sbo-Bws$)$h&e;*3 zSQ%*b`w6h{Hs;15d4UaJkzh2;r;uTD8Cujv#^#%s)vQaD@Q!m?!J7-i;vy7fDE7E? z$}bIOW`$L8rVALV>pULVv+vr^n|RA0A5D|A)a1@`OBQfWCXWu90v6IZe0}<7Fqh+TT>L?8V!>8?&AG!h6Z5?Yju<4h z)Zn&OT)|`EW&h;{NQYn5bs||+dQi+m@~nIX^%K>s?!NMB(M~H*S9B{rq8Sevmes3A z_RRy@@xpdeQU91PRe6R0GZ%Yh-|UX`rr=A=xQ}>D)dtTd))I!3B4!)5Z_}DbwN94) zok|xB$^Nc1$NT^O|CPEo6eC8W0z{0N$7rCx?as=j94z@TZN)1*{Ik;+jI^jnt;SjV zd{|Vir4t$5wu0kmOh6O^DD_;kMbq8}AX zQHBCy1CGz^GtOmsjCU+`B?W_*_a9t3m!Eh15kv6WM10raQMSRX&k!c0*Yvlu8eF(y zG5bqNt?p%~+NcMNElQBZR0_)+@|AH8PVL!h!G?uJrY{>Ud;7^2-1K0PS!* z9v{$FL_jygk~5qs?sXa{O*JtmV!J)MD{fVWj9@DMwKP0L4MfuV7h{N0-MV@^L6@LX z!SQ3Sy7z%%nvPES8Ek1iA&H9*UHjQqy?ADFc3mt0zNL3)j2jM*qn4Q+M>=h*1%>2r zW=4gt&s^9{m3ZOVY2(Z<*)vDfusaHtf#5`U!6=0g*b>tLJ&^M{Ivqd>EoxpZrU%Q` zcKPWgTj;UahY(W{KGI>)BCA5zk)h+;)EpALRD%RtG(|%&u4+a(iY7sr@SV`tJcp+#epa4pmew&CMmWtiJMAFW{7ubkRN%*|*?wlAKA??&JWrMp=KKB6Gf_YK~C^$oUK~$X} z$VlYzH_Rb-d7CR9^x08_Ngn^xE{Jz5o#dEaVc9__aNWcQoED)I*iv8sQW#rb!FGUt z20M2GpQPaii$1`_^C#Ip5)ceT83ou>Br-_7frfW$bN1F)c1oW}Fo)297?yC6p)&_E zLg73$)@KdRxWk4SSZ4o>pR*6HzHDz89_kxBey&n*ECMkMqVP2rrM`Gf{g?!aWU1?s zX@3xuuL$E(Rv&}&`fJuR><*0Mk%gjt8aW8cmeH$hyPZ1%u7XZ%+o?{|hp!V!emjA% zA9;2!3Y_Cs_&nrkdK*3F55V80m4xShI;D5jlas;$;b}VK1upv$a+0X%y1mW2u@Oz= z?41_s9~jBMoB_b-*{7I){lDh2H;JFF8({zRXD2iw?L^(7KsRovh2EGT0EeX(2_VgF znp7GAnA@d$Nr)8~Atl|wJUN#kLGO7S!LT(5>LF<54h$A%g}PjyttH3fXL|2uin;%X zf^ZP0m76h9qgF6|Sy@+WAkYRG6kqHH6fm}RxZkcvnLC8tk+y($aauvd=bXq}(iHS( znYhRnvs4Eunzjs~vhWR=gD;zY%5EiYcN zmjq_ak%k;F!~}I(Wm-#c5p7(OUa_l!31k&wd6jJD_4yrG(5d1Z=aQP#MGJj5rGk&+ zyVj zbyh^~AZv}UZ!MQf4wP}GIv{y#fw?R`^{S7$*9 zG4tTtlh@!dl*VOI5TH3osWKCwQ+fP8x5ENTUC!*sB&}DKZsf<#u-kp~L;xONJy>N6L^kZ#TPbbjkrD(icX{u0`}P})EAw7L4H>M$cVpb-#; z5CQ{TzpEB%Y~{n)T1p^sW=HBW*iCMtGq?GTbVnH(gBRVY&x*wH$%rF|8ZPVPBwS{V;Eox>ChvCQzQZ575 zb=6Osr967G=&-$0!IRdBURmfKb?q*vYeuMWmeGxNVs1YhOFd6E->Xjz%P|Z7BNH%pcintcl|efhT2DV(22{)hSr=hn3OUo$70&6)eUmFXorBgk2N8<6x8g7n?5xQt zE$8gszW($~KZ)_UfCV!k+yST2YE5zp8!1)rbO9VHvDi=I5H#ZoV)I-0811M!J-VMI_(xlCG5YT$o|rqAQh@K7)70>&Dtc` z`%#75heXNPJq)8Q^Mler%xb#re?`1}G}-rxpsbhjo%Ojk!{8wuhP!%5ftMQxXCT>W z&HOoa*b2OM*Myu`XVl$cVw8_OKw!tO5Q{Ssm+dUW1@$W|%w3UPgssnA z3vpgx2P+z$qRqWSG_P&=QCye-lUiT=kw$rzcR%8fWYf)Exx#gR+?im3ZRc7*K?RuL z9mV|G6o$RXJeKK04GzSvU6tikcB^*b7d3<1TCFR`S%Q)GtbGD$5OV`rGE|heVj|F$ zp|(Zyky-pb7Pz-`wYMSW4y5_8E22wpRcwSE`TpTOq#1s4j~dL~gy zRZ5MMVgOA}v)>Jw@m}!&xmohs=&F}$Tmb=}5?jFmm%+&83&CGQN!oUVZG=H6i8|E3 z4{;OcRx?yP6rsWoA1*7u?`Yo{j*OY1u5s1nJrn|w#^d(4=N2(!ntsRG=XY3v`$wLw zBLcL=7~G_F1~v)T2X}NMdG3#HqsBlR@Cso3&htx>1%lqbiegYuH+-h+tQZqAf4>p>r_oTauNUlzf+JWW4a{UtAMusO8b&8{ z=acih*wmV{_XlVI@=-hKDjqGSf8N^$(gb+DRHC7df|pC;=Pkf5QN20ISqWPLTyGH| zuu-L+`}_+U=V>|lOW>iIl<5NFTV5616qSg>Cm}C0hXW#<6m4lQXKt!!Z_ELKH?WHP zI3~?T9zXaP#%e8l941r#xOc=FVkiluCh4cewqo{T%h4aYY=YXB4Z6<`Fd=B zMf2?71bRm~BFnBaLsDWKUDrih4p1w+q*HpfbB0Q!wiT&1oPA! zr{USdar_qmbGjfW=yP=hVRlNXB=I|r&2P(K7JYYF5hRvix2Z*+iJ{aGDt7ac=%ans zPMBhW5N6}Lc%HP45H3)kdhks!^`RYIS4-@-fhtHhO7Eg8{!8>kSD!|SGLP;ES*Le5 zTt>`uWzurLR+`lF z$lH}qobi9dx;$u;(2hvt%{yICgN6#>glwupBEIDS26db$7~d8=S+or6=t)yDS0 z?j;fLYJzr|(eFGWRI!HR7dy0#l(w#>l5us9{)UhpnnFb{VO0Gya1J`&V=; z)2VUP*W}7~Msibca*-IewgD|H(U&GvM;{pPsk$~l+qIH#Bh?)|B2gKy8xKtfA%YA% zg7vzc`kR(*hKy$8Zv@=Xdm{Ncm#E%Y%udZPHqA5uqAJq)+aZ&MHni~foR-nF+d6;nPg#E!$OUur<>DM&FE~Q)nwm-oXZJXIakL8{vc=cSXASl`JHU=6 zoRSJjiCcu0CG2%k!MKA@VQrPe(I&=+^ zP*JI_38^lSOO%Is6Gnc}4LpNJ8!$!-|L^p6b+IvFcn-**{7rDr#32Hg5s7eZ0%DVx zzeTZF8FU~KSEwbnuoB?_wfatWY&4ovu5s6eu|`g~`jl~7TbX$h?r6Da7R;8GabsUq z2rcw2dj2CPZZQVL>L|>>vL@yQvcjw#N&~_@EF&biCU@h~NvbpAl1WFf=~Ixqom>v# z!Axe6Le?}|W3tQdG93*j05qP=7MDN8=j{;m8|6}Yb(-f>#9Ec1$P3P%pyow%<4 z4!FzE6${Bwael8Kt!K-IgCqxH`$p@ldHAP;yB1S!HDa37Qv4$WikM^c8(!t4%&_)GeK9eT`lot+)|RB-O>ViA7faI_(G8!08>KGyIFPVpc>XJ({u` zWCb-w$d1tgCMbUQ%~Iaj_@9XI&H;WYcm70@gxdRfq#kA(1!9v{fQWwr!pH3>Ldsts zOAI}xzu2|ESe}*Jq1ivmGrnYJXu{a2S?CqV=7ZACji-nEANKhH%I?}Q0u!!V4P<78k2%!=%e>WLT=Diu@L^(tO ztmb!URpUwRdpv*C=DKEZ;FV}Bm|WdO=$dSQ|Fv=0<>PMkbVtkzesVa?{X6U5=;aa z0k!0z41%GLOqb)%`ugHdvDI^OE)oh~oy}a_kc5O@JxiAV|CJQuj1&@3Ji)Xmcj}`d zY<6c)9Q#m|W@`Q^(5pC!u_M_ue7rX`{MN>Sts4DBM5NK>+aV~b}GN*)-= zTfZI%A2T^(wpc3i6eh1`#nbn`m;1&ksY#iie#cuVF6 zpsX;==5q<9B*n8?%GW)Y_0!~3EOUHGRttr%1RfmV`8OI3tNZc)Nsz@9q!d4y0LUr{ z{;edR4qd|5lUAs;E)CW^59JqZG*+Y8k9+CZXR8|oc^;@uc>e!5G{VDCC|SOFr5@or znv8)?sJv45Fso2ZvSquR)aNVNpg>3T{S|ixNFc+L{?z;49N3nVlOx-s%RsAijg4K< zSYQnTl+n{uY5(O6tLR(EB0Ke;NE>Y@;hWEdTx@N;Xb)!PP$^4X-V{V!B((z+xypq( zY{qoWAg03f0>niQZeOC<3$%xlE@AzhI2fz=dOI?-xg3D|(@B56xf*$B0=yX5>!!-> z()0$u>n2tAxepj+38RTKC~1Gz>8r5^9g-KU;Qhyady|u`d}apag;(SXT9Ba@@{IoPnCwxwG3rbM17)dwv2$ zI8589HsWc_q-$|%mj%`e+bdhnd6vjO@_bv`n*?9hf9;0ncbVRL0<9d@{8)!nEv{@u zvPk{p#k#;8&W%A-R(=4tQSL2t!WiEhuF`pO$oM*s@ZbXfRYm{ z8BM{rSk_n+)IpA_PE$YcozRW6XjR7)r0U-ALSkRc%@ZPL2w+te2-o>@`|Jcc8>VFpMSMe$)Us_xb73vh?mFNHG$qxU?r%N}nZnQU9bu!T8Xj zrJZz@rkJQI3?$Xa$wHGmWmYJo0A$v_D3B%gsCl7KY4Y5)qm_mi(i;Q1o!=nx$3gtC za8dx|5l=wGWNKEQ*HMXRf$x#LJVxd7*11`^DK&j4Ok}wen{Z8jM3tr%Bm_Q^yaVpc zfEl)60c#86Ip7R$ELD6w4?&)kJ3Z!O2%518A{P`cdoO;F#6pGHk$JUv$~|s z^-{8R8a#o2DUc5$cn|mZ_7b+FJTK;Q08O9c322lN<8l+E8kePo&cif8^c|R&buHXV zp>V=Z*cma{G*^W2gzh4~ieLy8?HLMBlbIWY)G2RXqUFjbxOcGM%D0`97`{4!g zJJqAh@Rs9Yxn{k6c}Jx~DwAs&@3@y24Z|??jU8sZ3Y)O{1jBOn&1#!l^vUF3>Qs*y zpX)eFa&ruJ83auL7LG19bWG-_TRsRTW!~ISP1_-YrZ&plSVk%_V}Kx^kWCzn-Lhf> zA*Th!@`~aIKu{Q&tvEtjvE45le6UTPe~f;L@R5=u=UErrxs2nXO@g=|BX$6IJM@!_ zk{c*f&QD7pKw&Oc${mexv90zm7Hu?qXWO8&cFTGvUSY?^oeH?%3ncWUgQ*{5J{Y-p zdK17?1lAH(uI2FONRCfosUNZ_-7I<+?<@{m)e=2I^|oIGw)G&Ab)k|-`C%UQ#dSgi z5bxN=QmA9&^duY)OVIziMB_J%iqR3&MHk!tnASi?&y6kc87x4!#=O*bzH_yewD;lkRo|&Ob`L*C==}U zH-LIx^F`~azjhYY&f>Z;?_iZc|it^jW2H z6I3$u^5u{0E;N)gEu#}Cs4jz2rz#@|Ts>T!4$AK2xHlhIDz*QOpN)P)lk52$Fl~V| z9cevBIK8mz^HY;@VNz&2MCmetyKA5rvDlsJLBD&Ykbz@|mt<_t_`^7pLENW4v;zcg z)cUpwW*JtG)&Xvl^w$Gvpf!KU}!yxviL=o3#&?4y9*U-?+gV^!9nq+2fmW%p&=UT|Cnl(Y08;K>tDjf%Q-1lQPCrrw5ROJV)1w?&pl5HoCG@Pc=s!70`1b|i2G_>e6C z`A!gaAR1=aecp?J*bL(@!%wv-+(AW!UT4k4ZoExOTTe@By}`;Zzd4A$?q~eJr2MG# zi62qO0@w5%sO$0P*7o(q`ILIe|E?QhMW%efdem>L;05h!HLNBJ^Lv@%P(>YN%in>O^ckI;^Y@g^b{LJ&03 zR^EN@wo>tRBCgUUR{&7kWdNGZ_-JG)nGMfG@NAt;lKsIF2#6g%1>P{}U_YA*`-|Wm z?CLMchWDl&>?ip2C>K@qEerG`7A{)Ff``3WlV4LuI4zGT)3x_EcCxC(IXJFbl~=on2;Fvx_7D z4}rr=&$*^uGLd9Qqjeb20L7D{JJG_Mr8VaEVDwy$#+_X$1_*<+@oP8M2}EkS6zLOH zPH&=imutpLg6fV?{3b-Gx7;jg+Ie~Lpxcu z?*L(Agw-Ro}NaF8NK)B1#N%B25?|5NI^!T^+>xdL9HFjK*fXVr$d`__|6;= zfIpfs7IsmZcQi;I7*+@c+#SkIZqRB;8gJu?(ibY?mW$>F_y=))FFf)B2MWzOnr6!c z3N;f`&3Eh&SryS2jaU}5EVZZvK-F^QgQv0Qjv6%6Wx@2a#+k& zVRYIHM-1HU>LzLq>UOfgk5!xt5iDAZ#jQKrLK$DJI7@%qX>yH$bnz!-0n;1S*rTD9s3MZ$T$W7OSfRPJV9jXP671Ojbu7aW zVm;+hINQmz9vyJz2>4>EMD;iQf?(UwyIc1B;Q@_{Z}~>M-fbY1o5>S;=!_MYFg0-; zqLp_^vrx>Y%2%%7rK5jd!*yWtBiZ3bEi5(fMeU{g$%JbNNe`&w{ zcli!4T#T9=eHW=}af6ki07GCUJV17AO484+uWcAQ;!YCS7)6ck5dvql5!qs?s&iA7 z3p8_EHHzE|Cg$y-;jp^KTFZfPom8XH%y!e~Z1`PU zUb+Z1OvCsCv1JS39fa+G_E_rRAUr`Z#@h$-KvB@D zmEd~=k;^gz{i1D-%e_K~n~E9%5`9pSg`dN9EQOc$n`YUxNw7ME(2Q>2VeC=ATr7@U z=+Ch+$%Xd0kUp96#<2f^!Es&CbnSXs=nLWJ&IVTj#MguM1?V1B*!l|Vb_U0K9O0H? z7=VQa2t)L|>-?3Mvu3^hmPjTL{=W>}kh@p72Nsw}6Q9a1YY*sB7_bw+VMR32mX>tA zzu!l302Rz1$=1^TEKUjhEjkE$!3-EQbFQCSa1P^-*h(cDI&uh?g6`_W+ zPa9ms@mmw;9?QMZb_0!IFH&F7?ao=7kX#OG&+%=j}5ilx@Me85udmo^a7#8 zd2P|0lz0O<$i4!_dl7V;29vWGi@6A0Lf3o%3xFASwuti0|4cJgsE=b2CNx$BU}@sA z*JUt9!r6h+EwF8|KsQk7ko2oig{09_b9>%c%|LRv<(eaONp=KQ9RlXXvGC*V@c}kB0VUxyACg=U%OT{Il z4&W|*v;V*uIrFKPUd*XaHSdUhrgD>87k7j-rs)*&?x08F%lTB;oX=`%p`@@ORY~Yh|M8*yra%1#xB0Jv(CtQ43X{zIC zZx5p@9oD=>AlP>@wR|m_Br9GE`=po55=k^!2K8|l1-3qMjwsx@NE>W&M3muYRd&Al zD;oeiK*Ya76qfRdR=CR4lJ8u@`7M$Gm1gT4eG?u2Vk~YBY|g-Ua*8BV%d*LFNJ0Gph zn3?*8VNC1HmZmBLsDMEF`KL-#wVN&h;?vMsGgp8Aq4-dj{d$)Ug^9x>12p zgu45qsB`UFrqkHN5HRikYEqsSxR zY{v);^hHALtQqnJ{D4-d$#!@aK4JNf%fQu(pX^Fi)ATPPQg zf&3ZB^|@LT?}LN~OjW+)jNKr7_z#_~r#Fn%@<${_S9u-A8ge9MnXt~$lM-5~&#lPfAb>iSz%=b0YQY~Fx z9cC5R>7ACDW~~L3vV(KR9VCo6Mzd+XKt#O?iEczErvyj2MH8tJe$J=yUOxB7+F-MV@%vE%jVP+cO&fnocwa1gOM z`VltWG+EB+i96ysxt1<8h{AslcG9a{BiXchj{y*Pwb82X0Q8(i!aPdW9=$78Je;wVK(RP5!VO7=lNwYT`JG2tH~)K^gn;xMSD?XXyV$zJpJc3! zy_Nl#jF!=KK$RdF@zDq#@su+=2*&oHwo$FgvV};i%bhX(wC^bqcFw z>WT~8co;G!E} z$}jei9U=G;+`*RZu&wUy2xR-UpdMA(jWC|~Fh{VCNcr5}0kh0jQ#@NP9G)BhO1i)xUe^;~WoR8^$k^@tuM_m1S}|Gk z1?=^@>7r`ABm_JIXJn}ks&4rqH?udRewOXD9_I9lu?hgs|22v)^d%FX{N&tBC0Ypv zb-a^GokG#fGJ>^c=_A)=G1b9LA82nKzA7m*PHALs4#DetcEGV;^>pw+vusmz;T~L~ zw0QlB5_2uH#Fht!lKViO73N}GS%{Uuop?l(@0J~4;WKje)d>wc{?$MeKg*fOKhrj< zF1BtvE8fgjbJT5+_Q}`Nko9t8z?1+tm+mvP*jdd=M&nWprC1bf#UN!$YUZ^lAJkZ* zhEslSemzM5$j;jqB0~u)T8$WX0xby5m}MoSDOcXMc}lA%ZJq*K3$i?guh1H0DN};% z_Ce!91WT$OtXnwqUPk%sTK=EjMx~{s83N}L9&k<7jePi}JToS|o$YsBl0-rz!x=6z z<8declfE_~r;y=^xdbXm{p5IJ$Uwq??{%yRwL!&ol=XQCUR+Wi^^Ru%K}q8SzZw9=@O5+q%Q^^E%pNC^ugFrN;z;&rB@ zLxV3tk#!;H2=g6yJ1Z?8@^k;L9LW&%j3)vMRWOU_mL|j-y~vjEl4vURFyTNK_7^#4 z&-$ci>)m)P@~OEioy&A|Z4105R&K39g|; zHw8H93r)x{wsbM5(X-frZONpQwXmxL z-JvN=NK4vYV7!|~rj!=&)qGQaYIkCs<&7JUnMxNv)wP(+-&{Bf_lm-cAt>#^&qAw$ zS5+e4RZEaFN-HNn{K(C>r&AcSaGzOK3&~~0X zfhwbyWj~?S4r*kM*DZKE>cC1peMy!yDw?K%@HUZculCmYSt(&pC-;_);8Ynw2uSA{ z`LHz#q6TIVJ`TQ7YJ-Cz5=y~@6*baqrR-Z%;kk4%UThl<0R{;%Sp|z=2kwQN#J)3+yH;LE<>q(CYaLItdFGhv4LiIL2kvv zj8>ujamz>DwfuMnCWN({t}{~jf2~C+X$95~y$V&C=g_Ahn<@jw0f9H_kb;V&QLfy2 z)cc4QL-btwftn(S0?^?W?}}s@_?kxAJ|fYG3PQMt2%}@O2Nl^fJ~GTz`BF2mm;jFS z#7kQ&Q)rOeWP+7Fo&Mw}6yJW-yP*cGs#+bSg0mV&6N?(USe4w}+jWnw43j?KA*K;8 zsx|hC)+nwgUsMk>DEK}rStzE_*e&ku2jNVQ-9Daa zg*Jpuj^};sL~>}NFT!KGrV^*U5qBqB*v}{wc?^)yJ>~0DfX{}|92!N-aP$ijp;7yY z_KPE#(k%ke#Q5%4?0cAu)bA(5ILKsZ%VED77;34a;N9`H`7A8ECq^~@ z3FAYXnb3_GIGI8;zGFUISip(ZX|$eNiqYu0Cd*=tsfQjICyKj7|7XS~gI? zsI$F$iZ!dKta9bl7Fp*&p$b86I$B|L_xrNlo-vmPpETYj?!MAs_Biyfu-C;mO%uo$ zmdtx!-LdTlS&jD2GTtU4G+zsB5eY0hQ~s;!TA(pJDc~wTCz$EEQeK*#g?6&`QDjkC z+eX!pHqRJb<>i+9QP&k%gIH?*Ircqi!zWu`?ETQsl5?gs?)S@Jltgc#4!G-QbY8;I zz${Bt5~Q9c9!2D{4k`#VgG-?<431n|LE?R!c{)l;-{;Hi*fz69gyNDc%P)e-tpsp=#I^)pFHmE;?(r2dJ6F;_=nM=aP&ir9b1;&zn z_*duaW+gdh{r#=8uSurJxj^Rf0$1}BgR6Pvz950X@VYxpyuF$oBDAO`Ib&vg*zkz9 z4q1quYlo4h#0g!)L9qE zO}R_KF7XccjmhuXvd($zV;K%aCv7ZJwqqgg9vM+x@G}&4TRRzK;p)nZ{)nGBds&ZN zyxuJpM@e@G*{*Yu`hUd2c!gD>k77T#6kVFGo|9RfVL~ZkPJs}eUl@;ZRf^BM5rhlW z0_q6)m;+!HNUlO%CwozBs5_2HXM20BkuN;h!g8~GPGV5}Nr3%YN$Sy7A_;~Sr5gK8 zTY{_OwuV|?*V)9D3Ishs?q1~X_?%2!DecW!f7VXBFg>NXWyYSfkVA7Usx_XSzX|p? z$~x~tWo*CJU~s&n zl0PPmN1`=l!tqpzCisQ)39-Qbc2va31oBf(@mRH&A*r9)Doy_Vd|H@J#OHIXJh*S{tMCwfZ$9RQ+mh=%itZvbtc&^Ax4nX5nd7Tv?Le)r?5m! zI1DV+J{dceOEh}>^JHRICiCe*6}!-I8@t?9+&K6UuDN3H=$(gU(MBzt*uLL`dj&ht zCkCh3huZE^jG)H>Tp?YXkIajIX)gfoM9giBF+3>r5QvC!Wxp4JnZ6hQj<6%l(5W?{ zDpj*`aUHqyC|9Xy#_Vwo6-F)FbpM(!`Hg-qYWblSkNF0P(xAQ1>hDtUDzP7|T!)^JX zDAYK;M1S{UzL#CC+s#X~tQ8an@O@1OId?)pbJ&heJ%^1((qY$sicY$$1P5 z{Ax4|DaT?AHPDbt?`drx5*DFS(cnBfbRq*s8@4zs=9+}CFqSpsE^oTj6Tp3H3&e)& zQ;|vD$?6mu9?+H_)qn+$jfD$N9?L zjOjdpaglW@0E>ZKCM(O8X{CE$0$SYvFUWV_>2lQ(Bv*6`PMADb?F&c>&E+YpXJMu+ zP)qmzQzpK&%CLkMsAgTfrH~~JU%auNzCYYTLuv8ZxB$)2FjlxkoKYZ(m`4PKtp{d~ zm)F2}Le|<(3Ho;3Ye8B4kdT0x#HWhBJ>HUs@aoG%NQfES>RvN5H*oSOThd3@mofQp zaliU?g9B0#w0{w2B(>tw2^~?Ds#+o%ISjXo^8dG9DT7$Q$a{Mk#-Vz+qoZsIaLGT}JQ zntbPqDAd)vvG8Q?W2(RzXXVap55+#RNq1XKOS{*rxlQ!J z0*dfepMISVNGyyA9!m3*XGvjE9Y*M(D7CKW+Z)q9a8>a zU7m3zL-{`q?0GP6 zH(~NRwGq}hz&3d72#y6z-9rG;0S`?}JJV|13TRw|lY}?mFOhza{Ts{Ip9Z@L0~u8B zN7zO(Xf~p^r(Acbi}yDn`z|LmB51ae@{;>x(@5#F0h*Qmw^i=+g++vYd3az+7rdiL zaKQ$69D{NING7!u!Pw0unq8N>Rt#}w%33b+ zZRw(Prr}UotYcRx#*5VB_Yq+?!AqElSRBIv3un>>bAP`*bqEt_>|7cdb_voX2CLox z?YIz=rs8%9jO!Fh*8zO#>(aWdqq}x=^vLkyTT`5qOhK17EDzX*3cj-M&~zTWtwG9M z`i_Oc@v*7l6(=P+CvTsYNYk#E*P03Abp7}vGEWP#+(tgY z0&UT&*3B&j1?SF)7N9G>CvoCIo$vZ4wrg`|G;zETtm!5`K? z^K7Y0iRdJF7{NtfQOcI0o!k7ZiW3_a;%Zf^@$9)v^hBzH5uxE4Mla`$j*o*R>B>tm zH~*%m(u*J7y1_H&B*alCguqbmDqGcapQOIc?`>F}$6-(X#G7IQQx;pLxrt>J<2>la zqaX+pmAOkmVAF_3hqi`KSEdvLHkO)zTLQZhBO}lgw`tNr589x}tPPL?5t4%6i77;& znbL7CoP~p@GkLfeb32G#HJwpcq64fdJEACtNZ@KphJ-<@<|0&ubu^m<(r`o97A2Vn zM%;0qJkC#bPR7z`evB}7mpN2(cB_(Ky&i-N3UubjndHM|chnb5QwX}h=bYr&0!K>U z8x%RElcit#Lpnu7)J2>gwjD#xz(OF6t}ktG6Dlrvw$0Gc^x!co*a9igVRjgtRSw|5 zyVa4&(mEkS&ZlW3iTIVB{7j`ph{+{A_Z~ibWI~l559rAQGyG)Gafye9;Ncwr|wLbGhefXID4BQ zbC>>$u>tfXvDs?oZ+-L@cLjrWXma+^^=)DG@MyCU{C(}bG4jT2O)YEFW-M`ZFt;U< zeV_2+T%q=_Mt#p)6E&Eqo7Sn$jHW?`*N2n=A#hsm5HVqb>aKE3t-}Trnl01JC6v6B zx>VxQ{bsu2h(g1sWe{XX-IO1ipu-}`D;+%Xl*=>*%p@L^5cS+p|Ip)>p0{TDDv!=X z5DnO2DqegdeTUt&5@6K+b^ZJO#W@B$nR;1-uihx`&ecko==Or{vaXIkHX-UlQa=~pe{dKGk zoE%Vh$YLo&Ri2}BxlgM#D6SYRfF;;j0XMj>p6su9BK}Cv-b~$efB&{`Hs)OxS}>x< zHTu`Lly(%>E!#{>vY>tC0_t6~7w|ro81@SD2v>PG?St`RfMl;Wu#_HYWWANK)8+xF zWnOwZeJU_mNf2$Qa$=s4(a4|i2|D{a@#PNqW>E41Scv~8K^MHQOCYid2ylRCFk=Yi z8~84J(*eU=fI?ca!%D@xfr((m{!$SnfB+UbH?cJ^CJuEU%YWl(H5wT|xvzRuco3K^ zAZY$Wjm%}Q9eAEDj?>R{hY46#oGs!HiEbt2Z_uL7i?tLt!7^gRF*5lkn^Ds)93pn= zCw8d6<~OidgKt$D7ADtihAeTF#nlx><49+A%UZ4C9`aziV$r#y#mX^R->40UP&U1} zn@%A&i_WGkyamICEUSQMvPSePquhQXI=8|3kmO%s9xi@==l}PQW-M`iMkF`TbkZ#Y)4bc;y0^f}-J*I^2?YSmFJ-6j{+NNAM>Vn4@6 zzJrotHa5P>=TgGn$4w7f#+L52!iF^Y8&xg|l54CjZNBP)YB^-_ev?PD$C?j}h>XSp zFvT$hxpKJ|epP^ra}*gmKD6{3+mX?iGgg3Mv+&6w{uH-*%%x@uc-H_4RfTCteH}ys zOD^*z)*gA^JS5ALNCmu62{PaVNrcQ=zFjMU)xcD;`XwBim$!h<8JgYyp9YERv}@xq;eOvhptzDq;%tXp_r4&oJaf zGPJxv%*@U)yztT~MHKHri2Ea>RK0=NRU+jD_O^dR>FUvF2EH2eG?Fh4a4TO$tStS3 zsoIl>XYdF4NPZ*}NhGjLP;fPe26GA6r-)1({JGtIYqeTXXXN%!kvS}-PV1M=f_Q#} z;XYVu-dA{{6F-XRk|&T^gR zZ|HVQ8(omYcW9(~!OSr-6?195h2lUPia=P=3G}6|PeAvC5L;@WGfT_^Xh~x*EX>ZX zGM#z+iykj}nPbD3=YX+kcP$4SBg6x~{ACQ=qE=wRHo2$Ue=>NG_zjLLFFAZf95Vr7 zt^mY5m8^aC)7Q<*W!>N}G8bVaFNj&sMTono3~Cz)pIDUR&E;*lFTfZ)g z&od@9q7KQ)fVVXs$-~#`fu?C4ib-~o^|)(TuC+$uU#rDreKeF;MoNL;O?>Er;L#?< z<6JNLX1K`5Q!+ckpOySab?9)c;pT4@9On+ENyW zw_gnAuzqu7ym@-}GQ~{tCFk!V%eXMhHi3qOceD#22Mtpf;U-V{r#?-bkBgv*MY=q% z!L7u#0It~IuK+?cc__Y})icXlyikaKxDWyGZcc!{-4&Xz9OwTlWNmOv>{O8jweL8B@QJUIeZliHa*g?9C-% zrf`S|yaoG&a)id3^FE!Y`xIGh8qnc1RMe<^^RwpNUYC=fA#d4Fh@hDAA+WC$tB%kW zGgO5Isl+Q6z#lmkllWFswzzBy6AG?j4{8MsTMzBoRI(3VOcaAIuSa4=y5-dIHyHG; zoH9T^MFP4FCeIFh5@b?hhkk4BRpPTMWVCx*OSow|s|e@*BHtH4BsN-9a#jZ#mDXaT z-NSZ(2&)y)b(FVtm$BPCRkKvldw1h^ePb2{*8CyRoy2NpUv789w0|Y^S-NcDPK_a{ zXptV(!Da%*%XGUCxVF7eT2&_GZPn9cNLfKvBfEAJBSWCAL66>-?ZwKVYYTxl31qAq zL-wXpK*Q(5=GQS;Wp4--0I9Plxp0{ZhTUJq7sIv^A6kwhL$V9zwB`1+!!{O{uv9_| zc(3p@5zpWmyq`1n8C+^y6$uWv_X-sZH;zB)p}UPGg6+3Wm-8Z^(g^)6$Z}84oNU?E zJ9u>!b^=aYg>aB*c0=GXpB5e2nQ5FE7Q*}Vf-x~ZIgf~1EqxFMy{1i34v6Z9a(Nod z;5luB{SOd~crq26OR=%~C&pd2Iej6utKA3V#u{V)l@JQ!@v0&+rL6t$i0?kKH3nf@ zxe~+Xj(GSWp)k>D@U z4M8Zn+>NGF%q<9C%Ns$R` zy$czG@VQf{4JT~Uh3oPI;P)t-heIved~Isdo57)1FG$QzL#3Ncpx1u5BgzKpVJJkLY6 zEd18HGW7_nXWv4aY@W7M76Vyv5XXW5;e9S6JH=s#+p!2Gp<816Wdjnu3op|g#PdNd zNv_JcZ&n{rv_F!LcDOs;y^gUTiBOvyE2K*&BOJ2OrX6vg(IQu?>qC6tgAq}PNV;6s zza6f-f9B%FGP_PtUa-nsxFxnTd=`9gvf8K!UOKebZVdq99bz@Wd#8_hesk5({b7FT+e6`s9y2U(JJ+LW`8E!H}M;^4bB=u2hlQnV}|l<#bqXafLSE- zLd$Y7@G{IisBJywA>G^rNQb`&5m6|eWZnfp3?>3=_mGX%ygK=2ESq`RGa8Rzz{Utl zw$^|E2mo516-{Rre&CQcmFoHmD(0asXq^|}>;Z8iBz2o2#AOu+ubg`0jE!C=hS*Wt z{2bR7TV){s>G4|3kSR7~yB{2L@7pqCyeMkEO^Ed?xQ?wZ74$%YI}(=un3rm~?2un1 z^e&%Gd9@lt*g)yrD6`lnywjokfB*sY_q}NO(4#O1(SE=$-Q>IKHZi3-72e45R}5ITs8ag?ntO^<#u$6 zUhhz^T~(Ghwu$Ur+Z?Jw(OqdcHyUfM0tlG|sYvxQ6}DOF?M8?iX+o@njDH($mGJSN zI3k^1WLi)j4m_h3ISQRd@-ZV8tJ6Q+>>Ta$uxc*BrUN5j<>TtFBGtV6=Xn<|EFKM4 z?|Iw4r}=pr>ywK|{*+}`@i9M>v%xC>$n+^>e}Q1h-k1Tztz^{#h45&C_Pov2Xs|N~ z(nYKgfG>vK7XwYm!+!mvev3n;ehKxuCECI=!Itj39b;A$lCCbS%Wu z6jH+EtKnvS@V{PCBIez(rQndn*fl0lgU>^@ikelad4?<8qDy;ge(6K(Z5t*@)&%Dm zgW{Uiq$HQUvQgcAM~8QVT!WkSB9_>F^Axdcgo5G5C<8=qDFfiE46cME`qQ;`&O5yz zp^0xrV4xjudLbRob)s7JX~;%iYAr3Zu*-yBu?w@{n~IS`hC1VrBM^Z{pe@KOqe0Yq zQ^lts+E_aJeTjzm#}w?k*`emg1;5 zscIwWx|rBB;q|$$6&nmPz#D z^iR^o`|pI3$1%!Ty}6$v#JQJ_9xd--(mj6V(HJN~ASMjA0Du6hpdG=H1-+a}y~_YA z6F5pDepu*;{F0R!6--R2E&{p7n4$Q*w}TK2b&IkV+S{yRyBxdJ_RG>Q5}zs1YeEUz z*>eVBj|+yzI$s5!zwzqlieEOY!OhaYCQet&L|!y;sI0z&3c-kS(-`o>^| z2n)-CrAtPdWXoT*yZ0HWi6LryLV*7D#0`ksx+g-c_({ZfTxGxKLcVv@ar>7n4XwO> zy|8R-hCuIoV-s6A8lKoCNe#A~g45`&4S5vq-u*A3h9!V&l7OdJ5mLP% zfM&!bbX-o$pz65507{8xe`UQ49l1aUIhl)oAZ}0@3hztPrfpx6-|Fj;4dDAAJ3@7t zdA)QDm0^j3`Wh@JT+`Cb9A)RjP1ze*j*-$XoSUto zvM2#d(|A0J)(@p0fc<*~A?-Au69+hrEa3k5Y8#ZV!l%3>w{(& z-G!_((aeW}=D+|rV>urVFgYq4mwxe9l_OiSa6;ts52Qlbs15zXQE6y~|u_ zLwL+VVt`UU(b{DAgG+aGbUsbRl?wUs4ChC$E3EMq+k{!+l(iQs2tUYfiTMIaPc3eM z-S>Dy$+^qxMV&Gbw)XWWU@=Sij((@|sM$+PEYVI{D%!quGm!wg(1+@!$-yIybEn-C zC0oeTvsF+yx3S6e>j(625gdSLv@%6LmZ*Lzy$O5=T@~#Bp-Y#u>D0 zg74t`Nar=!2-yNG_Y}oj9MKn}YYNMUg)I9_LyB&Zs5P*HH~|9aA_?Pj#HMwqWYTmj zkS^WBt5(a%1_1cIfe|(UW99D#AVjs^t4dUc??O>iu^$oY7vB z#!m(N%G8<7GXwCWKC`z-PQ=XVRRhHhqcVv( z4N4gIcQNu?V#H0bL!)OOTIP2Hw||;R2=2W&HQum0J?kTyg6w7RlM-&whsZvQ4e$vOJ}S)Lu0*TZViqqSbG=qFur1 z1g`-IX)eefk3Z~yidS9#vM6QgzMa9re43$0E%#LgR zK_5yDGZUboY$aN^i*A<7api^Ys72f3TGSNOMN ziv24kPbk8agO89Mmv?ALNcr&>t&fvGaI@8Iukkw9S);T8@+QAL6Y1%YG?rU?AMj5r zLJcWvVbuiQQUcx9VvEpai>@;c1qSbX36sBvFf1gNG2el)+vhEu7>c_a0}`ytb#Iar zNLs_ObV;73oI^tk$QY0+B_Ys%L2?um1aG2n@8sl;%3y7=A@Q3FSgN21v#yfN8yq86 zkTA`nHPl4q2W}oiei)sky2KpHGzy+2QR}y|h2TIC17#b0h+s19Bj+6K5q6Vt7n1}9 z?J0=^>V!Bv7pmW}yOh+k67vi@A{MNx=2*{k9~fXe6~vFrlY03l4E2AP+Y!A=rlu$t z^&zL$gd})PhVx&^0DBX$?reW>Tu*++tg+io>k~^Z)J!K#W+M{TlZb2#@f6`+fpBZt zNq9ycY%QBcp?)-1Rqt8NoJ3Q^)fIRDw=*1ln5T1MZ0pjwf~Ig++SvpKQN=J9tG$dT z#=E3*Q*Tw}`Y=?4!*J6M!kSYbSWQV_=8G}&(QFxxoMro zN_AMu3k?usxY`4hKcF`ehlG&41_UF6{CeZ=z&xH?TzllW))<tRDaVy<)Yw+WW$w=T>etoK-Ao22ZSn0&)%=vCrVkp{5o zSVJ=BfZ4cuVw+W!m?=;BuQXMBXJ-FPX;KdUS^-(b)O(C5WyU7v_)XqneWF0^2!a=K zlgMUIuV;~g)p5h}xmd0o4GG}8%Au|u)E6Jw`4FSE?9{8VxwyQqbHmRLgV>0FK+GB- z_{}NJ%GETwX-G%w6h#Ca3$yva=auxkpxR#SXdE3cOP~iirLnK>yn0*0HyD7-{!9uP z&Z1Z2=ykc*l1++Uz#Qu^-pJ1ECSGD%o%2wDE24okD>_44hK{Ps)ZNml>50DNLGD-X zf$*|a6HW!XEsI=ArSGK_-cMB&D%s;Ws1-SNDN@xv5+ zZ=vffrJM{yEaDYl4scbCg$hv#+J|4>kV<|r4OIFbwKGkIuSutC@#OeR&jj7KBg~0YQ6rhqYZ#4$!PE+OhuaIXZyuG2>Q%%%m1;Nq;iOxvv_Q@a&Nd_kfhEx+TDQsppnxHheDO#Gbdy7!$4l1YpDB*w%llf#f zX4tSM!)ZQF^Cf21e6OUt6j^B_#F?mgm@-RQQG@Dq$;Dj}nuOs61trhWyg1`ffL5Hr zjexx4NR1duW`=+)qP;qL{s?7cdrJCUV|w!DS+jI&Y?1NiN_epI&1xodw1uOBN{*vs zOVyFw9)oe>k~xfM2h5mmwH z2fE(&zo)E$-i@4#9PqE-v&7>(s7LszLt9N>x=>nwlN$puF*3MYjsbX3mA1(=UGw_q zZ-&05M}6=TP`1q=OSh5}FyyI6|Ebg5tWx2<`o26Dz7u!ebso>t1UF++c^)oF4D2V031( zMAcyIPyI=t<94z92^kT()99n@4OdN=P-4xr@I!_RF8|st5R|N|m@#W2n=GwZA9^;KPT}WWrCFyQT$ZA( zeeaMlR@{2jZG*_T)~_)^iJ6VwcSBd#-x{!dgfu0&HD7bO&WAzz$)cg?Y7%e3UhO53 zDrK*Es=alu#0j)Zg_`h$LI8C*(>$RI{{21Y9d$s$FmU;3Tb{c{pr^#)lXqP}`oI-@ z`BC(#UD9}_iED9e|4r_7d;>}LT{~y66>qmEhM7o1I}^o|;K+8Z=-ZB;d)qSp(g8?k zD1t2uvES2CEtH-mh>TXx`3fCOb#vg<((x*gpk1dOu5rjm_0S(tf+_1-D$*iZYmI^p zK%`eDHLpUP8~1L#B5dFQu`;IK)b1_5wkhz4o?D8M5EJwQKopR!`U)7;u8*Yz*jT~f z$NbB2@dg7`4G1JmQC0H?~n3V`R5Zvz0u%Q>6v&YT3 zj0Tz57LjXg#g?#OE_(;R+=&x?%f zePtuyXY3h(Homf|GV zL2`XB1918NmzY6$;mg%-aE{5UJvePXpJ|KOhxkZJc|lsH*8 z$hV&98}Lr*c0=*_(pIGPOiNhE;AKlfhdwlD+e^T%?<~O0u*RfRUGjI#L-&30AwnL< z5CWhi=4Ko6A0YjNmzNj+!D2M4*uzGN{(7owNN`QuNirp;ToDhGgJ`=#e<9AoJT(rI zB%SvpsPI-mA&}|ki{^p>64wav%@`1Rn3^?rG;Tdmgujv%+XwY>*^kEr{VQY&B?z3q zc3VSHcq~4uQ01JR6b9kv$MkcfEo>U~Q^EpX!!{I1dfKL=EOi~TovlpEnyp9 z{q?ov8YyN3hCr)ywr|oN%)fg{_v^O&G;;)@tEH`i@oJYi;Sf*&rY@k|(=HsU0{$E% zIPmvaXVdH2RuyJkel=k_mt(vply?I>EFhreq=<&)BCQ1>C0xPlFL!gJ=tF#xmx`qn zD++U%HE0PKj3;5$k&D|kso2>sV|3LXClOI~Jm5piNhv?Qc=>}FJAlB(qR8g8>JNp)50vf=k-t}WIOc9~DDQM4~9 z@;HDmct6f+t!rmD7$qMDPIhWK)dsAE7bZ?48JP$!H5^w^*0)$=3t_Vc{}weD9wsdf z(id`-8IQVvboq<{u1p5p5RmM&6|b*KpojMF!!d3B?x$c;_Yu%AAdN`^5_Nj-vasW! zWBWh}71s$)lYYxKF?0(DG`b6aAJohBk&ZXLy+TP|b263~AdVuIF~E${$>mw=5$dg7 zL_i8KNekD=Pi9L`LuPaC$NF7h^aE7b2@1_c8=2aXY=tSeD|YvH@K_u!=Kr9e^_oeJ zptMXMX>mu6%`GxT4D}c8mV-*LUQO8H88t-HXVx>FXkH9TLshjLb4miMZ#Pu42R%~a zsw#zg(WLw5Y+$`i(IfgIQbE!w`jnKzQA%)>#1eQ+fDIyYG%HeUYd`*0rE?>x|8K~4; zoX)FI(Gaz00@51&f+)la@+X{)Lph0k682|CP##?B&#v1Jh{db5vb}euL zj-|fbYj9LHYp-TR^$rg>Kp|v?zG1=7@h&}JZnZG@IM7A^ZdVf!@6b1_GG%!@w}3$=deq~Mf9Pit@p_Poxo zahdtF>=@Vu%x$BF=g3?cXMhshXo>+r+v5k{xqXD%V(}qBjWX*cDKu!IAGIQZa{5Ku zlO|pwNIRnZ=gh=;%wcIo#uZra-UJF59D!i#rJnSV-0f$rJ~hVm#sp3TN@JN!kq`T` zQO`P8fTK)&Rxbp?kc`8vMLZl=%E{Q)3QDdK{fTq079!0TK&e;b=rUOx_uv(+3P< zcud$FV1Z;Dar8J_qQW@_mJOp!K<5}m&v!(*Y2=w#WWw-QNGYP4X;j)TI2?Xk2Cr(U zSWb~{>3&8r*8r5(RpKvSgaFofd^3TlL11&Hbl-?W>J^#6x3I=5i;f>a90XzL#w_-? zL){~#R}Q5#2Rihds$6KY;vkipe;pfYM1pfl+#Ac)693Q6YB9W9cFcpA@6zCO#O7Ve zHfd6w)jJ@@9NyDWbJQ!|p(=(+TF}y38xM7WllN@=%a|yEa>6;hLVGaHF4OJivw^S1 z3JvJe>_dy z-xN8Tyd65g6a%a>Fk)RwRM4aUC8onkzz5#kz77pQgoTS^Y`C1l6^8Q4l|O1#FV{?q z!eKX_*hFWOm{IsZwsD*%yh$VZ3NLGwdFS4RO((_@a!f>Tc}{(Ee-(tF_Bmul(H7Y|O- z#X>pI&C*Bccn*eBpNR?A<(&--G-XJ>Q8*07iMt{qsnFVJ=(2Lbv^G5PcJ zy1AVG>Ix|#Hy=Cxq zf%^=ss~}bp(*E@x5qvCer4o+9AwkhxTt}az9n1d1j5Ib@h;Qqn*bZN*2tz_Yl}zFQ zan+yD_THi)y!gP1l{d%PR)&pO+aiB;^h{ify6b%!=)xN@YarKu?Jx%%B=sB=CDeG~ zorFpmosF4C%7YgHWuW0#pCo;sc{L1Ce?zE#*w#AXKdBwaW7v-Z}R2j~7T*j%g;Iw-5af zIA+IT$@-Feq>W4!QIvB=6&vzfBBPG+Jd2nvp_=_9y<}#%Ff@4?Jo=)hz0B0$5QDa_KpO3QYk`8v5{wxu9Fy7d?{qvGgE1S-{^GtW&%}XPW zOz~{S*J9f&p4hSQK??u$!UcHrJ^`|QFgGB9pL^>n&U=*c61IQ^qFLGXLoainpvO#hLYf0WgidIt-N#Pv}S&k znhQ3kd*;c&aNXlT>}a$CWnRjHU8The`mzeipGg2^r`T-S)1`;`QER@YLhsXT zpC4jDcn6qamSfX7V00JxV*K z9xZ&!neR;!8J!cgbt(b~C?5xP~)olJx2b4(5&Z$-4v^Y z4}-^qo&#cM46CDWs?H;db&~;D0l0-Or#HDq;$hEtN==5;j`c_|O{AMztTkxGNSPdA ziDPsri-Zj$3l#gCbpl_a#>I$g5T`EU!AV(LUTxseZ&*og%?GuuU}h9VK={&{usON+ zRPGOIwD?*Na@CuodteZ~@gK|N{YttFSiBwp1=d}Q(=AsMVDF3OFvls_HGTJ^eF`x6 z13~i~kq(C2>{)d{z_m4}Hjd!T*QlS>j>9fNXYW{dIwzg`#NeY#I(=LVM?!1=KhBih z+6`y@)JS*&8J>xoxCs=e4PO_u`0wPFm4P^p&F__xgR6QLDu!1j_22GVFAGBa8|zXQ z!NY18D+8lT8OnTKS))9YKJMbxQSvvo+jiy7rbljuc+O59pej+wl zc8On4QJN-a`B>|EbKflQkFnz_mpjByBdi^~+E^>L(C%!z3UUdqQB;_FU*tAxpm=@Y zWgGVpnWz||*?GB#O{8V4~z#R(QFS;8-~CK=`G@wl-J`?$ab`JLW&b_!4(KKLvP zOa67cT!!N#hB82cGOjqaJZx2xV%MF?d$=z0*}LnX7EXIhS%dA`Ps#|qG}KQbNKQl7 z{HMLZA?#E>5~GYmSo9{wU!r-D;A=n4aj~UTY<1w7qrv1bn>9k9Z)EKs5E=Wc8;=Ny zV&HKt6?-z(nZEoLql&g4(GatBNf5744P$>m=o96fh^IxgNeZq6Xkhu+VYdpf-n`c! z$Qj}~by=+{9>z_b8>i;JuZCwEhzZBhT%N4u^sD1-3Cn?OPfHSJ;z0jW8!1HDuwp8R z%G_JerunUW{>&X`dItaUF<3Gwd+|-rDNu@PzYVgsC;~e_=%ZoRT6C}5LqkMbM7~6p ze~4_RCpE<~J}M0pW<4)F`vswTdfLkOCy+D^e@tND8d?TTbq@#c4)umX z{vf(3Je_zM{&+jfjdoeEf#|d3GnKmtm;Bg$Nj^d=Q^3GB_ETv>5`AZ_EPZkfqD}x5GM_J6P87Zcw zc9lZ0xtO8P@P8yn)rrHrSk%N)1|!x(>@pCJtN^I&@Y?{lMp=)O9U9hw>5KgSXCV{7 zj>5^GU~MRebDndG=TmH|{}*Y}OOvWN3cQsh!9KPd>$ZOe_IptzskA<)+!d!uM~8+= z9AO;sEpGh#=EmZhcV6g0p8%8u?+TgRQN%4pDRY@pJAd)BG!Ht*A7++Cp*K1|dCKK_ z8Yq8uJzz@hsYm+k8UHbgpqtlDS8m1~G4t3w;d2dO@LOPnYDJx^TTOut7alpdI5XWvtXm;2q;{()u71k#h zgpx{l{pm^By8m?62A!g5XH(vK!o2GyW=;#-e@lbnLIM)(wyx*4fBr)|Gfs1UgHd$~ zVKmY>`QYcAikg|kMBRUI(f$lFO828ZW88L9w<1V-*+EY|W+Y@6V zi7c38G6S9Y3(WVY+iM#*exBT3lU>D&KKcD)tv3WN&karT{C+7$W;ErP&O8v3ZVwJC z!#*_m3aMVE%TLC$kQf;Aj0@dupadakCGP4z51S27$>AR@NG&Csdi^PqCtMo6F?cQp zuU@24j$hkaP=1oz4SmrA#DnNrv@t?k@iLvQBy-3=$01%P42o`EJy2nxTg98!yH)=R z8)BSy!(Dxx>U&C)&u@}Bss43DB0>ONYj2oc)>uLlC&Gv;S&Qvml)(<;{6z8vq(99S zULj&9H*8apN5v>c`mEk}zw?1KQ~BMYXFXj`0A{(XQ#8=Zx_34_q~ctF7+Yz@&J0UD zpPI6wgTofsj-|EP2AWUh=?b;EWMgv@J0}yLh0Lc`Xl4YKI(7og)}q~XJ>%7HN3JBc zs3H;OeB1`uGnhH}LdT(2C5bQ<@^Xp4%g1A>wW}B^l#Lr=-s@ysou_EDyB&E6AQ^6O zn>7ccRY?|57wJnOAEsT`5T9D5Q!EmW-tRisU*}G|Nb9g$h*;a*vg3t=r*i2m(R>J* z)Fu+I8BxenxkNpn&a4ChYM)NyP{vHsV$f4K-Ru*RE#+(PN-unqD!7O%>&nI!Ujb1! zvFYd4hy#S^i>Nt9_KZCx=5dt8uAgtU##qpRqEh?z0~Ual^uykzN-787M4dDIBP_hQ zHKeF06wrn^1ULk1Cs*dKqf{WD@M%TP@p2R~VL$I<7M`pALUnpiXr|kPHPl$fe(M%g zpJMsV#;ZkHVRCSSMl zFP8nm)cJkwOHt{&B~Imy^g9PTX(vnOkGm_dOukqt`2-JbBS+FB2seV*puSnIbQR8# zwMdKxOiX(H*?N`mZ#EWCnYs%}^?%`q=kYN<+hv0?r-wb<|Ngo@Ed;I^;=Xslu-Y`_ z=erE|nF!KcTFsAnYk|l(e@jNSPeJ3Vu~k zP(}ZYT9b|F^gDrMcRQ+a4^}g#s3!J7$kc5prd2=Af%EZVHz)8nqP;lZH?=(}YcB#n zyt7y+cU&YpIRj$^QLd>B+~>(0hq6X9FJ0wdXD#4vwzt%UZcXcgZ^ zY-7_G*sL5a18ySO79B<_4)Y?*C8ggjUp?|+wvrwx1JTJVJCf7P{Z@Q&5jYNRF=ey*1PzlMk4WPRx7q8@hPp7V#G%J?!T> z0oHrk%~l{PLUyw5a%KE}AG6Q2PuoSHdOKa3(84&r0_t*U;hmgE4g5H^;J(q>3bGEs zhvt4cBgz$2Ee`sh$>u1YzUp@8Z9znBN+cbass{!5<}NMZrT&WgPP1tx=}!-$0rzDg z*whhwL1U<$njAn!lzxCaxy0Ls>J`^`p%<#8<_EM4r=AZ~waz7xIO>)&BsKiP-ucCM z9shoggN2g_kN*MIOy#{?z16 zTc*>p&yXi2NL+qjD*P+=Jn^-xMlab}f|=3|MV;$A)Sa4k0T{p@%^r8QlaX$5ksZn? zH~Tx!hJ&P8(Vk?Spu1zrpFjQ5K%M!+L9Bv*P{xiAa@kIz)kv-b^IG(B@O%Fm=-Jaz z@@1Z&=*)@-u;NEo$<{@Af!JxJ0y5VvJM7HQJ&p(uP1j zbQ6>5gveZ4?1r)8Jst-nlmzHU3!xmYGMLK<_#qI4DTitwOxke#!R)Bq3iH5O$VIBnTcFfm*R#ewRpc<#WS$zkPqrzN!38Yb`iyZu2Ecnri|Y1 zf^MF1Z1HU~86TOfyRSiS5SxI<(WoL&Uax6S7p$d$lfd)FN+Mu6nZD@A`NsmSRg0qR zX$j7H_63M^pb>$`=XSUMMpjnyE@Z+*3E=d@^H%On>0u1AmU|}+mD6tS0ed{&Yy{86 zfUQ=Ota(rH%(=e=??}8}#tvQ}vevz32+F(^YqZn}C!HVGD~eUvFY{u=Hlf``iSsSypOzi+(qibxs5(&V2P9cla#tme%Q1#437cI7thR z{Y#9mn1mI9wq1s-9B^_K$1vL!taJ$&v3_q%+U)mqHVRmFT2(HQBUxrvHk$XbAQaLzyw015xREy=T__99)!07vA^$RgW&ao6~5V?h`J>w^6n0fH2()X-`>GVlo zOI@<&Tsp1!YgPYU`?Y7} z4TLs%yUTw5EU;ZY;AcZ+1iKUkR_kZJR^5M5 z&O0bL(eJ|b&jrszAGPwsq!MDf9Xi4h_XI?cCCuCJpb)AxNTgA8-;NIPD6}U6Re$%b z;4Gb)3(3@TO}*xTLMM>ZJf}1xgSH|7lSDG!$czwh!r*GQzfvS=ALP2%z=DhE9F(s3 zuzCJ=>u;I=FCiQR+#-SFW=& z64*pFEGy7RyC>D*j)vp2dxUs4h7tcn3q}w3q$^ba)u|X|a$BlL$UU9E0Y9c$6HEy7 zQ}|R>l+$iZBtoyeMfPoDuO+jF(wNCS0$S}LMtl=t*xk^30Ln(yoT87!v~LmsN*#Mx zYukaN;vCYeOaj<$mO-4kgv%WTR^2{H_>m9SU8kw+*-xYf!d63|_CU?Y{YkG&{on$j z28bHO2tj8Fh^CMdRReZ)S9JWWsG^BfBC;Ga=yOcojBW0$6#i{L0uhBW6BW&l z?(PCT3Pgo83xmmzy;}8`=!`}Hl1TapNsQV2Z7bkA9OeucNwMc zG-?u5aLx2c%s3}`dC_eHfh~9!EU7z$=^eaU_MAU3T}s~P0{X+#xeh%sa9B?9mWqyqwo~~F(wZ{Rz1vQ!EH@WEu=&pzDnzW@k^HNXe z?Mxiego-!8YZ!=WmD>7?b3Y|aL^h@4e%CbiN;Z8VKT};KJo7`ne&#BGwWPu>Ht(Gw z&A13jKUnGTpAqB+oR@teT#Ks;_~>tzD***G1?0V0<4)a|YwWm#xVWfMPBpLqkA=M2 zIbe(AQ77OdTtN@!eU;D0o=7vbU`eG6}oB|^T3Wt zAx}rD1ilL-SIZ)J8t$(4A^#b~q7p5y^1~q>m)B;U{Y{IG?{cUXIbAGY?XYynrV%Bw zjQaFY^9P*@%J9xr0f+T_6MPJ8A&pNN8^PI=f@mZ=a*DAph55xajJnVmV8C zrvB7lB82f~a7jrQFh?#BqP-iLXMUn2=j|*^4Ia;b%+UZ?*O1<45r~QRZNg2!Z1d8C zIuE~0biNK}rz%L2YmlIPJ0g3%Fu_Mxt>(mvo)X=qnH)Pbn7Ln!(jxegu(9ibr3zx1 z%Iu0xHY<^gi%Pz| zR+6R4Xa*RiAdG&M4GTz0>gvQ<$ zG~=ERwmf^KugId-Bcq()gwRljs`s`#y)(LSoU{_Z=)EzXqyPxPRL(siauP6On>Avq zB~q3@PP_vz^lC_O`gEd5v&U~NduWamo*4-uzAS?uA(s+ytkELTrEDejpiYxIaqq1h7i~4l1``s8! zj17GMyM7v5pjrOAAg%*|{gkE!X^?Y!5uiz%`>^=yF0gbhEpLLS2ltWHYo4GCh#w=UA%f}1d|!M3_lVY2mA zry{HWg1Wr_l8HQen)jBh^?UyYlOc>GI4qo>8BgAmqQ^pU#ZY1^DOp9K3WB=>t08f`GuA3lDB3J-KclZE|0$_*kb+ z-0xk(K5SRT!Ne6^IK^3@x8_lByaY|+dF5Apa15R8Y`Y?H$ybw);4^{3 z#IHmt&gUK4lWzegpuIA9f$?u3(K)W+6CHqOYod`YX)$TlXLKp^^^(Q2YH_pdZ@BJe z;OfI!fReK%ry6s8dkI3X9^hQhAEp#?*T+r8Ty6C>u&m?n+4dpvp+DLHyzg?@HSbHs9MlMhl;YT!q1q*=`k#%Veh)2`BVx_;_xf{go=bWx1OA zZ4d_R$6Kp*W+NpW+xL>T`ZTlA7MaJXfzsYc=p9cg)guEgTNj+L+ zpg+vu9-1MzwaQr;bWN(-r!OM}-E8I#*aH+63-Y&LgO-#p7AC^RvcLqxM;MQU%}EPw z!5yR2J0k}`BZx`xG0p`|8ki^QbB|Q;)`psthQTgPC2?+BqDxjD+_fVuWoaxV1f(RH zuozU(u378JXN*E_TC0C|!2)r5)=R>-R701X5%!1}%$k{)!;d0uI4YeCoyZdv-$aup zL&$&LR~O6qM0vAw1Oi&G6$sAWHh*gGHN@^tvWGaT_W8Lt_PrdCBEl2wLDK2!qSWO~YU@%-;Mo{CXAmZXt_iRd^M66WA~hmdiV2x!;f2Nv z(C_E6g8y$@hvDQZLSy-dntuRC`>*Q+f(MHk8FjA3My-AU0BpcBj!1FuYup=eitCz> z#i`euWJj=|k_s`squv|Pf>JtwkwQ(Niu_*i}tEtwj8ubh(@y! z*IWZKz6?J*611hIro~Pw2y(%(@KY&sq)P+;k*BC*yZkQvx?vEdVBUYd&StdrcVHtnLr>e<#R0_YGYmslkaam;XF%lqo|u4ta2GeN(W#CGz*E-eeso!M#_$|eSVroF~2*PX%U zapiOVJS_EedM1Q{0fh2MOzMeoSWa;eK|mZJ|f93n(q54VWDhm!1kx_#hy0l~=HkDMUB=0;mn5 zF*$=izzkveMejLr3=1Cel+X8^U3XeL53#Z1OqC5CYR7`HMwnERyF*?9{7>Amu!* zT<8!OWt0wvmSmhfs1D!aGv&-SwiEbfYf;D51{&cRARk)5r&+QLwmt)oDs09d!=|n$ zy>z|i#0`aQU2i?=G}Whm+4uobIGKK-p^r+jgM z!WhUFmoXlOp|sn~Y~Q93$v1R6q^5mTDph}Upk&m=iyaU(<4~4z}ky8m%fr0G^IP{k-ldh(VN%{YLtn zQ0NXrQKvJZeGbP&UGE?;xKvH`9q`I(6pmpre2YO@fGc8fN7rzBR82`!Sbc#7W5K+# zC2?PBta5_ddk(UcL-j-cmxUDhFg0SYt>aK`eIkaJk5uca--~xLQ=}gsUT4+_A~{${ z*p!s|Ldg^xRWS>;!F4Ga@^KER(p+bV?0aL@SvtS1_b*)=Yt=~J5RLH03i75mF`k{{ z^d#Rr{>@L_8&wVGI+Gfe#fc1%pztv;=k(JXQwc+)#u4jH<7DJvhk&s3CDa&8g&9oO za4i7tjZj#tK31%@j%;@w2%x2`gPSnTm`dg9TMprrSP2&5R%}uo3)Pv?nUNymv_>eQ zVgQW^ZER!^P|TSq8zVpKcV;?hC!$m|jLu%y`>lR9b8Vw}`_@4g9K`4kCEgC733Qd@ zz(R~$XC+%`nW!5$ifY=1iMqc2U6AM=o@_?8ETptvPMaM29t`?Y zI&j3Lat^b2LfG^lac1e_7t^49!n?4di>1-2X0L%jL_SBJ%fA>9&oHn!J8%rFmUZZe z;P_;45KOues3tS*6qxrxDyi|)2qppQ2qM%p=pyKiU0e;8lyUXvkK6D4t9|V)d5FH_ zP_Rx9X1GCF7)baL*4Hz_1u6V7ycsN6L4@tov|snXmIs?V&J6S-)9kP`X4%!Qu13j5 zoS3PbPhmK#(M*i-vQ68?lDx`;8^7BQH3{!GBs*2ZkYTY!R*-o)BA7(88Jt@$0AutQ zL!z&4XXB8I{ubb$g%EpuCLl1dEHip`T(+yr^Gsw4woFbthvm{c@+2GBe_nv%&i;o# zA{-K@|+OmZ43YUnuSL~`Z`+f>wML`>Oi{sEZ7&al8K7jh9yx9ASn|*pf zHmuIQ6%Ic;NKRzqCV&M=kKY%;|5fRTXW9?xVX$)89fk46gnd5|&>uo<9v{EatP$IF zEwyKe0g*on6bow^8X^sOFZvgCO+HY9^jvityJx6N_1aumH?RISfq;-_6@*)*gU?pk zb(`KQf4w|mM`!M~`1ob*@Y>*@$`n&~GH}Xm6dI-=ILAfIVO-9NMC7}@CbY4AgvMgn zhE+Tl6y_k6d5#fZTR`cqF9XdJp4~Qln*l2lx!<1i2EB zF}b%+^w)>=Bk+I^14Y|R__>)*L?Rz4P52Hz9~ip>7yK&g5?SWn=�<(dvB(Oik{H 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%0AbEXc_am2?UK* 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 literal 0 HcmV?d00001 diff --git a/tools/server/webui/src/stories/fixtures/assets/hf-logo.svg b/tools/server/webui/src/stories/fixtures/assets/hf-logo.svg new file mode 100644 index 0000000000..d55ea22a24 --- /dev/null +++ b/tools/server/webui/src/stories/fixtures/assets/hf-logo.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/tools/server/webui/src/stories/fixtures/blog-post.ts b/tools/server/webui/src/stories/fixtures/blog-post.ts new file mode 100644 index 0000000000..3eb2ed7585 --- /dev/null +++ b/tools/server/webui/src/stories/fixtures/blog-post.ts @@ -0,0 +1,125 @@ +// Blog Post Content +export const BLOG_POST_MD = String.raw` +# Understanding Rust's Ownership System + +*Published on March 15, 2024 • 8 min read* + +Rust's ownership system is one of its most distinctive features, enabling memory safety without garbage collection. In this post, we'll explore how ownership works and why it's revolutionary for systems programming. + +## What is Ownership? + +Ownership is a set of rules that governs how Rust manages memory. These rules are checked at compile time, ensuring memory safety without runtime overhead. + +### The Three Rules of Ownership + +1. **Each value has a single owner** +2. **There can only be one owner at a time** +3. **When the owner goes out of scope, the value is dropped** + +## Memory Management Without GC + +Traditional approaches to memory management: + +- **Manual management** (C/C++): Error-prone, leads to bugs +- **Garbage collection** (Java, Python): Runtime overhead +- **Ownership** (Rust): Compile-time safety, zero runtime cost + +## Basic Examples + +### Variable Scope + +${'```'}rust +fn main() { + let s = String::from("hello"); // s comes into scope + + // s is valid here + println!("{}", s); + +} // s goes out of scope and is dropped +${'```'} + +### Move Semantics + +${'```'}rust +fn main() { + let s1 = String::from("hello"); + let s2 = s1; // s1 is moved to s2 + + // println!("{}", s1); // ❌ ERROR: s1 is no longer valid + println!("{}", s2); // ✅ OK: s2 owns the string +} +${'```'} + +## Borrowing and References + +Instead of transferring ownership, you can **borrow** values: + +### Immutable References + +${'```'}rust +fn calculate_length(s: &String) -> usize { + s.len() // s is a reference, doesn't own the String +} + +fn main() { + let s1 = String::from("hello"); + let len = calculate_length(&s1); // Borrow s1 + println!("Length of '{}' is {}", s1, len); // s1 still valid +} +${'```'} + +### Mutable References + +${'```'}rust +fn main() { + let mut s = String::from("hello"); + + let r1 = &mut s; + r1.push_str(", world"); + println!("{}", r1); + + // let r2 = &mut s; // ❌ ERROR: cannot borrow twice +} +${'```'} + +## Common Pitfalls + +### Dangling References + +${'```'}rust +fn dangle() -> &String { // ❌ ERROR: missing lifetime specifier + let s = String::from("hello"); + &s // s will be dropped, leaving a dangling reference +} +${'```'} + +### ✅ Solution + +${'```'}rust +fn no_dangle() -> String { + let s = String::from("hello"); + s // Ownership is moved out +} +${'```'} + +## Benefits + +- ✅ **No null pointer dereferences** +- ✅ **No data races** +- ✅ **No use-after-free** +- ✅ **No memory leaks** + +## Conclusion + +Rust's ownership system eliminates entire classes of bugs at compile time. While it has a learning curve, the benefits in safety and performance are worth it. + +## Further Reading + +- [The Rust Book - Ownership](https://doc.rust-lang.org/book/ch04-00-understanding-ownership.html) +- [Rust by Example - Ownership](https://doc.rust-lang.org/rust-by-example/scope/move.html) +- [Rustlings Exercises](https://github.com/rust-lang/rustlings) + +--- + +*Questions? Reach out on [Twitter](https://twitter.com/rustlang) or join the [Rust Discord](https://discord.gg/rust-lang)* +`; diff --git a/tools/server/webui/src/stories/fixtures/data-analysis.ts b/tools/server/webui/src/stories/fixtures/data-analysis.ts new file mode 100644 index 0000000000..6fec32dad6 --- /dev/null +++ b/tools/server/webui/src/stories/fixtures/data-analysis.ts @@ -0,0 +1,124 @@ +// Data Analysis Report +export const DATA_ANALYSIS_MD = String.raw` +# Q4 2024 Business Analytics Report + +*Executive Summary • Generated on January 15, 2025* + +## 📊 Key Performance Indicators + +${'```'} +Daily Active Users (DAU): 1.2M (+65% YoY) +Monthly Active Users (MAU): 4.5M (+48% YoY) +User Retention (Day 30): 68% (+12pp YoY) +Average Session Duration: 24min (+35% YoY) +${'```'} + +## 🎯 Product Performance + +### Feature Adoption Rates + +1. **AI Assistant**: 78% of users (↑ from 45%) +2. **Collaboration Tools**: 62% of users (↑ from 38%) +3. **Analytics Dashboard**: 54% of users (↑ from 31%) +4. **Mobile App**: 41% of users (↑ from 22%) + +### Customer Satisfaction + +| Metric | Q4 2024 | Q3 2024 | Change | +|--------|---------|---------|--------| +| **NPS Score** | 72 | 68 | +4 | +| **CSAT** | 4.6/5 | 4.4/5 | +0.2 | +| **Support Tickets** | 2,340 | 2,890 | -19% | +| **Resolution Time** | 4.2h | 5.1h | -18% | + +## 💰 Revenue Metrics + +### Monthly Recurring Revenue (MRR) + +- **Current MRR**: $2.8M (+42% YoY) +- **New MRR**: $340K +- **Expansion MRR**: $180K +- **Churned MRR**: $95K +- **Net New MRR**: $425K + +### Customer Acquisition + +${'```'} +Cost per Acquisition (CAC): $127 (-23% YoY) +Customer Lifetime Value: $1,840 (+31% YoY) +LTV:CAC Ratio: 14.5:1 +Payback Period: 3.2 months +${'```'} + +## 🌍 Geographic Performance + +### Revenue by Region + +1. **North America**: 45% ($1.26M) +2. **Europe**: 32% ($896K) +3. **Asia-Pacific**: 18% ($504K) +4. **Other**: 5% ($140K) + +### Growth Opportunities + +- **APAC**: 89% YoY growth potential +- **Latin America**: Emerging market entry +- **Middle East**: Enterprise expansion + +## 📱 Channel Performance + +### Traffic Sources + +| Channel | Sessions | Conversion | Revenue | +|---------|----------|------------|---------| +| **Organic Search** | 45% | 3.2% | $1.1M | +| **Direct** | 28% | 4.1% | $850K | +| **Social Media** | 15% | 2.8% | $420K | +| **Paid Ads** | 12% | 5.5% | $430K | + +### Marketing ROI + +- **Content Marketing**: 340% ROI +- **Email Campaigns**: 280% ROI +- **Social Media**: 190% ROI +- **Paid Search**: 220% ROI + +## 🔍 User Behavior Analysis + +### Session Patterns + +- **Peak Hours**: 9-11 AM, 2-4 PM EST +- **Mobile Usage**: 67% of sessions +- **Average Pages/Session**: 4.8 +- **Bounce Rate**: 23% (↓ from 31%) + +### Feature Usage Heatmap + +Most used features in order: +1. Dashboard (89% of users) +2. Search (76% of users) +3. Reports (64% of users) +4. Settings (45% of users) +5. Integrations (32% of users) + +## 💡 Recommendations + +1. **Invest** in AI capabilities (+$2M budget) +2. **Expand** sales team in APAC region +3. **Improve** onboarding to reduce churn +4. **Launch** enterprise security features + +## Appendix + +### Methodology + +Data collected from: +- Internal analytics (Amplitude) +- Customer surveys (n=2,450) +- Financial systems (NetSuite) +- Market research (Gartner) + +--- + +*Report prepared by Data Analytics Team • [View Interactive Dashboard](https://analytics.example.com)* +`; diff --git a/tools/server/webui/src/stories/fixtures/empty.ts b/tools/server/webui/src/stories/fixtures/empty.ts new file mode 100644 index 0000000000..05286e7a78 --- /dev/null +++ b/tools/server/webui/src/stories/fixtures/empty.ts @@ -0,0 +1,2 @@ +// Empty state +export const EMPTY_MD = ''; diff --git a/tools/server/webui/src/stories/fixtures/math-formulas.ts b/tools/server/webui/src/stories/fixtures/math-formulas.ts new file mode 100644 index 0000000000..a4e9ab0ed8 --- /dev/null +++ b/tools/server/webui/src/stories/fixtures/math-formulas.ts @@ -0,0 +1,156 @@ +// Math Formulas Content +export const MATH_FORMULAS_MD = String.raw` +# Mathematical Formulas and Expressions + +This document demonstrates various mathematical notation and formulas that can be rendered using LaTeX syntax in markdown. + +## Basic Arithmetic + +### Addition and Summation +$$\sum_{i=1}^{n} i = \frac{n(n+1)}{2}$$ + +## Algebra + +### Quadratic Formula +The solutions to $ax^2 + bx + c = 0$ are: +$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$ + +### Binomial Theorem +$$(x + y)^n = \sum_{k=0}^{n} \binom{n}{k} x^{n-k} y^k$$ + +## Calculus + +### Derivatives +The derivative of $f(x) = x^n$ is: +$$f'(x) = nx^{n-1}$$ + +### Integration +$$\int_a^b f(x) \, dx = F(b) - F(a)$$ + +### Fundamental Theorem of Calculus +$$\frac{d}{dx} \int_a^x f(t) \, dt = f(x)$$ + +## Linear Algebra + +### Matrix Multiplication +If $A$ is an $m \times n$ matrix and $B$ is an $n \times p$ matrix, then: +$$C_{ij} = \sum_{k=1}^{n} A_{ik} B_{kj}$$ + +### Eigenvalues and Eigenvectors +For a square matrix $A$, if $Av = \lambda v$ for some non-zero vector $v$, then: +- $\lambda$ is an eigenvalue +- $v$ is an eigenvector + +## Statistics and Probability + +### Normal Distribution +The probability density function is: +$$f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2}$$ + +### Bayes' Theorem +$$P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)}$$ + +### Central Limit Theorem +For large $n$, the sample mean $\bar{X}$ is approximately: +$$\bar{X} \sim N\left(\mu, \frac{\sigma^2}{n}\right)$$ + +## Trigonometry + +### Pythagorean Identity +$$\sin^2\theta + \cos^2\theta = 1$$ + +### Euler's Formula +$$e^{i\theta} = \cos\theta + i\sin\theta$$ + +### Taylor Series for Sine +$$\sin x = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!} x^{2n+1} = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + \cdots$$ + +## Complex Analysis + +### Complex Numbers +A complex number can be written as: +$$z = a + bi = r e^{i\theta}$$ + +where $r = |z| = \sqrt{a^2 + b^2}$ and $\theta = \arg(z)$ + +### Cauchy-Riemann Equations +For a function $f(z) = u(x,y) + iv(x,y)$ to be analytic: +$$\frac{\partial u}{\partial x} = \frac{\partial v}{\partial y}, \quad \frac{\partial u}{\partial y} = -\frac{\partial v}{\partial x}$$ + +## Differential Equations + +### First-order Linear ODE +$$\frac{dy}{dx} + P(x)y = Q(x)$$ + +Solution: $y = e^{-\int P(x)dx}\left[\int Q(x)e^{\int P(x)dx}dx + C\right]$ + +### Heat Equation +$$\frac{\partial u}{\partial t} = \alpha \frac{\partial^2 u}{\partial x^2}$$ + +## Number Theory + +### Prime Number Theorem +$$\pi(x) \sim \frac{x}{\ln x}$$ + +where $\pi(x)$ is the number of primes less than or equal to $x$. + +### Fermat's Last Theorem +For $n > 2$, there are no positive integers $a$, $b$, and $c$ such that: +$$a^n + b^n = c^n$$ + +## Set Theory + +### De Morgan's Laws +$$\overline{A \cup B} = \overline{A} \cap \overline{B}$$ +$$\overline{A \cap B} = \overline{A} \cup \overline{B}$$ + +## Advanced Topics + +### Riemann Zeta Function +$$\zeta(s) = \sum_{n=1}^{\infty} \frac{1}{n^s} = \prod_{p \text{ prime}} \frac{1}{1-p^{-s}}$$ + +### Maxwell's Equations +$$\nabla \cdot \mathbf{E} = \frac{\rho}{\epsilon_0}$$ +$$\nabla \cdot \mathbf{B} = 0$$ +$$\nabla \times \mathbf{E} = -\frac{\partial \mathbf{B}}{\partial t}$$ +$$\nabla \times \mathbf{B} = \mu_0\mathbf{J} + \mu_0\epsilon_0\frac{\partial \mathbf{E}}{\partial t}$$ + +### Schrödinger Equation +$$i\hbar\frac{\partial}{\partial t}\Psi(\mathbf{r},t) = \hat{H}\Psi(\mathbf{r},t)$$ + +## Inline Math Examples + +Here are some inline mathematical expressions: + +- The golden ratio: $\phi = \frac{1 + \sqrt{5}}{2} \approx 1.618$ +- Euler's number: $e = \lim_{n \to \infty} \left(1 + \frac{1}{n}\right)^n$ +- Pi: $\pi = 4 \sum_{n=0}^{\infty} \frac{(-1)^n}{2n+1}$ +- Square root of 2: $\sqrt{2} = 1.41421356...$ + +## Fractions and Radicals + +Complex fraction: $\frac{\frac{a}{b} + \frac{c}{d}}{\frac{e}{f} - \frac{g}{h}}$ + +Nested radicals: $\sqrt{2 + \sqrt{3 + \sqrt{4 + \sqrt{5}}}}$ + +## Summations and Products + +### Geometric Series +$$\sum_{n=0}^{\infty} ar^n = \frac{a}{1-r} \quad \text{for } |r| < 1$$ + +### Product Notation +$$n! = \prod_{k=1}^{n} k$$ + +### Double Summation +$$\sum_{i=1}^{m} \sum_{j=1}^{n} a_{ij}$$ + +## Limits + +$$\lim_{x \to 0} \frac{\sin x}{x} = 1$$ + +$$\lim_{n \to \infty} \left(1 + \frac{x}{n}\right)^n = e^x$$ + +--- + +*This document showcases various mathematical notation and formulas that can be rendered in markdown using LaTeX syntax.* +`; diff --git a/tools/server/webui/src/stories/fixtures/readme.ts b/tools/server/webui/src/stories/fixtures/readme.ts new file mode 100644 index 0000000000..e8b573d6c4 --- /dev/null +++ b/tools/server/webui/src/stories/fixtures/readme.ts @@ -0,0 +1,136 @@ +// README Content +export const README_MD = String.raw` +# 🚀 Awesome Web Framework + +[![npm version](https://img.shields.io/npm/v/awesome-framework.svg)](https://www.npmjs.com/package/awesome-framework) +[![Build Status](https://github.com/awesome/framework/workflows/CI/badge.svg)](https://github.com/awesome/framework/actions) +[![Coverage](https://codecov.io/gh/awesome/framework/branch/main/graph/badge.svg)](https://codecov.io/gh/awesome/framework) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + +> A modern, fast, and flexible web framework for building scalable applications + +## ✨ Features + +- 🎯 **Type-Safe** - Full TypeScript support out of the box +- ⚡ **Lightning Fast** - Built on Vite for instant HMR +- 📦 **Zero Config** - Works out of the box for most use cases +- 🎨 **Flexible** - Unopinionated with sensible defaults +- 🔧 **Extensible** - Plugin system for custom functionality +- 📱 **Responsive** - Mobile-first approach +- 🌍 **i18n Ready** - Built-in internationalization +- 🔒 **Secure** - Security best practices by default + +## 📦 Installation + +${'```'}bash +npm install awesome-framework +# or +yarn add awesome-framework +# or +pnpm add awesome-framework +${'```'} + +## 🚀 Quick Start + +### Create a new project + +${'```'}bash +npx create-awesome-app my-app +cd my-app +npm run dev +${'```'} + +### Basic Example + +${'```'}javascript +import { createApp } from 'awesome-framework'; + +const app = createApp({ + port: 3000, + middleware: ['cors', 'helmet', 'compression'] +}); + +app.get('/', (req, res) => { + res.json({ message: 'Hello World!' }); +}); + +app.listen(() => { + console.log('Server running on http://localhost:3000'); +}); +${'```'} + +## 📖 Documentation + +### Core Concepts + +- [Getting Started](https://docs.awesome.dev/getting-started) +- [Configuration](https://docs.awesome.dev/configuration) +- [Routing](https://docs.awesome.dev/routing) +- [Middleware](https://docs.awesome.dev/middleware) +- [Database](https://docs.awesome.dev/database) +- [Authentication](https://docs.awesome.dev/authentication) + +### Advanced Topics + +- [Performance Optimization](https://docs.awesome.dev/performance) +- [Deployment](https://docs.awesome.dev/deployment) +- [Testing](https://docs.awesome.dev/testing) +- [Security](https://docs.awesome.dev/security) + +## 🛠️ Development + +### Prerequisites + +- Node.js >= 18 +- pnpm >= 8 + +### Setup + +${'```'}bash +git clone https://github.com/awesome/framework.git +cd framework +pnpm install +pnpm dev +${'```'} + +### Testing + +${'```'}bash +pnpm test # Run unit tests +pnpm test:e2e # Run end-to-end tests +pnpm test:watch # Run tests in watch mode +${'```'} + +## 🤝 Contributing + +We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details. + +### Contributors + + + + + +## 📊 Benchmarks + +| Framework | Requests/sec | Latency (ms) | Memory (MB) | +|-----------|-------------|--------------|-------------| +| **Awesome** | **45,230** | **2.1** | **42** | +| Express | 28,450 | 3.5 | 68 | +| Fastify | 41,200 | 2.3 | 48 | +| Koa | 32,100 | 3.1 | 52 | + +*Benchmarks performed on MacBook Pro M2, Node.js 20.x* + +## 📝 License + +MIT © [Awesome Team](https://github.com/awesome) + +## 🙏 Acknowledgments + +Special thanks to all our sponsors and contributors who make this project possible. + +--- + +**[Website](https://awesome.dev)** • **[Documentation](https://docs.awesome.dev)** • **[Discord](https://discord.gg/awesome)** • **[Twitter](https://twitter.com/awesomeframework)** +`; diff --git a/tools/server/webui/src/stories/fixtures/storybook-mocks.ts b/tools/server/webui/src/stories/fixtures/storybook-mocks.ts new file mode 100644 index 0000000000..6922586425 --- /dev/null +++ b/tools/server/webui/src/stories/fixtures/storybook-mocks.ts @@ -0,0 +1,50 @@ +import { serverStore } from '$lib/stores/server.svelte'; + +/** + * Mock server properties for Storybook testing + * This utility allows setting mock server configurations without polluting production code + */ +export function mockServerProps(props: Partial): void { + // Directly set the private _serverProps for testing purposes + (serverStore as unknown as { _serverProps: ApiLlamaCppServerProps })._serverProps = { + model_path: props.model_path || 'test-model', + modalities: { + vision: props.modalities?.vision ?? false, + audio: props.modalities?.audio ?? false + }, + ...props + } as ApiLlamaCppServerProps; +} + +/** + * Reset server store to clean state for testing + */ +export function resetServerStore(): void { + (serverStore as unknown as { _serverProps: ApiLlamaCppServerProps })._serverProps = { + model_path: '', + modalities: { + vision: false, + audio: false + } + } as ApiLlamaCppServerProps; + (serverStore as unknown as { _error: string })._error = ''; + (serverStore as unknown as { _loading: boolean })._loading = false; +} + +/** + * Common mock configurations for Storybook stories + */ +export const mockConfigs = { + visionOnly: { + modalities: { vision: true, audio: false } + }, + audioOnly: { + modalities: { vision: false, audio: true } + }, + bothModalities: { + modalities: { vision: true, audio: true } + }, + noModalities: { + modalities: { vision: false, audio: false } + } +} as const; diff --git a/tools/server/webui/src/utils/app.context.tsx b/tools/server/webui/src/utils/app.context.tsx deleted file mode 100644 index 1860ecc721..0000000000 --- a/tools/server/webui/src/utils/app.context.tsx +++ /dev/null @@ -1,412 +0,0 @@ -import React, { createContext, useContext, useEffect, useState } from 'react'; -import { - APIMessage, - CanvasData, - Conversation, - LlamaCppServerProps, - Message, - PendingMessage, - ViewingChat, -} from './types'; -import StorageUtils from './storage'; -import { - filterThoughtFromMsgs, - normalizeMsgsForAPI, - getSSEStreamAsync, - getServerProps, -} from './misc'; -import { BASE_URL, CONFIG_DEFAULT, isDev } from '../Config'; -import { matchPath, useLocation, useNavigate } from 'react-router'; -import toast from 'react-hot-toast'; - -interface AppContextValue { - // conversations and messages - viewingChat: ViewingChat | null; - pendingMessages: Record; - isGenerating: (convId: string) => boolean; - sendMessage: ( - convId: string | null, - leafNodeId: Message['id'] | null, - content: string, - extra: Message['extra'], - onChunk: CallbackGeneratedChunk - ) => Promise; - stopGenerating: (convId: string) => void; - replaceMessageAndGenerate: ( - convId: string, - parentNodeId: Message['id'], // the parent node of the message to be replaced - content: string | null, - extra: Message['extra'], - onChunk: CallbackGeneratedChunk - ) => Promise; - - // canvas - canvasData: CanvasData | null; - setCanvasData: (data: CanvasData | null) => void; - - // config - config: typeof CONFIG_DEFAULT; - saveConfig: (config: typeof CONFIG_DEFAULT) => void; - showSettings: boolean; - setShowSettings: (show: boolean) => void; - - // props - serverProps: LlamaCppServerProps | null; -} - -// this callback is used for scrolling to the bottom of the chat and switching to the last node -export type CallbackGeneratedChunk = (currLeafNodeId?: Message['id']) => void; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -const AppContext = createContext({} as any); - -const getViewingChat = async (convId: string): Promise => { - const conv = await StorageUtils.getOneConversation(convId); - if (!conv) return null; - return { - conv: conv, - // all messages from all branches, not filtered by last node - messages: await StorageUtils.getMessages(convId), - }; -}; - -export const AppContextProvider = ({ - children, -}: { - children: React.ReactElement; -}) => { - const { pathname } = useLocation(); - const navigate = useNavigate(); - const params = matchPath('/chat/:convId', pathname); - const convId = params?.params?.convId; - - const [serverProps, setServerProps] = useState( - null - ); - const [viewingChat, setViewingChat] = useState(null); - const [pendingMessages, setPendingMessages] = useState< - Record - >({}); - const [aborts, setAborts] = useState< - Record - >({}); - const [config, setConfig] = useState(StorageUtils.getConfig()); - const [canvasData, setCanvasData] = useState(null); - const [showSettings, setShowSettings] = useState(false); - - // get server props - useEffect(() => { - getServerProps(BASE_URL, config.apiKey) - .then((props) => { - console.debug('Server props:', props); - setServerProps(props); - }) - .catch((err) => { - console.error(err); - toast.error('Failed to fetch server props'); - }); - // eslint-disable-next-line - }, []); - - // handle change when the convId from URL is changed - useEffect(() => { - // also reset the canvas data - setCanvasData(null); - const handleConversationChange = async (changedConvId: string) => { - if (changedConvId !== convId) return; - setViewingChat(await getViewingChat(changedConvId)); - }; - StorageUtils.onConversationChanged(handleConversationChange); - getViewingChat(convId ?? '').then(setViewingChat); - return () => { - StorageUtils.offConversationChanged(handleConversationChange); - }; - }, [convId]); - - const setPending = (convId: string, pendingMsg: PendingMessage | null) => { - // if pendingMsg is null, remove the key from the object - if (!pendingMsg) { - setPendingMessages((prev) => { - const newState = { ...prev }; - delete newState[convId]; - return newState; - }); - } else { - setPendingMessages((prev) => ({ ...prev, [convId]: pendingMsg })); - } - }; - - const setAbort = (convId: string, controller: AbortController | null) => { - if (!controller) { - setAborts((prev) => { - const newState = { ...prev }; - delete newState[convId]; - return newState; - }); - } else { - setAborts((prev) => ({ ...prev, [convId]: controller })); - } - }; - - //////////////////////////////////////////////////////////////////////// - // public functions - - const isGenerating = (convId: string) => !!pendingMessages[convId]; - - const generateMessage = async ( - convId: string, - leafNodeId: Message['id'], - onChunk: CallbackGeneratedChunk - ) => { - if (isGenerating(convId)) return; - - const config = StorageUtils.getConfig(); - const currConversation = await StorageUtils.getOneConversation(convId); - if (!currConversation) { - throw new Error('Current conversation is not found'); - } - - const currMessages = StorageUtils.filterByLeafNodeId( - await StorageUtils.getMessages(convId), - leafNodeId, - false - ); - const abortController = new AbortController(); - setAbort(convId, abortController); - - if (!currMessages) { - throw new Error('Current messages are not found'); - } - - const pendingId = Date.now() + 1; - let pendingMsg: PendingMessage = { - id: pendingId, - convId, - type: 'text', - timestamp: pendingId, - role: 'assistant', - content: null, - parent: leafNodeId, - children: [], - }; - setPending(convId, pendingMsg); - - try { - // prepare messages for API - let messages: APIMessage[] = [ - ...(config.systemMessage.length === 0 - ? [] - : [{ role: 'system', content: config.systemMessage } as APIMessage]), - ...normalizeMsgsForAPI(currMessages), - ]; - if (config.excludeThoughtOnReq) { - messages = filterThoughtFromMsgs(messages); - } - if (isDev) console.log({ messages }); - - // prepare params - const params = { - messages, - stream: true, - cache_prompt: true, - reasoning_format: 'none', - samplers: config.samplers, - temperature: config.temperature, - dynatemp_range: config.dynatemp_range, - dynatemp_exponent: config.dynatemp_exponent, - top_k: config.top_k, - top_p: config.top_p, - min_p: config.min_p, - typical_p: config.typical_p, - xtc_probability: config.xtc_probability, - xtc_threshold: config.xtc_threshold, - repeat_last_n: config.repeat_last_n, - repeat_penalty: config.repeat_penalty, - presence_penalty: config.presence_penalty, - frequency_penalty: config.frequency_penalty, - dry_multiplier: config.dry_multiplier, - dry_base: config.dry_base, - dry_allowed_length: config.dry_allowed_length, - dry_penalty_last_n: config.dry_penalty_last_n, - max_tokens: config.max_tokens, - timings_per_token: !!config.showTokensPerSecond, - ...(config.custom.length ? JSON.parse(config.custom) : {}), - }; - - // send request - const fetchResponse = await fetch(`${BASE_URL}/v1/chat/completions`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - ...(config.apiKey - ? { Authorization: `Bearer ${config.apiKey}` } - : {}), - }, - body: JSON.stringify(params), - signal: abortController.signal, - }); - if (fetchResponse.status !== 200) { - const body = await fetchResponse.json(); - throw new Error(body?.error?.message || 'Unknown error'); - } - const chunks = getSSEStreamAsync(fetchResponse); - for await (const chunk of chunks) { - // const stop = chunk.stop; - if (chunk.error) { - throw new Error(chunk.error?.message || 'Unknown error'); - } - const addedContent = chunk.choices[0]?.delta.content; - const lastContent = pendingMsg.content || ''; - if (addedContent) { - pendingMsg = { - ...pendingMsg, - content: lastContent + addedContent, - }; - } - const timings = chunk.timings; - if (timings && config.showTokensPerSecond) { - // only extract what's really needed, to save some space - pendingMsg.timings = { - prompt_n: timings.prompt_n, - prompt_ms: timings.prompt_ms, - predicted_n: timings.predicted_n, - predicted_ms: timings.predicted_ms, - }; - } - setPending(convId, pendingMsg); - onChunk(); // don't need to switch node for pending message - } - } catch (err) { - setPending(convId, null); - if ((err as Error).name === 'AbortError') { - // user stopped the generation via stopGeneration() function - // we can safely ignore this error - } else { - console.error(err); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - toast.error((err as any)?.message ?? 'Unknown error'); - throw err; // rethrow - } - } - - if (pendingMsg.content !== null) { - await StorageUtils.appendMsg(pendingMsg as Message, leafNodeId); - } - setPending(convId, null); - onChunk(pendingId); // trigger scroll to bottom and switch to the last node - }; - - const sendMessage = async ( - convId: string | null, - leafNodeId: Message['id'] | null, - content: string, - extra: Message['extra'], - onChunk: CallbackGeneratedChunk - ): Promise => { - if (isGenerating(convId ?? '') || content.trim().length === 0) return false; - - if (convId === null || convId.length === 0 || leafNodeId === null) { - const conv = await StorageUtils.createConversation( - content.substring(0, 256) - ); - convId = conv.id; - leafNodeId = conv.currNode; - // if user is creating a new conversation, redirect to the new conversation - navigate(`/chat/${convId}`); - } - - const now = Date.now(); - const currMsgId = now; - StorageUtils.appendMsg( - { - id: currMsgId, - timestamp: now, - type: 'text', - convId, - role: 'user', - content, - extra, - parent: leafNodeId, - children: [], - }, - leafNodeId - ); - onChunk(currMsgId); - - try { - await generateMessage(convId, currMsgId, onChunk); - return true; - } catch (_) { - // TODO: rollback - } - return false; - }; - - const stopGenerating = (convId: string) => { - setPending(convId, null); - aborts[convId]?.abort(); - }; - - // if content is undefined, we remove last assistant message - const replaceMessageAndGenerate = async ( - convId: string, - parentNodeId: Message['id'], // the parent node of the message to be replaced - content: string | null, - extra: Message['extra'], - onChunk: CallbackGeneratedChunk - ) => { - if (isGenerating(convId)) return; - - if (content !== null) { - const now = Date.now(); - const currMsgId = now; - StorageUtils.appendMsg( - { - id: currMsgId, - timestamp: now, - type: 'text', - convId, - role: 'user', - content, - extra, - parent: parentNodeId, - children: [], - }, - parentNodeId - ); - parentNodeId = currMsgId; - } - onChunk(parentNodeId); - - await generateMessage(convId, parentNodeId, onChunk); - }; - - const saveConfig = (config: typeof CONFIG_DEFAULT) => { - StorageUtils.setConfig(config); - setConfig(config); - }; - - return ( - - {children} - - ); -}; - -export const useAppContext = () => useContext(AppContext); diff --git a/tools/server/webui/src/utils/common.tsx b/tools/server/webui/src/utils/common.tsx deleted file mode 100644 index 7dd64508a4..0000000000 --- a/tools/server/webui/src/utils/common.tsx +++ /dev/null @@ -1,74 +0,0 @@ -export const XCloseButton: React.ElementType< - React.ClassAttributes & - React.HTMLAttributes -> = ({ className, ...props }) => ( - -); - -export const OpenInNewTab = ({ - href, - children, -}: { - href: string; - children: string; -}) => ( - - {children} - -); - -export function BtnWithTooltips({ - className, - onClick, - onMouseLeave, - children, - tooltipsContent, - disabled, -}: { - className?: string; - onClick: () => void; - onMouseLeave?: () => void; - children: React.ReactNode; - tooltipsContent: string; - disabled?: boolean; -}) { - // the onClick handler is on the container, so screen readers can safely ignore the inner button - // this prevents the label from being read twice - return ( -

    - -
    - ); -} diff --git a/tools/server/webui/src/utils/llama-vscode.ts b/tools/server/webui/src/utils/llama-vscode.ts deleted file mode 100644 index 0ad8f8042e..0000000000 --- a/tools/server/webui/src/utils/llama-vscode.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { useEffect } from 'react'; -import { ChatTextareaApi } from '../components/useChatTextarea.ts'; -import { ChatExtraContextApi } from '../components/useChatExtraContext.tsx'; - -// Extra context when using llama.cpp WebUI from llama-vscode, inside an iframe -// Ref: https://github.com/ggml-org/llama.cpp/pull/11940 - -interface SetTextEvData { - text: string; - context: string; -} - -/** - * To test it: - * window.postMessage({ command: 'setText', text: 'Spot the syntax error', context: 'def test()\n return 123' }, '*'); - */ - -export const useVSCodeContext = ( - textarea: ChatTextareaApi, - extraContext: ChatExtraContextApi -) => { - // Accept setText message from a parent window and set inputMsg and extraContext - useEffect(() => { - const handleMessage = (event: MessageEvent) => { - if (event.data?.command === 'setText') { - const data: SetTextEvData = event.data; - textarea.setValue(data?.text); - if (data?.context && data.context.length > 0) { - extraContext.clearItems(); - extraContext.addItems([ - { - type: 'context', - name: 'Extra context', - content: data.context, - }, - ]); - } - textarea.focus(); - setTimeout(() => { - textarea.refOnSubmit.current?.(); - }, 10); // wait for setExtraContext to finish - } - }; - - window.addEventListener('message', handleMessage); - return () => window.removeEventListener('message', handleMessage); - }, [textarea, extraContext]); - - // Add a keydown listener that sends the "escapePressed" message to the parent window - useEffect(() => { - const handleKeyDown = (event: KeyboardEvent) => { - if (event.key === 'Escape') { - window.parent.postMessage({ command: 'escapePressed' }, '*'); - } - }; - - window.addEventListener('keydown', handleKeyDown); - return () => window.removeEventListener('keydown', handleKeyDown); - }, []); - - return {}; -}; diff --git a/tools/server/webui/src/utils/misc.ts b/tools/server/webui/src/utils/misc.ts deleted file mode 100644 index 15182e4cab..0000000000 --- a/tools/server/webui/src/utils/misc.ts +++ /dev/null @@ -1,200 +0,0 @@ -// @ts-expect-error this package does not have typing -import TextLineStream from 'textlinestream'; -import { - APIMessage, - APIMessageContentPart, - LlamaCppServerProps, - Message, -} from './types'; - -// ponyfill for missing ReadableStream asyncIterator on Safari -import { asyncIterator } from '@sec-ant/readable-stream/ponyfill/asyncIterator'; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const isString = (x: any) => !!x.toLowerCase; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const isBoolean = (x: any) => x === true || x === false; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const isNumeric = (n: any) => !isString(n) && !isNaN(n) && !isBoolean(n); -export const escapeAttr = (str: string) => - str.replace(/>/g, '>').replace(/"/g, '"'); - -// wrapper for SSE -export async function* getSSEStreamAsync(fetchResponse: Response) { - if (!fetchResponse.body) throw new Error('Response body is empty'); - const lines: ReadableStream = fetchResponse.body - .pipeThrough(new TextDecoderStream()) - .pipeThrough(new TextLineStream()); - // @ts-expect-error asyncIterator complains about type, but it should work - for await (const line of asyncIterator(lines)) { - //if (isDev) console.log({ line }); - if (line.startsWith('data:') && !line.endsWith('[DONE]')) { - const data = JSON.parse(line.slice(5)); - yield data; - } else if (line.startsWith('error:')) { - const data = JSON.parse(line.slice(6)); - throw new Error(data.message || 'Unknown error'); - } - } -} - -// copy text to clipboard -export const copyStr = (textToCopy: string) => { - // Navigator clipboard api needs a secure context (https) - if (navigator.clipboard && window.isSecureContext) { - navigator.clipboard.writeText(textToCopy); - } else { - // Use the 'out of viewport hidden text area' trick - const textArea = document.createElement('textarea'); - textArea.value = textToCopy; - // Move textarea out of the viewport so it's not visible - textArea.style.position = 'absolute'; - textArea.style.left = '-999999px'; - document.body.prepend(textArea); - textArea.select(); - document.execCommand('copy'); - } -}; - -/** - * filter out redundant fields upon sending to API - * also format extra into text - */ -export function normalizeMsgsForAPI(messages: Readonly) { - return messages.map((msg) => { - if (msg.role !== 'user' || !msg.extra) { - return { - role: msg.role, - content: msg.content, - } as APIMessage; - } - - // extra content first, then user text message in the end - // this allow re-using the same cache prefix for long context - const contentArr: APIMessageContentPart[] = []; - - for (const extra of msg.extra ?? []) { - if (extra.type === 'context') { - contentArr.push({ - type: 'text', - text: extra.content, - }); - } else if (extra.type === 'textFile') { - contentArr.push({ - type: 'text', - text: `File: ${extra.name}\nContent:\n\n${extra.content}`, - }); - } else if (extra.type === 'imageFile') { - contentArr.push({ - type: 'image_url', - image_url: { url: extra.base64Url }, - }); - } else if (extra.type === 'audioFile') { - contentArr.push({ - type: 'input_audio', - input_audio: { - data: extra.base64Data, - format: /wav/.test(extra.mimeType) ? 'wav' : 'mp3', - }, - }); - } else { - throw new Error('Unknown extra type'); - } - } - - // add user message to the end - contentArr.push({ - type: 'text', - text: msg.content, - }); - - return { - role: msg.role, - content: contentArr, - }; - }) as APIMessage[]; -} - -/** - * recommended for DeepsSeek-R1, filter out content between and tags - */ -export function filterThoughtFromMsgs(messages: APIMessage[]) { - console.debug({ messages }); - return messages.map((msg) => { - if (msg.role !== 'assistant') { - return msg; - } - // assistant message is always a string - const contentStr = msg.content as string; - return { - role: msg.role, - content: - msg.role === 'assistant' - ? contentStr - .split(/<\/think>|<\|end\|>/) - .at(-1)! - .trim() - : contentStr, - } as APIMessage; - }); -} - -export function classNames(classes: Record): string { - return Object.entries(classes) - .filter(([_, value]) => value) - .map(([key, _]) => key) - .join(' '); -} - -export const delay = (ms: number) => - new Promise((resolve) => setTimeout(resolve, ms)); - -export const throttle = ( - callback: (...args: T) => void, - delay: number -) => { - let isWaiting = false; - - return (...args: T) => { - if (isWaiting) { - return; - } - - callback(...args); - isWaiting = true; - - setTimeout(() => { - isWaiting = false; - }, delay); - }; -}; - -export const cleanCurrentUrl = (removeQueryParams: string[]) => { - const url = new URL(window.location.href); - removeQueryParams.forEach((param) => { - url.searchParams.delete(param); - }); - window.history.replaceState({}, '', url.toString()); -}; - -export const getServerProps = async ( - baseUrl: string, - apiKey?: string -): Promise => { - try { - const response = await fetch(`${baseUrl}/props`, { - headers: { - 'Content-Type': 'application/json', - ...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}), - }, - }); - if (!response.ok) { - throw new Error('Failed to fetch server props'); - } - const data = await response.json(); - return data as LlamaCppServerProps; - } catch (error) { - console.error('Error fetching server props:', error); - throw error; - } -}; diff --git a/tools/server/webui/src/utils/storage.ts b/tools/server/webui/src/utils/storage.ts deleted file mode 100644 index 505693e927..0000000000 --- a/tools/server/webui/src/utils/storage.ts +++ /dev/null @@ -1,294 +0,0 @@ -// coversations is stored in localStorage -// format: { [convId]: { id: string, lastModified: number, messages: [...] } } - -import { CONFIG_DEFAULT } from '../Config'; -import { Conversation, Message, TimingReport } from './types'; -import Dexie, { Table } from 'dexie'; - -const event = new EventTarget(); - -type CallbackConversationChanged = (convId: string) => void; -let onConversationChangedHandlers: [ - CallbackConversationChanged, - EventListener, -][] = []; -const dispatchConversationChange = (convId: string) => { - event.dispatchEvent( - new CustomEvent('conversationChange', { detail: { convId } }) - ); -}; - -const db = new Dexie('LlamacppWebui') as Dexie & { - conversations: Table; - messages: Table; -}; - -// https://dexie.org/docs/Version/Version.stores() -db.version(1).stores({ - // Unlike SQL, you don’t need to specify all properties but only the one you wish to index. - conversations: '&id, lastModified', - messages: '&id, convId, [convId+id], timestamp', -}); - -// convId is a string prefixed with 'conv-' -const StorageUtils = { - /** - * manage conversations - */ - async getAllConversations(): Promise { - await migrationLStoIDB().catch(console.error); // noop if already migrated - return (await db.conversations.toArray()).sort( - (a, b) => b.lastModified - a.lastModified - ); - }, - /** - * can return null if convId does not exist - */ - async getOneConversation(convId: string): Promise { - return (await db.conversations.where('id').equals(convId).first()) ?? null; - }, - /** - * get all message nodes in a conversation - */ - async getMessages(convId: string): Promise { - return await db.messages.where({ convId }).toArray(); - }, - /** - * use in conjunction with getMessages to filter messages by leafNodeId - * includeRoot: whether to include the root node in the result - * if node with leafNodeId does not exist, return the path with the latest timestamp - */ - filterByLeafNodeId( - msgs: Readonly, - leafNodeId: Message['id'], - includeRoot: boolean - ): Readonly { - const res: Message[] = []; - const nodeMap = new Map(); - for (const msg of msgs) { - nodeMap.set(msg.id, msg); - } - let startNode: Message | undefined = nodeMap.get(leafNodeId); - if (!startNode) { - // if not found, we return the path with the latest timestamp - let latestTime = -1; - for (const msg of msgs) { - if (msg.timestamp > latestTime) { - startNode = msg; - latestTime = msg.timestamp; - } - } - } - // traverse the path from leafNodeId to root - // startNode can never be undefined here - let currNode: Message | undefined = startNode; - while (currNode) { - if (currNode.type !== 'root' || (currNode.type === 'root' && includeRoot)) - res.push(currNode); - currNode = nodeMap.get(currNode.parent ?? -1); - } - res.sort((a, b) => a.timestamp - b.timestamp); - return res; - }, - /** - * create a new conversation with a default root node - */ - async createConversation(name: string): Promise { - const now = Date.now(); - const msgId = now; - const conv: Conversation = { - id: `conv-${now}`, - lastModified: now, - currNode: msgId, - name, - }; - await db.conversations.add(conv); - // create a root node - await db.messages.add({ - id: msgId, - convId: conv.id, - type: 'root', - timestamp: now, - role: 'system', - content: '', - parent: -1, - children: [], - }); - return conv; - }, - /** - * update the name of a conversation - */ - async updateConversationName(convId: string, name: string): Promise { - await db.conversations.update(convId, { - name, - lastModified: Date.now(), - }); - dispatchConversationChange(convId); - }, - /** - * if convId does not exist, throw an error - */ - async appendMsg( - msg: Exclude, - parentNodeId: Message['id'] - ): Promise { - if (msg.content === null) return; - const { convId } = msg; - await db.transaction('rw', db.conversations, db.messages, async () => { - const conv = await StorageUtils.getOneConversation(convId); - const parentMsg = await db.messages - .where({ convId, id: parentNodeId }) - .first(); - // update the currNode of conversation - if (!conv) { - throw new Error(`Conversation ${convId} does not exist`); - } - if (!parentMsg) { - throw new Error( - `Parent message ID ${parentNodeId} does not exist in conversation ${convId}` - ); - } - await db.conversations.update(convId, { - lastModified: Date.now(), - currNode: msg.id, - }); - // update parent - await db.messages.update(parentNodeId, { - children: [...parentMsg.children, msg.id], - }); - // create message - await db.messages.add({ - ...msg, - parent: parentNodeId, - children: [], - }); - }); - dispatchConversationChange(convId); - }, - /** - * remove conversation by id - */ - async remove(convId: string): Promise { - await db.transaction('rw', db.conversations, db.messages, async () => { - await db.conversations.delete(convId); - await db.messages.where({ convId }).delete(); - }); - dispatchConversationChange(convId); - }, - - // event listeners - onConversationChanged(callback: CallbackConversationChanged) { - const fn = (e: Event) => callback((e as CustomEvent).detail.convId); - onConversationChangedHandlers.push([callback, fn]); - event.addEventListener('conversationChange', fn); - }, - offConversationChanged(callback: CallbackConversationChanged) { - const fn = onConversationChangedHandlers.find(([cb, _]) => cb === callback); - if (fn) { - event.removeEventListener('conversationChange', fn[1]); - } - onConversationChangedHandlers = []; - }, - - // manage config - getConfig(): typeof CONFIG_DEFAULT { - const savedVal = JSON.parse(localStorage.getItem('config') || '{}'); - // to prevent breaking changes in the future, we always provide default value for missing keys - return { - ...CONFIG_DEFAULT, - ...savedVal, - }; - }, - setConfig(config: typeof CONFIG_DEFAULT) { - localStorage.setItem('config', JSON.stringify(config)); - }, - getTheme(): string { - return localStorage.getItem('theme') || 'auto'; - }, - setTheme(theme: string) { - if (theme === 'auto') { - localStorage.removeItem('theme'); - } else { - localStorage.setItem('theme', theme); - } - }, -}; - -export default StorageUtils; - -// Migration from localStorage to IndexedDB - -// these are old types, LS prefix stands for LocalStorage -interface LSConversation { - id: string; // format: `conv-{timestamp}` - lastModified: number; // timestamp from Date.now() - messages: LSMessage[]; -} -interface LSMessage { - id: number; - role: 'user' | 'assistant' | 'system'; - content: string; - timings?: TimingReport; -} -async function migrationLStoIDB() { - if (localStorage.getItem('migratedToIDB')) return; - const res: LSConversation[] = []; - for (const key in localStorage) { - if (key.startsWith('conv-')) { - res.push(JSON.parse(localStorage.getItem(key) ?? '{}')); - } - } - if (res.length === 0) return; - await db.transaction('rw', db.conversations, db.messages, async () => { - let migratedCount = 0; - for (const conv of res) { - const { id: convId, lastModified, messages } = conv; - const firstMsg = messages[0]; - const lastMsg = messages.at(-1); - if (messages.length < 2 || !firstMsg || !lastMsg) { - console.log( - `Skipping conversation ${convId} with ${messages.length} messages` - ); - continue; - } - const name = firstMsg.content ?? '(no messages)'; - await db.conversations.add({ - id: convId, - lastModified, - currNode: lastMsg.id, - name, - }); - const rootId = messages[0].id - 2; - await db.messages.add({ - id: rootId, - convId: convId, - type: 'root', - timestamp: rootId, - role: 'system', - content: '', - parent: -1, - children: [firstMsg.id], - }); - for (let i = 0; i < messages.length; i++) { - const msg = messages[i]; - await db.messages.add({ - ...msg, - type: 'text', - convId: convId, - timestamp: msg.id, - parent: i === 0 ? rootId : messages[i - 1].id, - children: i === messages.length - 1 ? [] : [messages[i + 1].id], - }); - } - migratedCount++; - console.log( - `Migrated conversation ${convId} with ${messages.length} messages` - ); - } - console.log( - `Migrated ${migratedCount} conversations from localStorage to IndexedDB` - ); - localStorage.setItem('migratedToIDB', '1'); - }); -} diff --git a/tools/server/webui/src/utils/types.ts b/tools/server/webui/src/utils/types.ts deleted file mode 100644 index ea7d641dc7..0000000000 --- a/tools/server/webui/src/utils/types.ts +++ /dev/null @@ -1,138 +0,0 @@ -export interface TimingReport { - prompt_n: number; - prompt_ms: number; - predicted_n: number; - predicted_ms: number; -} - -/** - * What is conversation "branching"? It is a feature that allows the user to edit an old message in the history, while still keeping the conversation flow. - * Inspired by ChatGPT / Claude / Hugging Chat where you edit a message, a new branch of the conversation is created, and the old message is still visible. - * - * We use the same node-based structure like other chat UIs, where each message has a parent and children. A "root" message is the first message in a conversation, which will not be displayed in the UI. - * - * root - * ├── message 1 - * │ └── message 2 - * │ └── message 3 - * └── message 4 - * └── message 5 - * - * In the above example, assuming that user wants to edit message 2, a new branch will be created: - * - * ├── message 2 - * │ └── message 3 - * └── message 6 - * - * Message 2 and 6 are siblings, and message 6 is the new branch. - * - * We only need to know the last node (aka leaf) to get the current branch. In the above example, message 5 is the leaf of branch containing message 4 and 5. - * - * For the implementation: - * - StorageUtils.getMessages() returns list of all nodes - * - StorageUtils.filterByLeafNodeId() filters the list of nodes from a given leaf node - */ - -// Note: the term "message" and "node" are used interchangeably in this context -export interface Message { - id: number; - convId: string; - type: 'text' | 'root'; - timestamp: number; // timestamp from Date.now() - role: 'user' | 'assistant' | 'system'; - content: string; - timings?: TimingReport; - extra?: MessageExtra[]; - // node based system for branching - parent: Message['id']; - children: Message['id'][]; -} - -export type MessageExtra = - | MessageExtraTextFile - | MessageExtraImageFile - | MessageExtraAudioFile - | MessageExtraContext; - -export interface MessageExtraTextFile { - type: 'textFile'; - name: string; - content: string; -} - -export interface MessageExtraImageFile { - type: 'imageFile'; - name: string; - base64Url: string; -} - -export interface MessageExtraAudioFile { - type: 'audioFile'; - name: string; - base64Data: string; - mimeType: string; -} - -export interface MessageExtraContext { - type: 'context'; - name: string; - content: string; -} - -export type APIMessageContentPart = - | { - type: 'text'; - text: string; - } - | { - type: 'image_url'; - image_url: { url: string }; - } - | { - type: 'input_audio'; - input_audio: { data: string; format: 'wav' | 'mp3' }; - }; - -export type APIMessage = { - role: Message['role']; - content: string | APIMessageContentPart[]; -}; - -export interface Conversation { - id: string; // format: `conv-{timestamp}` - lastModified: number; // timestamp from Date.now() - currNode: Message['id']; // the current message node being viewed - name: string; -} - -export interface ViewingChat { - conv: Readonly; - messages: Readonly; -} - -export type PendingMessage = Omit & { - content: string | null; -}; - -export enum CanvasType { - PY_INTERPRETER, -} - -export interface CanvasPyInterpreter { - type: CanvasType.PY_INTERPRETER; - content: string; -} - -export type CanvasData = CanvasPyInterpreter; - -// a non-complete list of props, only contains the ones we need -export interface LlamaCppServerProps { - build_info: string; - model_path: string; - n_ctx: number; - modalities?: { - vision: boolean; - audio: boolean; - }; - // TODO: support params -} diff --git a/tools/server/webui/src/vite-env.d.ts b/tools/server/webui/src/vite-env.d.ts deleted file mode 100644 index 11f02fe2a0..0000000000 --- a/tools/server/webui/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/tools/server/webui/static/favicon.svg b/tools/server/webui/static/favicon.svg new file mode 100644 index 0000000000..a7ae13691c --- /dev/null +++ b/tools/server/webui/static/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tools/server/webui/static/loading.html b/tools/server/webui/static/loading.html new file mode 100644 index 0000000000..c3fd19a0f5 --- /dev/null +++ b/tools/server/webui/static/loading.html @@ -0,0 +1,12 @@ + + + + + + +
    + The model is loading. Please wait.
    + The user interface will appear soon. +
    + + diff --git a/tools/server/webui/svelte.config.js b/tools/server/webui/svelte.config.js new file mode 100644 index 0000000000..722d408379 --- /dev/null +++ b/tools/server/webui/svelte.config.js @@ -0,0 +1,25 @@ +import { mdsvex } from 'mdsvex'; +import adapter from '@sveltejs/adapter-static'; +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + // Consult https://svelte.dev/docs/kit/integrations + // for more information about preprocessors + preprocess: [vitePreprocess(), mdsvex()], + kit: { + adapter: adapter({ + pages: '../public', + assets: '../public', + fallback: 'index.html', + precompress: false, + strict: true + }), + output: { + bundleStrategy: 'inline' + } + }, + extensions: ['.svelte', '.svx'] +}; + +export default config; diff --git a/tools/server/webui/tailwind.config.js b/tools/server/webui/tailwind.config.js deleted file mode 100644 index c43066a19e..0000000000 --- a/tools/server/webui/tailwind.config.js +++ /dev/null @@ -1,16 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -export default { - content: [ - "./index.html", - "./src/**/*.{js,ts,jsx,tsx}", - ], - theme: { - extend: {}, - }, - plugins: [ - require('daisyui'), - ], - daisyui: { - themes: ['light', 'dark', 'cupcake', 'bumblebee', 'emerald', 'corporate', 'synthwave', 'retro', 'cyberpunk', 'valentine', 'halloween', 'garden', 'forest', 'aqua', 'lofi', 'pastel', 'fantasy', 'wireframe', 'black', 'luxury', 'dracula', 'cmyk', 'autumn', 'business', 'acid', 'lemonade', 'night', 'coffee', 'winter', 'dim', 'nord', 'sunset'], - } -} diff --git a/tools/server/webui/tsconfig.app.json b/tools/server/webui/tsconfig.app.json deleted file mode 100644 index cb24c26f36..0000000000 --- a/tools/server/webui/tsconfig.app.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", - "target": "ES2021", - "useDefineForClassFields": true, - "lib": ["ES2021", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true - }, - "include": ["src"] -} diff --git a/tools/server/webui/tsconfig.json b/tools/server/webui/tsconfig.json index 1ffef600d9..0b2d8865f4 100644 --- a/tools/server/webui/tsconfig.json +++ b/tools/server/webui/tsconfig.json @@ -1,7 +1,19 @@ { - "files": [], - "references": [ - { "path": "./tsconfig.app.json" }, - { "path": "./tsconfig.node.json" } - ] + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "bundler" + } + // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias + // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files + // + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes + // from the referenced tsconfig.json - TypeScript does not merge them in } diff --git a/tools/server/webui/tsconfig.node.json b/tools/server/webui/tsconfig.node.json deleted file mode 100644 index db0becc8b0..0000000000 --- a/tools/server/webui/tsconfig.node.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", - "target": "ES2022", - "lib": ["ES2023"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/tools/server/webui/vite.config.ts b/tools/server/webui/vite.config.ts index 910c286e0c..7f7ce3bed3 100644 --- a/tools/server/webui/vite.config.ts +++ b/tools/server/webui/vite.config.ts @@ -1,13 +1,11 @@ -import { defineConfig, PluginOption } from 'vite'; -import react from '@vitejs/plugin-react'; -import { viteSingleFile } from 'vite-plugin-singlefile'; -import path from 'node:path'; -import fs from 'node:fs'; +import tailwindcss from '@tailwindcss/vite'; +import { sveltekit } from '@sveltejs/kit/vite'; import * as fflate from 'fflate'; - -/* eslint-disable */ - -const MAX_BUNDLE_SIZE = 2 * 1024 * 1024; // only increase when absolutely necessary +import { readFileSync, writeFileSync, existsSync } from 'fs'; +import { resolve } from 'path'; +import { defineConfig } from 'vite'; +import devtoolsJson from 'vite-plugin-devtools-json'; +import { storybookTest } from '@storybook/addon-vitest/vitest-plugin'; const GUIDE_FOR_FRONTEND = ` `.trim(); -const FRONTEND_PLUGINS = [react()]; +const MAX_BUNDLE_SIZE = 2 * 1024 * 1024; -const BUILD_PLUGINS = [ - ...FRONTEND_PLUGINS, - viteSingleFile(), - (function llamaCppPlugin() { - let config: any; - return { - name: 'llamacpp:build', - apply: 'build', - async configResolved(_config: any) { - config = _config; - }, - writeBundle() { - const outputIndexHtml = path.join(config.build.outDir, 'index.html'); - let content = - GUIDE_FOR_FRONTEND + '\n' + fs.readFileSync(outputIndexHtml, 'utf-8'); - content = content.replace(/\r/g, ''); // remove windows-style line endings - const compressed = fflate.gzipSync(Buffer.from(content, 'utf-8'), { - level: 9, - }); +function llamaCppBuildPlugin() { + return { + name: 'llamacpp:build', + apply: 'build' as const, + closeBundle() { + // Ensure the SvelteKit adapter has finished writing to ../public + setTimeout(() => { + try { + const indexPath = resolve('../public/index.html'); + const gzipPath = resolve('../public/index.html.gz'); - // because gzip header contains machine-specific info, we must remove these data from the header - // timestamp - compressed[0x4] = 0; - compressed[0x5] = 0; - compressed[0x6] = 0; - compressed[0x7] = 0; - // OS - compressed[0x9] = 0; + if (!existsSync(indexPath)) { + return; + } - if (compressed.byteLength > MAX_BUNDLE_SIZE) { - throw new Error( - `Bundle size is too large (${Math.ceil(compressed.byteLength / 1024)} KB).\n` + - `Please reduce the size of the frontend or increase MAX_BUNDLE_SIZE in vite.config.js.\n` - ); - } + let content = readFileSync(indexPath, 'utf-8'); - const targetOutputFile = path.join( - config.build.outDir, - '../../public/index.html.gz' - ); - fs.writeFileSync(targetOutputFile, compressed); - }, - } satisfies PluginOption; - })(), -]; + const faviconPath = resolve('static/favicon.svg'); + if (existsSync(faviconPath)) { + const faviconContent = readFileSync(faviconPath, 'utf-8'); + const faviconBase64 = Buffer.from(faviconContent).toString('base64'); + const faviconDataUrl = `data:image/svg+xml;base64,${faviconBase64}`; + + content = content.replace(/href="[^"]*favicon\.svg"/g, `href="${faviconDataUrl}"`); + + console.log('✓ Inlined favicon.svg as base64 data URL'); + } + + content = content.replace(/\r/g, ''); + content = GUIDE_FOR_FRONTEND + '\n' + content; + + const compressed = fflate.gzipSync(Buffer.from(content, 'utf-8'), { level: 9 }); + + compressed[0x4] = 0; + compressed[0x5] = 0; + compressed[0x6] = 0; + compressed[0x7] = 0; + compressed[0x9] = 0; + + if (compressed.byteLength > MAX_BUNDLE_SIZE) { + throw new Error( + `Bundle size is too large (${Math.ceil(compressed.byteLength / 1024)} KB).\n` + + `Please reduce the size of the frontend or increase MAX_BUNDLE_SIZE in vite.config.ts.\n` + ); + } + + writeFileSync(gzipPath, compressed); + console.log('✓ Created index.html.gz'); + } catch (error) { + console.error('Failed to create gzip file:', error); + } + }, 100); + } + }; +} export default defineConfig({ - // @ts-ignore - plugins: process.env.ANALYZE ? FRONTEND_PLUGINS : BUILD_PLUGINS, - server: { - proxy: { - '/v1': 'http://localhost:8080', - '/props': 'http://localhost:8080', - }, - headers: { - 'Cross-Origin-Embedder-Policy': 'require-corp', - 'Cross-Origin-Opener-Policy': 'same-origin', - }, - }, + plugins: [tailwindcss(), sveltekit(), devtoolsJson(), llamaCppBuildPlugin()], + test: { + projects: [ + { + extends: './vite.config.ts', + test: { + name: 'client', + environment: 'browser', + browser: { + enabled: true, + provider: 'playwright', + instances: [{ browser: 'chromium' }] + }, + include: ['src/**/*.svelte.{test,spec}.{js,ts}'], + exclude: ['src/lib/server/**'], + setupFiles: ['./vitest-setup-client.ts'] + } + }, + { + extends: './vite.config.ts', + test: { + name: 'server', + environment: 'node', + include: ['src/**/*.{test,spec}.{js,ts}'], + exclude: ['src/**/*.svelte.{test,spec}.{js,ts}'] + } + }, + { + extends: './vite.config.ts', + test: { + name: 'ui', + environment: 'browser', + browser: { + enabled: true, + provider: 'playwright', + instances: [{ browser: 'chromium', headless: true }] + }, + include: ['src/**/*.stories.{js,ts,svelte}'], + setupFiles: ['./.storybook/vitest.setup.ts'] + }, + plugins: [ + storybookTest({ + storybookScript: 'pnpm run storybook --no-open' + }) + ] + } + ] + }, + server: { + proxy: { + '/v1': 'http://localhost:8080', + '/props': 'http://localhost:8080', + '/slots': 'http://localhost:8080' + }, + headers: { + 'Cross-Origin-Embedder-Policy': 'require-corp', + 'Cross-Origin-Opener-Policy': 'same-origin' + } + } }); diff --git a/tools/server/webui/vitest-setup-client.ts b/tools/server/webui/vitest-setup-client.ts new file mode 100644 index 0000000000..570b9f0e1a --- /dev/null +++ b/tools/server/webui/vitest-setup-client.ts @@ -0,0 +1,2 @@ +/// +/// From 0320ac5264279d74f8ee91bafa6c90e9ab9bbb91 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 17 Sep 2025 20:38:12 +0300 Subject: [PATCH 04/11] metal : refactor + optimize v2 (#15995) * metal : improve naming * metal : refactor device ggml-ci * cont : props ggml-ci * metal : apply ggml_mem_ranges_t ggml-ci * metal : remove GGML_METAL_USE_BF16 ggml-ci * metal : refactor device buffer ggml-ci * cont : fix naming * metal : sync before destroying the backend ggml-ci * metal : refactor context ggml-ci * metal : migrate ggml-metal.m to ggml-metal.cpp ggml-ci * metal : adjust ops API ggml-ci * metal : use C++ to store piplienes ggml-ci * metal : migrate ops to separate functions ggml-ci * metal : add ggml_metal_library_t ggml-ci * metal : improve naming ggml-ci * metal : cleanp ggml-ci * metal : add support for GGML_OP_LOG ggml-ci * metal : fix error handling ggml-ci --- ci/run.sh | 2 +- ggml/CMakeLists.txt | 1 - ggml/include/ggml-metal.h | 1 + ggml/include/ggml.h | 8 +- ggml/src/ggml-metal/CMakeLists.txt | 10 +- ggml/src/ggml-metal/ggml-metal-common.cpp | 32 +- ggml/src/ggml-metal/ggml-metal-common.h | 14 +- ggml/src/ggml-metal/ggml-metal-context.h | 33 + ggml/src/ggml-metal/ggml-metal-context.m | 575 ++ ggml/src/ggml-metal/ggml-metal-device.cpp | 1366 ++++ ggml/src/ggml-metal/ggml-metal-device.h | 226 + ggml/src/ggml-metal/ggml-metal-device.m | 1289 ++++ ggml/src/ggml-metal/ggml-metal-impl.h | 35 +- ggml/src/ggml-metal/ggml-metal-ops.cpp | 3188 ++++++++++ ggml/src/ggml-metal/ggml-metal-ops.h | 81 + ggml/src/ggml-metal/ggml-metal.cpp | 718 +++ ggml/src/ggml-metal/ggml-metal.m | 6897 --------------------- ggml/src/ggml-metal/ggml-metal.metal | 561 +- tests/test-backend-ops.cpp | 20 +- 19 files changed, 7873 insertions(+), 7184 deletions(-) create mode 100644 ggml/src/ggml-metal/ggml-metal-context.h create mode 100644 ggml/src/ggml-metal/ggml-metal-context.m create mode 100644 ggml/src/ggml-metal/ggml-metal-device.cpp create mode 100644 ggml/src/ggml-metal/ggml-metal-device.h create mode 100644 ggml/src/ggml-metal/ggml-metal-device.m create mode 100644 ggml/src/ggml-metal/ggml-metal-ops.cpp create mode 100644 ggml/src/ggml-metal/ggml-metal-ops.h create mode 100644 ggml/src/ggml-metal/ggml-metal.cpp delete mode 100644 ggml/src/ggml-metal/ggml-metal.m diff --git a/ci/run.sh b/ci/run.sh index ba099680cd..8e20b4e24d 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -45,7 +45,7 @@ SRC=`pwd` CMAKE_EXTRA="-DLLAMA_FATAL_WARNINGS=ON -DLLAMA_CURL=ON" if [ ! -z ${GG_BUILD_METAL} ]; then - CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_METAL=ON -DGGML_METAL_USE_BF16=ON" + CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_METAL=ON" fi if [ ! -z ${GG_BUILD_CUDA} ]; then diff --git a/ggml/CMakeLists.txt b/ggml/CMakeLists.txt index d06464f5eb..f4ccf273b7 100644 --- a/ggml/CMakeLists.txt +++ b/ggml/CMakeLists.txt @@ -190,7 +190,6 @@ option(GGML_WEBGPU "ggml: use WebGPU" option(GGML_WEBGPU_DEBUG "ggml: enable WebGPU debug output" OFF) option(GGML_ZDNN "ggml: use zDNN" OFF) option(GGML_METAL "ggml: use Metal" ${GGML_METAL_DEFAULT}) -option(GGML_METAL_USE_BF16 "ggml: use bfloat if available" OFF) option(GGML_METAL_NDEBUG "ggml: disable Metal debugging" OFF) option(GGML_METAL_SHADER_DEBUG "ggml: compile Metal with -fno-fast-math" OFF) option(GGML_METAL_EMBED_LIBRARY "ggml: embed Metal library" ${GGML_METAL}) diff --git a/ggml/include/ggml-metal.h b/ggml/include/ggml-metal.h index 1163438bc2..433838f0d6 100644 --- a/ggml/include/ggml-metal.h +++ b/ggml/include/ggml-metal.h @@ -39,6 +39,7 @@ extern "C" { // user-code should use only these functions // +// TODO: remove in the future GGML_BACKEND_API ggml_backend_t ggml_backend_metal_init(void); GGML_BACKEND_API bool ggml_backend_is_metal(ggml_backend_t backend); diff --git a/ggml/include/ggml.h b/ggml/include/ggml.h index b7b472c56e..36b23dc6d0 100644 --- a/ggml/include/ggml.h +++ b/ggml/include/ggml.h @@ -284,19 +284,19 @@ __host__ __device__ constexpr inline void ggml_unused_vars_impl(Args&&...) noexc // GGML_TENSOR_LOCALS(size_t, nb1, src1, nb); // #define GGML_TENSOR_LOCALS_1(type, prefix, pointer, array) \ - const type prefix##0 = (pointer)->array[0]; \ + const type prefix##0 = (pointer) ? (pointer)->array[0] : 0; \ GGML_UNUSED(prefix##0); #define GGML_TENSOR_LOCALS_2(type, prefix, pointer, array) \ GGML_TENSOR_LOCALS_1 (type, prefix, pointer, array) \ - const type prefix##1 = (pointer)->array[1]; \ + const type prefix##1 = (pointer) ? (pointer)->array[1] : 0; \ GGML_UNUSED(prefix##1); #define GGML_TENSOR_LOCALS_3(type, prefix, pointer, array) \ GGML_TENSOR_LOCALS_2 (type, prefix, pointer, array) \ - const type prefix##2 = (pointer)->array[2]; \ + const type prefix##2 = (pointer) ? (pointer)->array[2] : 0; \ GGML_UNUSED(prefix##2); #define GGML_TENSOR_LOCALS(type, prefix, pointer, array) \ GGML_TENSOR_LOCALS_3 (type, prefix, pointer, array) \ - const type prefix##3 = (pointer)->array[3]; \ + const type prefix##3 = (pointer) ? (pointer)->array[3] : 0; \ GGML_UNUSED(prefix##3); #define GGML_TENSOR_UNARY_OP_LOCALS \ diff --git a/ggml/src/ggml-metal/CMakeLists.txt b/ggml/src/ggml-metal/CMakeLists.txt index 65c131b621..63418fe143 100644 --- a/ggml/src/ggml-metal/CMakeLists.txt +++ b/ggml/src/ggml-metal/CMakeLists.txt @@ -5,8 +5,12 @@ find_library(METALKIT_FRAMEWORK MetalKit REQUIRED) message(STATUS "Metal framework found") ggml_add_backend_library(ggml-metal - ggml-metal.m + ggml-metal.cpp + ggml-metal-device.m + ggml-metal-device.cpp ggml-metal-common.cpp + ggml-metal-context.m + ggml-metal-ops.cpp ) target_link_libraries(ggml-metal PRIVATE @@ -19,10 +23,6 @@ if (GGML_METAL_NDEBUG) add_compile_definitions(GGML_METAL_NDEBUG) endif() -if (GGML_METAL_USE_BF16) - add_compile_definitions(GGML_METAL_USE_BF16) -endif() - # copy metal files to bin directory configure_file(../ggml-common.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-common.h COPYONLY) configure_file(ggml-metal.metal ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-metal.metal COPYONLY) diff --git a/ggml/src/ggml-metal/ggml-metal-common.cpp b/ggml/src/ggml-metal/ggml-metal-common.cpp index cb39e5b2ab..34d27b6324 100644 --- a/ggml/src/ggml-metal/ggml-metal-common.cpp +++ b/ggml/src/ggml-metal/ggml-metal-common.cpp @@ -22,7 +22,7 @@ struct ggml_mem_ranges { int debug = 0; }; -struct ggml_mem_ranges * ggml_mem_ranges_init(int debug) { +ggml_mem_ranges_t ggml_mem_ranges_init(int debug) { auto * res = new ggml_mem_ranges; res->ranges.reserve(256); @@ -31,15 +31,15 @@ struct ggml_mem_ranges * ggml_mem_ranges_init(int debug) { return res; } -void ggml_mem_ranges_free(ggml_mem_ranges * mrs) { +void ggml_mem_ranges_free(ggml_mem_ranges_t mrs) { delete mrs; } -void ggml_mem_ranges_reset(ggml_mem_ranges * mrs) { +void ggml_mem_ranges_reset(ggml_mem_ranges_t mrs) { mrs->ranges.clear(); } -static bool ggml_mem_ranges_add(ggml_mem_ranges * mrs, ggml_mem_range mr) { +static bool ggml_mem_ranges_add(ggml_mem_ranges_t mrs, ggml_mem_range mr) { mrs->ranges.push_back(mr); return true; @@ -87,7 +87,7 @@ static ggml_mem_range ggml_mem_range_from_tensor_dst(const ggml_tensor * tensor) return ggml_mem_range_from_tensor(tensor, MEM_RANGE_TYPE_DST); } -static bool ggml_mem_ranges_add_src(ggml_mem_ranges * mrs, const ggml_tensor * tensor) { +static bool ggml_mem_ranges_add_src(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) { GGML_ASSERT(tensor); ggml_mem_range mr = ggml_mem_range_from_tensor_src(tensor); @@ -99,7 +99,7 @@ static bool ggml_mem_ranges_add_src(ggml_mem_ranges * mrs, const ggml_tensor * t return ggml_mem_ranges_add(mrs, mr); } -static bool ggml_mem_ranges_add_dst(ggml_mem_ranges * mrs, const ggml_tensor * tensor) { +static bool ggml_mem_ranges_add_dst(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) { GGML_ASSERT(tensor); ggml_mem_range mr = ggml_mem_range_from_tensor_dst(tensor); @@ -111,7 +111,7 @@ static bool ggml_mem_ranges_add_dst(ggml_mem_ranges * mrs, const ggml_tensor * t return ggml_mem_ranges_add(mrs, mr); } -bool ggml_mem_ranges_add(ggml_mem_ranges * mrs, const ggml_tensor * tensor) { +bool ggml_mem_ranges_add(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) { for (int i = 0; i < GGML_MAX_DIMS; i++) { if (tensor->src[i]) { ggml_mem_ranges_add_src(mrs, tensor->src[i]); @@ -121,7 +121,7 @@ bool ggml_mem_ranges_add(ggml_mem_ranges * mrs, const ggml_tensor * tensor) { return ggml_mem_ranges_add_dst(mrs, tensor); } -static bool ggml_mem_ranges_check(const ggml_mem_ranges * mrs, ggml_mem_range mr) { +static bool ggml_mem_ranges_check(ggml_mem_ranges_t mrs, ggml_mem_range mr) { for (size_t i = 0; i < mrs->ranges.size(); i++) { const auto & cmp = mrs->ranges[i]; @@ -152,7 +152,7 @@ static bool ggml_mem_ranges_check(const ggml_mem_ranges * mrs, ggml_mem_range mr return true; } -static bool ggml_mem_ranges_check_src(const ggml_mem_ranges * mrs, const ggml_tensor * tensor) { +static bool ggml_mem_ranges_check_src(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) { GGML_ASSERT(tensor); ggml_mem_range mr = ggml_mem_range_from_tensor_src(tensor); @@ -162,7 +162,7 @@ static bool ggml_mem_ranges_check_src(const ggml_mem_ranges * mrs, const ggml_te return res; } -static bool ggml_mem_ranges_check_dst(const ggml_mem_ranges * mrs, const ggml_tensor * tensor) { +static bool ggml_mem_ranges_check_dst(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) { GGML_ASSERT(tensor); ggml_mem_range mr = ggml_mem_range_from_tensor_dst(tensor); @@ -172,7 +172,7 @@ static bool ggml_mem_ranges_check_dst(const ggml_mem_ranges * mrs, const ggml_te return res; } -bool ggml_mem_ranges_check(const ggml_mem_ranges * mrs, const ggml_tensor * tensor) { +bool ggml_mem_ranges_check(ggml_mem_ranges_t mrs, const ggml_tensor * tensor) { for (int i = 0; i < GGML_MAX_DIMS; i++) { if (tensor->src[i]) { if (!ggml_mem_ranges_check_src(mrs, tensor->src[i])) { @@ -222,7 +222,7 @@ struct node_info { static std::vector ggml_metal_graph_optimize_reorder(const std::vector & nodes) { // helper to add node src and dst ranges - const auto & h_add = [](ggml_mem_ranges * mrs, const node_info & node) { + const auto & h_add = [](ggml_mem_ranges_t mrs, const node_info & node) { for (int i = 0; i < GGML_MAX_SRC; i++) { if (node.node->src[i]) { if (!ggml_mem_ranges_add_src(mrs, node.node->src[i])) { @@ -246,7 +246,7 @@ static std::vector ggml_metal_graph_optimize_reorder(const std::vectorsrc[i]) { if (!ggml_mem_ranges_check_src(mrs, node.node->src[i])) { @@ -301,10 +301,10 @@ static std::vector ggml_metal_graph_optimize_reorder(const std::vector used(n, false); // the memory ranges for the set of currently concurrent nodes - ggml_mem_ranges * mrs0 = ggml_mem_ranges_init(0); + ggml_mem_ranges_t mrs0 = ggml_mem_ranges_init(0); // the memory ranges for the set of nodes that haven't been processed yet, when looking forward for a node to reorder - ggml_mem_ranges * mrs1 = ggml_mem_ranges_init(0); + ggml_mem_ranges_t mrs1 = ggml_mem_ranges_init(0); for (int i0 = 0; i0 < n; i0++) { if (used[i0]) { @@ -375,7 +375,7 @@ static std::vector ggml_metal_graph_optimize_reorder(const std::vectorn_nodes; diff --git a/ggml/src/ggml-metal/ggml-metal-common.h b/ggml/src/ggml-metal/ggml-metal-common.h index c1402895b9..3acbc6ae17 100644 --- a/ggml/src/ggml-metal/ggml-metal-common.h +++ b/ggml/src/ggml-metal/ggml-metal-common.h @@ -25,27 +25,27 @@ enum ggml_mem_range_type { // can be added to the set without violating the constraints (i.e. if it can be executed concurrently with the // tasks already in the set) // -struct ggml_mem_ranges; +typedef struct ggml_mem_ranges * ggml_mem_ranges_t; -struct ggml_mem_ranges * ggml_mem_ranges_init(int debug); -void ggml_mem_ranges_free(struct ggml_mem_ranges * mrs); +ggml_mem_ranges_t ggml_mem_ranges_init(int debug); +void ggml_mem_ranges_free(ggml_mem_ranges_t mrs); // remove all ranges from the set -void ggml_mem_ranges_reset(struct ggml_mem_ranges * mrs); +void ggml_mem_ranges_reset(ggml_mem_ranges_t mrs); // add src or dst ranges to track -bool ggml_mem_ranges_add(struct ggml_mem_ranges * mrs, const struct ggml_tensor * tensor); +bool ggml_mem_ranges_add(ggml_mem_ranges_t mrs, const struct ggml_tensor * tensor); // return false if: // - new src range overlaps with any existing dst range // - new dst range overlaps with any existing range (src or dst) -bool ggml_mem_ranges_check(const struct ggml_mem_ranges * mrs, const struct ggml_tensor * tensor); +bool ggml_mem_ranges_check(ggml_mem_ranges_t mrs, const struct ggml_tensor * tensor); // reorder the nodes in the graph to improve concurrency, while respecting fusion // // note: this implementation is generic and not specific to metal // if it proves to work well, we can start using it for other backends in the future -void ggml_metal_graph_optimize(struct ggml_cgraph * gf); +void ggml_graph_optimize(struct ggml_cgraph * gf); #ifdef __cplusplus } diff --git a/ggml/src/ggml-metal/ggml-metal-context.h b/ggml/src/ggml-metal/ggml-metal-context.h new file mode 100644 index 0000000000..ec2b686b73 --- /dev/null +++ b/ggml/src/ggml-metal/ggml-metal-context.h @@ -0,0 +1,33 @@ +#pragma once + +#include "ggml-metal-device.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// +// backend context +// + +typedef struct ggml_metal * ggml_metal_t; + +ggml_metal_t ggml_metal_init(ggml_metal_device_t dev); +void ggml_metal_free(ggml_metal_t ctx); + +void ggml_metal_synchronize(ggml_metal_t ctx); + +void ggml_metal_set_tensor_async(ggml_metal_t ctx, struct ggml_tensor * tensor, const void * data, size_t offset, size_t size); +void ggml_metal_get_tensor_async(ggml_metal_t ctx, const struct ggml_tensor * tensor, void * data, size_t offset, size_t size); + +enum ggml_status ggml_metal_graph_compute (ggml_metal_t ctx, struct ggml_cgraph * gf); +void ggml_metal_graph_optimize(ggml_metal_t ctx, struct ggml_cgraph * gf); + +void ggml_metal_set_n_cb (ggml_metal_t ctx, int n_cb); +void ggml_metal_set_abort_callback (ggml_metal_t ctx, ggml_abort_callback abort_callback, void * user_data); +bool ggml_metal_supports_family (ggml_metal_t ctx, int family); +void ggml_metal_capture_next_compute(ggml_metal_t ctx); + +#ifdef __cplusplus +} +#endif diff --git a/ggml/src/ggml-metal/ggml-metal-context.m b/ggml/src/ggml-metal/ggml-metal-context.m new file mode 100644 index 0000000000..af9ff21436 --- /dev/null +++ b/ggml/src/ggml-metal/ggml-metal-context.m @@ -0,0 +1,575 @@ +#import "ggml-metal-context.h" + +#import "ggml-impl.h" +#import "ggml-backend-impl.h" + +#import "ggml-metal-impl.h" +#import "ggml-metal-common.h" +#import "ggml-metal-ops.h" + +#import + +#import + +#undef MIN +#undef MAX +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) + +// max number of MTLCommandBuffer used to submit a graph for processing +#define GGML_METAL_MAX_COMMAND_BUFFERS 8 + +struct ggml_metal_command_buffer { + id obj; +}; + +struct ggml_metal { + id device; + id queue; // currently a pointer to the device queue, but might become separate queue [TAG_QUEUE_PER_BACKEND] + + ggml_metal_device_t dev; + ggml_metal_library_t lib; + + dispatch_queue_t d_queue; + + // additional, inference-time compiled pipelines + ggml_metal_pipelines_t pipelines_ext; + + bool use_bfloat; + bool use_fusion; + bool use_concurrency; + bool use_graph_optimize; + + int debug_graph; + int debug_fusion; + + // how many times a given op was fused + uint64_t fuse_cnt[GGML_OP_COUNT]; + + // capture state + bool capture_next_compute; + bool capture_started; + + id capture_scope; + + // command buffer state + int n_cb; // number of extra threads used to submit the command buffers + int n_nodes_0; // number of nodes submitted by the main thread + int n_nodes_1; // remaining number of nodes submitted by the n_cb threads + int n_nodes_per_cb; + + struct ggml_cgraph * gf; + + // the callback given to the thread pool + void (^encode_async)(size_t ith); + + // n_cb command buffers + 1 used by the main thread + struct ggml_metal_command_buffer cmd_bufs[GGML_METAL_MAX_COMMAND_BUFFERS + 1]; + + // extra command buffers for things like getting, setting and copying tensors + NSMutableArray * cmd_bufs_ext; + + // the last command buffer queued into the Metal queue with operations relevant to the current Metal backend + id cmd_buf_last; + + // abort ggml_metal_graph_compute if callback returns true + ggml_abort_callback abort_callback; + void * abort_callback_data; +}; + +ggml_metal_t ggml_metal_init(ggml_metal_device_t dev) { + GGML_LOG_INFO("%s: allocating\n", __func__); + +#if TARGET_OS_OSX && !GGML_METAL_NDEBUG + // Show all the Metal device instances in the system + NSArray * devices = MTLCopyAllDevices(); + for (id device in devices) { + GGML_LOG_INFO("%s: found device: %s\n", __func__, [[device name] UTF8String]); + } + [devices release]; // since it was created by a *Copy* C method +#endif + + // init context + ggml_metal_t res = calloc(1, sizeof(struct ggml_metal)); + + res->device = ggml_metal_device_get_obj(dev); + + GGML_LOG_INFO("%s: picking default device: %s\n", __func__, [[res->device name] UTF8String]); + + // TODO: would it be better to have one queue for the backend and one queue for the device? + // the graph encoders and async ops would use the backend queue while the sync ops would use the device queue? + //res->queue = [device newCommandQueue]; [TAG_QUEUE_PER_BACKEND] + res->queue = ggml_metal_device_get_queue(dev); + if (res->queue == nil) { + GGML_LOG_ERROR("%s: error: failed to create command queue\n", __func__); + return NULL; + } + + res->dev = dev; + res->lib = ggml_metal_device_get_library(dev); + if (res->lib == NULL) { + GGML_LOG_WARN("%s: the device does not have a precompiled Metal library - this is unexpected\n", __func__); + GGML_LOG_WARN("%s: will try to compile it on the fly\n", __func__); + + res->lib = ggml_metal_library_init(dev); + if (res->lib == NULL) { + GGML_LOG_ERROR("%s: error: failed to initialize the Metal library\n", __func__); + + free(res); + + return NULL; + } + } + + const struct ggml_metal_device_props * props_dev = ggml_metal_device_get_props(dev); + + res->d_queue = dispatch_queue_create("ggml-metal", DISPATCH_QUEUE_CONCURRENT); + + res->use_bfloat = props_dev->has_bfloat; + res->use_fusion = getenv("GGML_METAL_FUSION_DISABLE") == nil; + res->use_concurrency = getenv("GGML_METAL_CONCURRENCY_DISABLE") == nil; + + { + const char * val = getenv("GGML_METAL_GRAPH_DEBUG"); + res->debug_graph = val ? atoi(val) : 0; + } + + { + const char * val = getenv("GGML_METAL_FUSION_DEBUG"); + res->debug_fusion = val ? atoi(val) : 0; + } + + res->use_graph_optimize = true; + + if (getenv("GGML_METAL_GRAPH_OPTIMIZE_DISABLE") != NULL) { + res->use_graph_optimize = false; + } + + memset(res->fuse_cnt, 0, sizeof(res->fuse_cnt)); + + GGML_LOG_INFO("%s: use bfloat = %s\n", __func__, res->use_bfloat ? "true" : "false"); + GGML_LOG_INFO("%s: use fusion = %s\n", __func__, res->use_fusion ? "true" : "false"); + GGML_LOG_INFO("%s: use concurrency = %s\n", __func__, res->use_concurrency ? "true" : "false"); + GGML_LOG_INFO("%s: use graph optimize = %s\n", __func__, res->use_graph_optimize ? "true" : "false"); + + res->capture_next_compute = false; + res->capture_started = false; + res->capture_scope = nil; + + res->gf = nil; + res->encode_async = nil; + for (int i = 0; i < GGML_METAL_MAX_COMMAND_BUFFERS; ++i) { + res->cmd_bufs[i].obj = nil; + } + + res->cmd_bufs_ext = [[NSMutableArray alloc] init]; + + res->cmd_buf_last = nil; + + res->pipelines_ext = ggml_metal_pipelines_init(); + + return res; +} + +void ggml_metal_free(ggml_metal_t ctx) { + GGML_LOG_INFO("%s: deallocating\n", __func__); + + for (int i = 0; i < GGML_METAL_MAX_COMMAND_BUFFERS; ++i) { + if (ctx->cmd_bufs[i].obj) { + [ctx->cmd_bufs[i].obj release]; + } + } + + for (int i = 0; i < (int) ctx->cmd_bufs_ext.count; ++i) { + if (ctx->cmd_bufs_ext[i]) { + [ctx->cmd_bufs_ext[i] release]; + } + } + + [ctx->cmd_bufs_ext removeAllObjects]; + [ctx->cmd_bufs_ext release]; + + if (ctx->pipelines_ext) { + ggml_metal_pipelines_free(ctx->pipelines_ext); + ctx->pipelines_ext = nil; + } + + if (ctx->debug_fusion > 0) { + GGML_LOG_DEBUG("%s: fusion stats:\n", __func__); + for (int i = 0; i < GGML_OP_COUNT; i++) { + if (ctx->fuse_cnt[i] == 0) { + continue; + } + + // note: cannot use ggml_log here + GGML_LOG_DEBUG("%s: - %s: %" PRIu64 "\n", __func__, ggml_op_name((enum ggml_op) i), ctx->fuse_cnt[i]); + } + } + + Block_release(ctx->encode_async); + + //[ctx->queue release]; // [TAG_QUEUE_PER_BACKEND] + + dispatch_release(ctx->d_queue); + + free(ctx); +} + +void ggml_metal_synchronize(ggml_metal_t ctx) { + // wait for any backend operations to finish + if (ctx->cmd_buf_last) { + [ctx->cmd_buf_last waitUntilCompleted]; + ctx->cmd_buf_last = nil; + } + + // release any completed command buffers + if (ctx->cmd_bufs_ext.count > 0) { + for (size_t i = 0; i < ctx->cmd_bufs_ext.count; ++i) { + id cmd_buf = ctx->cmd_bufs_ext[i]; + + MTLCommandBufferStatus status = [cmd_buf status]; + if (status != MTLCommandBufferStatusCompleted) { + GGML_LOG_ERROR("%s: error: command buffer %d failed with status %d\n", __func__, (int) i, (int) status); + if (status == MTLCommandBufferStatusError) { + GGML_LOG_ERROR("error: %s\n", [[cmd_buf error].localizedDescription UTF8String]); + } + GGML_ABORT("fatal error"); + } + + [cmd_buf release]; + } + + [ctx->cmd_bufs_ext removeAllObjects]; + } +} + +static struct ggml_metal_buffer_id ggml_metal_get_buffer_id(const struct ggml_tensor * t) { + if (!t) { + return (struct ggml_metal_buffer_id) { nil, 0 }; + } + + ggml_backend_buffer_t buffer = t->view_src ? t->view_src->buffer : t->buffer; + + return ggml_metal_buffer_get_id(buffer->context, t); +} + +void ggml_metal_set_tensor_async(ggml_metal_t ctx, struct ggml_tensor * tensor, const void * data, size_t offset, size_t size) { + @autoreleasepool { + // wrap the source data into a Metal buffer + id buf_src = [ctx->device newBufferWithBytes:data + length:size + options:MTLResourceStorageModeShared]; + + struct ggml_metal_buffer_id bid_dst = ggml_metal_get_buffer_id(tensor); + if (bid_dst.metal == nil) { + GGML_ABORT("%s: failed to find buffer for tensor '%s'\n", __func__, tensor->name); + } + + bid_dst.offs += offset; + + // queue the copy operation into the queue of the Metal context + // this will be queued at the end, after any currently ongoing GPU operations + id cmd_buf = [ctx->queue commandBufferWithUnretainedReferences]; + id encoder = [cmd_buf blitCommandEncoder]; + + [encoder copyFromBuffer:buf_src + sourceOffset:0 + toBuffer:bid_dst.metal + destinationOffset:bid_dst.offs + size:size]; + + [encoder endEncoding]; + [cmd_buf commit]; + + // do not wait here for completion + //[cmd_buf waitUntilCompleted]; + + // instead, remember a reference to the command buffer and wait for it later if needed + [ctx->cmd_bufs_ext addObject:cmd_buf]; + ctx->cmd_buf_last = cmd_buf; + + [cmd_buf retain]; + } +} + +void ggml_metal_get_tensor_async(ggml_metal_t ctx, const struct ggml_tensor * tensor, void * data, size_t offset, size_t size) { + @autoreleasepool { + id buf_dst = [ctx->device newBufferWithBytesNoCopy:data + length:size + options:MTLResourceStorageModeShared + deallocator:nil]; + + struct ggml_metal_buffer_id bid_src = ggml_metal_get_buffer_id(tensor); + if (bid_src.metal == nil) { + GGML_ABORT("%s: failed to find buffer for tensor '%s'\n", __func__, tensor->name); + } + + bid_src.offs += offset; + + // queue the copy operation into the queue of the Metal context + // this will be queued at the end, after any currently ongoing GPU operations + id cmd_buf = [ctx->queue commandBufferWithUnretainedReferences]; + id encoder = [cmd_buf blitCommandEncoder]; + + [encoder copyFromBuffer:bid_src.metal + sourceOffset:bid_src.offs + toBuffer:buf_dst + destinationOffset:0 + size:size]; + + [encoder endEncoding]; + [cmd_buf commit]; + + // do not wait here for completion + //[cmd_buf waitUntilCompleted]; + + // instead, remember a reference to the command buffer and wait for it later if needed + [ctx->cmd_bufs_ext addObject:cmd_buf]; + ctx->cmd_buf_last = cmd_buf; + + [cmd_buf retain]; + } +} + +enum ggml_status ggml_metal_graph_compute(ggml_metal_t ctx, struct ggml_cgraph * gf) { + // number of nodes encoded by the main thread (empirically determined) + const int n_main = 64; + + // number of threads in addition to the main thread + const int n_cb = ctx->n_cb; + + // submit the ggml compute graph to the GPU by creating command buffers and encoding the ops in them + // the first n_nodes_0 are encoded and submitted for processing directly by the calling thread + // while these nodes are processing, we start n_cb threads to enqueue the rest of the nodes + // each thread creates it's own command buffer and enqueues the ops in parallel + // + // tests on M1 Pro and M2 Ultra using LLaMA models, show that optimal values for n_cb are 1 or 2 + + @autoreleasepool { + ctx->gf = gf; + + ctx->n_nodes_0 = MIN(n_main, gf->n_nodes); + ctx->n_nodes_1 = gf->n_nodes - ctx->n_nodes_0; + + ctx->n_nodes_per_cb = (ctx->n_nodes_1 + ctx->n_cb - 1) / ctx->n_cb; + + const bool use_capture = ctx->capture_next_compute; + if (use_capture) { + ctx->capture_next_compute = false; + + // make sure all previous computations have finished before starting the capture + if (ctx->cmd_buf_last) { + [ctx->cmd_buf_last waitUntilCompleted]; + ctx->cmd_buf_last = nil; + } + + if (!ctx->capture_started) { + // create capture scope + ctx->capture_scope = [[MTLCaptureManager sharedCaptureManager] newCaptureScopeWithDevice:ctx->device]; + + MTLCaptureDescriptor * descriptor = [MTLCaptureDescriptor new]; + descriptor.captureObject = ctx->capture_scope; + descriptor.destination = MTLCaptureDestinationGPUTraceDocument; + descriptor.outputURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"/tmp/perf-metal.gputrace"]]; + + NSError * error = nil; + if (![[MTLCaptureManager sharedCaptureManager] startCaptureWithDescriptor:descriptor error:&error]) { + GGML_LOG_ERROR("%s: error: unable to start capture '%s'\n", __func__, [[error localizedDescription] UTF8String]); + } else { + [ctx->capture_scope beginScope]; + ctx->capture_started = true; + } + } + } + + // the main thread commits the first few commands immediately + // cmd_buf[n_cb] + { + id cmd_buf = [ctx->queue commandBufferWithUnretainedReferences]; + [cmd_buf retain]; + + if (ctx->cmd_bufs[n_cb].obj) { + [ctx->cmd_bufs[n_cb].obj release]; + } + ctx->cmd_bufs[n_cb].obj = cmd_buf; + + [cmd_buf enqueue]; + + ctx->encode_async(n_cb); + } + + // remember the command buffer for the next iteration + ctx->cmd_buf_last = ctx->cmd_bufs[n_cb].obj; + + // prepare the rest of the command buffers asynchronously (optional) + // cmd_buf[0.. n_cb) + for (int cb_idx = 0; cb_idx < n_cb; ++cb_idx) { + id cmd_buf = [ctx->queue commandBufferWithUnretainedReferences]; + [cmd_buf retain]; + + if (ctx->cmd_bufs[cb_idx].obj) { + [ctx->cmd_bufs[cb_idx].obj release]; + } + ctx->cmd_bufs[cb_idx].obj = cmd_buf; + + // always enqueue the first two command buffers + // enqueue all of the command buffers if we don't need to abort + if (cb_idx < 2 || ctx->abort_callback == NULL) { + [cmd_buf enqueue]; + + // update the pointer to the last queued command buffer + // this is needed to implement synchronize() + ctx->cmd_buf_last = cmd_buf; + } + } + + dispatch_apply(n_cb, ctx->d_queue, ctx->encode_async); + + // for debugging: block until graph is computed + //[ctx->cmd_buf_last waitUntilCompleted]; + + // enter here only when capturing in order to wait for all computation to finish + // otherwise, we leave the graph to compute asynchronously + if (!use_capture && ctx->capture_started) { + // wait for completion and check status of each command buffer + // needed to detect if the device ran out-of-memory for example (#1881) + { + id cmd_buf = ctx->cmd_bufs[n_cb].obj; + [cmd_buf waitUntilCompleted]; + + MTLCommandBufferStatus status = [cmd_buf status]; + if (status != MTLCommandBufferStatusCompleted) { + GGML_LOG_INFO("%s: command buffer %d failed with status %lu\n", __func__, n_cb, status); + if (status == MTLCommandBufferStatusError) { + GGML_LOG_INFO("error: %s\n", [[cmd_buf error].localizedDescription UTF8String]); + } + + return GGML_STATUS_FAILED; + } + } + + for (int i = 0; i < n_cb; ++i) { + id cmd_buf = ctx->cmd_bufs[i].obj; + [cmd_buf waitUntilCompleted]; + + MTLCommandBufferStatus status = [cmd_buf status]; + if (status != MTLCommandBufferStatusCompleted) { + GGML_LOG_INFO("%s: command buffer %d failed with status %lu\n", __func__, i, status); + if (status == MTLCommandBufferStatusError) { + GGML_LOG_INFO("error: %s\n", [[cmd_buf error].localizedDescription UTF8String]); + } + + return GGML_STATUS_FAILED; + } + + id next_buffer = (i + 1 < n_cb ? ctx->cmd_bufs[i + 1].obj : nil); + if (!next_buffer) { + continue; + } + + const bool next_queued = ([next_buffer status] != MTLCommandBufferStatusNotEnqueued); + if (next_queued) { + continue; + } + + if (ctx->abort_callback && ctx->abort_callback(ctx->abort_callback_data)) { + GGML_LOG_INFO("%s: command buffer %d aborted", __func__, i); + return GGML_STATUS_ABORTED; + } + + [next_buffer commit]; + } + + [ctx->capture_scope endScope]; + [[MTLCaptureManager sharedCaptureManager] stopCapture]; + } + } + + return GGML_STATUS_SUCCESS; +} + +void ggml_metal_graph_optimize(ggml_metal_t ctx, struct ggml_cgraph * gf) { + //const int64_t t_start = ggml_time_us(); + + if (ctx->use_graph_optimize) { + ggml_graph_optimize(gf); + } + + //printf("%s: graph optimize took %.3f ms\n", __func__, (ggml_time_us() - t_start) / 1000.0); +} + +void ggml_metal_set_n_cb(ggml_metal_t ctx, int n_cb) { + if (ctx->n_cb != n_cb) { + ctx->n_cb = MIN(n_cb, GGML_METAL_MAX_COMMAND_BUFFERS); + + if (ctx->n_cb > 2) { + GGML_LOG_WARN("%s: n_cb = %d, using n_cb > 2 is not recommended and can degrade the performance in some cases\n", __func__, n_cb); + } + } + + if (ctx->encode_async) { + Block_release(ctx->encode_async); + } + + ctx->encode_async = Block_copy(^(size_t iter) { + const int cb_idx = iter; + const int n_cb_l = ctx->n_cb; + + const int n_nodes_0 = ctx->n_nodes_0; + const int n_nodes_1 = ctx->n_nodes_1; + + const int n_nodes_per_cb = ctx->n_nodes_per_cb; + + int idx_start = 0; + int idx_end = n_nodes_0; + + if (cb_idx < n_cb_l) { + idx_start = n_nodes_0 + ( (cb_idx + 0) * n_nodes_per_cb); + idx_end = n_nodes_0 + (MIN((cb_idx == n_cb_l - 1) ? n_nodes_1 : (cb_idx + 1) * n_nodes_per_cb, n_nodes_1)); + } + + id cmd_buf = ctx->cmd_bufs[cb_idx].obj; + + ggml_metal_op_t ctx_op = ggml_metal_op_init( + ctx->dev, + cmd_buf, + ctx->gf, + idx_start, + idx_end, + ctx->use_fusion, + ctx->use_concurrency, + ctx->capture_next_compute, + ctx->debug_graph, + ctx->debug_fusion); + + for (int idx = idx_start; idx < idx_end;) { + const int res = ggml_metal_op_encode(ctx_op, idx); + if (res == 0) { + break; + } + + idx += res; + } + + ggml_metal_op_free(ctx_op); + + if (cb_idx < 2 || ctx->abort_callback == NULL) { + [cmd_buf commit]; + } + }); +} + +void ggml_metal_set_abort_callback(ggml_metal_t ctx, ggml_abort_callback abort_callback, void * user_data) { + ctx->abort_callback = abort_callback; + ctx->abort_callback_data = user_data; +} + +bool ggml_metal_supports_family(ggml_metal_t ctx, int family) { + GGML_ASSERT(ctx->device != nil); + + return [ctx->device supportsFamily:(MTLGPUFamilyApple1 + family - 1)]; +} + +void ggml_metal_capture_next_compute(ggml_metal_t ctx) { + ctx->capture_next_compute = true; +} diff --git a/ggml/src/ggml-metal/ggml-metal-device.cpp b/ggml/src/ggml-metal/ggml-metal-device.cpp new file mode 100644 index 0000000000..5f04789967 --- /dev/null +++ b/ggml/src/ggml-metal/ggml-metal-device.cpp @@ -0,0 +1,1366 @@ +#include "ggml-metal-device.h" + +#include "ggml-metal-impl.h" + +#include "ggml-impl.h" + +#include +#include +#include +#include + +struct ggml_metal_device_deleter { + void operator()(ggml_metal_device_t ctx) { + ggml_metal_device_free(ctx); + } +}; + +typedef std::unique_ptr ggml_metal_device_ptr; + +ggml_metal_device_t ggml_metal_device_get(void) { + static ggml_metal_device_ptr ctx { ggml_metal_device_init() }; + + return ctx.get(); +} + +struct ggml_metal_pipelines { + std::unordered_map data; +}; + +ggml_metal_pipelines_t ggml_metal_pipelines_init(void) { + ggml_metal_pipelines_t res = new ggml_metal_pipelines(); + + return res; +} + +void ggml_metal_pipelines_free(ggml_metal_pipelines_t ppls) { + for (auto it = ppls->data.begin(); it != ppls->data.end(); ++it) { + ggml_metal_pipeline_free(it->second); + } + + delete ppls; +} + +void ggml_metal_pipelines_add(ggml_metal_pipelines_t ppls, const char * name, ggml_metal_pipeline_t pipeline) { + ppls->data[name] = pipeline; +} + +ggml_metal_pipeline_t ggml_metal_pipelines_get(ggml_metal_pipelines_t ppls, const char * name) { + if (ppls->data.find(name) == ppls->data.end()) { + return nullptr; + } + + return ppls->data[name]; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_base(ggml_metal_library_t lib, ggml_op op) { + char base[256]; + char name[256]; + + const char * op_str = "undefined"; + switch (op) { + case GGML_OP_ADD_ID: op_str = "add_id"; break; + case GGML_OP_CONCAT: op_str = "concat"; break; + default: GGML_ABORT("fatal error"); + }; + + snprintf(base, 256, "kernel_%s", op_str); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_cpy(ggml_metal_library_t lib, ggml_type tsrc, ggml_type tdst) { + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_cpy_%s_%s", ggml_type_name(tsrc), ggml_type_name(tdst)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_pool_2d(ggml_metal_library_t lib, const ggml_tensor * op, ggml_op_pool op_pool) { + GGML_ASSERT(ggml_is_contiguous(op->src[0])); + GGML_ASSERT(op->src[0]->type == GGML_TYPE_F32 && op->src[0]->type == op->type); + + const char * pool_str = "undefined"; + switch (op_pool) { + case GGML_OP_POOL_AVG: pool_str = "avg"; break; + case GGML_OP_POOL_MAX: pool_str = "max"; break; + default: GGML_ASSERT(false && "not implemented"); + }; + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_pool_2d_%s_%s", pool_str, ggml_type_name(op->src[0]->type)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_get_rows(ggml_metal_library_t lib, ggml_type tsrc) { + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_get_rows_%s", ggml_type_name(tsrc)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_set_rows(ggml_metal_library_t lib, ggml_type tdst) { + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_set_rows_%s", ggml_type_name(tdst)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_repeat(ggml_metal_library_t lib, ggml_type tsrc) { + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_repeat_%s", ggml_type_name(tsrc)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_unary(ggml_metal_library_t lib, const ggml_tensor * op) { + GGML_ASSERT(ggml_is_contiguous(op->src[0])); + + char base[256]; + char name[256]; + + const int64_t n = ggml_nelements(op); + + const char * op_str = "undefined"; + switch (op->op) { + case GGML_OP_SCALE: op_str = "scale"; break; + case GGML_OP_CLAMP: op_str = "clamp"; break; + case GGML_OP_SQR: op_str = "sqr"; break; + case GGML_OP_SQRT: op_str = "sqrt"; break; + case GGML_OP_SIN: op_str = "sin"; break; + case GGML_OP_COS: op_str = "cos"; break; + case GGML_OP_LOG: op_str = "log"; break; + case GGML_OP_LEAKY_RELU: op_str = "leaky_relu"; break; + case GGML_OP_UNARY: + switch (ggml_get_unary_op(op)) { + case GGML_UNARY_OP_TANH: op_str = "tanh"; break; + case GGML_UNARY_OP_RELU: op_str = "relu"; break; + case GGML_UNARY_OP_SIGMOID: op_str = "sigmoid"; break; + case GGML_UNARY_OP_GELU: op_str = "gelu"; break; + case GGML_UNARY_OP_GELU_ERF: op_str = "gelu_erf"; break; + case GGML_UNARY_OP_GELU_QUICK: op_str = "gelu_quick"; break; + case GGML_UNARY_OP_SILU: op_str = "silu"; break; + case GGML_UNARY_OP_ELU: op_str = "elu"; break; + case GGML_UNARY_OP_NEG: op_str = "neg"; break; + case GGML_UNARY_OP_ABS: op_str = "abs"; break; + case GGML_UNARY_OP_SGN: op_str = "sgn"; break; + case GGML_UNARY_OP_STEP: op_str = "step"; break; + case GGML_UNARY_OP_HARDSWISH: op_str = "hardswish"; break; + case GGML_UNARY_OP_HARDSIGMOID: op_str = "hardsigmoid"; break; + case GGML_UNARY_OP_EXP: op_str = "exp"; break; + default: GGML_ABORT("fatal error"); + } break; + default: GGML_ABORT("fatal error"); + }; + + const char * suffix = ""; + if (n % 4 == 0) { + suffix = "_4"; + } + + snprintf(base, 256, "kernel_%s_%s%s", op_str, ggml_type_name(op->src[0]->type), suffix); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_glu(ggml_metal_library_t lib, const ggml_tensor * op) { + GGML_ASSERT(ggml_is_contiguous_1(op->src[0])); + + char base[256]; + char name[256]; + + const char * op_str = "undefined"; + switch (op->op) { + case GGML_OP_GLU: + switch (ggml_get_glu_op(op)) { + case GGML_GLU_OP_REGLU: op_str = "reglu"; break; + case GGML_GLU_OP_GEGLU: op_str = "geglu"; break; + case GGML_GLU_OP_SWIGLU: op_str = "swiglu"; break; + case GGML_GLU_OP_SWIGLU_OAI: op_str = "swiglu_oai"; break; + case GGML_GLU_OP_GEGLU_ERF: op_str = "geglu_erf"; break; + case GGML_GLU_OP_GEGLU_QUICK: op_str = "geglu_quick"; break; + default: GGML_ABORT("fatal error"); + } break; + default: GGML_ABORT("fatal error"); + }; + + snprintf(base, 256, "kernel_%s_%s", op_str, ggml_type_name(op->src[0]->type)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_sum_rows(ggml_metal_library_t lib, const ggml_tensor * op) { + GGML_ASSERT(op->src[0]->nb[0] == ggml_type_size(op->src[0]->type)); + + char base[256]; + char name[256]; + + const char * op_str = "undefined"; + switch (op->op) { + case GGML_OP_SUM_ROWS: + op_str = "sum_rows"; break; + case GGML_OP_MEAN: + op_str = "mean"; break; + default: GGML_ABORT("fatal error"); + }; + + snprintf(base, 256, "kernel_%s_%s", op_str, ggml_type_name(op->src[0]->type)); + + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_smem(res, 32*sizeof(float)); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_soft_max(ggml_metal_library_t lib, const ggml_tensor * op) { + GGML_ASSERT(!op->src[1] || op->src[1]->type == GGML_TYPE_F16 || op->src[1]->type == GGML_TYPE_F32); + + char base[256]; + char name[256]; + + const char * suffix = ""; + + if (op->src[0]->ne[0] % 4 == 0) { + suffix = "_4"; + } + + const ggml_type tsrc1 = op->src[1] ? op->src[1]->type : GGML_TYPE_F32; + + snprintf(base, 256, "kernel_soft_max_%s%s", ggml_type_name(tsrc1), suffix); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_smem(res, 32*sizeof(float)); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_ssm_conv(ggml_metal_library_t lib, const ggml_tensor * op) { + GGML_ASSERT(op->src[0]->type == GGML_TYPE_F32); + GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); + + GGML_ASSERT(ggml_is_contiguous(op->src[0])); + GGML_ASSERT(ggml_is_contiguous(op->src[1])); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_ssm_conv_%s_%s", ggml_type_name(op->src[0]->type), ggml_type_name(op->src[1]->type)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_ssm_scan(ggml_metal_library_t lib, const ggml_tensor * op) { + char base[256]; + char name[256]; + + if (op->src[3]->ne[0] == 1) { + snprintf(base, 256, "kernel_ssm_scan_group_%s", ggml_type_name(op->src[0]->type)); + } else { + snprintf(base, 256, "kernel_ssm_scan_%s", ggml_type_name(op->src[0]->type)); + } + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_smem(res, 32*sizeof(float)); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_rwkv(ggml_metal_library_t lib, const ggml_tensor * op) { + char base[256]; + char name[256]; + + const int64_t C = op->ne[0]; + const int64_t H = op->src[0]->ne[1]; + + switch (op->op) { + case GGML_OP_RWKV_WKV6: + { + GGML_ASSERT(op->src[5]->type == GGML_TYPE_F32); + GGML_ASSERT(C % H == 0); + GGML_ASSERT(C / H == 64); + + snprintf(base, 256, "kernel_rwkv_wkv6_%s", ggml_type_name(op->src[0]->type)); + } break; + case GGML_OP_RWKV_WKV7: + { + GGML_ASSERT(op->src[6]->type == GGML_TYPE_F32); + GGML_ASSERT(C % H == 0); + GGML_ASSERT(C / H == 64); + + snprintf(base, 256, "kernel_rwkv_wkv7_%s", ggml_type_name(op->src[0]->type)); + } break; + default: + GGML_ABORT("fatal error"); + } + + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mv_ext(ggml_metal_library_t lib, ggml_type tsrc0, ggml_type tsrc1, int r1ptg) { + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_mul_mv_ext_%s_%s_r1_%d", ggml_type_name(tsrc0), ggml_type_name(tsrc1), r1ptg); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mm(ggml_metal_library_t lib, ggml_type tsrc0, ggml_type tsrc1) { + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_mul_mm_%s_%s", ggml_type_name(tsrc0), ggml_type_name(tsrc1)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_smem(res, 8192); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mv(ggml_metal_library_t lib, const ggml_tensor * op) { + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + + char base[256]; + char name[256]; + + int nsg = 0; // number of simdgroups + int nr0 = 0; // number of src0 rows per simdgroup + int nr1 = 1; // number of src1 rows per threadgroup + + size_t smem = 0; // shared memory + + const ggml_type tsrc0 = op->src[0]->type; + const ggml_type tsrc1 = op->src[1]->type; + + const char * suffix = ""; + + // use custom matrix x vector kernel + switch (tsrc0) { + case GGML_TYPE_F32: + { + GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); + + nsg = 1; + nr0 = 1; + nr1 = 4; + if (ne00 == 4) { + nr0 = 32; + suffix = "_c4"; + } + } break; + case GGML_TYPE_F16: + case GGML_TYPE_BF16: + { + nsg = 1; + nr0 = 1; + if (op->src[1]->type == GGML_TYPE_F32) { + if (ne00 == 4) { + nr0 = 32; + nr1 = 4; + suffix = "_c4"; + } else if (ne11 * ne12 < 4) { + suffix = "_1row"; + } else if (ne00 >= 128 && ne01 >= 8 && ne00%4 == 0) { + suffix = "_l4"; + nr1 = ne11; + } else { + nr1 = 4; + } + } else { + nr1 = 4; + } + } break; + case GGML_TYPE_Q4_0: + { + nsg = N_SG_Q4_0; + nr0 = N_R0_Q4_0; + } break; + case GGML_TYPE_Q4_1: + { + nsg = N_SG_Q4_1; + nr0 = N_R0_Q4_1; + } break; + case GGML_TYPE_Q5_0: + { + nsg = N_SG_Q5_0; + nr0 = N_R0_Q5_0; + } break; + case GGML_TYPE_Q5_1: + { + nsg = N_SG_Q5_1; + nr0 = N_R0_Q5_1; + } break; + case GGML_TYPE_Q8_0: + { + nsg = N_SG_Q8_0; + nr0 = N_R0_Q8_0; + smem = 32*sizeof(float)*N_R0_Q8_0; + } break; + case GGML_TYPE_MXFP4: + { + nsg = N_SG_MXFP4; + nr0 = N_R0_MXFP4; + smem = 32*sizeof(float); + } break; + case GGML_TYPE_Q2_K: + { + nsg = N_SG_Q2_K; + nr0 = N_R0_Q2_K; + } break; + case GGML_TYPE_Q3_K: + { + nsg = N_SG_Q3_K; + nr0 = N_R0_Q3_K; + } break; + case GGML_TYPE_Q4_K: + { + nsg = N_SG_Q4_K; + nr0 = N_R0_Q4_K; + } break; + case GGML_TYPE_Q5_K: + { + nsg = N_SG_Q5_K; + nr0 = N_R0_Q5_K; + } break; + case GGML_TYPE_Q6_K: + { + nsg = N_SG_Q6_K; + nr0 = N_R0_Q6_K; + } break; + case GGML_TYPE_IQ2_XXS: + { + nsg = N_SG_IQ2_XXS; + nr0 = N_R0_IQ2_XXS; + smem = 256*8+128; + } break; + case GGML_TYPE_IQ2_XS: + { + nsg = N_SG_IQ2_XS; + nr0 = N_R0_IQ2_XS; + smem = 512*8+128; + } break; + case GGML_TYPE_IQ3_XXS: + { + nsg = N_SG_IQ3_XXS; + nr0 = N_R0_IQ3_XXS; + smem = 256*4+128; + } break; + case GGML_TYPE_IQ3_S: + { + nsg = N_SG_IQ3_S; + nr0 = N_R0_IQ3_S; + smem = 512*4; + } break; + case GGML_TYPE_IQ2_S: + { + nsg = N_SG_IQ2_S; + nr0 = N_R0_IQ2_S; + } break; + case GGML_TYPE_IQ1_S: + { + nsg = N_SG_IQ1_S; + nr0 = N_R0_IQ1_S; + } break; + case GGML_TYPE_IQ1_M: + { + nsg = N_SG_IQ1_M; + nr0 = N_R0_IQ1_M; + } break; + case GGML_TYPE_IQ4_NL: + { + nsg = N_SG_IQ4_NL; + nr0 = N_R0_IQ4_NL; + smem = 32*sizeof(float); + } break; + case GGML_TYPE_IQ4_XS: + { + nsg = N_SG_IQ4_XS; + nr0 = N_R0_IQ4_XS; + smem = 32*sizeof(float); + } break; + default: + { + GGML_LOG_ERROR("Asserting on type %d\n", (int) tsrc0); + GGML_ABORT("not implemented"); + } + }; + + snprintf(base, 256, "kernel_mul_mv_%s_%s%s", ggml_type_name(tsrc0), ggml_type_name(tsrc1), suffix); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_nr0 (res, nr0); + ggml_metal_pipeline_set_nr1 (res, nr1); + ggml_metal_pipeline_set_nsg (res, nsg); + ggml_metal_pipeline_set_smem(res, smem); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mm_id_map0(ggml_metal_library_t lib, int ne02, int ne20) { + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_mul_mm_id_map0_ne20_%d", ne20); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + const size_t smem = (size_t) ne02*ne20*sizeof(uint16_t); + + ggml_metal_pipeline_set_smem(res, smem); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mm_id(ggml_metal_library_t lib, ggml_type tsrc0, ggml_type tsrc1) { + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_mul_mm_id_%s_%s", ggml_type_name(tsrc0), ggml_type_name(tsrc1)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_smem(res, 8192); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mv_id(ggml_metal_library_t lib, const ggml_tensor * op) { + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + + char base[256]; + char name[256]; + + int nsg = 0; // number of simdgroups + int nr0 = 0; // number of src0 rows per simdgroup + int nr1 = 1; // number of src1 rows per threadgroup + + size_t smem = 0; // shared memory + + const ggml_type tsrc0 = op->src[0]->type; + const ggml_type tsrc1 = op->src[1]->type; + + // use custom matrix x vector kernel + switch (tsrc0) { + case GGML_TYPE_F32: + { + GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); + nsg = 1; + nr0 = 1; + } break; + case GGML_TYPE_F16: + { + GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); + nsg = 1; + nr0 = 1; + } break; + case GGML_TYPE_BF16: + { + GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); + nsg = 1; + nr0 = 1; + } break; + case GGML_TYPE_Q4_0: + { + nsg = N_SG_Q4_0; + nr0 = N_R0_Q4_0; + } break; + case GGML_TYPE_Q4_1: + { + nsg = N_SG_Q4_1; + nr0 = N_R0_Q4_1; + } break; + case GGML_TYPE_Q5_0: + { + nsg = N_SG_Q5_0; + nr0 = N_R0_Q5_0; + } break; + case GGML_TYPE_Q5_1: + { + nsg = N_SG_Q5_1; + nr0 = N_R0_Q5_1; + } break; + case GGML_TYPE_Q8_0: + { + nsg = N_SG_Q8_0; + nr0 = N_R0_Q8_0; + smem = 32*sizeof(float)*N_R0_Q8_0; + } break; + case GGML_TYPE_MXFP4: + { + nsg = N_SG_MXFP4; + nr0 = N_R0_MXFP4; + smem = 32*sizeof(float); + } break; + case GGML_TYPE_Q2_K: + { + nsg = N_SG_Q2_K; + nr0 = N_R0_Q2_K; + } break; + case GGML_TYPE_Q3_K: + { + nsg = N_SG_Q3_K; + nr0 = N_R0_Q3_K; + } break; + case GGML_TYPE_Q4_K: + { + nsg = N_SG_Q4_K; + nr0 = N_R0_Q4_K; + } break; + case GGML_TYPE_Q5_K: + { + nsg = N_SG_Q5_K; + nr0 = N_R0_Q5_K; + } break; + case GGML_TYPE_Q6_K: + { + nsg = N_SG_Q6_K; + nr0 = N_R0_Q6_K; + } break; + case GGML_TYPE_IQ2_XXS: + { + nsg = N_SG_IQ2_XXS; + nr0 = N_R0_IQ2_XXS; + smem = 256*8+128; + } break; + case GGML_TYPE_IQ2_XS: + { + nsg = N_SG_IQ2_XS; + nr0 = N_R0_IQ2_XS; + smem = 512*8+128; + } break; + case GGML_TYPE_IQ3_XXS: + { + nsg = N_SG_IQ3_XXS; + nr0 = N_R0_IQ3_XXS; + smem = 256*4+128; + } break; + case GGML_TYPE_IQ3_S: + { + nsg = N_SG_IQ3_S; + nr0 = N_R0_IQ3_S; + smem = 512*4; + } break; + case GGML_TYPE_IQ2_S: + { + nsg = N_SG_IQ2_S; + nr0 = N_R0_IQ2_S; + } break; + case GGML_TYPE_IQ1_S: + { + nsg = N_SG_IQ1_S; + nr0 = N_R0_IQ1_S; + } break; + case GGML_TYPE_IQ1_M: + { + nsg = N_SG_IQ1_M; + nr0 = N_R0_IQ1_M; + } break; + case GGML_TYPE_IQ4_NL: + { + nsg = N_SG_IQ4_NL; + nr0 = N_R0_IQ4_NL; + smem = 32*sizeof(float); + } break; + case GGML_TYPE_IQ4_XS: + { + nsg = N_SG_IQ4_XS; + nr0 = N_R0_IQ4_XS; + smem = 32*sizeof(float); + } break; + default: + { + GGML_LOG_ERROR("Asserting on type %d\n", (int)op->src[2]->type); + GGML_ABORT("not implemented"); + } + }; + + snprintf(base, 256, "kernel_mul_mv_id_%s_%s", ggml_type_name(tsrc0), ggml_type_name(tsrc1)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_nr0 (res, nr0); + ggml_metal_pipeline_set_nr1 (res, nr1); + ggml_metal_pipeline_set_nsg (res, nsg); + ggml_metal_pipeline_set_smem(res, smem); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_argmax(ggml_metal_library_t lib, const ggml_tensor * op) { + GGML_ASSERT(op->src[0]->type == GGML_TYPE_F32); + GGML_ASSERT(ggml_is_contiguous_1(op->src[0])); + GGML_ASSERT(op->src[0]->nb[0] == ggml_type_size(op->src[0]->type)); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_argmax_%s", ggml_type_name(op->src[0]->type)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_smem(res, 32*(sizeof(float) + sizeof(int32_t))); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_argsort(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_ARGSORT); + + char base[256]; + char name[256]; + + ggml_sort_order order = (ggml_sort_order) op->op_params[0]; + + const char * order_str = "undefined"; + switch (order) { + case GGML_SORT_ORDER_ASC: order_str = "asc"; break; + case GGML_SORT_ORDER_DESC: order_str = "desc"; break; + default: GGML_ABORT("fatal error"); + }; + + snprintf(base, 256, "kernel_argsort_%s_%s_%s", ggml_type_name(op->src[0]->type), ggml_type_name(op->type), order_str); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_flash_attn_ext( + ggml_metal_library_t lib, + const ggml_tensor * op, + bool has_mask, + bool has_sinks, + bool has_bias, + bool has_scap, + int32_t nsg) { + assert(op->op == GGML_OP_FLASH_ATTN_EXT); + + char base[256]; + char name[256]; + + const int32_t dk = (int32_t) op->src[1]->ne[0]; + const int32_t dv = (int32_t) op->src[2]->ne[0]; + + const int32_t ns10 = op->src[1]->nb[1]/op->src[1]->nb[0]; + const int32_t ns20 = op->src[2]->nb[1]/op->src[2]->nb[0]; + + snprintf(base, 256, "kernel_%s_%s_dk%d_dv%d", + "flash_attn_ext", + ggml_type_name(op->src[1]->type), + dk, + dv); + + snprintf(name, 256, "kernel_%s_%s_dk%d_dv%d_mask=%d_sinks=%d_bias=%d_scap=%d_ns10=%d_ns20=%d_nsg=%d", + "flash_attn_ext", + ggml_type_name(op->src[1]->type), + dk, + dv, + has_mask, + has_sinks, + has_bias, + has_scap, + ns10, + ns20, + nsg); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + ggml_metal_cv_t cv = ggml_metal_cv_init(); + + ggml_metal_cv_set_bool(cv, has_mask, FC_FLASH_ATTN_EXT + 0); + ggml_metal_cv_set_bool(cv, has_sinks, FC_FLASH_ATTN_EXT + 1); + ggml_metal_cv_set_bool(cv, has_bias, FC_FLASH_ATTN_EXT + 2); + ggml_metal_cv_set_bool(cv, has_scap, FC_FLASH_ATTN_EXT + 3); + + ggml_metal_cv_set_int32(cv, ns10, FC_FLASH_ATTN_EXT + 20); + ggml_metal_cv_set_int32(cv, ns20, FC_FLASH_ATTN_EXT + 21); + ggml_metal_cv_set_int32(cv, nsg, FC_FLASH_ATTN_EXT + 22); + + res = ggml_metal_library_compile_pipeline(lib, base, name, cv); + + ggml_metal_cv_free(cv); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_flash_attn_ext_vec( + ggml_metal_library_t lib, + const ggml_tensor * op, + bool has_mask, + bool has_sinks, + bool has_bias, + bool has_scap, + int32_t nsg, + int32_t nwg) { + assert(op->op == GGML_OP_FLASH_ATTN_EXT); + + char base[256]; + char name[256]; + + const int32_t dk = (int32_t) op->src[1]->ne[0]; + const int32_t dv = (int32_t) op->src[2]->ne[0]; + + const int32_t ns10 = op->src[1]->nb[1]/op->src[1]->nb[0]; + const int32_t ns20 = op->src[2]->nb[1]/op->src[2]->nb[0]; + + snprintf(base, 256, "kernel_%s_%s_dk%d_dv%d", + "flash_attn_ext_vec", + ggml_type_name(op->src[1]->type), + dk, + dv); + + snprintf(name, 256, "kernel_%s_%s_dk%d_dv%d_mask=%d_sink=%d_bias=%d_softcap=%d_ns10=%d_ns20=%d_nsg=%d_nwg=%d", + "flash_attn_ext_vec", + ggml_type_name(op->src[1]->type), + dk, + dv, + has_mask, + has_sinks, + has_bias, + has_scap, + ns10, + ns20, + nsg, nwg); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + ggml_metal_cv_t cv = ggml_metal_cv_init(); + + ggml_metal_cv_set_bool(cv, has_mask, FC_FLASH_ATTN_EXT_VEC + 0); + ggml_metal_cv_set_bool(cv, has_sinks, FC_FLASH_ATTN_EXT_VEC + 1); + ggml_metal_cv_set_bool(cv, has_bias, FC_FLASH_ATTN_EXT_VEC + 2); + ggml_metal_cv_set_bool(cv, has_scap, FC_FLASH_ATTN_EXT_VEC + 3); + + ggml_metal_cv_set_int32(cv, ns10, FC_FLASH_ATTN_EXT_VEC + 20); + ggml_metal_cv_set_int32(cv, ns20, FC_FLASH_ATTN_EXT_VEC + 21); + ggml_metal_cv_set_int32(cv, nsg, FC_FLASH_ATTN_EXT_VEC + 22); + ggml_metal_cv_set_int32(cv, nwg, FC_FLASH_ATTN_EXT_VEC + 23); + + res = ggml_metal_library_compile_pipeline(lib, base, name, cv); + + ggml_metal_cv_free(cv); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_flash_attn_ext_vec_reduce( + ggml_metal_library_t lib, + const ggml_tensor * op, + int32_t dv, + int32_t nwg) { + assert(op->op == GGML_OP_FLASH_ATTN_EXT); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_flash_attn_ext_vec_reduce"); + snprintf(name, 256, "kernel_flash_attn_ext_vec_reduce_dv=%d_nwg=%d", dv, nwg); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + ggml_metal_cv_t cv = ggml_metal_cv_init(); + + ggml_metal_cv_set_int32(cv, dv, FC_FLASH_ATTN_EXT_VEC_REDUCE + 0); + ggml_metal_cv_set_int32(cv, nwg, FC_FLASH_ATTN_EXT_VEC_REDUCE + 1); + + res = ggml_metal_library_compile_pipeline(lib, base, name, cv); + + ggml_metal_cv_free(cv); + + return res; + + GGML_UNUSED(op); +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_bin( + ggml_metal_library_t lib, + ggml_op op, + int32_t n_fuse, + bool row) { + char base[256]; + char name[256]; + + const char * op_str = "undefined"; + switch (op) { + case GGML_OP_ADD: op_str = "add"; break; + case GGML_OP_SUB: op_str = "sub"; break; + case GGML_OP_MUL: op_str = "mul"; break; + case GGML_OP_DIV: op_str = "div"; break; + default: GGML_ABORT("fatal error"); + }; + + if (row) { + snprintf(base, 256, "kernel_%s_row_c4_fuse_%d", op_str, n_fuse); + } else { + snprintf(base, 256, "kernel_%s_fuse_%d", op_str, n_fuse); + } + + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_rms_norm(ggml_metal_library_t lib, const ggml_tensor * op, int32_t n_fuse) { + assert(op->op == GGML_OP_RMS_NORM); + + GGML_ASSERT(op->src[0]->ne[0] % 4 == 0); + GGML_ASSERT(ggml_is_contiguous_rows(op->src[0])); + + char base[256]; + char name[256]; + + switch (n_fuse) { + case 1: snprintf(base, 256, "kernel_rms_norm_f32"); break; + case 2: snprintf(base, 256, "kernel_rms_norm_mul_f32"); break; + case 3: snprintf(base, 256, "kernel_rms_norm_mul_add_f32"); break; + default: GGML_ABORT("fatal error"); + } + + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_smem(res, 32*sizeof(float)); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_l2_norm(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_L2_NORM); + + GGML_ASSERT(op->src[0]->ne[0] % 4 == 0); + GGML_ASSERT(ggml_is_contiguous_1(op->src[0])); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_l2_norm_f32"); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_smem(res, 32*sizeof(float)); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_group_norm(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_GROUP_NORM); + + GGML_ASSERT(ggml_is_contiguous(op->src[0])); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_group_norm_f32"); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_smem(res, 32*sizeof(float)); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_norm(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_NORM); + + GGML_ASSERT(op->src[0]->ne[0] % 4 == 0); + GGML_ASSERT(ggml_is_contiguous_1(op->src[0])); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_norm_f32"); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + ggml_metal_pipeline_set_smem(res, 32*sizeof(float)); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_rope(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_ROPE); + + char base[256]; + char name[256]; + + const int mode = ((const int32_t *) op->op_params)[2]; + + const bool is_neox = mode & GGML_ROPE_TYPE_NEOX; + const bool is_mrope = mode & GGML_ROPE_TYPE_MROPE; + const bool is_vision = mode == GGML_ROPE_TYPE_VISION; + + if (is_neox) { + snprintf(base, 256, "kernel_rope_neox_%s", ggml_type_name(op->src[0]->type)); + } else if (is_mrope && !is_vision) { + GGML_ASSERT(op->src[1]->ne[0]*4 >= op->src[0]->ne[2]); // need at least 4 pos per token + snprintf(base, 256, "kernel_rope_multi_%s", ggml_type_name(op->src[0]->type)); + } else if (is_vision) { + GGML_ASSERT(op->src[1]->ne[0]*4 >= op->src[0]->ne[2]); // need at least 4 pos per token + snprintf(base, 256, "kernel_rope_vision_%s", ggml_type_name(op->src[0]->type)); + } else { + snprintf(base, 256, "kernel_rope_norm_%s", ggml_type_name(op->src[0]->type)); + } + + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_im2col(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_IM2COL); + + GGML_ASSERT(ggml_is_contiguous(op->src[1])); + GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); + GGML_ASSERT(op->type == GGML_TYPE_F16 || op->type == GGML_TYPE_F32); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_im2col_ext_%s", ggml_type_name(op->type)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_conv_transpose_1d(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_CONV_TRANSPOSE_1D); + + GGML_ASSERT(ggml_is_contiguous(op->src[0])); + GGML_ASSERT(ggml_is_contiguous(op->src[1])); + GGML_ASSERT(op->src[0]->type == GGML_TYPE_F16 || op->src[0]->type == GGML_TYPE_F32); + GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); + GGML_ASSERT(op->type == GGML_TYPE_F32); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_conv_transpose_1d_%s_%s", ggml_type_name(op->src[0]->type), ggml_type_name(op->src[1]->type)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_upscale(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_UPSCALE); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_upscale_%s", ggml_type_name(op->src[0]->type)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_pad(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_PAD); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_pad_%s", ggml_type_name(op->src[0]->type)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_pad_reflect_1d(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_PAD_REFLECT_1D); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_pad_reflect_1d_%s", ggml_type_name(op->src[0]->type)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_arange(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_ARANGE); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_arange_%s", ggml_type_name(op->type)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_timestep_embedding(ggml_metal_library_t lib, const ggml_tensor * op) { + assert(op->op == GGML_OP_TIMESTEP_EMBEDDING); + + char base[256]; + char name[256]; + + snprintf(base, 256, "kernel_timestep_embedding_%s", ggml_type_name(op->src[0]->type)); + snprintf(name, 256, "%s", base); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + return res; + } + + res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + + return res; +} + diff --git a/ggml/src/ggml-metal/ggml-metal-device.h b/ggml/src/ggml-metal/ggml-metal-device.h new file mode 100644 index 0000000000..c48337f514 --- /dev/null +++ b/ggml/src/ggml-metal/ggml-metal-device.h @@ -0,0 +1,226 @@ +#pragma once + +#include "ggml.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct ggml_metal_buffer_id { + void * metal; // id + size_t offs; +}; + +typedef struct ggml_metal_device * ggml_metal_device_t; + +// +// MTLFunctionConstantValues wrapper +// + +typedef struct ggml_metal_cv * ggml_metal_cv_t; + +ggml_metal_cv_t ggml_metal_cv_init(void); +void ggml_metal_cv_free(ggml_metal_cv_t cv); + +void ggml_metal_cv_set_int32(ggml_metal_cv_t cv, int32_t value, int32_t idx); +void ggml_metal_cv_set_bool (ggml_metal_cv_t cv, bool value, int32_t idx); + +// +// MTLComputePipelineState wrapper +// + +typedef struct ggml_metal_pipeline * ggml_metal_pipeline_t; + +ggml_metal_pipeline_t ggml_metal_pipeline_init(void); +void ggml_metal_pipeline_free(ggml_metal_pipeline_t pipeline); + +void ggml_metal_pipeline_set_nsg(ggml_metal_pipeline_t pipeline, int nsg); +int ggml_metal_pipeline_get_nsg(ggml_metal_pipeline_t pipeline); + +void ggml_metal_pipeline_set_nr0(ggml_metal_pipeline_t pipeline, int nr0); +int ggml_metal_pipeline_get_nr0(ggml_metal_pipeline_t pipeline); + +void ggml_metal_pipeline_set_nr1(ggml_metal_pipeline_t pipeline, int nr1); +int ggml_metal_pipeline_get_nr1(ggml_metal_pipeline_t pipeline); + +void ggml_metal_pipeline_set_smem(ggml_metal_pipeline_t pipeline, size_t smem); +size_t ggml_metal_pipeline_get_smem(ggml_metal_pipeline_t pipeline); + +int ggml_metal_pipeline_max_theads_per_threadgroup(ggml_metal_pipeline_t pipeline); + +// a collection of pipelines +typedef struct ggml_metal_pipelines * ggml_metal_pipelines_t; + +ggml_metal_pipelines_t ggml_metal_pipelines_init(void); +void ggml_metal_pipelines_free(ggml_metal_pipelines_t ppls); + +void ggml_metal_pipelines_add(ggml_metal_pipelines_t ppls, const char * name, ggml_metal_pipeline_t pipeline); +ggml_metal_pipeline_t ggml_metal_pipelines_get(ggml_metal_pipelines_t ppls, const char * name); + +// +// MTLCommandBuffer wrapper +// + +typedef void * ggml_metal_cmd_buf_t; + +// +// MTLComputeCommandEncoder wrapper +// + +typedef struct ggml_metal_encoder * ggml_metal_encoder_t; + +ggml_metal_encoder_t ggml_metal_encoder_init(ggml_metal_cmd_buf_t cmd_buf_raw, bool concurrent); +void ggml_metal_encoder_free(ggml_metal_encoder_t encoder); + +void ggml_metal_encoder_debug_group_push(ggml_metal_encoder_t encoder, const char * name); +void ggml_metal_encoder_debug_group_pop (ggml_metal_encoder_t encoder); + +void ggml_metal_encoder_set_pipeline(ggml_metal_encoder_t encoder, ggml_metal_pipeline_t pipeline); + +void ggml_metal_encoder_set_bytes (ggml_metal_encoder_t encoder, void * data, size_t size, int idx); +void ggml_metal_encoder_set_buffer(ggml_metal_encoder_t encoder, struct ggml_metal_buffer_id buffer, int idx); + +void ggml_metal_encoder_set_threadgroup_memory_size(ggml_metal_encoder_t encoder, size_t size, int idx); + +void ggml_metal_encoder_dispatch_threadgroups(ggml_metal_encoder_t encoder, int tg0, int tg1, int tg2, int tptg0, int tptg1, int tptg2); + +void ggml_metal_encoder_memory_barrier(ggml_metal_encoder_t encoder); + +void ggml_metal_encoder_end_encoding(ggml_metal_encoder_t encoder); + +// +// MTLLibrary wrapper +// + +typedef struct ggml_metal_library * ggml_metal_library_t; + +ggml_metal_library_t ggml_metal_library_init(ggml_metal_device_t dev); +void ggml_metal_library_free(ggml_metal_library_t lib); + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline (ggml_metal_library_t lib, const char * name); +ggml_metal_pipeline_t ggml_metal_library_compile_pipeline(ggml_metal_library_t lib, const char * base, const char * name, ggml_metal_cv_t cv); + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_base (ggml_metal_library_t lib, enum ggml_op op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_cpy (ggml_metal_library_t lib, enum ggml_type tsrc, enum ggml_type tdst); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_pool_2d (ggml_metal_library_t lib, const struct ggml_tensor * op, enum ggml_op_pool op_pool); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_get_rows (ggml_metal_library_t lib, enum ggml_type tsrc); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_set_rows (ggml_metal_library_t lib, enum ggml_type tdst); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_repeat (ggml_metal_library_t lib, enum ggml_type tsrc); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_unary (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_glu (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_sum_rows (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_soft_max (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_ssm_conv (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_ssm_scan (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_rwkv (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mv_ext (ggml_metal_library_t lib, enum ggml_type tsrc0, enum ggml_type tsrc1, int r1ptg); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mm (ggml_metal_library_t lib, enum ggml_type tsrc0, enum ggml_type tsrc1); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mv (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mm_id_map0 (ggml_metal_library_t lib, int ne02, int ne20); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mm_id (ggml_metal_library_t lib, enum ggml_type tsrc0, enum ggml_type tsrc1); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mv_id (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_argmax (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_argsort (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_bin (ggml_metal_library_t lib, enum ggml_op op, int32_t n_fuse, bool row); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_rms_norm (ggml_metal_library_t lib, const struct ggml_tensor * op, int32_t n_fuse); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_l2_norm (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_group_norm (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_norm (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_rope (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_im2col (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_conv_transpose_1d (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_upscale (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_pad (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_pad_reflect_1d (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_arange (ggml_metal_library_t lib, const struct ggml_tensor * op); +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_timestep_embedding(ggml_metal_library_t lib, const struct ggml_tensor * op); + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_flash_attn_ext( + ggml_metal_library_t lib, + const struct ggml_tensor * op, + bool has_mask, + bool has_sinks, + bool has_bias, + bool has_scap, + int32_t nsg); + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_flash_attn_ext_vec( + ggml_metal_library_t lib, + const struct ggml_tensor * op, + bool has_mask, + bool has_sinks, + bool has_bias, + bool has_scap, + int32_t nsg, + int32_t nwg); + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline_flash_attn_ext_vec_reduce( + ggml_metal_library_t lib, + const struct ggml_tensor * op, + int32_t dv, + int32_t nwg); + +// +// device +// + +struct ggml_metal_device_props { + char name[128]; + + size_t max_buffer_size; + size_t max_working_set_size; + size_t max_theadgroup_memory_size; + + bool has_simdgroup_reduction; + bool has_simdgroup_mm; + bool has_unified_memory; + bool has_bfloat; + bool use_residency_sets; + bool use_shared_buffers; + + bool supports_gpu_family_apple7; +}; + +ggml_metal_device_t ggml_metal_device_init(void); +void ggml_metal_device_free(ggml_metal_device_t dev); + +// return a singleton that is automatically destroyed when the program exits +ggml_metal_device_t ggml_metal_device_get(void); + +void * ggml_metal_device_get_obj (ggml_metal_device_t dev); // id +void * ggml_metal_device_get_queue(ggml_metal_device_t dev); // id + +ggml_metal_library_t ggml_metal_device_get_library(ggml_metal_device_t dev); + +void ggml_metal_device_get_memory(ggml_metal_device_t dev, size_t * free, size_t * total); +bool ggml_metal_device_supports_op(ggml_metal_device_t dev, const struct ggml_tensor * op); + +const struct ggml_metal_device_props * ggml_metal_device_get_props(ggml_metal_device_t dev); + +// +// device buffers +// + +typedef struct ggml_metal_buffer * ggml_metal_buffer_t; + +ggml_metal_buffer_t ggml_metal_buffer_init(ggml_metal_device_t dev, size_t size, bool shared); +ggml_metal_buffer_t ggml_metal_buffer_map (ggml_metal_device_t dev, void * ptr, size_t size, size_t max_tensor_size); + +void ggml_metal_buffer_free (ggml_metal_buffer_t buf); +void * ggml_metal_buffer_get_base (ggml_metal_buffer_t buf); +bool ggml_metal_buffer_is_shared(ggml_metal_buffer_t buf); + +void ggml_metal_buffer_memset_tensor(ggml_metal_buffer_t buf, struct ggml_tensor * tensor, uint8_t value, size_t offset, size_t size); +void ggml_metal_buffer_set_tensor (ggml_metal_buffer_t buf, struct ggml_tensor * tensor, const void * data, size_t offset, size_t size); +void ggml_metal_buffer_get_tensor (ggml_metal_buffer_t buf, const struct ggml_tensor * tensor, void * data, size_t offset, size_t size); +void ggml_metal_buffer_clear (ggml_metal_buffer_t buf, uint8_t value); + +// finds the Metal buffer that contains the tensor data on the GPU device +// the assumption is that there is 1-to-1 mapping between the host and device memory buffers, so we can find the +// Metal buffer based on the host memory pointer +// +struct ggml_metal_buffer_id ggml_metal_buffer_get_id(ggml_metal_buffer_t buf, const struct ggml_tensor * t); + +#ifdef __cplusplus +} +#endif diff --git a/ggml/src/ggml-metal/ggml-metal-device.m b/ggml/src/ggml-metal/ggml-metal-device.m new file mode 100644 index 0000000000..9983640b43 --- /dev/null +++ b/ggml/src/ggml-metal/ggml-metal-device.m @@ -0,0 +1,1289 @@ +#import "ggml-metal-device.h" + +#import "ggml-impl.h" +#import "ggml-threading.h" + +#include + +#include + +#ifndef TARGET_OS_VISION +#define TARGET_OS_VISION 0 +#endif + +// create residency sets only on macOS >= 15.0 +#if !TARGET_CPU_X86_64 && TARGET_OS_OSX && __MAC_OS_X_VERSION_MAX_ALLOWED >= 150000 || \ + TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 180000 || \ + TARGET_OS_TV && __TV_OS_VERSION_MAX_ALLOWED >= 180000 || \ + TARGET_OS_VISION && __VISION_OS_VERSION_MAX_ALLOWED >= 200000 +#define GGML_METAL_HAS_RESIDENCY_SETS 1 +#endif + +// overload of MTLGPUFamilyMetal3 (not available in some environments) +static const NSInteger MTLGPUFamilyMetal3_GGML = 5001; + +#if !GGML_METAL_EMBED_LIBRARY +// Here to assist with NSBundle Path Hack +@interface GGMLMetalClass : NSObject +@end +@implementation GGMLMetalClass +@end +#endif + +// +// MTLFunctionConstantValues wrapper +// + +struct ggml_metal_cv { + MTLFunctionConstantValues * obj; +}; + +ggml_metal_cv_t ggml_metal_cv_init(void) { + ggml_metal_cv_t res = calloc(1, sizeof(struct ggml_metal_cv)); + + res->obj = [[MTLFunctionConstantValues alloc] init]; + + return res; +} + +void ggml_metal_cv_free(ggml_metal_cv_t cv) { + [cv->obj release]; + free(cv); +} + +void ggml_metal_cv_set_int32(ggml_metal_cv_t cv, int32_t value, int32_t idx) { + [cv->obj setConstantValue:&value type:MTLDataTypeInt atIndex:idx]; +} + +void ggml_metal_cv_set_bool(ggml_metal_cv_t cv, bool value, int32_t idx) { + [cv->obj setConstantValue:&value type:MTLDataTypeBool atIndex:idx]; +} + +// +// MTLComputePipelineState wrapper +// + +struct ggml_metal_pipeline { + id obj; + + // suggested dispatch sizes + int nsg; + + int nr0; + int nr1; + + size_t smem; +}; + +ggml_metal_pipeline_t ggml_metal_pipeline_init(void) { + ggml_metal_pipeline_t res = calloc(1, sizeof(struct ggml_metal_pipeline)); + + *res = (struct ggml_metal_pipeline) { + /*.obj =*/ nil, + /*.nsg =*/ 0, + /*.nr0 =*/ 0, + /*.nr1 =*/ 0, + /*.smem =*/ 0, + }; + + return res; +} + +void ggml_metal_pipeline_free(ggml_metal_pipeline_t pipeline) { + [pipeline->obj release]; + + free(pipeline); +} + +void ggml_metal_pipeline_set_nsg(ggml_metal_pipeline_t pipeline, int nsg) { + pipeline->nsg = nsg; +} + +int ggml_metal_pipeline_get_nsg(ggml_metal_pipeline_t pipeline) { + return pipeline->nsg; +} + +void ggml_metal_pipeline_set_nr0(ggml_metal_pipeline_t pipeline, int nr0) { + pipeline->nr0 = nr0; +} + +int ggml_metal_pipeline_get_nr0(ggml_metal_pipeline_t pipeline) { + return pipeline->nr0; +} + +void ggml_metal_pipeline_set_nr1(ggml_metal_pipeline_t pipeline, int nr1) { + pipeline->nr1 = nr1; +} + +int ggml_metal_pipeline_get_nr1(ggml_metal_pipeline_t pipeline) { + return pipeline->nr1; +} + +void ggml_metal_pipeline_set_smem(ggml_metal_pipeline_t pipeline, size_t smem) { + pipeline->smem = smem; +} + +size_t ggml_metal_pipeline_get_smem(ggml_metal_pipeline_t pipeline) { + return pipeline->smem; +} + +int ggml_metal_pipeline_max_theads_per_threadgroup(ggml_metal_pipeline_t pipeline) { + return pipeline->obj.maxTotalThreadsPerThreadgroup; +} + +struct ggml_metal_library { + id obj; + id device; + + ggml_metal_pipelines_t pipelines; // cache of compiled pipelines +}; + +ggml_metal_library_t ggml_metal_library_init(ggml_metal_device_t dev) { + id library = nil; + id device = ggml_metal_device_get_obj(dev); + + // load library + // + // - first check if the library is embedded + // - then check if the library is in the bundle + // - if not found, load the source and compile it + // - if that fails, return NULL + // + // TODO: move to a function + { + const int64_t t_start = ggml_time_us(); + + NSError * error = nil; + NSString * src = nil; + +#if GGML_METAL_EMBED_LIBRARY + GGML_LOG_INFO("%s: using embedded metal library\n", __func__); + + extern const char ggml_metallib_start[]; + extern const char ggml_metallib_end[]; + + src = [[NSString alloc] initWithBytes:ggml_metallib_start length:(ggml_metallib_end-ggml_metallib_start) encoding:NSUTF8StringEncoding]; +#else + +#ifdef SWIFT_PACKAGE + NSBundle * bundle = SWIFTPM_MODULE_BUNDLE; +#else + NSBundle * bundle = [NSBundle bundleForClass:[GGMLMetalClass class]]; +#endif + + NSString * path_lib = [bundle pathForResource:@"default" ofType:@"metallib"]; + if (path_lib == nil) { + // Try to find the resource in the directory where the current binary located. + NSString * bin_cur = [[NSProcessInfo processInfo] arguments][0]; + NSString * bin_dir = [bin_cur stringByDeletingLastPathComponent]; + + NSString * path_lib_default = [NSString pathWithComponents:@[bin_dir, @"default.metallib"]]; + if ([[NSFileManager defaultManager] isReadableFileAtPath:path_lib_default]) { + GGML_LOG_INFO("%s: found '%s'\n", __func__, [path_lib_default UTF8String]); + + NSDictionary * atts = [[NSFileManager defaultManager] attributesOfItemAtPath:path_lib_default error:&error]; + if (atts && atts[NSFileType] == NSFileTypeSymbolicLink) { + // Optionally, if this is a symlink, try to resolve it. + path_lib_default = [[NSFileManager defaultManager] destinationOfSymbolicLinkAtPath:path_lib_default error:&error]; + if (path_lib_default && [path_lib_default length] > 0 && ![[path_lib_default substringToIndex:1] isEqualToString:@"/"]) { + // It is a relative path, adding the binary directory as directory prefix. + path_lib_default = [NSString pathWithComponents:@[bin_dir, path_lib_default]]; + } + if (!path_lib_default || ![[NSFileManager defaultManager] isReadableFileAtPath:path_lib_default]) { + // Link to the resource could not be resolved. + path_lib_default = nil; + } else { + GGML_LOG_INFO("%s: symlink resolved '%s'\n", __func__, [path_lib_default UTF8String]); + } + } + } else { + // The resource couldn't be found in the binary's directory. + path_lib_default = nil; + } + + path_lib = path_lib_default; + } + + if (path_lib != nil) { + // pre-compiled library found + NSURL * libURL = [NSURL fileURLWithPath:path_lib]; + GGML_LOG_INFO("%s: loading '%s'\n", __func__, [path_lib UTF8String]); + + library = [device newLibraryWithURL:libURL error:&error]; + if (error) { + GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); + return nil; + } + } else { + GGML_LOG_INFO("%s: default.metallib not found, loading from source\n", __func__); + + NSString * path_source; + NSString * path_resource = [[NSProcessInfo processInfo].environment objectForKey:@"GGML_METAL_PATH_RESOURCES"]; + + GGML_LOG_INFO("%s: GGML_METAL_PATH_RESOURCES = %s\n", __func__, path_resource ? [path_resource UTF8String] : "nil"); + + if (path_resource) { + path_source = [path_resource stringByAppendingPathComponent:@"ggml-metal.metal"]; + } else { + path_source = [bundle pathForResource:@"ggml-metal" ofType:@"metal"]; + } + + if (path_source == nil) { + GGML_LOG_WARN("%s: error: could not use bundle path to find ggml-metal.metal, falling back to trying cwd\n", __func__); + path_source = @"ggml-metal.metal"; + } + + GGML_LOG_INFO("%s: loading '%s'\n", __func__, [path_source UTF8String]); + + src = [NSString stringWithContentsOfFile:path_source encoding:NSUTF8StringEncoding error:&error]; + if (error) { + GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); + return nil; + } + } +#endif + + if (!library) { + @autoreleasepool { + // dictionary of preprocessor macros + NSMutableDictionary * prep = [NSMutableDictionary dictionary]; + + if (ggml_metal_device_get_props(dev)->has_bfloat) { + [prep setObject:@"1" forKey:@"GGML_METAL_HAS_BF16"]; + } + +#if GGML_METAL_EMBED_LIBRARY + [prep setObject:@"1" forKey:@"GGML_METAL_EMBED_LIBRARY"]; +#endif + + MTLCompileOptions * options = [MTLCompileOptions new]; + options.preprocessorMacros = prep; + + //[options setFastMathEnabled:false]; + + library = [device newLibraryWithSource:src options:options error:&error]; + if (error) { + GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); + return nil; + } + +#if !__has_feature(objc_arc) + [options release]; +#endif + } + } + +#if GGML_METAL_EMBED_LIBRARY + [src release]; +#endif // GGML_METAL_EMBED_LIBRARY + + GGML_LOG_INFO("%s: loaded in %.3f sec\n", __func__, (ggml_time_us() - t_start) / 1e6); + } + + ggml_metal_library_t res = calloc(1, sizeof(struct ggml_metal_library)); + + res->obj = library; + res->device = device; + res->pipelines = ggml_metal_pipelines_init(); + + return res; +} + +void ggml_metal_library_free(ggml_metal_library_t lib) { + if (!lib) { + return; + } + + if (lib->obj) { + [lib->obj release]; + } + + ggml_metal_pipelines_free(lib->pipelines); + + free(lib); +} + +ggml_metal_pipeline_t ggml_metal_library_get_pipeline(ggml_metal_library_t lib, const char * name) { + return ggml_metal_pipelines_get(lib->pipelines, name); +} + +ggml_metal_pipeline_t ggml_metal_library_compile_pipeline(ggml_metal_library_t lib, const char * base, const char * name, ggml_metal_cv_t cv) { + // note: the pipelines are cached in the library per device, so they are shared across all metal contexts + ggml_critical_section_start(); + + ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); + if (res) { + ggml_critical_section_end(); + + return res; + } + + res = ggml_metal_pipeline_init(); + + @autoreleasepool { + NSError * error = nil; + + NSString * base_func = [NSString stringWithUTF8String:base]; + + GGML_LOG_DEBUG("%s: compiling pipeline: base = '%s', name = '%s'\n", __func__, base, name); + + id mtl_function = [lib->obj newFunctionWithName:base_func constantValues:(cv ? cv->obj : nil) error:&error]; + if (!mtl_function) { + ggml_critical_section_end(); + + GGML_LOG_ERROR("%s: error: failed to compile pipeline: base = '%s', name = '%s'\n", __func__, base, name); + GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); + + return nil; + } + + res->obj = [lib->device newComputePipelineStateWithFunction:mtl_function error:&error]; + + ggml_metal_pipelines_add(lib->pipelines, name, res); + + [mtl_function release]; + + GGML_LOG_DEBUG("%s: loaded %-40s %16p | th_max = %4d | th_width = %4d\n", __func__, name, (void *) res->obj, + (int) res->obj.maxTotalThreadsPerThreadgroup, + (int) res->obj.threadExecutionWidth); + } + + ggml_critical_section_end(); + + return res; +} + +// +// MTLComputeCommandEncoder wrapper +// + +struct ggml_metal_encoder { + id obj; +}; + +ggml_metal_encoder_t ggml_metal_encoder_init(ggml_metal_cmd_buf_t cmd_buf_raw, bool concurrent) { + ggml_metal_encoder_t res = calloc(1, sizeof(struct ggml_metal_encoder)); + + id cmd_buf = (id) cmd_buf_raw; + + if (concurrent) { + res->obj = [cmd_buf computeCommandEncoderWithDispatchType: MTLDispatchTypeConcurrent]; + } else { + res->obj = [cmd_buf computeCommandEncoder]; + } + + [res->obj retain]; + + return res; +} + +void ggml_metal_encoder_free(ggml_metal_encoder_t encoder) { + [encoder->obj release]; + free(encoder); +} + +void ggml_metal_encoder_debug_group_push(ggml_metal_encoder_t encoder, const char * name) { + [encoder->obj pushDebugGroup:[NSString stringWithCString:name encoding:NSUTF8StringEncoding]]; +} + +void ggml_metal_encoder_debug_group_pop (ggml_metal_encoder_t encoder) { + [encoder->obj popDebugGroup]; +} + +void ggml_metal_encoder_set_pipeline(ggml_metal_encoder_t encoder, ggml_metal_pipeline_t pipeline) { + [encoder->obj setComputePipelineState:pipeline->obj]; +} + +void ggml_metal_encoder_set_bytes(ggml_metal_encoder_t encoder, void * data, size_t size, int idx) { + [encoder->obj setBytes:data length:size atIndex:idx]; +} + +void ggml_metal_encoder_set_buffer(ggml_metal_encoder_t encoder, struct ggml_metal_buffer_id buffer, int idx) { + [encoder->obj setBuffer:buffer.metal offset:buffer.offs atIndex:idx]; +} + +void ggml_metal_encoder_set_threadgroup_memory_size(ggml_metal_encoder_t encoder, size_t size, int idx) { + [encoder->obj setThreadgroupMemoryLength:size atIndex:idx]; +} + +void ggml_metal_encoder_dispatch_threadgroups(ggml_metal_encoder_t encoder, int tg0, int tg1, int tg2, int tptg0, int tptg1, int tptg2) { + [encoder->obj dispatchThreadgroups:MTLSizeMake(tg0, tg1, tg2) threadsPerThreadgroup:MTLSizeMake(tptg0, tptg1, tptg2)]; +} + +void ggml_metal_encoder_memory_barrier(ggml_metal_encoder_t encoder) { + [encoder->obj memoryBarrierWithScope:MTLBarrierScopeBuffers]; +} + +void ggml_metal_encoder_end_encoding(ggml_metal_encoder_t encoder) { + [encoder->obj endEncoding]; +} + +struct ggml_metal_device { + id mtl_device; + + // a single global queue shared by all Metal backends + // technically not needed for devices with unified memory, but enables discrete GPUs support + // ref: https://github.com/ggml-org/llama.cpp/pull/15906 + id mtl_queue; + + ggml_metal_library_t library; + + struct ggml_metal_device_props props; +}; + +ggml_metal_device_t ggml_metal_device_init(void) { + ggml_metal_device_t dev = calloc(1, sizeof(struct ggml_metal_device)); + + assert(dev != NULL); + + if (dev->mtl_device == nil) { + dev->mtl_device = MTLCreateSystemDefaultDevice(); + + if (dev->mtl_device) { + dev->mtl_queue = [dev->mtl_device newCommandQueue]; + if (dev->mtl_queue == nil) { + GGML_LOG_ERROR("%s: error: failed to create command queue\n", __func__); + } + + dev->props.has_simdgroup_reduction = [dev->mtl_device supportsFamily:MTLGPUFamilyApple7]; + dev->props.has_simdgroup_reduction |= [dev->mtl_device supportsFamily:MTLGPUFamilyMetal3_GGML]; + + dev->props.has_simdgroup_mm = [dev->mtl_device supportsFamily:MTLGPUFamilyApple7]; + dev->props.has_unified_memory = dev->mtl_device.hasUnifiedMemory; + + dev->props.has_bfloat = [dev->mtl_device supportsFamily:MTLGPUFamilyMetal3_GGML]; + dev->props.has_bfloat |= [dev->mtl_device supportsFamily:MTLGPUFamilyApple6]; + + dev->props.use_residency_sets = true; +#if defined(GGML_METAL_HAS_RESIDENCY_SETS) + dev->props.use_residency_sets = getenv("GGML_METAL_NO_RESIDENCY") == nil; +#endif + + dev->props.use_shared_buffers = dev->props.has_unified_memory; + + if (getenv("GGML_METAL_SHARED_BUFFERS_DISABLE") != NULL) { + dev->props.use_shared_buffers = false; + } + + dev->props.supports_gpu_family_apple7 = [dev->mtl_device supportsFamily:MTLGPUFamilyApple7]; + + dev->props.max_buffer_size = dev->mtl_device.maxBufferLength; + dev->props.max_working_set_size = dev->mtl_device.recommendedMaxWorkingSetSize; + dev->props.max_theadgroup_memory_size = dev->mtl_device.maxThreadgroupMemoryLength; + + strncpy(dev->props.name, [[dev->mtl_device name] UTF8String], sizeof(dev->props.name) - 1); + + dev->library = ggml_metal_library_init(dev); + if (!dev->library) { + GGML_LOG_ERROR("%s: error: failed to create library\n", __func__); + } + + // -------------------------------------------------- + + // print MTL GPU family: + GGML_LOG_INFO("%s: GPU name: %s\n", __func__, dev->props.name); + + // determine max supported GPU family + // https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf + // https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf + { + for (int i = MTLGPUFamilyApple1 + 20; i >= MTLGPUFamilyApple1; --i) { + if ([dev->mtl_device supportsFamily:i]) { + GGML_LOG_INFO("%s: GPU family: MTLGPUFamilyApple%d (%d)\n", __func__, i - (int) MTLGPUFamilyApple1 + 1, i); + break; + } + } + + for (int i = MTLGPUFamilyCommon1 + 5; i >= MTLGPUFamilyCommon1; --i) { + if ([dev->mtl_device supportsFamily:i]) { + GGML_LOG_INFO("%s: GPU family: MTLGPUFamilyCommon%d (%d)\n", __func__, i - (int) MTLGPUFamilyCommon1 + 1, i); + break; + } + } + + for (int i = MTLGPUFamilyMetal3_GGML + 5; i >= MTLGPUFamilyMetal3_GGML; --i) { + if ([dev->mtl_device supportsFamily:i]) { + GGML_LOG_INFO("%s: GPU family: MTLGPUFamilyMetal%d (%d)\n", __func__, i - (int) MTLGPUFamilyMetal3_GGML + 3, i); + break; + } + } + } + + GGML_LOG_INFO("%s: simdgroup reduction = %s\n", __func__, dev->props.has_simdgroup_reduction ? "true" : "false"); + GGML_LOG_INFO("%s: simdgroup matrix mul. = %s\n", __func__, dev->props.has_simdgroup_mm ? "true" : "false"); + GGML_LOG_INFO("%s: has unified memory = %s\n", __func__, dev->props.has_unified_memory ? "true" : "false"); + GGML_LOG_INFO("%s: has bfloat = %s\n", __func__, dev->props.has_bfloat ? "true" : "false"); + GGML_LOG_INFO("%s: use residency sets = %s\n", __func__, dev->props.use_residency_sets ? "true" : "false"); + GGML_LOG_INFO("%s: use shared buffers = %s\n", __func__, dev->props.use_shared_buffers ? "true" : "false"); + +#if TARGET_OS_OSX || (TARGET_OS_IOS && __clang_major__ >= 15) + if (@available(macOS 10.12, iOS 16.0, *)) { + GGML_LOG_INFO("%s: recommendedMaxWorkingSetSize = %8.2f MB\n", __func__, dev->props.max_working_set_size / 1e6); + } +#endif + } + } + + return dev; +} + +void ggml_metal_device_free(ggml_metal_device_t dev) { + assert(dev != NULL); + + ggml_metal_library_free(dev->library); + dev->library = NULL; + + if (dev->mtl_queue) { + [dev->mtl_queue release]; + dev->mtl_queue = nil; + } + + if (dev->mtl_device) { + [dev->mtl_device release]; + dev->mtl_device = nil; + } + + free(dev); +} + +void * ggml_metal_device_get_obj(ggml_metal_device_t dev) { + return dev->mtl_device; +} + +void * ggml_metal_device_get_queue(ggml_metal_device_t dev) { + return dev->mtl_queue; +} + +ggml_metal_library_t ggml_metal_device_get_library(ggml_metal_device_t dev) { + return dev->library; +} + +void ggml_metal_device_get_memory(ggml_metal_device_t dev, size_t * free, size_t * total) { + if (@available(macOS 10.12, iOS 16.0, *)) { + *total = dev->mtl_device.recommendedMaxWorkingSetSize; + *free = *total - dev->mtl_device.currentAllocatedSize; + } else { + *free = 0; + *total = 0; + } +} + +bool ggml_metal_device_supports_op(ggml_metal_device_t dev, const struct ggml_tensor * op) { + const bool has_simdgroup_mm = dev->props.has_simdgroup_mm; + const bool has_simdgroup_reduction = dev->props.has_simdgroup_reduction; + const bool has_bfloat = dev->props.has_bfloat; + + if (!has_bfloat) { + if (op->type == GGML_TYPE_BF16) { + return false; + } + + for (size_t i = 0, n = 3; i < n; ++i) { + if (op->src[i] != NULL && op->src[i]->type == GGML_TYPE_BF16) { + return false; + } + } + } + + switch (op->op) { + case GGML_OP_UNARY: + switch (ggml_get_unary_op(op)) { + case GGML_UNARY_OP_TANH: + case GGML_UNARY_OP_RELU: + case GGML_UNARY_OP_SIGMOID: + case GGML_UNARY_OP_GELU: + case GGML_UNARY_OP_GELU_ERF: + case GGML_UNARY_OP_GELU_QUICK: + case GGML_UNARY_OP_SILU: + case GGML_UNARY_OP_ELU: + case GGML_UNARY_OP_NEG: + case GGML_UNARY_OP_ABS: + case GGML_UNARY_OP_SGN: + case GGML_UNARY_OP_STEP: + case GGML_UNARY_OP_HARDSWISH: + case GGML_UNARY_OP_HARDSIGMOID: + case GGML_UNARY_OP_EXP: + return ggml_is_contiguous(op->src[0]) && op->src[0]->type == GGML_TYPE_F32; + default: + return false; + } + case GGML_OP_GLU: + switch (ggml_get_glu_op(op)) { + case GGML_GLU_OP_REGLU: + case GGML_GLU_OP_GEGLU: + case GGML_GLU_OP_SWIGLU: + case GGML_GLU_OP_SWIGLU_OAI: + case GGML_GLU_OP_GEGLU_ERF: + case GGML_GLU_OP_GEGLU_QUICK: + return ggml_is_contiguous_1(op->src[0]) && op->src[0]->type == GGML_TYPE_F32; + default: + return false; + } + case GGML_OP_NONE: + case GGML_OP_RESHAPE: + case GGML_OP_VIEW: + case GGML_OP_TRANSPOSE: + case GGML_OP_PERMUTE: + case GGML_OP_CONCAT: + return true; + case GGML_OP_ADD: + case GGML_OP_SUB: + case GGML_OP_MUL: + case GGML_OP_DIV: + case GGML_OP_ADD_ID: + return op->src[0]->type == GGML_TYPE_F32; + case GGML_OP_ACC: + case GGML_OP_REPEAT: + case GGML_OP_SCALE: + case GGML_OP_CONV_TRANSPOSE_1D: + return true; + case GGML_OP_CLAMP: + return op->src[0]->type == GGML_TYPE_F32; + case GGML_OP_SQR: + case GGML_OP_SQRT: + case GGML_OP_SIN: + case GGML_OP_COS: + case GGML_OP_LOG: + return ggml_is_contiguous(op->src[0]) && op->src[0]->type == GGML_TYPE_F32; + case GGML_OP_SUM_ROWS: + case GGML_OP_MEAN: + case GGML_OP_SOFT_MAX: + case GGML_OP_GROUP_NORM: + return has_simdgroup_reduction && ggml_is_contiguous_rows(op->src[0]); + case GGML_OP_RMS_NORM: + case GGML_OP_L2_NORM: + return has_simdgroup_reduction && (op->ne[0] % 4 == 0 && ggml_is_contiguous_1(op->src[0])); + case GGML_OP_ARGMAX: + return has_simdgroup_reduction; + case GGML_OP_NORM: + return has_simdgroup_reduction && (op->ne[0] % 4 == 0 && ggml_is_contiguous_1(op->src[0])); + case GGML_OP_ROPE: + return true; + case GGML_OP_IM2COL: + return ggml_is_contiguous(op->src[1]) && op->src[1]->type == GGML_TYPE_F32 && (op->type == GGML_TYPE_F16 || op->type == GGML_TYPE_F32); + case GGML_OP_POOL_1D: + return false; + case GGML_OP_UPSCALE: + return op->src[0]->type == GGML_TYPE_F32 && op->op_params[0] == GGML_SCALE_MODE_NEAREST; + case GGML_OP_POOL_2D: + return op->src[0]->type == GGML_TYPE_F32; + case GGML_OP_PAD: + return (ggml_get_op_params_i32(op, 0) == 0) && (ggml_get_op_params_i32(op, 2) == 0) && + (ggml_get_op_params_i32(op, 4) == 0) && (ggml_get_op_params_i32(op, 6) == 0); + case GGML_OP_PAD_REFLECT_1D: + case GGML_OP_TIMESTEP_EMBEDDING: + case GGML_OP_ARGSORT: + case GGML_OP_LEAKY_RELU: + return op->src[0]->type == GGML_TYPE_F32; + case GGML_OP_ARANGE: + return true; + case GGML_OP_FLASH_ATTN_EXT: + // for new head sizes, add checks here + if (op->src[0]->ne[0] != 40 && + op->src[0]->ne[0] != 64 && + op->src[0]->ne[0] != 80 && + op->src[0]->ne[0] != 96 && + op->src[0]->ne[0] != 112 && + op->src[0]->ne[0] != 128 && + op->src[0]->ne[0] != 192 && + op->src[0]->ne[0] != 256) { + return false; + } + if (op->src[0]->ne[0] == 576) { + // DeepSeek sizes + // TODO: disabled for now, until optmized + return false; + } + if (op->src[1]->type != op->src[2]->type) { + return false; + } + return has_simdgroup_mm; // TODO: over-restricted for vec-kernels + case GGML_OP_SSM_CONV: + case GGML_OP_SSM_SCAN: + return has_simdgroup_reduction; + case GGML_OP_RWKV_WKV6: + case GGML_OP_RWKV_WKV7: + return true; + case GGML_OP_MUL_MAT: + case GGML_OP_MUL_MAT_ID: + return has_simdgroup_reduction && + (op->src[0]->type != GGML_TYPE_F32 || op->src[1]->type == GGML_TYPE_F32); + case GGML_OP_CPY: + case GGML_OP_DUP: + case GGML_OP_CONT: + { + switch (op->src[0]->type) { + case GGML_TYPE_F32: + switch (op->type) { + case GGML_TYPE_F32: + case GGML_TYPE_F16: + case GGML_TYPE_BF16: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_IQ4_NL: + case GGML_TYPE_I32: + return true; + default: + return false; + } + case GGML_TYPE_F16: + switch (op->type) { + case GGML_TYPE_F32: + case GGML_TYPE_F16: + return true; + default: + return false; + } + case GGML_TYPE_BF16: + switch (op->type) { + case GGML_TYPE_F32: + case GGML_TYPE_BF16: + return true; + default: + return false; + } + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_Q8_0: + switch (op->type) { + case GGML_TYPE_F32: + case GGML_TYPE_F16: + return true; + default: + return false; + } + case GGML_TYPE_I32: + return op->type == GGML_TYPE_F32; + default: + return false; + }; + } + case GGML_OP_GET_ROWS: + { + return op->ne[3] == 1; + } + case GGML_OP_SET_ROWS: + { + if (op->src[0]->type != GGML_TYPE_F32) { + return false; + } + + switch (op->type) { + case GGML_TYPE_F32: + case GGML_TYPE_F16: + case GGML_TYPE_BF16: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_IQ4_NL: + return true; + default: + return false; + }; + } + default: + return false; + } +} + +const struct ggml_metal_device_props * ggml_metal_device_get_props(ggml_metal_device_t dev) { + return &dev->props; +} + +// +// device buffers +// + +// max memory buffers that can be mapped to the device +#define GGML_METAL_MAX_BUFFERS 64 + +struct ggml_metal_buffer_wrapper { + void * data; + size_t size; + + id metal; +}; + +struct ggml_metal_buffer { + void * all_data; // TODO: https://github.com/ggml-org/llama.cpp/pull/15985 + size_t all_size; + + // if false, the Metal buffer data is allocated in private GPU memory and is not shared with the host + bool is_shared; + + // multiple buffers are used only to avoid the maximum buffer size limitation when using mmap + int n_buffers; + struct ggml_metal_buffer_wrapper buffers[GGML_METAL_MAX_BUFFERS]; + + bool use_residency_sets; + + // optional MTLResidencySet + // note: cannot use explicity "id" here because it is not available on certain OSes + id rset; + + // pointers to global device objects + id device; + id queue; +}; + +static void ggml_metal_log_allocated_size(id device, size_t size_aligned) { +#ifndef GGML_METAL_NDEBUG +#if TARGET_OS_OSX || (TARGET_OS_IOS && __clang_major__ >= 15) + if (@available(macOS 10.12, iOS 16.0, *)) { + GGML_LOG_DEBUG("%s: allocated buffer, size = %8.2f MiB, (%8.2f / %8.2f)\n", + __func__, + size_aligned / 1024.0 / 1024.0, + device.currentAllocatedSize / 1024.0 / 1024.0, + device.recommendedMaxWorkingSetSize / 1024.0 / 1024.0); + + if (device.currentAllocatedSize > device.recommendedMaxWorkingSetSize) { + GGML_LOG_WARN("%s: warning: current allocated size is greater than the recommended max working set size\n", __func__); + } + } else { + GGML_LOG_INFO("%s: allocated buffer, size = %8.2f MiB, (%8.2f)\n", + __func__, + size_aligned / 1024.0 / 1024.0, + device.currentAllocatedSize / 1024.0 / 1024.0); + } +#endif +#endif + GGML_UNUSED(device); + GGML_UNUSED(size_aligned); +} + +// rset init +static bool ggml_metal_buffer_rset_init(ggml_metal_buffer_t buf) { + buf->rset = nil; + + if (!buf->use_residency_sets) { + return true; + } + +#if defined(GGML_METAL_HAS_RESIDENCY_SETS) + if (@available(macOS 15.0, iOS 18.0, tvOS 18.0, visionOS 2.0, *)) { + MTLResidencySetDescriptor * desc = [[MTLResidencySetDescriptor alloc] init]; + desc.label = @"ggml_metal"; + desc.initialCapacity = buf->n_buffers; + + NSError * error; + buf->rset = [buf->device newResidencySetWithDescriptor:desc error:&error]; + if (error) { + GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); + [desc release]; + return false; + } + + [desc release]; + + for (int i = 0; i < buf->n_buffers; i++) { + [buf->rset addAllocation:buf->buffers[i].metal]; + } + + [buf->rset commit]; + [buf->rset requestResidency]; + + return true; + } +#endif + + return true; +} + +// rset free +static void ggml_metal_buffer_rset_free(ggml_metal_buffer_t buf) { +#if defined(GGML_METAL_HAS_RESIDENCY_SETS) + if (@available(macOS 15.0, iOS 18.0, tvOS 18.0, visionOS 2.0, *)) { + if (buf->rset) { + [buf->rset endResidency]; + [buf->rset removeAllAllocations]; + [buf->rset release]; + } + } +#else + GGML_UNUSED(buf); +#endif +} + +static void * ggml_metal_host_malloc(size_t n) { + void * data = NULL; + +#if TARGET_OS_OSX + kern_return_t err = vm_allocate((vm_map_t) mach_task_self(), (void *) &data, n, VM_FLAGS_ANYWHERE); + if (err != KERN_SUCCESS) { + GGML_LOG_ERROR("%s: error: vm_allocate failed\n", __func__); + return NULL; + } +#else + const int result = posix_memalign((void **) &data, sysconf(_SC_PAGESIZE), n); + if (result != 0) { + GGML_LOG_ERROR("%s: error: posix_memalign failed\n", __func__); + return NULL; + } +#endif + + return data; +} + +ggml_metal_buffer_t ggml_metal_buffer_init(ggml_metal_device_t dev, size_t size, bool shared) { + ggml_metal_buffer_t res = calloc(1, sizeof(struct ggml_metal_buffer)); + + const size_t size_page = sysconf(_SC_PAGESIZE); + + size_t size_aligned = size; + if ((size_aligned % size_page) != 0) { + size_aligned += (size_page - (size_aligned % size_page)); + } + + const struct ggml_metal_device_props * props_dev = ggml_metal_device_get_props(dev); + + shared = shared && props_dev->use_shared_buffers; + + // allocate shared buffer if the device supports it and it is required by the buffer type + if (shared) { + res->all_data = ggml_metal_host_malloc(size_aligned); + res->is_shared = true; + } else { + // dummy, non-NULL value - we'll populate this after creating the Metal buffer below + res->all_data = (void *) 0x000000400ULL; + res->is_shared = false; + } + res->all_size = size_aligned; + + res->device = ggml_metal_device_get_obj(dev); + res->queue = ggml_metal_device_get_queue(dev); + + res->n_buffers = 1; + + if (res->all_data != NULL) { + res->buffers[0].size = size; + res->buffers[0].metal = nil; + + if (size_aligned > 0) { + if (props_dev->use_shared_buffers &&shared) { + res->buffers[0].metal = [res->device newBufferWithBytesNoCopy:res->all_data + length:size_aligned + options:MTLResourceStorageModeShared + deallocator:nil]; + } else { + res->buffers[0].metal = [res->device newBufferWithLength:size_aligned options:MTLResourceStorageModePrivate]; + + res->all_data = (void *) (res->buffers[0].metal.gpuAddress); + } + } + + res->buffers[0].data = res->all_data; + } + + if (size_aligned > 0 && (res->all_data == NULL || res->buffers[0].metal == nil)) { + GGML_LOG_ERROR("%s: error: failed to allocate buffer, size = %8.2f MiB\n", __func__, size_aligned / 1024.0 / 1024.0); + free(res); + return NULL; + } + + res->use_residency_sets = props_dev->use_residency_sets; + + if (!ggml_metal_buffer_rset_init(res)) { + GGML_LOG_ERROR("%s: error: failed to initialize residency set\n", __func__); + free(res); + return NULL; + } + + //ggml_metal_log_allocated_size(device, size_aligned); + + return res; +} + +ggml_metal_buffer_t ggml_metal_buffer_map(ggml_metal_device_t dev, void * ptr, size_t size, size_t max_tensor_size) { + ggml_metal_buffer_t res = calloc(1, sizeof(struct ggml_metal_buffer)); + + res->all_data = ptr; + res->all_size = size; + + res->is_shared = true; + + res->n_buffers = 0; + + const size_t size_page = sysconf(_SC_PAGESIZE); + + // page-align the data ptr + { + const uintptr_t offs = (uintptr_t) ptr % size_page; + ptr = (void *) ((char *) ptr - offs); + size += offs; + } + + size_t size_aligned = size; + if ((size_aligned % size_page) != 0) { + size_aligned += (size_page - (size_aligned % size_page)); + } + + res->device = ggml_metal_device_get_obj(dev); + res->queue = ggml_metal_device_get_queue(dev); + + const struct ggml_metal_device_props * props_dev = ggml_metal_device_get_props(dev); + + // the buffer fits into the max buffer size allowed by the device + if (size_aligned <= props_dev->max_buffer_size) { + res->buffers[res->n_buffers].data = ptr; + res->buffers[res->n_buffers].size = size; + res->buffers[res->n_buffers].metal = nil; + + if (size_aligned > 0) { + res->buffers[res->n_buffers].metal = [res->device newBufferWithBytesNoCopy:ptr length:size_aligned options:MTLResourceStorageModeShared deallocator:nil]; + + if (res->buffers[res->n_buffers].metal == nil) { + GGML_LOG_ERROR("%s: error: failed to allocate buffer, size = %8.2f MiB\n", __func__, size_aligned / 1024.0 / 1024.0); + free(res); + return NULL; + } + } + + ggml_metal_log_allocated_size(res->device, size_aligned); + + ++res->n_buffers; + } else { + // this overlap between the views will guarantee that the tensor with the maximum size will fully fit into + // one of the views + const size_t size_ovlp = ((max_tensor_size + size_page - 1) / size_page + 1) * size_page; // round-up 2 pages just in case + const size_t size_step = props_dev->max_buffer_size - size_ovlp; + const size_t size_view = props_dev->max_buffer_size; + + for (size_t i = 0; i < size; i += size_step) { + const size_t size_step_aligned = (i + size_view <= size) ? size_view : (size_aligned - i); + + res->buffers[res->n_buffers].data = (void *) ((uint8_t *) ptr + i); + res->buffers[res->n_buffers].size = size_step_aligned; + res->buffers[res->n_buffers].metal = nil; + + if (size_step_aligned > 0) { + res->buffers[res->n_buffers].metal = [res->device newBufferWithBytesNoCopy:(void *) ((uint8_t *) ptr + i) length:size_step_aligned options:MTLResourceStorageModeShared deallocator:nil]; + + if (res->buffers[res->n_buffers].metal == nil) { + GGML_LOG_ERROR("%s: error: failed to allocate buffer, size = %8.2f MiB\n", __func__, size_step_aligned / 1024.0 / 1024.0); + free(res); + return NULL; + } + } + + ggml_metal_log_allocated_size(res->device, size_step_aligned); + + if (i + size_step < size) { + GGML_LOG_INFO("\n"); + } + + ++res->n_buffers; + } + } + + res->use_residency_sets = props_dev->use_residency_sets; + + if (!ggml_metal_buffer_rset_init(res)) { + GGML_LOG_ERROR("%s: error: failed to initialize residency set\n", __func__); + free(res); + return NULL; + } + + return res; +} + +void ggml_metal_buffer_free(ggml_metal_buffer_t buf) { + for (int i = 0; i < buf->n_buffers; i++) { + [buf->buffers[i].metal release]; + } + + ggml_metal_buffer_rset_free(buf); + + if (buf->is_shared) { +#if TARGET_OS_OSX + vm_deallocate((vm_map_t)mach_task_self(), (vm_address_t)buf->all_data, buf->all_size); +#else + free(buf->all_data); +#endif + } + + free(buf); +} + +void * ggml_metal_buffer_get_base(ggml_metal_buffer_t buf) { + return buf->all_data; +} + +bool ggml_metal_buffer_is_shared(ggml_metal_buffer_t buf) { + return buf->is_shared; +} + +void ggml_metal_buffer_memset_tensor(ggml_metal_buffer_t buf, struct ggml_tensor * tensor, uint8_t value, size_t offset, size_t size) { + if (buf->is_shared) { + memset((char *)tensor->data + offset, value, size); + return; + } + + @autoreleasepool { + // dst + struct ggml_metal_buffer_id bid_dst = ggml_metal_buffer_get_id(buf, tensor); + bid_dst.offs += offset; + + id queue = buf->queue; + id cmd_buf = [queue commandBufferWithUnretainedReferences]; + + { + id encoder = [cmd_buf blitCommandEncoder]; + + [encoder fillBuffer:bid_dst.metal + range:NSMakeRange(bid_dst.offs, bid_dst.offs + size) + value:value]; + + [encoder endEncoding]; + } + + [cmd_buf commit]; + [cmd_buf waitUntilCompleted]; + } +} + +void ggml_metal_buffer_set_tensor(ggml_metal_buffer_t buf, struct ggml_tensor * tensor, const void * data, size_t offset, size_t size) { + if (buf->is_shared) { + memcpy((char *)tensor->data + offset, data, size); + return; + } + + @autoreleasepool { + // src + void * data_ptr = (void *)(uintptr_t) data; // "const cast" the src data + id buf_src = [buf->device newBufferWithBytesNoCopy:data_ptr + length:size + options:MTLResourceStorageModeShared + deallocator:nil]; + + // dst + struct ggml_metal_buffer_id bid_dst = ggml_metal_buffer_get_id(buf, tensor); + bid_dst.offs += offset; + + // note: for experimentation purposes, here we use a semaphore to wait for the copy to complete + // this is alternative to waitUntilCompleted, which should be faster, but don't seem to make much difference + dispatch_semaphore_t completion_semaphore = dispatch_semaphore_create(0); + + id queue = buf->queue; + id cmd_buf = [queue commandBufferWithUnretainedReferences]; + + { + id encoder = [cmd_buf blitCommandEncoder]; + + [encoder copyFromBuffer:buf_src + sourceOffset:0 + toBuffer:bid_dst.metal + destinationOffset:bid_dst.offs + size:size]; + + [encoder endEncoding]; + } + + [cmd_buf addCompletedHandler:^(id cb) { + // TODO: can check for errors here + GGML_UNUSED(cb); + + dispatch_semaphore_signal(completion_semaphore); + }]; + + [cmd_buf commit]; + + dispatch_semaphore_wait(completion_semaphore, DISPATCH_TIME_FOREVER); + dispatch_release(completion_semaphore); + + //[cmd_buf waitUntilCompleted]; + } +} + +void ggml_metal_buffer_get_tensor(ggml_metal_buffer_t buf, const struct ggml_tensor * tensor, void * data, size_t offset, size_t size) { + if (buf->is_shared) { + memcpy(data, (const char *)tensor->data + offset, size); + return; + } + + @autoreleasepool { + // src + struct ggml_metal_buffer_id bid_src = ggml_metal_buffer_get_id(buf, tensor); + bid_src.offs += offset; + + // dst + id buf_dst = [buf->device newBufferWithBytesNoCopy:data + length:size + options:MTLResourceStorageModeShared + deallocator:nil]; + + id queue = buf->queue; + id cmd_buf = [queue commandBufferWithUnretainedReferences]; + + { + id encoder = [cmd_buf blitCommandEncoder]; + + [encoder copyFromBuffer:bid_src.metal + sourceOffset:bid_src.offs + toBuffer:buf_dst + destinationOffset:0 + size:size]; + + [encoder endEncoding]; + } + + [cmd_buf commit]; + [cmd_buf waitUntilCompleted]; + } +} + +void ggml_metal_buffer_clear(ggml_metal_buffer_t buf, uint8_t value) { + if (buf->is_shared) { + memset(buf->all_data, value, buf->all_size); + return; + } + + @autoreleasepool { + id queue = buf->queue; + id cmd_buf = [queue commandBufferWithUnretainedReferences]; + + { + id encoder = [cmd_buf blitCommandEncoder]; + + [encoder fillBuffer:buf->buffers[0].metal + range:NSMakeRange(0, buf->buffers[0].size) + value:value]; + + [encoder endEncoding]; + } + + [cmd_buf commit]; + [cmd_buf waitUntilCompleted]; + } +} + +struct ggml_metal_buffer_id ggml_metal_buffer_get_id(ggml_metal_buffer_t buf, const struct ggml_tensor * t) { + struct ggml_metal_buffer_id res = { nil, 0 }; + + const int64_t tsize = ggml_nbytes(t); + + // find the view that contains the tensor fully + for (int i = 0; i < buf->n_buffers; ++i) { + const int64_t ioffs = (int64_t) t->data - (int64_t) buf->buffers[i].data; + + //GGML_LOG_INFO("ioffs = %10ld, tsize = %10ld, sum = %10ld, buf->buffers[%d].size = %10ld\n", ioffs, tsize, ioffs + tsize, i, buf->buffers[i].size); + if (ioffs >= 0 && ioffs + tsize <= (int64_t) buf->buffers[i].size) { + res.metal = buf->buffers[i].metal; + res.offs = (size_t) ioffs; + + //GGML_LOG_INFO("%s: tensor '%16s', offs = %8ld\n", __func__, t->name, *offs); + + return res; + } + } + + GGML_LOG_ERROR("%s: error: tensor '%s' buffer is nil\n", __func__, t->name); + + return res; +} diff --git a/ggml/src/ggml-metal/ggml-metal-impl.h b/ggml/src/ggml-metal/ggml-metal-impl.h index 651943fa92..0776bb6485 100644 --- a/ggml/src/ggml-metal/ggml-metal-impl.h +++ b/ggml/src/ggml-metal/ggml-metal-impl.h @@ -165,6 +165,16 @@ typedef struct { uint64_t nb3; } ggml_metal_kargs_repeat; +typedef struct { + float scale; + float bias; +} ggml_metal_kargs_scale; + +typedef struct { + float min; + float max; +} ggml_metal_kargs_clamp; + typedef struct { int64_t ne00; int64_t ne01; @@ -453,7 +463,7 @@ typedef struct { uint64_t nb00; uint64_t nb01; uint64_t nb02; - int32_t n_groups; + int32_t ngrp; float eps; } ggml_metal_kargs_group_norm; @@ -506,14 +516,6 @@ typedef struct { uint64_t nb01; uint64_t nb02; uint64_t nb03; - int64_t ne10; - int64_t ne11; - int64_t ne12; - int64_t ne13; - uint64_t nb10; - uint64_t nb11; - uint64_t nb12; - uint64_t nb13; int64_t ne0; int64_t ne1; int64_t ne2; @@ -547,12 +549,6 @@ typedef struct { int32_t n_head_log2; } ggml_metal_kargs_soft_max; -typedef struct { - int64_t ne00; - int64_t ne01; - int n_past; -} ggml_metal_kargs_diag_mask_inf; - typedef struct { int64_t ne00; int64_t ne01; @@ -579,7 +575,7 @@ typedef struct { int64_t n_group; int64_t n_seq_tokens; int64_t n_seqs; - int64_t s_off; + uint64_t s_off; uint64_t nb01; uint64_t nb02; uint64_t nb03; @@ -719,7 +715,12 @@ typedef struct { int64_t IW; int64_t OH; int64_t OW; - int64_t parallel_elements; + int64_t np; } ggml_metal_kargs_pool_2d; +typedef struct { + int64_t ne00; + uint64_t nb01; +} ggml_metal_kargs_argmax; + #endif // GGML_METAL_IMPL diff --git a/ggml/src/ggml-metal/ggml-metal-ops.cpp b/ggml/src/ggml-metal/ggml-metal-ops.cpp new file mode 100644 index 0000000000..839c16894d --- /dev/null +++ b/ggml/src/ggml-metal/ggml-metal-ops.cpp @@ -0,0 +1,3188 @@ +#include "ggml-metal-ops.h" + +#include "ggml.h" +#include "ggml-impl.h" +#include "ggml-backend-impl.h" + +#include "ggml-metal-impl.h" +#include "ggml-metal-common.h" +#include "ggml-metal-device.h" + +#include +#include + +static ggml_metal_buffer_id ggml_metal_get_buffer_id(const ggml_tensor * t) { + if (!t) { + return { nullptr, 0 }; + } + + ggml_backend_buffer_t buffer = t->view_src ? t->view_src->buffer : t->buffer; + + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t) buffer->context; + + return ggml_metal_buffer_get_id(ctx, t); +} + +struct ggml_metal_op { + ggml_metal_device_t dev; + ggml_metal_library_t lib; + ggml_metal_encoder_t enc; + ggml_mem_ranges_t mem_ranges; + + ggml_cgraph * gf; + + int idx_start; + int idx_end; + + bool use_fusion; + bool use_concurrency; + bool use_capture; + + int debug_graph; + int debug_fusion; +}; + +ggml_metal_op_t ggml_metal_op_init( + ggml_metal_device_t dev, + ggml_metal_cmd_buf_t cmd_buf, + ggml_cgraph * gf, + int idx_start, + int idx_end, + bool use_fusion, + bool use_concurrency, + bool use_capture, + int debug_graph, + int debug_fusion) { + ggml_metal_op_t res = new ggml_metal_op(); + + *res = { + /*.dev =*/ dev, + /*.lib =*/ ggml_metal_device_get_library(dev), + /*.enc =*/ ggml_metal_encoder_init(cmd_buf, use_concurrency), + /*.mem_ranges =*/ ggml_mem_ranges_init(debug_graph), + /*.gf =*/ gf, + /*.idx_start =*/ idx_start, + /*.idx_end =*/ idx_end, + /*.use_fusion =*/ use_fusion, + /*.use_concurrency =*/ use_concurrency, + /*.use_capture =*/ use_capture, + /*.debug_graph =*/ debug_graph, + /*.debug_fusion =*/ debug_fusion, + }; + + return res; +} + +void ggml_metal_op_free(ggml_metal_op_t ctx) { + ggml_metal_encoder_end_encoding(ctx->enc); + ggml_metal_encoder_free(ctx->enc); + ggml_mem_ranges_free(ctx->mem_ranges); + + delete ctx; +} + +static bool ggml_metal_op_concurrency_reset(ggml_metal_op_t ctx) { + if (!ctx->mem_ranges) { + return true; + } + + ggml_metal_encoder_memory_barrier(ctx->enc); + + ggml_mem_ranges_reset(ctx->mem_ranges); + + return true; +} + +static bool ggml_metal_op_concurrency_check(ggml_metal_op_t ctx, const ggml_tensor * node) { + if (!ctx->mem_ranges) { + return false; + } + + return ggml_mem_ranges_check(ctx->mem_ranges, node); +} + +static bool ggml_metal_op_concurrency_add(ggml_metal_op_t ctx, const ggml_tensor * node) { + if (!ctx->mem_ranges) { + return true; + } + + return ggml_mem_ranges_add(ctx->mem_ranges, node); +} + +static int ggml_metal_op_encode_impl(ggml_metal_op_t ctx, int idx) { + struct ggml_cgraph * gf = ctx->gf; + + struct ggml_tensor ** nodes = ggml_graph_nodes(gf) + idx; + struct ggml_tensor * node = nodes[0]; + + //GGML_LOG_INFO("%s: encoding node %3d, op = %8s\n", __func__, idx, ggml_op_name(node->op)); + + if (ggml_is_empty(node)) { + return 1; + } + + switch (node->op) { + case GGML_OP_NONE: + case GGML_OP_RESHAPE: + case GGML_OP_VIEW: + case GGML_OP_TRANSPOSE: + case GGML_OP_PERMUTE: + { + // noop -> next node + } return 1; + default: + { + } break; + } + + if (!ggml_metal_device_supports_op(ctx->dev, node)) { + GGML_LOG_ERROR("%s: error: unsupported op '%s'\n", __func__, ggml_op_desc(node)); + GGML_ABORT("unsupported op"); + } + + int n_fuse = 1; + + // check if the current node can run concurrently with other nodes before it + // the condition is that: + // - the current node cannot write to any previous src or dst ranges + // - the current node cannot read from any previous dst ranges + // + // if the condition is not satisfied, we put a memory barrier and clear all ranges + // otherwise, we add the new ranges to the encoding context and process the node concurrently + // + { + const bool is_concurrent = ggml_metal_op_concurrency_check(ctx, node); + + if (!is_concurrent) { + ggml_metal_op_concurrency_reset(ctx); + } + + if (ctx->debug_graph > 0) { + GGML_LOG_DEBUG("%s: node[%5d] - %-12s %s\n", __func__, idx, ggml_op_name(node->op), is_concurrent ? "(concurrent)" : ""); + } + if (ctx->debug_graph > 1) { + GGML_TENSOR_LOCALS( int64_t, ne0, node->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, node->src[0], nb); + GGML_TENSOR_LOCALS( int64_t, ne1, node->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, node->src[1], nb); + GGML_TENSOR_LOCALS( int64_t, ne, node, ne); + GGML_TENSOR_LOCALS(uint64_t, nb, node, nb); + + if (node->src[0]) { + GGML_LOG_DEBUG("%s: src0 - %4s [%5lld, %5lld, %5lld, %5lld] [%5lld, %5lld, %5lld, %5lld], %d, %s\n", __func__, ggml_type_name(node->src[0]->type), ne00, ne01, ne02, ne03, nb00, nb01, nb02, nb03, + ggml_is_contiguous(node->src[0]), node->src[0]->name); + } + if (node->src[1]) { + GGML_LOG_DEBUG("%s: src1 - %4s [%5lld, %5lld, %5lld, %5lld] [%5lld, %5lld, %5lld, %5lld], %d, %s\n", __func__, ggml_type_name(node->src[1]->type), ne10, ne11, ne12, ne13, nb10, nb11, nb12, nb13, + ggml_is_contiguous(node->src[1]), node->src[1]->name); + } + if (node) { + GGML_LOG_DEBUG("%s: node - %4s [%5lld, %5lld, %5lld, %5lld] [%5lld, %5lld, %5lld, %5lld], 1, %s\n", __func__, ggml_type_name(node->type), ne0, ne1, ne2, ne3, nb0, nb1, nb2, nb3, + node->name); + } + } + } + + switch (node->op) { + case GGML_OP_CONCAT: + { + n_fuse = ggml_metal_op_concat(ctx, idx); + } break; + case GGML_OP_ADD: + case GGML_OP_SUB: + case GGML_OP_MUL: + case GGML_OP_DIV: + { + n_fuse = ggml_metal_op_bin(ctx, idx); + } break; + case GGML_OP_ADD_ID: + { + n_fuse = ggml_metal_op_add_id(ctx, idx); + } break; + case GGML_OP_REPEAT: + { + n_fuse = ggml_metal_op_repeat(ctx, idx); + } break; + case GGML_OP_ACC: + { + n_fuse = ggml_metal_op_acc(ctx, idx); + } break; + case GGML_OP_SCALE: + { + n_fuse = ggml_metal_op_scale(ctx, idx); + } break; + case GGML_OP_CLAMP: + { + n_fuse = ggml_metal_op_clamp(ctx, idx); + } break; + case GGML_OP_SQR: + case GGML_OP_SQRT: + case GGML_OP_SIN: + case GGML_OP_COS: + case GGML_OP_LOG: + case GGML_OP_UNARY: + { + n_fuse = ggml_metal_op_unary(ctx, idx); + } break; + case GGML_OP_GLU: + { + n_fuse = ggml_metal_op_glu(ctx, idx); + } break; + case GGML_OP_SUM_ROWS: + case GGML_OP_MEAN: + { + n_fuse = ggml_metal_op_sum_rows(ctx, idx); + } break; + case GGML_OP_SOFT_MAX: + { + n_fuse = ggml_metal_op_soft_max(ctx, idx); + } break; + case GGML_OP_SSM_CONV: + { + n_fuse = ggml_metal_op_ssm_conv(ctx, idx); + } break; + case GGML_OP_SSM_SCAN: + { + n_fuse = ggml_metal_op_ssm_scan(ctx, idx); + } break; + case GGML_OP_RWKV_WKV6: + case GGML_OP_RWKV_WKV7: + { + n_fuse = ggml_metal_op_rwkv(ctx, idx); + } break; + case GGML_OP_MUL_MAT: + { + n_fuse = ggml_metal_op_mul_mat(ctx, idx); + } break; + case GGML_OP_MUL_MAT_ID: + { + n_fuse = ggml_metal_op_mul_mat_id(ctx, idx); + } break; + case GGML_OP_GET_ROWS: + { + n_fuse = ggml_metal_op_get_rows(ctx, idx); + } break; + case GGML_OP_SET_ROWS: + { + n_fuse = ggml_metal_op_set_rows(ctx, idx); + } break; + case GGML_OP_RMS_NORM: + { + n_fuse = ggml_metal_op_rms_norm(ctx, idx); + } break; + case GGML_OP_L2_NORM: + { + n_fuse = ggml_metal_op_l2_norm(ctx, idx); + } break; + case GGML_OP_GROUP_NORM: + { + n_fuse = ggml_metal_op_group_norm(ctx, idx); + } break; + case GGML_OP_NORM: + { + n_fuse = ggml_metal_op_norm(ctx, idx); + } break; + case GGML_OP_ROPE: + { + n_fuse = ggml_metal_op_rope(ctx, idx); + } break; + case GGML_OP_IM2COL: + { + n_fuse = ggml_metal_op_im2col(ctx, idx); + } break; + case GGML_OP_CONV_TRANSPOSE_1D: + { + n_fuse = ggml_metal_op_conv_transpose_1d(ctx, idx); + } break; + case GGML_OP_UPSCALE: + { + n_fuse = ggml_metal_op_upscale(ctx, idx); + } break; + case GGML_OP_PAD: + { + n_fuse = ggml_metal_op_pad(ctx, idx); + } break; + case GGML_OP_PAD_REFLECT_1D: + { + n_fuse = ggml_metal_op_pad_reflect_1d(ctx, idx); + } break; + case GGML_OP_ARANGE: + { + n_fuse = ggml_metal_op_arange(ctx, idx); + } break; + case GGML_OP_TIMESTEP_EMBEDDING: + { + n_fuse = ggml_metal_op_timestep_embedding(ctx, idx); + } break; + case GGML_OP_ARGSORT: + { + n_fuse = ggml_metal_op_argsort(ctx, idx); + } break; + case GGML_OP_LEAKY_RELU: + { + n_fuse = ggml_metal_op_leaky_relu(ctx, idx); + } break; + case GGML_OP_FLASH_ATTN_EXT: + { + n_fuse = ggml_metal_op_flash_attn_ext(ctx, idx); + } break; + case GGML_OP_DUP: + case GGML_OP_CPY: + case GGML_OP_CONT: + { + n_fuse = ggml_metal_op_cpy(ctx, idx); + } break; + case GGML_OP_POOL_2D: + { + n_fuse = ggml_metal_op_pool_2d(ctx, idx); + } break; + case GGML_OP_ARGMAX: + { + n_fuse = ggml_metal_op_argmax(ctx, idx); + } break; + default: + { + GGML_LOG_ERROR("%s: error: node %3d, op = %8s not implemented\n", __func__, idx, ggml_op_name(node->op)); + GGML_ABORT("fatal error"); + } + } + + if (ctx->debug_graph > 0) { + if (n_fuse > 1) { + GGML_LOG_DEBUG("%s: fuse %d ops\n", __func__, n_fuse); + } + } + + // update the mem ranges in the encoding context + for (int i = 0; i < n_fuse; ++i) { + if (!ggml_metal_op_concurrency_add(ctx, nodes[i])) { + ggml_metal_op_concurrency_reset(ctx); + } + } + + return n_fuse; +} + +int ggml_metal_op_encode(ggml_metal_op_t ctx, int idx) { + if (ctx->use_capture) { + ggml_metal_encoder_debug_group_push(ctx->enc, ggml_op_desc(ggml_graph_node(ctx->gf, idx))); + } + + int res = ggml_metal_op_encode_impl(ctx, idx); + if (idx + res > ctx->idx_end) { + GGML_ABORT("fusion error: nodes spanning multiple encoders have been fused. this indicates a bug in the fusion logic %s", + "https://github.com/ggml-org/llama.cpp/pull/14849"); + } + + if (ctx->use_capture) { + ggml_metal_encoder_debug_group_pop(ctx->enc); + } + + return res; +} + +int ggml_metal_op_concat(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint64_t, nb, op, nb); + + const int32_t dim = ((const int32_t *) op->op_params)[0]; + + ggml_metal_kargs_concat args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne10 =*/ ne10, + /*.ne11 =*/ ne11, + /*.ne12 =*/ ne12, + /*.ne13 =*/ ne13, + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + /*.dim =*/ dim, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_base(lib, GGML_OP_CONCAT); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 3); + + const int nth = std::min(1024, ne0); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne1, ne2, ne3, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_repeat(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_repeat(lib, op->type); + + ggml_metal_kargs_repeat args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + }; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + const int nth = std::min(ggml_metal_pipeline_max_theads_per_threadgroup(pipeline), ne0); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne1, ne2, ne3, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_acc(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + GGML_ASSERT(op->src[0]->type == GGML_TYPE_F32); + GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); + GGML_ASSERT(op->type == GGML_TYPE_F32); + + GGML_ASSERT(ggml_is_contiguous(op->src[0])); + GGML_ASSERT(ggml_is_contiguous(op->src[1])); + + const size_t pnb1 = ((const int32_t *) op->op_params)[0]; + const size_t pnb2 = ((const int32_t *) op->op_params)[1]; + const size_t pnb3 = ((const int32_t *) op->op_params)[2]; + const size_t offs = ((const int32_t *) op->op_params)[3]; + + const bool inplace = (bool) ((const int32_t *) op->op_params)[4]; + + if (!inplace) { + // run a separete kernel to cpy src->dst + // not sure how to avoid this + // TODO: make a simpler cpy_bytes kernel + + //const id pipeline = ctx->pipelines[GGML_METAL_PIPELINE_TYPE_CPY_F32_F32].obj; + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_cpy(lib, op->src[0]->type, op->type); + + ggml_metal_kargs_cpy args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + }; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + const int nth = std::min(ggml_metal_pipeline_max_theads_per_threadgroup(pipeline), ne00); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne01, ne02, ne03, nth, 1, 1); + + ggml_metal_op_concurrency_reset(ctx); + } + + ggml_metal_kargs_bin args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ pnb1, + /*.nb02 =*/ pnb2, + /*.nb03 =*/ pnb3, + /*.ne10 =*/ ne10, + /*.ne11 =*/ ne11, + /*.ne12 =*/ ne12, + /*.ne13 =*/ ne13, + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ pnb1, + /*.nb2 =*/ pnb2, + /*.nb3 =*/ pnb3, + /*.offs =*/ offs, + /*.o1 =*/ { 0 }, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_bin(lib, GGML_OP_ADD, 1, false); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 3); + + const int nth = std::min(ggml_metal_pipeline_max_theads_per_threadgroup(pipeline), ne00); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne11, ne12, ne13, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_scale(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + float scale; + float bias; + memcpy(&scale, ((const int32_t *) op->op_params) + 0, sizeof(float)); + memcpy(&bias, ((const int32_t *) op->op_params) + 1, sizeof(float)); + + ggml_metal_kargs_scale args = { + /*.scale =*/ scale, + /*.bias =*/ bias, + }; + + int64_t n = ggml_nelements(op); + + if (n % 4 == 0) { + n /= 4; + } + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_unary(lib, op); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_dispatch_threadgroups(enc, n, 1, 1, 1, 1, 1); + + return 1; +} + +int ggml_metal_op_clamp(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + float min; + float max; + memcpy(&min, ((const int32_t *) op->op_params) + 0, sizeof(float)); + memcpy(&max, ((const int32_t *) op->op_params) + 1, sizeof(float)); + + ggml_metal_kargs_clamp args = { + /*.min =*/ min, + /*.max =*/ max, + }; + + int64_t n = ggml_nelements(op); + + if (n % 4 == 0) { + n /= 4; + } + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_unary(lib, op); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_dispatch_threadgroups(enc, n, 1, 1, 1, 1, 1); + + return 1; +} + +int ggml_metal_op_unary(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + int64_t n = ggml_nelements(op); + + if (n % 4 == 0) { + n /= 4; + } + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_unary(lib, op); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 1); + + ggml_metal_encoder_dispatch_threadgroups(enc, n, 1, 1, 1, 1, 1); + + return 1; +} + +int ggml_metal_op_glu(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + if (op->src[1]) { + GGML_ASSERT(ggml_are_same_shape(op->src[0], op->src[1])); + } + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_glu(lib, op); + + const int32_t swp = ggml_get_op_params_i32(op, 1); + const float alpha = ggml_get_op_params_f32(op, 2); + const float limit = ggml_get_op_params_f32(op, 3); + + const int32_t i00 = swp ? ne0 : 0; + const int32_t i10 = swp ? 0 : ne0; + + ggml_metal_kargs_glu args = { + /*.ne00 =*/ ne00, + /*.nb01 =*/ nb01, + /*.ne10 =*/ op->src[1] ? ne10 : ne00, + /*.nb11 =*/ op->src[1] ? nb11 : nb01, + /*.ne0 =*/ ne0, + /*.nb1 =*/ nb1, + /*.i00 =*/ op->src[1] ? 0 : i00, + /*.i10 =*/ op->src[1] ? 0 : i10, + /*.alpha=*/ alpha, + /*.limit=*/ limit + }; + + const int64_t nrows = ggml_nrows(op->src[0]); + + const int32_t nth = std::min(ggml_metal_pipeline_max_theads_per_threadgroup(pipeline), ne00/2); + + //[encoder setComputePipelineState:pipeline]; + //[encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; + //if (src1) { + // [encoder setBuffer:id_src1 offset:offs_src1 atIndex:1]; + //} else { + // [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; + //} + //[encoder setBuffer:id_dst offset:offs_dst atIndex:2]; + //[encoder setBytes:&args length:sizeof(args) atIndex:3]; + + //[encoder dispatchThreadgroups:MTLSizeMake(nrows, 1, 1) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + if (op->src[1]) { + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + } else { + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 2); + } + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 3); + + ggml_metal_encoder_dispatch_threadgroups(enc, nrows, 1, 1, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_sum_rows(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + ggml_metal_kargs_sum_rows args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_sum_rows(lib, op); + + int nth = 32; // SIMD width + + while (nth < ne00 && nth < ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)) { + nth *= 2; + } + + nth = std::min(nth, ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)); + nth = std::min(nth, ne00); + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + //[encoder setComputePipelineState:pipeline]; + //[encoder setBytes:&args length:sizeof(args) atIndex:0]; + //[encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; + //[encoder setBuffer:id_dst offset:offs_dst atIndex:2]; + //[encoder setThreadgroupMemoryLength:32*sizeof(float) atIndex:0]; + + //[encoder dispatchThreadgroups:MTLSizeMake(ne01, ne02, ne03) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne01, ne02, ne03, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_get_rows(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_get_rows(lib, op->src[0]->type); + + ggml_metal_kargs_get_rows args = { + /*.ne00 =*/ ne00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.ne10 =*/ ne10, + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + }; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 3); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne10, ne11, ne12, 32, 1, 1); + + return 1; +} + +int ggml_metal_op_set_rows(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_set_rows(lib, op->type); + + const int32_t nk0 = ne0/ggml_blck_size(op->type); + + int nth = 32; // SIMD width + + while (nth < nk0 && nth < ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)) { + nth *= 2; + } + + int nrptg = 1; + if (nth > nk0) { + nrptg = (nth + nk0 - 1)/nk0; + nth = nk0; + + if (nrptg*nth > ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)) { + nrptg--; + } + } + + nth = std::min(nth, nk0); + + ggml_metal_kargs_set_rows args = { + /*.nk0 =*/ nk0, + /*.ne01 =*/ ne01, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne11 =*/ ne11, + /*.ne12 =*/ ne12, + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + }; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 3); + + ggml_metal_encoder_dispatch_threadgroups(enc, (ne01 + nrptg - 1)/nrptg, ne02, ne03, nth, nrptg, 1); + + return 1; +} + +int ggml_metal_op_soft_max(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne2, op->src[2], ne); + GGML_TENSOR_LOCALS(uint64_t, nb2, op->src[2], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + float scale; + float max_bias; + + memcpy(&scale, ((const int32_t *) op->op_params) + 0, sizeof(scale)); + memcpy(&max_bias, ((const int32_t *) op->op_params) + 1, sizeof(max_bias)); + + const uint32_t n_head = op->src[0]->ne[2]; + const int32_t n_head_log2 = 1u << (uint32_t) floorf(log2f((float) n_head)); + + const float m0 = powf(2.0f, -(max_bias ) / n_head_log2); + const float m1 = powf(2.0f, -(max_bias / 2.0f) / n_head_log2); + + // softmax + + ggml_metal_kargs_soft_max args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne11 =*/ ne11, + /*.ne12 =*/ ne12, + /*.ne13 =*/ ne13, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + /*.scale =*/ scale, + /*.max_bias =*/ max_bias, + /*.m0 =*/ m0, + /*.m1 =*/ m1, + /*.n_head_log2 =*/ n_head_log2, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_soft_max(lib, op); + + int nth = 32; // SIMD width + + if (ne00%4 == 0) { + while (nth < ne00/4 && nth*ne01*ne02*ne03 < 256) { + nth *= 2; + } + } else { + while (nth < ne00 && nth*ne01*ne02*ne03 < 256) { + nth *= 2; + } + } + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes(enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[0]), 1); + if (op->src[1]) { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[1]), 2); + } else { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[0]), 2); + } + if (op->src[2]) { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[2]), 3); + } else { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[0]), 3); + } + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op), 4); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne01, ne02, ne03, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_ssm_conv(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + ggml_metal_kargs_ssm_conv args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.ne10 =*/ ne10, + /*.ne11 =*/ ne11, + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_ssm_conv(lib, op); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes(enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op), 3); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne01, ne1, ne02, 1, 1, 1); + + return 1; +} + +int ggml_metal_op_ssm_scan(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne2, op->src[2], ne); + GGML_TENSOR_LOCALS(uint64_t, nb2, op->src[2], nb); + GGML_TENSOR_LOCALS( int32_t, ne3, op->src[3], ne); + GGML_TENSOR_LOCALS(uint64_t, nb3, op->src[3], nb); + GGML_TENSOR_LOCALS( int32_t, ne4, op->src[4], ne); + GGML_TENSOR_LOCALS(uint64_t, nb4, op->src[4], nb); + GGML_TENSOR_LOCALS( int32_t, ne5, op->src[5], ne); + GGML_TENSOR_LOCALS(uint64_t, nb5, op->src[5], nb); + GGML_TENSOR_LOCALS( int32_t, ne6, op->src[6], ne); + GGML_TENSOR_LOCALS(uint64_t, nb6, op->src[6], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + const ggml_tensor * src3 = op->src[3]; + const ggml_tensor * src4 = op->src[4]; + const ggml_tensor * src5 = op->src[5]; + const ggml_tensor * src6 = op->src[6]; + + GGML_ASSERT(src3); + GGML_ASSERT(src4); + GGML_ASSERT(src5); + GGML_ASSERT(src6); + + const int64_t d_state = ne00; + const int64_t d_inner = ne01; + const int64_t n_head = ne02; + const int64_t n_group = ne41; + const int64_t n_seq_tokens = ne12; + const int64_t n_seqs = ne13; + + ggml_metal_kargs_ssm_scan args = { + /*.d_state =*/ d_state, + /*.d_inner =*/ d_inner, + /*.n_head =*/ n_head, + /*.n_group =*/ n_group, + /*.n_seq_tokens =*/ n_seq_tokens, + /*.n_seqs =*/ n_seqs, + /*.s_off =*/ ggml_nelements(op->src[1]) * sizeof(float), + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.nb21 =*/ nb21, + /*.nb22 =*/ nb22, + /*.nb31 =*/ nb31, + /*.nb41 =*/ nb41, + /*.nb42 =*/ nb42, + /*.nb43 =*/ nb43, + /*.nb51 =*/ nb51, + /*.nb52 =*/ nb52, + /*.nb53 =*/ nb53, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_ssm_scan(lib, op); + + const size_t sms = ggml_metal_pipeline_get_smem(pipeline); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[2]), 3); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[3]), 4); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[4]), 5); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[5]), 6); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[6]), 7); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 8); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, sms, 0); + + if (ne30 == 1) { + // Mamba-2 + ggml_metal_encoder_dispatch_threadgroups(enc, d_inner, n_head, n_seqs, d_state, 1, 1); + } else { + GGML_ASSERT(d_inner == 1); + ggml_metal_encoder_dispatch_threadgroups(enc, n_head, n_seqs, 1, d_state, 1, 1); + } + + return 1; +} + +int ggml_metal_op_rwkv(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + const int64_t B = op->op == GGML_OP_RWKV_WKV6 ? op->src[5]->ne[1] : op->src[6]->ne[1]; + const int64_t T = op->src[0]->ne[2]; + const int64_t C = op->ne[0]; + const int64_t H = op->src[0]->ne[1]; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_rwkv(lib, op); + + int ida = 0; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), ida++); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), ida++); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[2]), ida++); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[3]), ida++); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[4]), ida++); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[5]), ida++); + if (op->op == GGML_OP_RWKV_WKV7) { + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[6]), ida++); + } + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), ida++); + ggml_metal_encoder_set_bytes (enc, (void *) &B, sizeof(B), ida++); + ggml_metal_encoder_set_bytes (enc, (void *) &T, sizeof(T), ida++); + ggml_metal_encoder_set_bytes (enc, (void *) &C, sizeof(C), ida++); + ggml_metal_encoder_set_bytes (enc, (void *) &H, sizeof(H), ida++); + + ggml_metal_encoder_dispatch_threadgroups(enc, B * H, 1, 1, C/H, 1, 1); + + return 1; +} + +int ggml_metal_op_cpy(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_cpy(lib, op->src[0]->type, op->type); + + GGML_ASSERT(ne00 % ggml_blck_size(op->src[0]->type) == 0); + + // TODO: support + //const int32_t nk00 = ne00/ggml_blck_size(op->type); + const int32_t nk00 = ne00; + + int nth = 32; // SIMD width + + while (nth < nk00 && nth < ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)) { + nth *= 2; + } + + nth = std::min(nth, ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)); + + // when rows are small, we can batch them together in a single threadgroup + int nrptg = 1; + + // TODO: relax this constraint in the future + if (ggml_blck_size(op->src[0]->type) == 1 && ggml_blck_size(op->type) == 1) { + if (nth > nk00) { + nrptg = (nth + nk00 - 1)/nk00; + nth = nk00; + + if (nrptg*nth > ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)) { + nrptg--; + } + } + } + + nth = std::min(nth, nk00); + + ggml_metal_kargs_cpy args = { + /*.ne00 =*/ nk00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + }; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne01, ne02, ne03, nth, nrptg, 1); + + return 1; +} + +int ggml_metal_op_pool_2d(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + const int32_t * opts = op->op_params; + ggml_op_pool op_pool = (ggml_op_pool) opts[0]; + + const int32_t k0 = opts[1]; + const int32_t k1 = opts[2]; + const int32_t s0 = opts[3]; + const int32_t s1 = opts[4]; + const int32_t p0 = opts[5]; + const int32_t p1 = opts[6]; + + const int64_t IH = op->src[0]->ne[1]; + const int64_t IW = op->src[0]->ne[0]; + + const int64_t N = op->ne[3]; + const int64_t OC = op->ne[2]; + const int64_t OH = op->ne[1]; + const int64_t OW = op->ne[0]; + + const int64_t np = N * OC * OH * OW; + + ggml_metal_kargs_pool_2d args_pool_2d = { + /* .k0 = */ k0, + /* .k1 = */ k1, + /* .s0 = */ s0, + /* .s1 = */ s1, + /* .p0 = */ p0, + /* .p1 = */ p1, + /* .IH = */ IH, + /* .IW = */ IW, + /* .OH = */ OH, + /* .OW = */ OW, + /* .np = */ np + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_pool_2d(lib, op, op_pool); + + const int nth = std::min(ggml_metal_pipeline_max_theads_per_threadgroup(pipeline), (int) np); + const int ntg = (np + nth - 1) / nth; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args_pool_2d, sizeof(args_pool_2d), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_dispatch_threadgroups(enc, ntg, 1, 1, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_mul_mat(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + const ggml_metal_device_props * props_dev = ggml_metal_device_get_props(ctx->dev); + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + GGML_ASSERT(ne00 == ne10); + + GGML_ASSERT(ne12 % ne02 == 0); + GGML_ASSERT(ne13 % ne03 == 0); + + const int16_t r2 = ne12/ne02; + const int16_t r3 = ne13/ne03; + + // find the break-even point where the matrix-matrix kernel becomes more efficient compared + // to the matrix-vector kernel + const int ne11_mm_min = 8; + + // first try to use small-batch mat-mv kernels + // these should be efficient for BS [2, ~8] + if (op->src[1]->type == GGML_TYPE_F32 && (ne00%128 == 0) && + ( + ( + ( + op->src[0]->type == GGML_TYPE_F32 || // TODO: helper function + op->src[0]->type == GGML_TYPE_F16 || + op->src[0]->type == GGML_TYPE_Q4_0 || + op->src[0]->type == GGML_TYPE_Q4_1 || + op->src[0]->type == GGML_TYPE_Q5_0 || + op->src[0]->type == GGML_TYPE_Q5_1 || + op->src[0]->type == GGML_TYPE_Q8_0 || + op->src[0]->type == GGML_TYPE_MXFP4 || + op->src[0]->type == GGML_TYPE_IQ4_NL || + false) && (ne11 >= 2 && ne11 <= 8) + ) || + ( + ( + op->src[0]->type == GGML_TYPE_Q4_K || + op->src[0]->type == GGML_TYPE_Q5_K || + op->src[0]->type == GGML_TYPE_Q6_K || + false) && (ne11 >= 4 && ne11 <= 8) + ) + ) + ) { + // TODO: determine the optimal parameters based on grid utilization + // I still don't know why we should not always use the maximum available threads: + // + // nsg = pipeline.maxTotalThreadsPerThreadgroup / 32 + // + // my current hypothesis is that the work grid is not evenly divisible for different nsg + // values and there can be some tail effects when nsg is high. need to confirm this + // + const int nsg = 2; // num simdgroups per threadgroup + + // num threads along row per simdgroup + int16_t nxpsg = 0; + if (ne00 % 256 == 0 && ne11 < 3) { + nxpsg = 16; + } else if (ne00 % 128 == 0) { + nxpsg = 8; + } else { + nxpsg = 4; + } + + const int16_t nypsg = 32/nxpsg; // num threads along col per simdgroup (i.e. a simdgroup processes that many src0 rows at a time) + const int16_t r0ptg = nypsg*nsg; // num src0 rows per threadgroup + int16_t r1ptg = 4; // num src1 rows per threadgroup + + // note: not sure how optimal are those across all different hardware. there might be someting cleverer + switch (ne11) { + case 2: + r1ptg = 2; break; + case 3: + case 6: + r1ptg = 3; break; + case 4: + case 7: + case 8: + r1ptg = 4; break; + case 5: + r1ptg = 5; break; + default: + GGML_ABORT("unsupported ne11"); + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_mul_mv_ext(lib, op->src[0]->type, op->src[1]->type, r1ptg); + + ggml_metal_kargs_mul_mv_ext args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne10 =*/ ne10, + /*.ne11 =*/ ne11, + /*.ne12 =*/ ne12, + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.r2 =*/ r2, + /*.r3 =*/ r3, + /*.nsg =*/ nsg, + /*.nxpsg =*/ nxpsg, + /*.r1ptg =*/ r1ptg, + }; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 3); + + ggml_metal_encoder_dispatch_threadgroups(enc, ((ne01 + r0ptg - 1)/r0ptg), ((ne11 + r1ptg - 1)/r1ptg), ne12*ne13, 32, nsg, 1); + } else if ( + !ggml_is_transposed(op->src[0]) && + !ggml_is_transposed(op->src[1]) && + // for now the matrix-matrix multiplication kernel only works on A14+/M1+ SoCs + // AMD GPU and older A-chips will reuse matrix-vector multiplication kernel + props_dev->has_simdgroup_mm && + op->src[1]->type == GGML_TYPE_F32 && + ne00 % 32 == 0 && ne00 >= 64 && + (ne11 > ne11_mm_min || (ggml_is_quantized(op->src[0]->type) && ne12 > 1))) { + //printf("matrix: ne00 = %6d, ne01 = %6d, ne02 = %6d, ne11 = %6d, ne12 = %6d\n", ne00, ne01, ne02, ne11, ne12); + + // some Metal matrix data types require aligned pointers + // ref: https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf (Table 2.5) + switch (op->src[0]->type) { + case GGML_TYPE_F32: GGML_ASSERT(nb01 % 16 == 0); break; + case GGML_TYPE_F16: GGML_ASSERT(nb01 % 8 == 0); break; + case GGML_TYPE_BF16: GGML_ASSERT(nb01 % 8 == 0); break; + default: break; + } + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_mul_mm(lib, op->src[0]->type, op->src[1]->type); + + ggml_metal_kargs_mul_mm args = { + /*.ne00 =*/ ne00, + /*.ne02 =*/ ne02, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne12 =*/ ne12, + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.r2 =*/ r2, + /*.r3 =*/ r3, + }; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 3); + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + ggml_metal_encoder_dispatch_threadgroups(enc, ((ne11 + 31)/32), ((ne01 + 63)/64), ne12*ne13, 128, 1, 1); + } else { + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_mul_mv(lib, op); + + ggml_metal_kargs_mul_mv args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne10 =*/ ne10, + /*.ne11 =*/ ne11, + /*.ne12 =*/ ne12, + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.r2 =*/ r2, + /*.r3 =*/ r3, + }; + + const int nr0 = ggml_metal_pipeline_get_nr0(pipeline); + const int nr1 = ggml_metal_pipeline_get_nr1(pipeline); + const int nsg = ggml_metal_pipeline_get_nsg(pipeline); + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 3); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + if (op->src[0]->type == GGML_TYPE_Q8_0) { + ggml_metal_encoder_dispatch_threadgroups(enc, ((ne01 + nr0 - 1)/(nr0)), ((ne11 + nr1 - 1)/nr1), ne12*ne13, 32, nsg, 1); + } else { + ggml_metal_encoder_dispatch_threadgroups(enc, ((ne01 + nr0*nsg - 1)/(nr0*nsg)), ((ne11 + nr1 - 1)/nr1), ne12*ne13, 32, nsg, 1); + } + } + + return 1; +} + +size_t ggml_metal_op_mul_mat_id_extra_tpe(const ggml_tensor * op) { + assert(op->op == GGML_OP_MUL_MAT_ID); + + const int64_t ne02 = op->src[0]->ne[2]; // n_expert + + return ggml_type_size(GGML_TYPE_I32)*ne02; +} + +size_t ggml_metal_op_mul_mat_id_extra_ids(const ggml_tensor * op) { + assert(op->op == GGML_OP_MUL_MAT_ID); + + const int64_t ne02 = op->src[0]->ne[2]; // n_expert + const int64_t ne21 = op->src[2]->ne[1]; // n_token + + return ggml_type_size(GGML_TYPE_I32)*ne02*ne21; +} + +int ggml_metal_op_mul_mat_id(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + const ggml_metal_device_props * props_dev = ggml_metal_device_get_props(ctx->dev); + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne2, op->src[2], ne); + GGML_TENSOR_LOCALS(uint64_t, nb2, op->src[2], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + // src2 = ids + GGML_ASSERT(op->src[2]->type == GGML_TYPE_I32); + + GGML_ASSERT(!ggml_is_transposed(op->src[0])); + GGML_ASSERT(!ggml_is_transposed(op->src[1])); + + GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); + + GGML_ASSERT(ne03 == 1); + GGML_ASSERT(ne13 == 1); + + ggml_metal_buffer_id bid_src0 = ggml_metal_get_buffer_id(op->src[0]); + ggml_metal_buffer_id bid_src1 = ggml_metal_get_buffer_id(op->src[1]); + ggml_metal_buffer_id bid_src2 = ggml_metal_get_buffer_id(op->src[2]); + ggml_metal_buffer_id bid_dst = ggml_metal_get_buffer_id(op); + + const uint32_t r2 = 1; + const uint32_t r3 = 1; + + // find the break-even point where the matrix-matrix kernel becomes more efficient compared + // to the matrix-vector kernel + // ne20 = n_used_experts + // ne21 = n_rows (batch size) + const int ne21_mm_id_min = 32; + + if (props_dev->has_simdgroup_mm && + ne00 % 32 == 0 && ne00 >= 64 && + (ne21 >= ne21_mm_id_min)) { + GGML_ASSERT(ne00 % 4 == 0); + + // some Metal matrix data types require aligned pointers + // ref: https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf (Table 2.5) + switch (op->src[0]->type) { + case GGML_TYPE_F32: GGML_ASSERT(nb01 % 16 == 0); break; + case GGML_TYPE_F16: GGML_ASSERT(nb01 % 8 == 0); break; + case GGML_TYPE_BF16: GGML_ASSERT(nb01 % 8 == 0); break; + default: break; + } + + // extra buffers for intermediate id mapping + ggml_metal_buffer_id bid_tpe = bid_dst; + bid_tpe.offs += ggml_nbytes(op); + + ggml_metal_buffer_id bid_ids = bid_tpe; + bid_ids.offs += ggml_metal_op_mul_mat_id_extra_tpe(op); + + { + ggml_metal_kargs_mul_mm_id_map0 args = { + ne02, + ne10, + ne11, // n_expert_used (bcast) + nb11, + nb12, + ne21, // n_tokens + ne20, // n_expert_used + nb21, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_mul_mm_id_map0(lib, ne02, ne20); + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + GGML_ASSERT(ne02 <= ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)); + + GGML_ASSERT(smem <= props_dev->max_theadgroup_memory_size); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, bid_src2, 1); + ggml_metal_encoder_set_buffer (enc, bid_tpe, 2); + ggml_metal_encoder_set_buffer (enc, bid_ids, 3); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, 1, 1, 1, ne02, 1, 1); + } + + // this barrier is always needed because the next kernel has to wait for the id maps to be computed + ggml_metal_op_concurrency_reset(ctx); + + { + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_mul_mm_id(lib, op->src[0]->type, GGML_TYPE_F16); + + ggml_metal_kargs_mul_mm_id args = { + /*.ne00 =*/ ne00, + /*.ne02 =*/ ne02, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne11 =*/ ne11, // n_expert_used (bcast) + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.ne20 =*/ ne20, // n_expert_used + /*.ne21 =*/ ne21, // n_tokens + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.r2 =*/ r2, + /*.r3 =*/ r3, + }; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, bid_src0, 1); + ggml_metal_encoder_set_buffer (enc, bid_src1, 2); + ggml_metal_encoder_set_buffer (enc, bid_tpe, 3); + ggml_metal_encoder_set_buffer (enc, bid_ids, 4); + ggml_metal_encoder_set_buffer (enc, bid_dst, 5); + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, (ne21 + 31)/32, (ne01 + 63)/64, ne02, 128, 1, 1); + } + } else { + ggml_metal_kargs_mul_mv_id args = { + /*.nei0 =*/ ne20, + /*.nei1 =*/ ne21, + /*.nbi1 =*/ nb21, + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.ne10 =*/ ne10, + /*.ne11 =*/ ne11, + /*.ne12 =*/ ne12, + /*.ne13 =*/ ne13, + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.nb1 =*/ nb1, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_mul_mv_id(lib, op); + + const int nr0 = ggml_metal_pipeline_get_nr0(pipeline); + const int nr1 = ggml_metal_pipeline_get_nr1(pipeline); + const int nsg = ggml_metal_pipeline_get_nsg(pipeline); + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + if (ggml_is_quantized(op->src[0]->type)) { + GGML_ASSERT(ne00 >= nsg*nr0); + } + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes(enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer(enc, bid_src0, 1); + ggml_metal_encoder_set_buffer(enc, bid_src1, 2); + ggml_metal_encoder_set_buffer(enc, bid_dst, 3); + ggml_metal_encoder_set_buffer(enc, bid_src2, 4); + + const int64_t _ne1 = 1; + const int64_t ne123 = ne20*ne21; + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + if (op->src[0]->type == GGML_TYPE_Q8_0) { + ggml_metal_encoder_dispatch_threadgroups(enc, (ne01 + nr0 - 1)/(nr0), (_ne1 + nr1 - 1)/nr1, ne123, 32, nsg, 1); + } else { + ggml_metal_encoder_dispatch_threadgroups(enc, (ne01 + nr0*nsg - 1)/(nr0*nsg), (_ne1 + nr1 - 1)/nr1, ne123, 32, nsg, 1); + } + } + + return 1; +} + +int ggml_metal_op_add_id(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne2, op->src[2], ne); + GGML_TENSOR_LOCALS(uint64_t, nb2, op->src[2], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + + GGML_ASSERT(op->src[0]->type == GGML_TYPE_F32); + GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); + GGML_ASSERT(op->src[2]->type == GGML_TYPE_I32); + GGML_ASSERT(op->type == GGML_TYPE_F32); + + GGML_ASSERT(ggml_is_contiguous_rows(op->src[0])); + + ggml_metal_kargs_add_id args = { + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb11 =*/ nb11, + /*.nb21 =*/ nb21, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_base(lib, GGML_OP_ADD_ID); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[2]), 3); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 4); + + const int nth = std::min(ggml_metal_pipeline_max_theads_per_threadgroup(pipeline), ne00); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne01, ne02, 1, nth, 1, 1); + + return 1; +} + +bool ggml_metal_op_flash_attn_ext_use_vec(const ggml_tensor * op) { + assert(op->op == GGML_OP_FLASH_ATTN_EXT); + + const int64_t ne00 = op->src[0]->ne[0]; // head size + const int64_t ne01 = op->src[0]->ne[1]; // batch size + + // use vec kernel if the batch size is small and if the head size is supported + return (ne01 < 20) && (ne00 % 32 == 0); +} + +size_t ggml_metal_op_flash_attn_ext_extra_tmp(const ggml_tensor * op) { + assert(op->op == GGML_OP_FLASH_ATTN_EXT); + + const int64_t nwg = 32; + + const int64_t ne01 = op->src[0]->ne[1]; + const int64_t ne02 = op->src[0]->ne[2]; + const int64_t ne03 = op->src[0]->ne[3]; + const int64_t ne20 = op->src[2]->ne[0]; + + // temp buffer for writing the results from each workgroup + // - ne20: the size of the Value head + // - + 2: the S and M values for each intermediate result + return ggml_type_size(GGML_TYPE_F32)*(ne01*ne02*ne03*nwg*(ne20 + 2)); +} + +int ggml_metal_op_flash_attn_ext(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + const ggml_metal_device_props * props_dev = ggml_metal_device_get_props(ctx->dev); + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne2, op->src[2], ne); + GGML_TENSOR_LOCALS(uint64_t, nb2, op->src[2], nb); + GGML_TENSOR_LOCALS( int32_t, ne3, op->src[3], ne); + GGML_TENSOR_LOCALS(uint64_t, nb3, op->src[3], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS( int32_t, nb, op, nb); + + GGML_ASSERT(ne00 % 4 == 0); + GGML_ASSERT(ne11 % 32 == 0); + + GGML_ASSERT(op->src[0]->type == GGML_TYPE_F32); + GGML_ASSERT(op->src[1]->type == op->src[2]->type); + + //GGML_ASSERT(ggml_are_same_shape (src1, src2)); + GGML_ASSERT(ne11 == ne21); + GGML_ASSERT(ne12 == ne22); + + GGML_ASSERT(!op->src[3] || op->src[3]->type == GGML_TYPE_F16); + GGML_ASSERT(!op->src[3] || op->src[3]->ne[1] >= GGML_PAD(op->src[0]->ne[1], 8) && + "the Flash-Attention Metal kernel requires the mask to be padded to 8 and at least n_queries big"); + + float scale; + float max_bias; + float logit_softcap; + + memcpy(&scale, ((const int32_t *) op->op_params) + 0, sizeof(scale)); + memcpy(&max_bias, ((const int32_t *) op->op_params) + 1, sizeof(max_bias)); + memcpy(&logit_softcap, ((const int32_t *) op->op_params) + 2, sizeof(logit_softcap)); + + if (logit_softcap != 0.0f) { + scale /= logit_softcap; + } + + const bool has_mask = op->src[3] != NULL; + const bool has_sinks = op->src[4] != NULL; + const bool has_bias = max_bias != 0.0f; + const bool has_scap = logit_softcap != 0.0f; + + const uint32_t n_head = op->src[0]->ne[2]; + const int32_t n_head_log2 = 1u << (uint32_t) floorf(log2f((float) n_head)); + + const float m0 = powf(2.0f, -(max_bias ) / n_head_log2); + const float m1 = powf(2.0f, -(max_bias / 2.0f) / n_head_log2); + + GGML_ASSERT(ne01 < 65536); + + if (!ggml_metal_op_flash_attn_ext_use_vec(op)) { + // half8x8 kernel + const int64_t nqptg = 8; // queries per threadgroup !! sync with kernel template arguments !! + const int64_t ncpsg = 64; // cache values per simdgroup !! sync with kernel template arguments !! + + GGML_ASSERT(nqptg <= 32); + GGML_ASSERT(nqptg % 8 == 0); + GGML_ASSERT(ncpsg % 32 == 0); + + const int is_q = ggml_is_quantized(op->src[1]->type) ? 1 : 0; + + // 2*(2*ncpsg) + // ncpsg soft_max values + ncpsg mask values + // + // 16*32*(nsg) + // the shared memory needed for the simdgroups to load the KV cache + // each thread loads (dequantizes) 16 head elements, there are 32 threads in th SG + // +#define FATTN_SMEM(nsg) (GGML_PAD((nqptg*(ne00 + 2*GGML_PAD(ne20, 64) + 2*(2*ncpsg)) + is_q*(16*32*(nsg)))*(sizeof(float)/2), 16)) + + //int64_t nsgmax = 4; + // + //if (is_q) { + // nsgmax = 2; + // while (true) { + // const size_t smem = FATTN_SMEM(nsgmax); + // if (smem > props_dev->max_theadgroup_memory_size) { + // break; + // } + // nsgmax *= 2; + // } + // nsgmax /= 2; + //} + + // simdgroups per threadgroup (a.k.a. warps) + //nsg = ne01 <= nqptg ? MAX(4, MIN(nsgmax, MIN(ne11/ncpsg, (int64_t) pipeline.maxTotalThreadsPerThreadgroup/32))) : 4; + int32_t nsg = 4; + + const size_t smem = FATTN_SMEM(nsg); + + ggml_metal_kargs_flash_attn_ext args = { + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne11 =*/ ne11, + /*.ne_12_2 =*/ ne12, + /*.ne_12_3 =*/ ne13, + /*.ns10 =*/ int32_t(nb11/nb10), + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.ns20 =*/ int32_t(nb21/nb20), + /*.nb21 =*/ nb21, + /*.nb22 =*/ nb22, + /*.nb23 =*/ nb23, + /*.ne32 =*/ ne32, + /*.ne33 =*/ ne33, + /*.nb31 =*/ nb31, + /*.nb32 =*/ nb32, + /*.nb33 =*/ nb33, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.scale =*/ scale, + /*.max_bias =*/ max_bias, + /*.m0 =*/ m0, + /*.m1 =*/ m1, + /*.n_head_log2 =*/ n_head_log2, + /*.logit_softcap =*/ logit_softcap, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_flash_attn_ext(lib, op, has_mask, has_sinks, has_bias, has_scap, nsg); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[2]), 3); + if (op->src[3]) { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[3]), 4); + } else { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[0]), 4); + } + if (op->src[4]) { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[4]), 5); + } else { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[0]), 5); + } + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 6); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, (ne01 + nqptg - 1)/nqptg, ne02, ne03, 32, nsg, 1); +#undef FATTN_SMEM + } else { + // half4x4 kernel + const int64_t nqptg = 1; // queries per threadgroup !! sync with kernel template arguments !! + const int64_t ncpsg = 32; // cache values per simdgroup !! sync with kernel template arguments !! + const int64_t nkpsg = 1*ncpsg; + + GGML_ASSERT(nqptg <= 32); + GGML_ASSERT(nqptg % 1 == 0); + GGML_ASSERT(ncpsg % 32 == 0); + + // ne00 + 2*ncpsg*(nsg) + // for each query, we load it as f16 in shared memory (ne00) + // and store the soft_max values and the mask + // + // ne20*(nsg) + // each simdgroup has a full f32 head vector in shared mem to accumulate results + // +#define FATTN_SMEM(nsg) (GGML_PAD((nqptg*(GGML_PAD(ne00, 128) + 4*ncpsg*(nsg)) + 2*GGML_PAD(ne20, 128)*(nsg))*(sizeof(float)/2), 16)) + + int64_t nsgmax = 2; + while (true) { + const size_t smem = FATTN_SMEM(nsgmax); + // avoid using more than half of the threadgroup memory - can cause slow downs especially for large head sizes + if (smem > props_dev->max_theadgroup_memory_size/2) { + break; + } + nsgmax *= 2; + } + nsgmax /= 2; + + // simdgroups per threadgroup (a.k.a. warps) + //const int64_t nsgt = MAX(2, MIN(nsgmax, MIN((ne11 + nkpsg - 1)/(nkpsg), (int64_t) pipeline.maxTotalThreadsPerThreadgroup/32))); + const int64_t nsgt = MAX(2, MIN(nsgmax, MIN((ne11 + nkpsg - 1)/(nkpsg), (int64_t) 1024/32))); + + int64_t nsg = 1; + while (nsg <= nsgt) { + nsg *= 2; + } + nsg /= 2; + + // workgroups + // each workgroup handles nsg*nkpsg cache values + int32_t nwg = 1; + if (false) { + // for small KV caches, we could launch a single workgroup and write the results directly to dst/ + // however, this does not lead to significant improvement, so disabled + nwg = 1; + nsg = 4; + } else { + nwg = 32; + nsg = 1; + while (2*nwg*nsg*nkpsg < ne11 && nsg < 4) { + nsg *= 2; + } + } + + ggml_metal_kargs_flash_attn_ext_vec args = { + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne11 =*/ ne11, + /*.ne_12_2 =*/ ne12, + /*.ne_12_3 =*/ ne13, + /*.ns10 =*/ int32_t(nb11/nb10), + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.ns20 =*/ int32_t(nb21/nb20), + /*.nb21 =*/ nb21, + /*.nb22 =*/ nb22, + /*.nb23 =*/ nb23, + /*.ne32 =*/ ne32, + /*.ne33 =*/ ne33, + /*.nb31 =*/ nb31, + /*.nb32 =*/ nb32, + /*.nb33 =*/ nb33, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.scale =*/ scale, + /*.max_bias =*/ max_bias, + /*.m0 =*/ m0, + /*.m1 =*/ m1, + /*.n_head_log2 =*/ n_head_log2, + /*.logit_softcap =*/ logit_softcap, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_flash_attn_ext_vec(lib, op, has_mask, has_sinks, has_bias, has_scap, nsg, nwg); + + GGML_ASSERT(nsg*32 <= ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[2]), 3); + if (op->src[3]) { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[3]), 4); + } else { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[0]), 4); + } + if (op->src[4]) { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[4]), 5); + } else { + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op->src[0]), 5); + } + + const size_t smem = FATTN_SMEM(nsg); + + //printf("smem: %zu, max: %zu, nsg = %d, nsgmax = %d\n", smem, props_dev->max_theadgroup_memory_size, (int) nsg, (int) nsgmax); + GGML_ASSERT(smem <= props_dev->max_theadgroup_memory_size); + + if (nwg == 1) { + // using 1 workgroup -> write the result directly into dst + ggml_metal_encoder_set_buffer(enc, ggml_metal_get_buffer_id(op), 6); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, (ne01 + nqptg - 1)/nqptg, ne02, ne03*nwg, 32, nsg, 1); + } else { + // sanity checks + GGML_ASSERT(ne01*ne02*ne03 == ne1*ne2*ne3); + GGML_ASSERT((uint64_t)ne1*ne2*ne3 <= (1u << 31)); + + ggml_metal_buffer_id bid_dst = ggml_metal_get_buffer_id(op); + + // write the results from each workgroup into a temp buffer + ggml_metal_buffer_id bid_tmp = bid_dst; + bid_tmp.offs += ggml_nbytes(op); + ggml_metal_encoder_set_buffer(enc, bid_tmp, 6); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + ggml_metal_encoder_dispatch_threadgroups(enc, (ne01 + nqptg - 1)/nqptg, ne02, ne03*nwg, 32, nsg, 1); + + // sync the 2 kernels + ggml_metal_op_concurrency_reset(ctx); + + // reduce the results from the workgroups + { + const int32_t nrows = ne1*ne2*ne3; + + ggml_metal_kargs_flash_attn_ext_vec_reduce args0 = { + nrows, + }; + + ggml_metal_pipeline_t pipeline0 = ggml_metal_library_get_pipeline_flash_attn_ext_vec_reduce(lib, op, ne20, nwg); + + ggml_metal_encoder_set_pipeline(enc, pipeline0); + ggml_metal_encoder_set_bytes (enc, &args0, sizeof(args0), 0); + ggml_metal_encoder_set_buffer (enc, bid_tmp, 1); + ggml_metal_encoder_set_buffer (enc, bid_dst, 2); + + ggml_metal_encoder_dispatch_threadgroups(enc, nrows, 1, 1, 32*nwg, 1, 1); + } + } +#undef FATTN_SMEM + } + + return 1; +} + +int ggml_metal_op_bin(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_tensor ** ops = ggml_graph_nodes(gf) + idx; + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + const int idx_end = ctx->idx_end; + + const bool use_fusion = ctx->use_fusion; + + const int debug_fusion = ctx->debug_fusion; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint64_t, nb, op, nb); + + GGML_ASSERT(op->src[0]->type == GGML_TYPE_F32); + GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); + + GGML_ASSERT(ggml_is_contiguous_rows(op->src[0])); + GGML_ASSERT(ggml_is_contiguous_rows(op->src[1])); + + bool bcast_row = false; + + ggml_metal_buffer_id bid_src0 = ggml_metal_get_buffer_id(op->src[0]); + ggml_metal_buffer_id bid_src1 = ggml_metal_get_buffer_id(op->src[1]); + ggml_metal_buffer_id bid_dst = ggml_metal_get_buffer_id(op); + + ggml_metal_kargs_bin args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne10 =*/ ne10, + /*.ne11 =*/ ne11, + /*.ne12 =*/ ne12, + /*.ne13 =*/ ne13, + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + /*.offs =*/ 0, + /*.o1 =*/ { bid_src1.offs }, + }; + + ggml_op fops[8]; + + int n_fuse = 1; + + // c[0] = add(a, b[0]) + // c[1] = add(c[0], b[1]) + // c[2] = add(c[1], b[2]) + // ... + if (use_fusion) { + fops[0] = GGML_OP_ADD; + fops[1] = GGML_OP_ADD; + fops[2] = GGML_OP_ADD; + fops[3] = GGML_OP_ADD; + fops[4] = GGML_OP_ADD; + fops[5] = GGML_OP_ADD; + fops[6] = GGML_OP_ADD; + fops[7] = GGML_OP_ADD; + + // note: in metal, we sometimes encode the graph in parallel so we have to avoid fusing ops + // across splits. idx_end indicates the last node in the current split + for (n_fuse = 0; n_fuse <= 6 && idx + n_fuse + 1 < idx_end; ++n_fuse) { + if (!ggml_can_fuse(gf, idx + n_fuse, fops + n_fuse, 2)) { + break; + } + + if (ops[n_fuse] != ops[n_fuse + 1]->src[0]) { + break; + } + + // b[0] === b[1] === ... + if (!ggml_are_same_layout(ops[n_fuse]->src[1], ops[n_fuse + 1]->src[1])) { + break; + } + + // only fuse ops if src1 is in the same Metal buffer + ggml_metal_buffer_id bid_fuse = ggml_metal_get_buffer_id(ops[n_fuse + 1]->src[1]); + if (bid_fuse.metal != bid_src1.metal) { + break; + } + + //ctx->fuse_cnt[ops[n_fuse + 1]->op]++; + + args.o1[n_fuse + 1] = bid_fuse.offs; + } + + ++n_fuse; + + if (debug_fusion > 1 && n_fuse > 1) { + GGML_LOG_DEBUG("%s: fuse: ADD x %d\n", __func__, n_fuse); + } + } + + // the offsets of src1 and all fused buffers are relative to the start of the src1 buffer + bid_src1.offs = 0; + + ggml_metal_pipeline_t pipeline = nullptr; + + if (ggml_nelements(op->src[1]) == ne10 && ggml_is_contiguous(op->src[1]) && ne00 % 4 == 0 && ne10 % 4 == 0) { + GGML_ASSERT(ggml_is_contiguous(op->src[0])); + + // src1 is a row + GGML_ASSERT(ne11 == 1); + + pipeline = ggml_metal_library_get_pipeline_bin(lib, op->op, n_fuse, true); + + bcast_row = true; + } else { + pipeline = ggml_metal_library_get_pipeline_bin(lib, op->op, n_fuse, false); + } + + if (n_fuse > 1) { + bid_dst = ggml_metal_get_buffer_id(ops[n_fuse - 1]); + + for (int i = 1; i < n_fuse; ++i) { + if (!ggml_metal_op_concurrency_check(ctx, ops[i])) { + ggml_metal_op_concurrency_reset(ctx); + + break; + } + } + } + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, bid_src0, 1); + ggml_metal_encoder_set_buffer (enc, bid_src1, 2); + ggml_metal_encoder_set_buffer (enc, bid_dst, 3); + + if (bcast_row) { + const int64_t n = ggml_nelements(op)/4; + + ggml_metal_encoder_dispatch_threadgroups(enc, n, 1, 1, 1, 1, 1); + } else { + int nth = 32; + + while (16*nth < ne0 && nth < ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)) { + nth *= 2; + } + + ggml_metal_encoder_dispatch_threadgroups(enc, ne01, ne02, ne03, nth, 1, 1); + } + + return n_fuse; +} + +int ggml_metal_op_rms_norm(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + const int idx_end = ctx->idx_end; + + const bool use_fusion = ctx->use_fusion; + + const int debug_fusion = ctx->debug_fusion; + + ggml_tensor ** ops = ggml_graph_nodes(gf) + idx; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + float eps; + memcpy(&eps, op->op_params, sizeof(float)); + + ggml_metal_buffer_id bid_src0 = ggml_metal_get_buffer_id(op->src[0]); + ggml_metal_buffer_id bid_dst = ggml_metal_get_buffer_id(op); + + ggml_metal_kargs_rms_norm args = { + /*.ne00 =*/ ne00, + /*.ne00_4 =*/ ne00/4, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + /*.eps =*/ eps, + /*.nef1 =*/ { ne01 }, + /*.nef2 =*/ { ne02 }, + /*.nef3 =*/ { ne03 }, + /*.nbf1 =*/ { nb01 }, + /*.nbf2 =*/ { nb02 }, + /*.nbf3 =*/ { nb03 }, + }; + + ggml_op fops[8]; + + int n_fuse = 1; + + ggml_metal_buffer_id bid_fuse[2] = { bid_src0, bid_src0 }; + + // d[0] = rms_norm(a) + // d[1] = mul(d[0], b) + // d[2] = add(d[1], c) + if (use_fusion) { + fops[0] = GGML_OP_RMS_NORM; + fops[1] = GGML_OP_MUL; + fops[2] = GGML_OP_ADD; + + for (n_fuse = 0; n_fuse <= 1 && idx + n_fuse + 1 < idx_end; ++n_fuse) { + if (!ggml_can_fuse(gf, idx + n_fuse, fops + n_fuse, 2)) { + break; + } + + if (ops[n_fuse] != ops[n_fuse + 1]->src[0]) { + break; + } + + if (ops[n_fuse + 1]->src[1]->ne[0] != op->ne[0]) { + break; + } + + if (!ggml_is_contiguous_rows(ops[n_fuse + 1]->src[1])) { + break; + } + + if (ops[n_fuse + 1]->type != GGML_TYPE_F32) { + break; + } + + //ctx->fuse_cnt[ops[n_fuse + 1]->op]++; + + bid_fuse[n_fuse] = ggml_metal_get_buffer_id(ops[n_fuse + 1]->src[1]); + + args.nef1[n_fuse + 1] = ops[n_fuse + 1]->src[1]->ne[1]; + args.nef2[n_fuse + 1] = ops[n_fuse + 1]->src[1]->ne[2]; + args.nef3[n_fuse + 1] = ops[n_fuse + 1]->src[1]->ne[3]; + + args.nbf1[n_fuse + 1] = ops[n_fuse + 1]->src[1]->nb[1]; + args.nbf2[n_fuse + 1] = ops[n_fuse + 1]->src[1]->nb[2]; + args.nbf3[n_fuse + 1] = ops[n_fuse + 1]->src[1]->nb[3]; + } + + ++n_fuse; + + if (debug_fusion > 1 && n_fuse > 1) { + if (n_fuse == 2) { + GGML_LOG_DEBUG("%s: fuse: RMS_NORM + MUL\n", __func__); + } + if (n_fuse == 3) { + GGML_LOG_DEBUG("%s: fuse: RMS_NORM + MUL + ADD\n", __func__); + } + } + } + + if (n_fuse > 1) { + bid_dst = ggml_metal_get_buffer_id(ops[n_fuse - 1]); + + for (int i = 1; i < n_fuse; ++i) { + if (!ggml_metal_op_concurrency_check(ctx, ops[i])) { + ggml_metal_op_concurrency_reset(ctx); + + break; + } + } + } + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_rms_norm(lib, op, n_fuse); + + int nth = 32; // SIMD width + + while (nth < ne00/4 && nth < ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)) { + nth *= 2; + } + + nth = std::min(nth, ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)); + nth = std::min(nth, ne00/4); + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, bid_src0, 1); + ggml_metal_encoder_set_buffer (enc, bid_fuse[0], 2); + ggml_metal_encoder_set_buffer (enc, bid_fuse[1], 3); + ggml_metal_encoder_set_buffer (enc, bid_dst, 4); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne01, ne02, ne03, nth, 1, 1); + + return n_fuse; +} + +int ggml_metal_op_l2_norm(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + float eps; + memcpy(&eps, op->op_params, sizeof(float)); + + int nth = 32; // SIMD width + + ggml_metal_kargs_l2_norm args = { + /*.ne00 =*/ ne00, + /*.ne00_4 =*/ ne00/4, + /*.nb01 =*/ nb01, + /*.eps =*/ eps, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_l2_norm(lib, op); + + while (nth < ne00/4 && nth < ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)) { + nth *= 2; + } + + nth = std::min(nth, ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)); + nth = std::min(nth, ne00/4); + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + const int64_t nrows = ggml_nrows(op->src[0]); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, nrows, 1, 1, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_group_norm(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + const int32_t ngrp = ((const int32_t *) op->op_params)[0]; + + float eps; + memcpy(&eps, op->op_params + 1, sizeof(float)); + + ggml_metal_kargs_group_norm args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.ngrp =*/ ngrp, + /*.eps =*/ eps, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_group_norm(lib, op); + + int nth = 32; // SIMD width + //while (nth < ne00/4 && nth < ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)) { + // nth *= 2; + //} + + //nth = std::min(nth, ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)); + //nth = std::min(nth, ne00/4); + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, ngrp, 1, 1, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_norm(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + float eps; + memcpy(&eps, op->op_params, sizeof(float)); + + ggml_metal_kargs_norm args = { + /*.ne00 =*/ ne00, + /*.ne00_4 =*/ ne00/4, + /*.nb01 =*/ nb01, + /*.eps =*/ eps, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_norm(lib, op); + + int nth = 32; // SIMD width + while (nth < ne00/4 && nth < ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)) { + nth *= 2; + } + + nth = std::min(nth, ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)); + nth = std::min(nth, ne00/4); + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + const int64_t nrows = ggml_nrows(op->src[0]); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, nrows, 1, 1, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_rope(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + // make sure we have one or more position id(ne10) per token(ne02) + GGML_ASSERT(ne10 % ne02 == 0); + GGML_ASSERT(ne10 >= ne02); + + const int nth = std::min(1024, ne00); + + const int n_past = ((const int32_t *) op->op_params)[0]; + const int n_dims = ((const int32_t *) op->op_params)[1]; + //const int mode = ((const int32_t *) op->op_params)[2]; + // skip 3, n_ctx, used in GLM RoPE, unimplemented in metal + const int n_ctx_orig = ((const int32_t *) op->op_params)[4]; + + float freq_base; + float freq_scale; + float ext_factor; + float attn_factor; + float beta_fast; + float beta_slow; + + memcpy(&freq_base, (const int32_t *) op->op_params + 5, sizeof(float)); + memcpy(&freq_scale, (const int32_t *) op->op_params + 6, sizeof(float)); + memcpy(&ext_factor, (const int32_t *) op->op_params + 7, sizeof(float)); + memcpy(&attn_factor, (const int32_t *) op->op_params + 8, sizeof(float)); + memcpy(&beta_fast, (const int32_t *) op->op_params + 9, sizeof(float)); + memcpy(&beta_slow, (const int32_t *) op->op_params + 10, sizeof(float)); + + // mrope + const int sect_0 = ((const int32_t *) op->op_params)[11]; + const int sect_1 = ((const int32_t *) op->op_params)[12]; + const int sect_2 = ((const int32_t *) op->op_params)[13]; + const int sect_3 = ((const int32_t *) op->op_params)[14]; + + ggml_metal_kargs_rope args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + /*.n_past =*/ n_past, + /*.n_dims =*/ n_dims, + /*.n_ctx_orig =*/ n_ctx_orig, + /*.freq_base =*/ freq_base, + /*.freq_scale =*/ freq_scale, + /*.ext_factor =*/ ext_factor, + /*.attn_factor =*/ attn_factor, + /*.beta_fast =*/ beta_fast, + /*.beta_slow =*/ beta_slow, + /* sect_0 =*/ sect_0, + /* sect_1 =*/ sect_1, + /* sect_2 =*/ sect_2, + /* sect_3 =*/ sect_3, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_rope(lib, op); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + if (op->src[2]) { + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[2]), 3); + } else { + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 3); + } + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 4); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne01, ne02, ne03, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_im2col(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + const int32_t s0 = ((const int32_t *)(op->op_params))[0]; + const int32_t s1 = ((const int32_t *)(op->op_params))[1]; + const int32_t p0 = ((const int32_t *)(op->op_params))[2]; + const int32_t p1 = ((const int32_t *)(op->op_params))[3]; + const int32_t d0 = ((const int32_t *)(op->op_params))[4]; + const int32_t d1 = ((const int32_t *)(op->op_params))[5]; + + const bool is_2D = ((const int32_t *)(op->op_params))[6] == 1; + + const int32_t N = op->src[1]->ne[is_2D ? 3 : 2]; + const int32_t IC = op->src[1]->ne[is_2D ? 2 : 1]; + const int32_t IH = is_2D ? op->src[1]->ne[1] : 1; + const int32_t IW = op->src[1]->ne[0]; + + const int32_t KH = is_2D ? op->src[0]->ne[1] : 1; + const int32_t KW = op->src[0]->ne[0]; + + const int32_t OH = is_2D ? op->ne[2] : 1; + const int32_t OW = op->ne[1]; + + const int32_t CHW = IC * KH * KW; + + const uint64_t ofs0 = op->src[1]->nb[is_2D ? 3 : 2] / 4; + const uint64_t ofs1 = op->src[1]->nb[is_2D ? 2 : 1] / 4; + + + ggml_metal_kargs_im2col args = { + /*.ofs0 =*/ ofs0, + /*.ofs1 =*/ ofs1, + /*.IW =*/ IW, + /*.IH =*/ IH, + /*.CHW =*/ CHW, + /*.s0 =*/ s0, + /*.s1 =*/ s1, + /*.p0 =*/ p0, + /*.p1 =*/ p1, + /*.d0 =*/ d0, + /*.d1 =*/ d1, + /*.N =*/ N, + /*.KH =*/ KH, + /*.KW =*/ KW, + /*.KHW =*/ KH * KW, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_im2col(lib, op); + + const uint64_t n_threads = std::min(ggml_metal_pipeline_max_theads_per_threadgroup(pipeline), N); + const int64_t quotient = N / n_threads + (N % n_threads > 0 ? 1 : 0); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_dispatch_threadgroups(enc, quotient * CHW, OH, OW, n_threads, 1, 1); + + return 1; +} + +int ggml_metal_op_conv_transpose_1d(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + const int32_t s0 = ((const int32_t *)(op->op_params))[0]; + + const int32_t IC = op->src[1]->ne[1]; + const int32_t IL = op->src[1]->ne[0]; + + const int32_t K = op->src[0]->ne[0]; + + const int32_t OL = op->ne[0]; + const int32_t OC = op->ne[1]; + + ggml_metal_kargs_conv_transpose_1d args = { + /*.IC =*/ IC, + /*.IL =*/ IL, + /*.K =*/ K, + /*.s0 =*/ s0, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_conv_transpose_1d(lib, op); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), 2); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 3); + + ggml_metal_encoder_dispatch_threadgroups(enc, OL, OC, 1, 1, 1, 1); + + return 1; +} + +int ggml_metal_op_upscale(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + const float sf0 = (float)ne0/op->src[0]->ne[0]; + const float sf1 = (float)ne1/op->src[0]->ne[1]; + const float sf2 = (float)ne2/op->src[0]->ne[2]; + const float sf3 = (float)ne3/op->src[0]->ne[3]; + + ggml_metal_kargs_upscale args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + /*.sf0 =*/ sf0, + /*.sf1 =*/ sf1, + /*.sf2 =*/ sf2, + /*.sf3 =*/ sf3 + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_upscale(lib, op); + + const int nth = std::min(ggml_metal_pipeline_max_theads_per_threadgroup(pipeline), ne0); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne1, ne2, ne3, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_pad(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + ggml_metal_kargs_pad args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3 + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_pad(lib, op); + + const int nth = std::min(1024, ne0); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne1, ne2, ne3, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_pad_reflect_1d(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + ggml_metal_kargs_pad_reflect_1d args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + /*.p0 =*/ ((const int32_t *)(op->op_params))[0], + /*.p1 =*/ ((const int32_t *)(op->op_params))[1] + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_pad_reflect_1d(lib, op); + + const int nth = std::min(1024, ne0); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne1, ne2, ne3, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_arange(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + float start; + float step; + + memcpy(&start, ((const int32_t *) op->op_params) + 0, sizeof(float)); + memcpy(&step, ((const int32_t *) op->op_params) + 2, sizeof(float)); + + ggml_metal_kargs_arange args = { + /*.ne0 =*/ ne0, + /*.start =*/ start, + /*.step =*/ step + }; + + const int nth = std::min(1024, ne0); + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_arange(lib, op); + + //[encoder setComputePipelineState:pipeline]; + //[encoder setBuffer:id_dst offset:offs_dst atIndex:0]; + //[encoder setBytes:&args length:sizeof(args) atIndex:1]; + + //[encoder dispatchThreadgroups:MTLSizeMake(1, 1, 1) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 1); + + ggml_metal_encoder_dispatch_threadgroups(enc, 1, 1, 1, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_timestep_embedding(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + const int dim = op->op_params[0]; + const int max_period = op->op_params[1]; + + ggml_metal_kargs_timestep_embedding args = { + /*.nb1 =*/ nb1, + /*.dim =*/ dim, + /*.max_period =*/ max_period, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_timestep_embedding(lib, op); + + const int nth = std::max(1, std::min(1024, dim/2)); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_dispatch_threadgroups(enc, ne00, 1, 1, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_argmax(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + ggml_metal_kargs_argmax args = { + /*.ne00 = */ ne00, + /*.nb01 = */ nb01, + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_argmax(lib, op); + + const int64_t nrows = ggml_nrows(op->src[0]); + + int nth = 32; // SIMD width + while (nth < ne00 && nth*ne01*ne02*ne03 < 256) { + nth *= 2; + } + + const size_t smem = ggml_metal_pipeline_get_smem(pipeline); + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, nrows, 1, 1, nth, 1, 1); + + return 1; +} + +int ggml_metal_op_argsort(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + // bitonic sort requires the number of elements to be power of 2 + int64_t ne00_padded = 1; + while (ne00_padded < ne00) { + ne00_padded *= 2; + } + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_argsort(lib, op); + + const int64_t nrows = ggml_nrows(op->src[0]); + + // Metal kernels require the buffer size to be multiple of 16 bytes + // https://developer.apple.com/documentation/metal/mtlcomputecommandencoder/1443142-setthreadgroupmemorylength + const size_t smem = GGML_PAD(ne00_padded*sizeof(int32_t), 16); + + ggml_metal_kargs_argsort args = { + /*.ncols =*/ ne00, + /*.ncols_pad =*/ ne00_padded + }; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); + + ggml_metal_encoder_dispatch_threadgroups(enc, 1, nrows, 1, ne00_padded, 1, 1); + + return 1; +} + +int ggml_metal_op_leaky_relu(ggml_metal_op_t ctx, int idx) { + ggml_cgraph * gf = ctx->gf; + ggml_tensor * op = ggml_graph_node(gf, idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint32_t, nb, op, nb); + + float slope; + memcpy(&slope, op->op_params, sizeof(float)); + + ggml_metal_kargs_leaky_relu args = { + /*.slope =*/ slope + }; + + ggml_metal_pipeline_t pipeline = ggml_metal_library_get_pipeline_unary(lib, op); + + int64_t n = ggml_nelements(op); + + if (n % 4 == 0) { + n /= 4; + } + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), 0); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), 1); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), 2); + + ggml_metal_encoder_dispatch_threadgroups(enc, n, 1, 1, 1, 1, 1); + + return 1; +} diff --git a/ggml/src/ggml-metal/ggml-metal-ops.h b/ggml/src/ggml-metal/ggml-metal-ops.h new file mode 100644 index 0000000000..b620de164d --- /dev/null +++ b/ggml/src/ggml-metal/ggml-metal-ops.h @@ -0,0 +1,81 @@ +#pragma once + +#include "ggml-metal-device.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ggml_metal_op * ggml_metal_op_t; + +ggml_metal_op_t ggml_metal_op_init( + ggml_metal_device_t dev, + ggml_metal_cmd_buf_t cmd_buf, + struct ggml_cgraph * gf, + int idx_start, + int idx_end, + bool use_fusion, + bool use_concurrency, + bool use_capture, + int debug_graph, + int debug_fusion); + +void ggml_metal_op_free(ggml_metal_op_t ctx); + +int ggml_metal_op_encode(ggml_metal_op_t ctx, int idx); + +// +// available ops: +// + +// tokens per expert +size_t ggml_metal_op_mul_mat_id_extra_tpe(const struct ggml_tensor * op); + +// id map [n_tokens, n_expert] +size_t ggml_metal_op_mul_mat_id_extra_ids(const struct ggml_tensor * op); + +// return true if we should use the FA vector kernel for this op +bool ggml_metal_op_flash_attn_ext_use_vec(const struct ggml_tensor * op); + +size_t ggml_metal_op_flash_attn_ext_extra_tmp(const struct ggml_tensor * op); + +int ggml_metal_op_concat (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_repeat (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_acc (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_scale (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_clamp (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_unary (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_glu (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_sum_rows (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_get_rows (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_set_rows (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_soft_max (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_ssm_conv (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_ssm_scan (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_rwkv (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_cpy (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_pool_2d (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_mul_mat (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_mul_mat_id (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_add_id (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_flash_attn_ext (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_bin (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_rms_norm (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_l2_norm (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_group_norm (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_norm (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_rope (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_im2col (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_conv_transpose_1d (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_upscale (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_pad (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_pad_reflect_1d (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_arange (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_timestep_embedding(ggml_metal_op_t ctx, int idx); +int ggml_metal_op_argmax (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_argsort (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_leaky_relu (ggml_metal_op_t ctx, int idx); + +#ifdef __cplusplus +} +#endif diff --git a/ggml/src/ggml-metal/ggml-metal.cpp b/ggml/src/ggml-metal/ggml-metal.cpp new file mode 100644 index 0000000000..fd0e6ed6e4 --- /dev/null +++ b/ggml/src/ggml-metal/ggml-metal.cpp @@ -0,0 +1,718 @@ +#include "ggml-metal.h" + +#include "ggml-impl.h" +#include "ggml-backend-impl.h" + +#include "ggml-metal-device.h" +#include "ggml-metal-context.h" +#include "ggml-metal-ops.h" + +// globals + +// initialized in ggml_backend_metal_reg +static ggml_backend_reg g_ggml_metal_reg; +static ggml_backend_device g_ggml_metal_device; + +//////////////////////////////////////////////////////////////////////////////// +// backend interface +//////////////////////////////////////////////////////////////////////////////// + +// shared buffer + +static void ggml_backend_metal_buffer_shared_free_buffer(ggml_backend_buffer_t buffer) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(ggml_metal_buffer_is_shared(ctx)); + + ggml_metal_buffer_free(ctx); +} + +static void * ggml_backend_metal_buffer_shared_get_base(ggml_backend_buffer_t buffer) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(ggml_metal_buffer_is_shared(ctx)); + + return ggml_metal_buffer_get_base(ctx); +} + +static void ggml_backend_metal_buffer_shared_memset_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor, uint8_t value, size_t offset, size_t size) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(ggml_metal_buffer_is_shared(ctx)); + + ggml_metal_buffer_memset_tensor(ctx, tensor, value, offset, size); +} + +static void ggml_backend_metal_buffer_shared_set_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor, const void * data, size_t offset, size_t size) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(ggml_metal_buffer_is_shared(ctx)); + + ggml_metal_buffer_set_tensor(ctx, tensor, data, offset, size); +} + +static void ggml_backend_metal_buffer_shared_get_tensor(ggml_backend_buffer_t buffer, const ggml_tensor * tensor, void * data, size_t offset, size_t size) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(ggml_metal_buffer_is_shared(ctx)); + + ggml_metal_buffer_get_tensor(ctx, tensor, data, offset, size); +} + +static bool ggml_backend_metal_buffer_shared_cpy_tensor(ggml_backend_buffer_t buffer, const ggml_tensor * src, ggml_tensor * dst) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(ggml_metal_buffer_is_shared(ctx)); + + GGML_UNUSED(buffer); + GGML_UNUSED(src); + GGML_UNUSED(dst); + + return false; +} + +static void ggml_backend_metal_buffer_shared_clear(ggml_backend_buffer_t buffer, uint8_t value) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(ggml_metal_buffer_is_shared(ctx)); + + ggml_metal_buffer_clear(ctx, value); +} + +static ggml_backend_buffer_i ggml_backend_metal_buffer_shared_i = { + /* .free_buffer = */ ggml_backend_metal_buffer_shared_free_buffer, + /* .get_base = */ ggml_backend_metal_buffer_shared_get_base, + /* .init_tensor = */ NULL, + /* .memset_tensor = */ ggml_backend_metal_buffer_shared_memset_tensor, + /* .set_tensor = */ ggml_backend_metal_buffer_shared_set_tensor, + /* .get_tensor = */ ggml_backend_metal_buffer_shared_get_tensor, + /* .cpy_tensor = */ ggml_backend_metal_buffer_shared_cpy_tensor, + /* .clear = */ ggml_backend_metal_buffer_shared_clear, + /* .reset = */ NULL, +}; + +// private buffer + +static void ggml_backend_metal_buffer_private_free_buffer(ggml_backend_buffer_t buffer) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(!ggml_metal_buffer_is_shared(ctx)); + + ggml_metal_buffer_free(ctx); +} + +static void * ggml_backend_metal_buffer_private_get_base(ggml_backend_buffer_t buffer) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(!ggml_metal_buffer_is_shared(ctx)); + + return ggml_metal_buffer_get_base(ctx); +} + +static void ggml_backend_metal_buffer_private_memset_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor, uint8_t value, size_t offset, size_t size) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(!ggml_metal_buffer_is_shared(ctx)); + + ggml_metal_buffer_memset_tensor(ctx, tensor, value, offset, size); +} + +static void ggml_backend_metal_buffer_private_set_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor, const void * data, size_t offset, size_t size) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(!ggml_metal_buffer_is_shared(ctx)); + + ggml_metal_buffer_set_tensor(ctx, tensor, data, offset, size); +} + +static void ggml_backend_metal_buffer_private_get_tensor(ggml_backend_buffer_t buffer, const ggml_tensor * tensor, void * data, size_t offset, size_t size) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(!ggml_metal_buffer_is_shared(ctx)); + + ggml_metal_buffer_get_tensor(ctx, tensor, data, offset, size); +} + +static bool ggml_backend_metal_buffer_private_cpy_tensor(ggml_backend_buffer_t buffer, const ggml_tensor * src, ggml_tensor * dst) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(!ggml_metal_buffer_is_shared(ctx)); + + GGML_UNUSED(buffer); + GGML_UNUSED(src); + GGML_UNUSED(dst); + + return false; +} + +static void ggml_backend_metal_buffer_private_clear(ggml_backend_buffer_t buffer, uint8_t value) { + ggml_metal_buffer_t ctx = (ggml_metal_buffer_t)buffer->context; + + GGML_ASSERT(!ggml_metal_buffer_is_shared(ctx)); + + ggml_metal_buffer_clear(ctx, value); +} + +static ggml_backend_buffer_i ggml_backend_metal_buffer_private_i = { + /* .free_buffer = */ ggml_backend_metal_buffer_private_free_buffer, + /* .get_base = */ ggml_backend_metal_buffer_private_get_base, + /* .init_tensor = */ NULL, + /* .memset_tensor = */ ggml_backend_metal_buffer_private_memset_tensor, + /* .set_tensor = */ ggml_backend_metal_buffer_private_set_tensor, + /* .get_tensor = */ ggml_backend_metal_buffer_private_get_tensor, + /* .cpy_tensor = */ ggml_backend_metal_buffer_private_cpy_tensor, + /* .clear = */ ggml_backend_metal_buffer_private_clear, + /* .reset = */ NULL, +}; + +// +// buffer types +// + +// common method for allocating shread or private Metal buffers +static ggml_backend_buffer_t ggml_backend_metal_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size, bool shared) { + ggml_metal_device_t ctx_dev = (ggml_metal_device_t)buft->device->context; + ggml_metal_buffer_t res = ggml_metal_buffer_init(ctx_dev, size, shared); + + ggml_backend_buffer_i buf_i = ggml_metal_buffer_is_shared(res) + ? ggml_backend_metal_buffer_shared_i + : ggml_backend_metal_buffer_private_i; + + return ggml_backend_buffer_init(buft, buf_i, res, size); +} + +static size_t ggml_backend_metal_buffer_type_get_alloc_size(ggml_backend_buffer_type_t buft, const ggml_tensor * tensor) { + size_t res = ggml_nbytes(tensor); + + // some operations require additional memory for fleeting data: + switch (tensor->op) { + case GGML_OP_MUL_MAT_ID: + { + res += ggml_metal_op_mul_mat_id_extra_tpe(tensor); + res += ggml_metal_op_mul_mat_id_extra_ids(tensor); + } break; + case GGML_OP_FLASH_ATTN_EXT: + { + if (ggml_metal_op_flash_attn_ext_use_vec(tensor)) { + res += ggml_metal_op_flash_attn_ext_extra_tmp(tensor); + } + } break; + default: + break; + } + + return res; + + GGML_UNUSED(buft); +} + +// default (shared) buffer type + +static const char * ggml_backend_metal_buffer_type_shared_get_name(ggml_backend_buffer_type_t buft) { + return "Metal"; + + GGML_UNUSED(buft); +} + +static ggml_backend_buffer_t ggml_backend_metal_buffer_type_shared_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) { + return ggml_backend_metal_buffer_type_alloc_buffer(buft, size, true); +} + +static size_t ggml_backend_metal_buffer_type_shared_get_alignment(ggml_backend_buffer_type_t buft) { + return 32; + + GGML_UNUSED(buft); +} + +static size_t ggml_backend_metal_buffer_type_shared_get_max_size(ggml_backend_buffer_type_t buft) { + ggml_metal_device_t ctx_dev = (ggml_metal_device_t)buft->device->context; + + return ggml_metal_device_get_props(ctx_dev)->max_buffer_size; +} + +static size_t ggml_backend_metal_buffer_type_shared_get_alloc_size(ggml_backend_buffer_type_t buft, const ggml_tensor * tensor) { + return ggml_backend_metal_buffer_type_get_alloc_size(buft, tensor); +} + +static bool ggml_backend_metal_buffer_type_shared_is_host(ggml_backend_buffer_type_t buft) { + return false; + + GGML_UNUSED(buft); +} + +static ggml_backend_buffer_type_t ggml_backend_metal_buffer_type_shared(void) { + static ggml_backend_buffer_type ggml_backend_buffer_type_metal = { + /* .iface = */ { + /* .get_name = */ ggml_backend_metal_buffer_type_shared_get_name, + /* .alloc_buffer = */ ggml_backend_metal_buffer_type_shared_alloc_buffer, + /* .get_alignment = */ ggml_backend_metal_buffer_type_shared_get_alignment, + /* .get_max_size = */ ggml_backend_metal_buffer_type_shared_get_max_size, + /* .get_alloc_size = */ ggml_backend_metal_buffer_type_shared_get_alloc_size, + /* .is_host = */ ggml_backend_metal_buffer_type_shared_is_host, + }, + /* .device = */ &g_ggml_metal_device, + /* .context = */ NULL, + }; + + return &ggml_backend_buffer_type_metal; +} + +// default (private) buffer type + +static const char * ggml_backend_metal_buffer_type_private_get_name(ggml_backend_buffer_type_t buft) { + return "Metal_Private"; + + GGML_UNUSED(buft); +} + +static ggml_backend_buffer_t ggml_backend_metal_buffer_type_private_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) { + return ggml_backend_metal_buffer_type_alloc_buffer(buft, size, false); +} + +static size_t ggml_backend_metal_buffer_type_private_get_alignment(ggml_backend_buffer_type_t buft) { + return 32; + + GGML_UNUSED(buft); +} + +static size_t ggml_backend_metal_buffer_type_private_get_max_size(ggml_backend_buffer_type_t buft) { + ggml_metal_device_t ctx_dev = (ggml_metal_device_t)buft->device->context; + + return ggml_metal_device_get_props(ctx_dev)->max_buffer_size; +} + +static size_t ggml_backend_metal_buffer_type_private_get_alloc_size(ggml_backend_buffer_type_t buft, const ggml_tensor * tensor) { + return ggml_backend_metal_buffer_type_get_alloc_size(buft, tensor); +} + +static bool ggml_backend_metal_buffer_type_private_is_host(ggml_backend_buffer_type_t buft) { + return false; + + GGML_UNUSED(buft); +} + +static ggml_backend_buffer_type_t ggml_backend_metal_buffer_type_private(void) { + static ggml_backend_buffer_type ggml_backend_buffer_type_metal = { + /* .iface = */ { + /* .get_name = */ ggml_backend_metal_buffer_type_private_get_name, + /* .alloc_buffer = */ ggml_backend_metal_buffer_type_private_alloc_buffer, + /* .get_alignment = */ ggml_backend_metal_buffer_type_private_get_alignment, + /* .get_max_size = */ ggml_backend_metal_buffer_type_private_get_max_size, + /* .get_alloc_size = */ ggml_backend_metal_buffer_type_private_get_alloc_size, + /* .is_host = */ ggml_backend_metal_buffer_type_private_is_host, + }, + /* .device = */ &g_ggml_metal_device, + /* .context = */ NULL, + }; + + return &ggml_backend_buffer_type_metal; +} + +// mapped buffer type + +static const char * ggml_backend_metal_buffer_type_mapped_get_name(ggml_backend_buffer_type_t buft) { + return "Metal_Mapped"; + + GGML_UNUSED(buft); +} + +static ggml_backend_buffer_t ggml_backend_metal_buffer_type_mapped_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) { + // for mapped buffers, prefer shared memory + return ggml_backend_metal_buffer_type_alloc_buffer(buft, size, true); +} + +static size_t ggml_backend_metal_buffer_type_mapped_get_alignment(ggml_backend_buffer_type_t buft) { + return 32; + + GGML_UNUSED(buft); +} + +static size_t ggml_backend_metal_buffer_type_mapped_get_max_size(ggml_backend_buffer_type_t buft) { + ggml_metal_device_t ctx_dev = (ggml_metal_device_t)buft->device->context; + + return ggml_metal_device_get_props(ctx_dev)->max_buffer_size; +} + +static size_t ggml_backend_metal_buffer_type_mapped_get_alloc_size(ggml_backend_buffer_type_t buft, const ggml_tensor * tensor) { + return ggml_backend_metal_buffer_type_get_alloc_size(buft, tensor); +} + +static bool ggml_backend_metal_buffer_type_mapped_is_host(ggml_backend_buffer_type_t buft) { + return false; + + GGML_UNUSED(buft); +} + +static ggml_backend_buffer_type_t ggml_backend_metal_buffer_type_mapped(void) { + // note: not obvious, but this buffer type still needs to implement .alloc_buffer: + // https://github.com/ggml-org/llama.cpp/pull/15832#discussion_r2333177099 + static ggml_backend_buffer_type ggml_backend_buffer_type_mapped_metal = { + /* .iface = */ { + /* .get_name = */ ggml_backend_metal_buffer_type_mapped_get_name, + /* .alloc_buffer = */ ggml_backend_metal_buffer_type_mapped_alloc_buffer, + /* .get_alignment = */ ggml_backend_metal_buffer_type_mapped_get_alignment, + /* .get_max_size = */ ggml_backend_metal_buffer_type_mapped_get_max_size, + /* .get_alloc_size = */ ggml_backend_metal_buffer_type_mapped_get_alloc_size, + /* .is_host = */ ggml_backend_metal_buffer_type_mapped_is_host, + }, + /* .device = */ &g_ggml_metal_device, + /* .context = */ NULL, + }; + + return &ggml_backend_buffer_type_mapped_metal; +} + +// backend + +static const char * ggml_backend_metal_name(ggml_backend_t backend) { + return "Metal"; + + GGML_UNUSED(backend); +} + +static void ggml_backend_metal_free(ggml_backend_t backend) { + ggml_metal_t ctx = (ggml_metal_t)backend->context; + + // wait for any ongoing async operations to finish + ggml_metal_synchronize(ctx); + + ggml_metal_free(ctx); + + free(backend); +} + +static void ggml_backend_metal_synchronize(ggml_backend_t backend) { + ggml_metal_t ctx = (ggml_metal_t)backend->context; + + ggml_metal_synchronize(ctx); +} + +static void ggml_backend_metal_set_tensor_async(ggml_backend_t backend, ggml_tensor * tensor, const void * data, size_t offset, size_t size) { + ggml_metal_t ctx = (ggml_metal_t)backend->context; + + ggml_metal_set_tensor_async(ctx, tensor, data, offset, size); +} + +static void ggml_backend_metal_get_tensor_async(ggml_backend_t backend, const ggml_tensor * tensor, void * data, size_t offset, size_t size) { + ggml_metal_t ctx = (ggml_metal_t)backend->context; + + ggml_metal_get_tensor_async(ctx, tensor, data, offset, size); +} + +static bool ggml_backend_metal_cpy_tensor_async(ggml_backend_t backend_src, ggml_backend_t backend_dst, const ggml_tensor * src, ggml_tensor * dst) { + return false; + + GGML_UNUSED(backend_src); + GGML_UNUSED(backend_dst); + GGML_UNUSED(src); + GGML_UNUSED(dst); +} + +static enum ggml_status ggml_backend_metal_graph_compute(ggml_backend_t backend, ggml_cgraph * cgraph) { + ggml_metal_t ctx = (ggml_metal_t)backend->context; + + return ggml_metal_graph_compute(ctx, cgraph); +} + +static void ggml_backend_metal_graph_optimize(ggml_backend_t backend, ggml_cgraph * cgraph) { + ggml_metal_t ctx = (ggml_metal_t)backend->context; + + ggml_metal_graph_optimize(ctx, cgraph); +} + +static void ggml_backend_metal_set_n_cb(ggml_backend_t backend, int n_cb) { + GGML_ASSERT(ggml_backend_is_metal(backend)); + + ggml_metal_t ctx = (ggml_metal_t)backend->context; + + ggml_metal_set_n_cb(ctx, n_cb); + +} + +static ggml_backend_i ggml_backend_metal_i = { + /* .get_name = */ ggml_backend_metal_name, + /* .free = */ ggml_backend_metal_free, + /* .set_tensor_async = */ ggml_backend_metal_set_tensor_async, + /* .get_tensor_async = */ ggml_backend_metal_get_tensor_async, + /* .cpy_tensor_async = */ ggml_backend_metal_cpy_tensor_async, // only needed for multi-GPU setups + /* .synchronize = */ ggml_backend_metal_synchronize, + /* .graph_plan_create = */ NULL, + /* .graph_plan_free = */ NULL, + /* .graph_plan_update = */ NULL, + /* .graph_plan_compute = */ NULL, + /* .graph_compute = */ ggml_backend_metal_graph_compute, + + // the events API is needed only for multi-GPU setups, so likely no need to implement it for Metal + // in any case, these docs seem relevant if we ever decide to implement it: + // https://developer.apple.com/documentation/metal/mtlcommandbuffer#Synchronizing-Passes-with-Events + /* .event_record = */ NULL, + /* .event_wait = */ NULL, + /* .optimize_graph = */ ggml_backend_metal_graph_optimize, +}; + +static ggml_guid_t ggml_backend_metal_guid(void) { + static ggml_guid guid = { 0x81, 0xa1, 0x8b, 0x1e, 0x71, 0xec, 0x79, 0xed, 0x2b, 0x85, 0xdc, 0x8a, 0x61, 0x98, 0x30, 0xe6 }; + return &guid; +} + +ggml_backend_t ggml_backend_metal_init(void) { + ggml_backend_dev_t dev = ggml_backend_reg_dev_get(ggml_backend_metal_reg(), 0); + ggml_metal_device_t ctx_dev = (ggml_metal_device_t)dev->context; + + ggml_metal_t ctx = ggml_metal_init(ctx_dev); + if (ctx == NULL) { + GGML_LOG_ERROR("%s: error: failed to allocate context\n", __func__); + return NULL; + } + + ggml_backend_t backend = (ggml_backend_t) malloc(sizeof(ggml_backend)); + + *backend = { + /* .guid = */ ggml_backend_metal_guid(), + /* .interface = */ ggml_backend_metal_i, + /* .device = */ dev, + /* .context = */ ctx, + }; + + ggml_backend_metal_set_n_cb(backend, 1); + + return backend; +} + +bool ggml_backend_is_metal(ggml_backend_t backend) { + return backend != NULL && ggml_guid_matches(backend->guid, ggml_backend_metal_guid()); +} + +void ggml_backend_metal_set_abort_callback(ggml_backend_t backend, ggml_abort_callback abort_callback, void * user_data) { + GGML_ASSERT(ggml_backend_is_metal(backend)); + + ggml_metal_t ctx = (ggml_metal_t)backend->context; + + ggml_metal_set_abort_callback(ctx, abort_callback, user_data); +} + +bool ggml_backend_metal_supports_family(ggml_backend_t backend, int family) { + GGML_ASSERT(ggml_backend_is_metal(backend)); + + ggml_metal_t ctx = (ggml_metal_t)backend->context; + + return ggml_metal_supports_family(ctx, family); +} + +void ggml_backend_metal_capture_next_compute(ggml_backend_t backend) { + GGML_ASSERT(ggml_backend_is_metal(backend)); + + ggml_metal_t ctx = (ggml_metal_t)backend->context; + + ggml_metal_capture_next_compute(ctx); +} + +// backend device + +static const char * ggml_backend_metal_device_get_name(ggml_backend_dev_t dev) { + return "Metal"; + + GGML_UNUSED(dev); +} + +static const char * ggml_backend_metal_device_get_description(ggml_backend_dev_t dev) { + ggml_metal_device_t ctx_dev = (ggml_metal_device_t)dev->context; + + return ggml_metal_device_get_props(ctx_dev)->name; +} + +static void ggml_backend_metal_device_get_memory(ggml_backend_dev_t dev, size_t * free, size_t * total) { + ggml_metal_device_t ctx_dev = (ggml_metal_device_t)dev->context; + + ggml_metal_device_get_memory(ctx_dev, free, total); +} + +static enum ggml_backend_dev_type ggml_backend_metal_device_get_type(ggml_backend_dev_t dev) { + return GGML_BACKEND_DEVICE_TYPE_GPU; + + GGML_UNUSED(dev); +} + +static void ggml_backend_metal_device_get_props(ggml_backend_dev_t dev, ggml_backend_dev_props * props) { + props->name = ggml_backend_metal_device_get_name(dev); + props->description = ggml_backend_metal_device_get_description(dev); + props->type = ggml_backend_metal_device_get_type(dev); + + ggml_backend_metal_device_get_memory(dev, &props->memory_free, &props->memory_total); + + props->caps = { + /* .async = */ true, + /* .host_buffer = */ false, + /* .buffer_from_host_ptr = */ true, + /* .events = */ false, + }; +} + +static ggml_backend_t ggml_backend_metal_device_init(ggml_backend_dev_t dev, const char * params) { + ggml_metal_device_t ctx_dev = (ggml_metal_device_t)dev->context; + + ggml_metal_t ctx = ggml_metal_init(ctx_dev); + if (ctx == NULL) { + GGML_LOG_ERROR("%s: error: failed to allocate context\n", __func__); + return NULL; + } + + ggml_backend_t backend = (ggml_backend_t) malloc(sizeof(ggml_backend)); + + *backend = { + /* .guid = */ ggml_backend_metal_guid(), + /* .interface = */ ggml_backend_metal_i, + /* .device = */ dev, + /* .context = */ ctx, + }; + + ggml_backend_metal_set_n_cb(backend, 1); + + return backend; + + GGML_UNUSED(params); +} + +static ggml_backend_buffer_type_t ggml_backend_metal_device_get_buffer_type(ggml_backend_dev_t dev) { + ggml_metal_device_t ctx_dev = (ggml_metal_device_t)dev->context; + + const ggml_metal_device_props * props_dev = ggml_metal_device_get_props(ctx_dev); + + return props_dev->use_shared_buffers ? ggml_backend_metal_buffer_type_shared() : ggml_backend_metal_buffer_type_private(); +} + +static ggml_backend_buffer_t ggml_backend_metal_device_buffer_mapped(ggml_backend_dev_t dev, void * ptr, size_t size, size_t max_tensor_size) { + ggml_metal_device_t ctx_dev = (ggml_metal_device_t)dev->context; + + ggml_metal_buffer_t res = ggml_metal_buffer_map(ctx_dev, ptr, size, max_tensor_size); + + return ggml_backend_buffer_init(ggml_backend_metal_buffer_type_mapped(), ggml_backend_metal_buffer_shared_i, res, size); +} + +static bool ggml_backend_metal_device_supports_op(ggml_backend_dev_t dev, const ggml_tensor * op) { + ggml_metal_device_t ctx_dev = (ggml_metal_device_t)dev->context; + + return ggml_metal_device_supports_op(ctx_dev, op); +} + +static bool ggml_backend_metal_device_supports_buft(ggml_backend_dev_t dev, ggml_backend_buffer_type_t buft) { + return + buft->iface.get_name == ggml_backend_metal_buffer_type_shared_get_name || + buft->iface.get_name == ggml_backend_metal_buffer_type_private_get_name || + buft->iface.get_name == ggml_backend_metal_buffer_type_mapped_get_name; + + GGML_UNUSED(dev); +} + +static int64_t get_op_batch_size(const ggml_tensor * op) { + switch (op->op) { + case GGML_OP_MUL_MAT: + return op->ne[1]; + case GGML_OP_MUL_MAT_ID: + return op->ne[2]; + default: + return ggml_nrows(op); + } +} + +static bool ggml_backend_metal_device_offload_op(ggml_backend_dev_t dev, const ggml_tensor * op) { + const int min_batch_size = 32; + + return (op->op == GGML_OP_MUL_MAT || + op->op == GGML_OP_MUL_MAT_ID) && + get_op_batch_size(op) >= min_batch_size; + + GGML_UNUSED(dev); + GGML_UNUSED(op); +} + +static ggml_backend_device_i ggml_backend_metal_device_i = { + /* .get_name = */ ggml_backend_metal_device_get_name, + /* .get_description = */ ggml_backend_metal_device_get_description, + /* .get_memory = */ ggml_backend_metal_device_get_memory, + /* .get_type = */ ggml_backend_metal_device_get_type, + /* .get_props = */ ggml_backend_metal_device_get_props, + /* .init_backend = */ ggml_backend_metal_device_init, + /* .get_buffer_type = */ ggml_backend_metal_device_get_buffer_type, + /* .get_host_buffer_type = */ NULL, + /* .buffer_from_host_ptr = */ ggml_backend_metal_device_buffer_mapped, + /* .supports_op = */ ggml_backend_metal_device_supports_op, + /* .supports_buft = */ ggml_backend_metal_device_supports_buft, + /* .offload_op = */ ggml_backend_metal_device_offload_op, + /* .event_new = */ NULL, + /* .event_free = */ NULL, + /* .event_synchronize = */ NULL, +}; + +// backend registry + +static const char * ggml_backend_metal_reg_get_name(ggml_backend_reg_t reg) { + return "Metal"; + + GGML_UNUSED(reg); +} + +static size_t ggml_backend_metal_reg_device_count(ggml_backend_reg_t reg) { + return 1; + + GGML_UNUSED(reg); +} + +static ggml_backend_dev_t ggml_backend_metal_reg_device_get(ggml_backend_reg_t reg, size_t index) { + GGML_ASSERT(index == 0); + + return &g_ggml_metal_device; + + GGML_UNUSED(reg); + GGML_UNUSED(index); +} + +static ggml_backend_feature g_ggml_backend_metal_features[] = { +#if defined(GGML_METAL_EMBED_LIBRARY) + { "EMBED_LIBRARY", "1" }, +#endif + { NULL, NULL }, +}; + +static ggml_backend_feature * ggml_backend_metal_get_features(ggml_backend_reg_t reg) { + return g_ggml_backend_metal_features; + + GGML_UNUSED(reg); +} + +static void * ggml_backend_metal_get_proc_address(ggml_backend_reg_t reg, const char * name) { + if (strcmp(name, "ggml_backend_get_features") == 0) { + return (void *)ggml_backend_metal_get_features; + } + + return NULL; + + GGML_UNUSED(reg); +} + +static ggml_backend_reg_i ggml_backend_metal_reg_i = { + /* .get_name = */ ggml_backend_metal_reg_get_name, + /* .device_count = */ ggml_backend_metal_reg_device_count, + /* .device_get = */ ggml_backend_metal_reg_device_get, + /* .get_proc_address = */ ggml_backend_metal_get_proc_address, +}; + +ggml_backend_reg_t ggml_backend_metal_reg(void) { + { + g_ggml_metal_reg = { + /* .api_version = */ GGML_BACKEND_API_VERSION, + /* .iface = */ ggml_backend_metal_reg_i, + /* .context = */ NULL, + }; + + g_ggml_metal_device = { + /* .iface = */ ggml_backend_metal_device_i, + /* .reg = */ &g_ggml_metal_reg, + /* .context = */ ggml_metal_device_get(), + }; + } + + return &g_ggml_metal_reg; +} + +GGML_BACKEND_DL_IMPL(ggml_backend_metal_reg) diff --git a/ggml/src/ggml-metal/ggml-metal.m b/ggml/src/ggml-metal/ggml-metal.m deleted file mode 100644 index 2243c174fb..0000000000 --- a/ggml/src/ggml-metal/ggml-metal.m +++ /dev/null @@ -1,6897 +0,0 @@ -#import "ggml-metal.h" - -#import "ggml-impl.h" -#import "ggml-backend-impl.h" -#import "ggml-metal-impl.h" -#import "ggml-metal-common.h" - -#import - -#import - -#undef MIN -#undef MAX -#define MIN(a, b) ((a) < (b) ? (a) : (b)) -#define MAX(a, b) ((a) > (b) ? (a) : (b)) - -// max memory buffers that can be mapped to the device -#define GGML_METAL_MAX_BUFFERS 64 - -// max number of MTLCommandBuffer used to submit a graph for processing -#define GGML_METAL_MAX_COMMAND_BUFFERS 8 - -#ifndef TARGET_OS_VISION -#define TARGET_OS_VISION 0 -#endif - -// create residency sets only on macOS >= 15.0 -#if !TARGET_CPU_X86_64 && TARGET_OS_OSX && __MAC_OS_X_VERSION_MAX_ALLOWED >= 150000 || \ - TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 180000 || \ - TARGET_OS_TV && __TV_OS_VERSION_MAX_ALLOWED >= 180000 || \ - TARGET_OS_VISION && __VISION_OS_VERSION_MAX_ALLOWED >= 200000 -#define GGML_METAL_HAS_RESIDENCY_SETS 1 -#endif - -// globals - -// overload of MTLGPUFamilyMetal3 (not available in some environments) -static const NSInteger MTLGPUFamilyMetal3_GGML = 5001; - -// initialized in ggml_backend_metal_reg -static struct ggml_backend_reg g_ggml_backend_metal_reg; -static struct ggml_backend_device g_ggml_backend_metal_device; - -// information about a Metal device -// note: assumes single GPU device - the default one -// TODO: support multiple GPU devices -static struct ggml_backend_metal_device_context { - id mtl_device; - int mtl_device_ref_count; - id mtl_library; - - // a single global queue shared by all Metal backends - // technically not needed for devices with unified memory, but enables discrete GPUs support - // ref: https://github.com/ggml-org/llama.cpp/pull/15906 - id mtl_queue; - - NSLock * mtl_lock; - - bool has_simdgroup_reduction; - bool has_simdgroup_mm; - bool has_residency_sets; - bool has_bfloat; - bool use_bfloat; - bool use_fusion; - bool use_concurrency; - bool use_shared_buffers; - bool use_graph_optimize; - - int debug_graph; - int debug_fusion; - - // how many times a given op was fused - uint64_t fuse_cnt[GGML_OP_COUNT]; - - size_t max_size; - - char name[128]; -} g_ggml_ctx_dev_main = { - /*.mtl_device =*/ nil, - /*.mtl_device_ref_count =*/ 0, - /*.mtl_library =*/ nil, - /*.mtl_queue =*/ nil, - /*.mtl_lock =*/ nil, - /*.has_simdgroup_reduction =*/ false, - /*.has_simdgroup_mm =*/ false, - /*.has_residency_sets =*/ false, - /*.has_bfloat =*/ false, - /*.use_bfloat =*/ false, - /*.use_fusion =*/ true, - /*.use_concurrency =*/ true, - /*.use_shared_buffers =*/ true, - /*.use_graph_optimize =*/ true, - /*.debug_graph =*/ 0, - /*.debug_fusion =*/ 0, - /*.fuse_cnt =*/ { 0 }, - /*.max_size =*/ 0, - /*.name =*/ "", -}; - -// acquire -static id ggml_backend_metal_device_acq(struct ggml_backend_metal_device_context * ctx) { - assert(ctx != NULL); - - if (ctx->mtl_lock == nil) { - ctx->mtl_lock = [[NSLock alloc] init]; - } - - if (ctx->mtl_device == nil) { - ctx->mtl_device = MTLCreateSystemDefaultDevice(); - - if (ctx->mtl_device) { - ctx->mtl_queue = [ctx->mtl_device newCommandQueue]; - if (ctx->mtl_queue == nil) { - GGML_LOG_ERROR("%s: error: failed to create command queue\n", __func__); - } - - ctx->has_simdgroup_reduction = [ctx->mtl_device supportsFamily:MTLGPUFamilyApple7]; - ctx->has_simdgroup_reduction |= [ctx->mtl_device supportsFamily:MTLGPUFamilyMetal3_GGML]; - - ctx->has_simdgroup_mm = [ctx->mtl_device supportsFamily:MTLGPUFamilyApple7]; - -#if defined(GGML_METAL_HAS_RESIDENCY_SETS) - ctx->has_residency_sets = getenv("GGML_METAL_NO_RESIDENCY") == nil; -#endif - - ctx->has_bfloat = [ctx->mtl_device supportsFamily:MTLGPUFamilyMetal3_GGML]; - ctx->has_bfloat |= [ctx->mtl_device supportsFamily:MTLGPUFamilyApple6]; - -#if defined(GGML_METAL_USE_BF16) - ctx->use_bfloat = ctx->has_bfloat; -#else - ctx->use_bfloat = false; -#endif - - ctx->use_fusion = getenv("GGML_METAL_FUSION_DISABLE") == nil; - ctx->use_concurrency = getenv("GGML_METAL_CONCURRENCY_DISABLE") == nil; - - { - const char * val = getenv("GGML_METAL_GRAPH_DEBUG"); - ctx->debug_graph = val ? atoi(val) : 0; - } - - { - const char * val = getenv("GGML_METAL_FUSION_DEBUG"); - ctx->debug_fusion = val ? atoi(val) : 0; - } - - ctx->use_shared_buffers = ctx->mtl_device.hasUnifiedMemory; - - if (getenv("GGML_METAL_SHARED_BUFFERS_DISABLE") != NULL) { - ctx->use_shared_buffers = false; - } - - ctx->use_graph_optimize = true; - - if (getenv("GGML_METAL_GRAPH_OPTIMIZE_DISABLE") != NULL) { - ctx->use_graph_optimize = false; - } - - memset(ctx->fuse_cnt, 0, sizeof(ctx->fuse_cnt)); - - ctx->max_size = ctx->mtl_device.maxBufferLength; - - strncpy(ctx->name, [[ctx->mtl_device name] UTF8String], sizeof(ctx->name) - 1); - } - } - - ctx->mtl_device_ref_count++; - - return ctx->mtl_device; -} - -// release -static void ggml_backend_metal_device_rel(struct ggml_backend_metal_device_context * ctx) { - assert(ctx != NULL); - assert(ctx->mtl_device_ref_count > 0); - - ctx->mtl_device_ref_count--; - - if (ctx->mtl_device_ref_count == 0) { - if (ctx->debug_fusion > 0) { - fprintf(stderr, "%s: fusion stats:\n", __func__); - for (int i = 0; i < GGML_OP_COUNT; i++) { - if (ctx->fuse_cnt[i] == 0) { - continue; - } - - // note: cannot use ggml_log here - fprintf(stderr, "%s: - %s: %" PRIu64 "\n", __func__, ggml_op_name((enum ggml_op) i), ctx->fuse_cnt[i]); - } - } - - if (ctx->mtl_lock) { - [ctx->mtl_lock release]; - ctx->mtl_lock = nil; - } - - if (ctx->mtl_library) { - [ctx->mtl_library release]; - ctx->mtl_library = nil; - } - - if (ctx->mtl_queue) { - [ctx->mtl_queue release]; - ctx->mtl_queue = nil; - } - - if (ctx->mtl_device) { - [ctx->mtl_device release]; - ctx->mtl_device = nil; - } - } -} - -// kernels - -struct ggml_metal_kernel { - id pipeline; -}; - -@interface ggml_metal_kernel_wrapper : NSObject - -@property (nonatomic, assign) struct ggml_metal_kernel kernel; - -@end - -@implementation ggml_metal_kernel_wrapper -- (void) dealloc { - [_kernel.pipeline release]; - [super dealloc]; -} -@end - -enum ggml_metal_kernel_type { - GGML_METAL_KERNEL_TYPE_ADD_ID, - GGML_METAL_KERNEL_TYPE_REPEAT_F32, - GGML_METAL_KERNEL_TYPE_REPEAT_F16, - GGML_METAL_KERNEL_TYPE_REPEAT_I32, - GGML_METAL_KERNEL_TYPE_REPEAT_I16, - GGML_METAL_KERNEL_TYPE_SCALE, - GGML_METAL_KERNEL_TYPE_SCALE_4, - GGML_METAL_KERNEL_TYPE_CLAMP, - GGML_METAL_KERNEL_TYPE_TANH, - GGML_METAL_KERNEL_TYPE_RELU, - GGML_METAL_KERNEL_TYPE_SIGMOID, - GGML_METAL_KERNEL_TYPE_GELU, - GGML_METAL_KERNEL_TYPE_GELU_4, - GGML_METAL_KERNEL_TYPE_GELU_ERF, - GGML_METAL_KERNEL_TYPE_GELU_ERF_4, - GGML_METAL_KERNEL_TYPE_GELU_QUICK, - GGML_METAL_KERNEL_TYPE_GELU_QUICK_4, - GGML_METAL_KERNEL_TYPE_SILU, - GGML_METAL_KERNEL_TYPE_SILU_4, - GGML_METAL_KERNEL_TYPE_ELU, - GGML_METAL_KERNEL_TYPE_ABS, - GGML_METAL_KERNEL_TYPE_SGN, - GGML_METAL_KERNEL_TYPE_STEP, - GGML_METAL_KERNEL_TYPE_HARDSWISH, - GGML_METAL_KERNEL_TYPE_HARDSIGMOID, - GGML_METAL_KERNEL_TYPE_EXP, - GGML_METAL_KERNEL_TYPE_SOFT_MAX_F16, - GGML_METAL_KERNEL_TYPE_SOFT_MAX_F16_4, - GGML_METAL_KERNEL_TYPE_SOFT_MAX_F32, - GGML_METAL_KERNEL_TYPE_SOFT_MAX_F32_4, - GGML_METAL_KERNEL_TYPE_DIAG_MASK_INF, - GGML_METAL_KERNEL_TYPE_DIAG_MASK_INF_8, - GGML_METAL_KERNEL_TYPE_GET_ROWS_F32, - GGML_METAL_KERNEL_TYPE_GET_ROWS_F16, - GGML_METAL_KERNEL_TYPE_GET_ROWS_BF16, - GGML_METAL_KERNEL_TYPE_GET_ROWS_Q4_0, - GGML_METAL_KERNEL_TYPE_GET_ROWS_Q4_1, - GGML_METAL_KERNEL_TYPE_GET_ROWS_Q5_0, - GGML_METAL_KERNEL_TYPE_GET_ROWS_Q5_1, - GGML_METAL_KERNEL_TYPE_GET_ROWS_Q8_0, - GGML_METAL_KERNEL_TYPE_GET_ROWS_MXFP4, - GGML_METAL_KERNEL_TYPE_GET_ROWS_Q2_K, - GGML_METAL_KERNEL_TYPE_GET_ROWS_Q3_K, - GGML_METAL_KERNEL_TYPE_GET_ROWS_Q4_K, - GGML_METAL_KERNEL_TYPE_GET_ROWS_Q5_K, - GGML_METAL_KERNEL_TYPE_GET_ROWS_Q6_K, - GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ2_XXS, - GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ2_XS, - GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ3_XXS, - GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ3_S, - GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ2_S, - GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ1_S, - GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ1_M, - GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ4_NL, - GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ4_XS, - GGML_METAL_KERNEL_TYPE_GET_ROWS_I32, - GGML_METAL_KERNEL_TYPE_SET_ROWS_F32, - GGML_METAL_KERNEL_TYPE_SET_ROWS_F16, - GGML_METAL_KERNEL_TYPE_SET_ROWS_BF16, - GGML_METAL_KERNEL_TYPE_SET_ROWS_Q8_0, - GGML_METAL_KERNEL_TYPE_SET_ROWS_Q4_0, - GGML_METAL_KERNEL_TYPE_SET_ROWS_Q4_1, - GGML_METAL_KERNEL_TYPE_SET_ROWS_Q5_0, - GGML_METAL_KERNEL_TYPE_SET_ROWS_Q5_1, - GGML_METAL_KERNEL_TYPE_SET_ROWS_IQ4_NL, - GGML_METAL_KERNEL_TYPE_L2_NORM, - GGML_METAL_KERNEL_TYPE_GROUP_NORM, - GGML_METAL_KERNEL_TYPE_NORM, - GGML_METAL_KERNEL_TYPE_SSM_CONV_F32, - GGML_METAL_KERNEL_TYPE_SSM_SCAN_F32, - GGML_METAL_KERNEL_TYPE_SSM_SCAN_F32_GROUP, - GGML_METAL_KERNEL_TYPE_RWKV_WKV6_F32, - GGML_METAL_KERNEL_TYPE_RWKV_WKV7_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_F32_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_F32_F32_C4, - GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32_C4, - GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32_1ROW, - GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32_L4, - GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F16, - GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32_C4, - GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32_1ROW, - GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32_L4, - GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_BF16, - GGML_METAL_KERNEL_TYPE_MUL_MV_Q4_0_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_Q4_1_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_Q5_0_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_Q5_1_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_Q8_0_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_MXFP4_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_2, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_3, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_4, - GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_5, - GGML_METAL_KERNEL_TYPE_MUL_MV_Q2_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_Q3_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_Q4_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_Q5_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_Q6_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_IQ2_XXS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_IQ2_XS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_IQ3_XXS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_IQ3_S_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_IQ2_S_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_IQ1_S_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_IQ1_M_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_IQ4_NL_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_IQ4_XS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F32_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F16_F32, - //GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F16_F32_1ROW, - //GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F16_F32_L4, - //GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F16_F16, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_BF16_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q4_0_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q4_1_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q5_0_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q5_1_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q8_0_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_MXFP4_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q2_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q3_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q4_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q5_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q6_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ2_XXS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ2_XS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ3_XXS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ3_S_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ2_S_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ1_S_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ1_M_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ4_NL_F32, - GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ4_XS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_F32_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_F16_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_BF16_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_Q4_0_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_Q4_1_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_Q5_0_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_Q5_1_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_Q8_0_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_MXFP4_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_Q2_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_Q3_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_Q4_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_Q5_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_Q6_K_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_IQ2_XXS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_IQ2_XS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_IQ3_XXS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_IQ3_S_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_IQ2_S_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_IQ1_S_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_IQ1_M_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_IQ4_NL_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_IQ4_XS_F32, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_1, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_2, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_4, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_6, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_8, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_10, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_F32_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_F16_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_BF16_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q4_0_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q4_1_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q5_0_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q5_1_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q8_0_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MXFP4_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q2_K_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q3_K_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q4_K_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q5_K_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q6_K_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ2_XXS_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ2_XS_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ3_XXS_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ3_S_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ2_S_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ1_S_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ1_M_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ4_NL_F16, - GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ4_XS_F16, - GGML_METAL_KERNEL_TYPE_ROPE_NORM_F32, - GGML_METAL_KERNEL_TYPE_ROPE_NORM_F16, - GGML_METAL_KERNEL_TYPE_ROPE_MULTI_F32, - GGML_METAL_KERNEL_TYPE_ROPE_MULTI_F16, - GGML_METAL_KERNEL_TYPE_ROPE_VISION_F32, - GGML_METAL_KERNEL_TYPE_ROPE_VISION_F16, - GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F32, - GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F16, - GGML_METAL_KERNEL_TYPE_IM2COL_F16, - GGML_METAL_KERNEL_TYPE_IM2COL_F32, - GGML_METAL_KERNEL_TYPE_IM2COL_EXT_F16, - GGML_METAL_KERNEL_TYPE_IM2COL_EXT_F32, - GGML_METAL_KERNEL_TYPE_CONV_TRANSPOSE_1D_F32_F32, - GGML_METAL_KERNEL_TYPE_CONV_TRANSPOSE_1D_F16_F32, - GGML_METAL_KERNEL_TYPE_UPSCALE_F32, - GGML_METAL_KERNEL_TYPE_PAD_F32, - GGML_METAL_KERNEL_TYPE_PAD_REFLECT_1D_F32, - GGML_METAL_KERNEL_TYPE_ARANGE_F32, - GGML_METAL_KERNEL_TYPE_TIMESTEP_EMBEDDING_F32, - GGML_METAL_KERNEL_TYPE_ARGSORT_F32_I32_ASC, - GGML_METAL_KERNEL_TYPE_ARGSORT_F32_I32_DESC, - GGML_METAL_KERNEL_TYPE_LEAKY_RELU_F32, - GGML_METAL_KERNEL_TYPE_CPY_F32_F32, - GGML_METAL_KERNEL_TYPE_CPY_F32_F16, - GGML_METAL_KERNEL_TYPE_CPY_F32_BF16, - GGML_METAL_KERNEL_TYPE_CPY_F16_F16, - GGML_METAL_KERNEL_TYPE_CPY_F16_F32, - GGML_METAL_KERNEL_TYPE_CPY_BF16_F32, - GGML_METAL_KERNEL_TYPE_CPY_BF16_BF16, - GGML_METAL_KERNEL_TYPE_CPY_F32_I32, - GGML_METAL_KERNEL_TYPE_CPY_I32_F32, - GGML_METAL_KERNEL_TYPE_CPY_F32_Q8_0, - GGML_METAL_KERNEL_TYPE_CPY_F32_Q4_0, - GGML_METAL_KERNEL_TYPE_CPY_F32_Q4_1, - GGML_METAL_KERNEL_TYPE_CPY_F32_Q5_0, - GGML_METAL_KERNEL_TYPE_CPY_F32_Q5_1, - GGML_METAL_KERNEL_TYPE_CPY_F32_IQ4_NL, - GGML_METAL_KERNEL_TYPE_CPY_Q4_0_F32, - GGML_METAL_KERNEL_TYPE_CPY_Q4_0_F16, - GGML_METAL_KERNEL_TYPE_CPY_Q4_1_F32, - GGML_METAL_KERNEL_TYPE_CPY_Q4_1_F16, - GGML_METAL_KERNEL_TYPE_CPY_Q5_0_F32, - GGML_METAL_KERNEL_TYPE_CPY_Q5_0_F16, - GGML_METAL_KERNEL_TYPE_CPY_Q5_1_F32, - GGML_METAL_KERNEL_TYPE_CPY_Q5_1_F16, - GGML_METAL_KERNEL_TYPE_CPY_Q8_0_F32, - GGML_METAL_KERNEL_TYPE_CPY_Q8_0_F16, - GGML_METAL_KERNEL_TYPE_CONCAT, - GGML_METAL_KERNEL_TYPE_SQR, - GGML_METAL_KERNEL_TYPE_SQRT, - GGML_METAL_KERNEL_TYPE_SIN, - GGML_METAL_KERNEL_TYPE_COS, - GGML_METAL_KERNEL_TYPE_NEG, - GGML_METAL_KERNEL_TYPE_REGLU, - GGML_METAL_KERNEL_TYPE_GEGLU, - GGML_METAL_KERNEL_TYPE_SWIGLU, - GGML_METAL_KERNEL_TYPE_SWIGLU_OAI, - GGML_METAL_KERNEL_TYPE_GEGLU_ERF, - GGML_METAL_KERNEL_TYPE_GEGLU_QUICK, - GGML_METAL_KERNEL_TYPE_SUM_ROWS, - GGML_METAL_KERNEL_TYPE_MEAN, - GGML_METAL_KERNEL_TYPE_POOL_2D_AVG_F32, - GGML_METAL_KERNEL_TYPE_POOL_2D_MAX_F32, - GGML_METAL_KERNEL_TYPE_ARGMAX, - - GGML_METAL_KERNEL_TYPE_COUNT -}; - -struct ggml_metal_command_buffer { - id obj; - - // used to enable concurrent execution of ops in the command buffers - struct ggml_mem_ranges * mem_ranges; -}; - -struct ggml_backend_metal_context { - id device; - id queue; // currently a pointer to the device queue, but might become separate queue [TAG_QUEUE_PER_BACKEND] - - dispatch_queue_t d_queue; - - // the set of pre-compiled kernels for this context - struct ggml_metal_kernel kernels[GGML_METAL_KERNEL_TYPE_COUNT]; - - // additional, inference-time compiled kernels - NSMutableDictionary * kernels_ext; - - // capture state - bool capture_next_compute; - bool capture_started; - - id capture_scope; - - // command buffer state - int n_cb; // number of extra threads used to submit the command buffers - int n_nodes_0; // number of nodes submitted by the main thread - int n_nodes_1; // remaining number of nodes submitted by the n_cb threads - int n_nodes_per_cb; - - struct ggml_cgraph * gf; - - // the callback given to the thread pool - void (^encode_async)(size_t ith); - - // n_cb command buffers + 1 used by the main thread - struct ggml_metal_command_buffer cmd_bufs[GGML_METAL_MAX_COMMAND_BUFFERS + 1]; - - // extra command buffers for things like getting, setting and copying tensors - NSMutableArray * cmd_bufs_ext; - - // the last command buffer queued into the Metal queue with operations relevant to the current Metal backend - id cmd_buf_last; - - // abort ggml_metal_graph_compute if callback returns true - ggml_abort_callback abort_callback; - void * abort_callback_data; -}; - -// MSL code -// TODO: move the contents here when ready -// for now it is easier to work in a separate file -// static NSString * const msl_library_source = @"see metal.metal"; - -#if !GGML_METAL_EMBED_LIBRARY -// Here to assist with NSBundle Path Hack -@interface GGMLMetalClass : NSObject -@end -@implementation GGMLMetalClass -@end -#endif - -static void * ggml_metal_host_malloc(size_t n) { - void * data = NULL; - -#if TARGET_OS_OSX - kern_return_t err = vm_allocate((vm_map_t) mach_task_self(), (void *) &data, n, VM_FLAGS_ANYWHERE); - if (err != KERN_SUCCESS) { - GGML_LOG_ERROR("%s: error: vm_allocate failed\n", __func__); - return NULL; - } -#else - const int result = posix_memalign((void **) &data, sysconf(_SC_PAGESIZE), n); - if (result != 0) { - GGML_LOG_ERROR("%s: error: posix_memalign failed\n", __func__); - return NULL; - } -#endif - - return data; -} - -// load library -// -// - first check if the library is embedded -// - then check if the library is in the bundle -// - if not found, load the source and compile it -// - if that fails, return NULL -static id ggml_metal_load_library(id device, bool use_bfloat) { - const int64_t t_start = ggml_time_us(); - - id metal_library = nil; - NSError * error = nil; - NSString * src = nil; - -#if GGML_METAL_EMBED_LIBRARY - GGML_LOG_INFO("%s: using embedded metal library\n", __func__); - - extern const char ggml_metallib_start[]; - extern const char ggml_metallib_end[]; - - src = [[NSString alloc] initWithBytes:ggml_metallib_start length:(ggml_metallib_end-ggml_metallib_start) encoding:NSUTF8StringEncoding]; - -#else - -#ifdef SWIFT_PACKAGE - NSBundle * bundle = SWIFTPM_MODULE_BUNDLE; -#else - NSBundle * bundle = [NSBundle bundleForClass:[GGMLMetalClass class]]; -#endif - - NSString * path_lib = [bundle pathForResource:@"default" ofType:@"metallib"]; - if (path_lib == nil) { - // Try to find the resource in the directory where the current binary located. - NSString * current_binary = [[NSProcessInfo processInfo] arguments][0]; - NSString * bin_dir = [current_binary stringByDeletingLastPathComponent]; - NSString * default_metallib_path = [NSString pathWithComponents:@[bin_dir, @"default.metallib"]]; - if ([[NSFileManager defaultManager] isReadableFileAtPath:default_metallib_path]) { - GGML_LOG_INFO("%s: found '%s'\n", __func__, [default_metallib_path UTF8String]); - NSDictionary * atts = [[NSFileManager defaultManager] attributesOfItemAtPath:default_metallib_path error:&error]; - if (atts && atts[NSFileType] == NSFileTypeSymbolicLink) { - // Optionally, if this is a symlink, try to resolve it. - default_metallib_path = [[NSFileManager defaultManager] destinationOfSymbolicLinkAtPath:default_metallib_path error:&error]; - if (default_metallib_path && [default_metallib_path length] > 0 && ![[default_metallib_path substringToIndex:1] isEqualToString:@"/"]) { - // It is a relative path, adding the binary directory as directory prefix. - default_metallib_path = [NSString pathWithComponents:@[bin_dir, default_metallib_path]]; - } - if (!default_metallib_path || ![[NSFileManager defaultManager] isReadableFileAtPath:default_metallib_path]) { - // Link to the resource could not be resolved. - default_metallib_path = nil; - } else { - GGML_LOG_INFO("%s: symlink resolved '%s'\n", __func__, [default_metallib_path UTF8String]); - } - } - } else { - // The resource couldn't be found in the binary's directory. - default_metallib_path = nil; - } - path_lib = default_metallib_path; - } - - if (path_lib != nil) { - // pre-compiled library found - NSURL * libURL = [NSURL fileURLWithPath:path_lib]; - GGML_LOG_INFO("%s: loading '%s'\n", __func__, [path_lib UTF8String]); - - metal_library = [device newLibraryWithURL:libURL error:&error]; - if (error) { - GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); - return NULL; - } - } else { - GGML_LOG_INFO("%s: default.metallib not found, loading from source\n", __func__); - - NSString * path_source; - NSString * path_resource = [[NSProcessInfo processInfo].environment objectForKey:@"GGML_METAL_PATH_RESOURCES"]; - - GGML_LOG_INFO("%s: GGML_METAL_PATH_RESOURCES = %s\n", __func__, path_resource ? [path_resource UTF8String] : "nil"); - - if (path_resource) { - path_source = [path_resource stringByAppendingPathComponent:@"ggml-metal.metal"]; - } else { - path_source = [bundle pathForResource:@"ggml-metal" ofType:@"metal"]; - } - - if (path_source == nil) { - GGML_LOG_WARN("%s: error: could not use bundle path to find ggml-metal.metal, falling back to trying cwd\n", __func__); - path_source = @"ggml-metal.metal"; - } - - GGML_LOG_INFO("%s: loading '%s'\n", __func__, [path_source UTF8String]); - - src = [NSString stringWithContentsOfFile:path_source encoding:NSUTF8StringEncoding error:&error]; - if (error) { - GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); - return NULL; - } - } -#endif - - if (!metal_library) { - @autoreleasepool { - // dictionary of preprocessor macros - NSMutableDictionary * prep = [NSMutableDictionary dictionary]; - - if (use_bfloat) { - [prep setObject:@"1" forKey:@"GGML_METAL_USE_BF16"]; - } - -#if GGML_METAL_EMBED_LIBRARY - [prep setObject:@"1" forKey:@"GGML_METAL_EMBED_LIBRARY"]; -#endif - - MTLCompileOptions * options = [MTLCompileOptions new]; - options.preprocessorMacros = prep; - - //[options setFastMathEnabled:false]; - - metal_library = [device newLibraryWithSource:src options:options error:&error]; - if (error) { - GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); - return NULL; - } - -#if !__has_feature(objc_arc) - [options release]; -#endif - } - } - -#if GGML_METAL_EMBED_LIBRARY - [src release]; -#endif // GGML_METAL_EMBED_LIBRARY - - GGML_LOG_INFO("%s: loaded in %.3f sec\n", __func__, (ggml_time_us() - t_start) / 1e6); - - return metal_library; -} - -static struct ggml_backend_metal_context * ggml_metal_init(ggml_backend_dev_t dev) { - GGML_LOG_INFO("%s: allocating\n", __func__); - -#if TARGET_OS_OSX && !GGML_METAL_NDEBUG - // Show all the Metal device instances in the system - NSArray * devices = MTLCopyAllDevices(); - for (id device in devices) { - GGML_LOG_INFO("%s: found device: %s\n", __func__, [[device name] UTF8String]); - } - [devices release]; // since it was created by a *Copy* C method -#endif - - // init context - struct ggml_backend_metal_context * ctx = calloc(1, sizeof(struct ggml_backend_metal_context)); - struct ggml_backend_metal_device_context * ctx_dev = dev->context; - - id device = ctx_dev->mtl_device; - - GGML_LOG_INFO("%s: picking default device: %s\n", __func__, [[device name] UTF8String]); - - ctx->device = device; - - // TODO: question - would it be better to have one queue for the backend and one queue for the device? - // the graph encoders and async ops would use the backend queue while the sync ops would use the device queue? - //ctx->queue = [device newCommandQueue]; [TAG_QUEUE_PER_BACKEND] - ctx->queue = ctx_dev->mtl_queue; - if (ctx->queue == nil) { - GGML_LOG_ERROR("%s: error: failed to create command queue\n", __func__); - return NULL; - } - - ctx->d_queue = dispatch_queue_create("ggml-metal", DISPATCH_QUEUE_CONCURRENT); - - // load library - { - [ctx_dev->mtl_lock lock]; - - if (ctx_dev->mtl_library == nil) { - ctx_dev->mtl_library = ggml_metal_load_library(device, ctx_dev->use_bfloat); - } - - [ctx_dev->mtl_lock unlock]; - } - - id metal_library = ctx_dev->mtl_library; - if (metal_library == nil) { - GGML_LOG_ERROR("%s: error: metal library is nil\n", __func__); - return NULL; - } - - // print MTL GPU family: - GGML_LOG_INFO("%s: GPU name: %s\n", __func__, [[device name] UTF8String]); - - // determine max supported GPU family - // https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf - // https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf - { - for (int i = MTLGPUFamilyApple1 + 20; i >= MTLGPUFamilyApple1; --i) { - if ([device supportsFamily:i]) { - GGML_LOG_INFO("%s: GPU family: MTLGPUFamilyApple%d (%d)\n", __func__, i - (int) MTLGPUFamilyApple1 + 1, i); - break; - } - } - - for (int i = MTLGPUFamilyCommon1 + 5; i >= MTLGPUFamilyCommon1; --i) { - if ([device supportsFamily:i]) { - GGML_LOG_INFO("%s: GPU family: MTLGPUFamilyCommon%d (%d)\n", __func__, i - (int) MTLGPUFamilyCommon1 + 1, i); - break; - } - } - - for (int i = MTLGPUFamilyMetal3_GGML + 5; i >= MTLGPUFamilyMetal3_GGML; --i) { - if ([device supportsFamily:i]) { - GGML_LOG_INFO("%s: GPU family: MTLGPUFamilyMetal%d (%d)\n", __func__, i - (int) MTLGPUFamilyMetal3_GGML + 3, i); - break; - } - } - } - - GGML_LOG_INFO("%s: simdgroup reduction = %s\n", __func__, ctx_dev->has_simdgroup_reduction ? "true" : "false"); - GGML_LOG_INFO("%s: simdgroup matrix mul. = %s\n", __func__, ctx_dev->has_simdgroup_mm ? "true" : "false"); - GGML_LOG_INFO("%s: has residency sets = %s\n", __func__, ctx_dev->has_residency_sets ? "true" : "false"); - GGML_LOG_INFO("%s: has bfloat = %s\n", __func__, ctx_dev->has_bfloat ? "true" : "false"); - GGML_LOG_INFO("%s: use bfloat = %s\n", __func__, ctx_dev->use_bfloat ? "true" : "false"); - GGML_LOG_INFO("%s: use fusion = %s\n", __func__, ctx_dev->use_fusion ? "true" : "false"); - GGML_LOG_INFO("%s: use concurrency = %s\n", __func__, ctx_dev->use_concurrency ? "true" : "false"); - GGML_LOG_INFO("%s: use shared buffers = %s\n", __func__, ctx_dev->use_shared_buffers ? "true" : "false"); - GGML_LOG_INFO("%s: use graph optimize = %s\n", __func__, ctx_dev->use_graph_optimize ? "true" : "false"); - GGML_LOG_INFO("%s: hasUnifiedMemory = %s\n", __func__, ctx_dev->mtl_device.hasUnifiedMemory ? "true" : "false"); - - ctx->capture_next_compute = false; - ctx->capture_started = false; - ctx->capture_scope = nil; - - ctx->gf = nil; - ctx->encode_async = nil; - for (int i = 0; i < GGML_METAL_MAX_COMMAND_BUFFERS; ++i) { - ctx->cmd_bufs[i].obj = nil; - - if (ctx_dev->use_concurrency) { - ctx->cmd_bufs[i].mem_ranges = ggml_mem_ranges_init(ctx_dev->debug_graph); - } - } - - ctx->cmd_bufs_ext = [[NSMutableArray alloc] init]; - - ctx->cmd_buf_last = nil; - -#if TARGET_OS_OSX || (TARGET_OS_IOS && __clang_major__ >= 15) - if (@available(macOS 10.12, iOS 16.0, *)) { - GGML_LOG_INFO("%s: recommendedMaxWorkingSetSize = %8.2f MB\n", __func__, device.recommendedMaxWorkingSetSize / 1e6); - } -#endif - - // load kernels - { - NSError * error = nil; - - for (int i = 0; i < GGML_METAL_KERNEL_TYPE_COUNT; ++i) { - ctx->kernels[i].pipeline = nil; - } - -#define GGML_METAL_ADD_KERNEL(e, name, supported) \ - if (supported) { \ - struct ggml_metal_kernel * kernel = &ctx->kernels[e]; \ - id metal_function = [metal_library newFunctionWithName:@"kernel_"#name]; \ - kernel->pipeline = [device newComputePipelineStateWithFunction:metal_function error:&error]; \ - GGML_LOG_DEBUG("%s: loaded %-40s %16p | th_max = %4d | th_width = %4d\n", __func__, "kernel_"#name, (void *) kernel->pipeline, \ - (int) kernel->pipeline.maxTotalThreadsPerThreadgroup, \ - (int) kernel->pipeline.threadExecutionWidth); \ - [metal_function release]; \ - if (error) { \ - GGML_LOG_ERROR("%s: error: load pipeline error: %s\n", __func__, [[error description] UTF8String]); \ - return NULL; \ - } \ - } else { \ - GGML_LOG_WARN("%s: skipping %-40s (not supported)\n", __func__, "kernel_"#name); \ - } - - const bool has_simdgroup_mm = ctx_dev->has_simdgroup_mm; - const bool has_simdgroup_reduction = ctx_dev->has_simdgroup_reduction; - const bool use_bfloat = ctx_dev->use_bfloat; - - // simd_sum and simd_max requires MTLGPUFamilyApple7 - - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ADD_ID, add_id, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_REPEAT_F32, repeat_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_REPEAT_F16, repeat_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_REPEAT_I32, repeat_i32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_REPEAT_I16, repeat_i16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SCALE, scale, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SCALE_4, scale_4, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CLAMP, clamp, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_TANH, tanh, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_RELU, relu, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SIGMOID, sigmoid, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GELU, gelu, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GELU_4, gelu_4, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GELU_ERF, gelu_erf, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GELU_ERF_4, gelu_erf_4, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GELU_QUICK, gelu_quick, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GELU_QUICK_4, gelu_quick_4, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SILU, silu, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SILU_4, silu_4, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ELU, elu, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ABS, abs, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SGN, sgn, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_STEP, step, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_HARDSWISH, hardswish, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_HARDSIGMOID, hardsigmoid, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_EXP, exp, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SOFT_MAX_F16, soft_max_f16, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SOFT_MAX_F16_4, soft_max_f16_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SOFT_MAX_F32, soft_max_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SOFT_MAX_F32_4, soft_max_f32_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_DIAG_MASK_INF, diag_mask_inf, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_DIAG_MASK_INF_8, diag_mask_inf_8, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_F32, get_rows_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_F16, get_rows_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_BF16, get_rows_bf16, use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_Q4_0, get_rows_q4_0, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_Q4_1, get_rows_q4_1, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_Q5_0, get_rows_q5_0, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_Q5_1, get_rows_q5_1, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_Q8_0, get_rows_q8_0, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_MXFP4, get_rows_mxfp4, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_Q2_K, get_rows_q2_K, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_Q3_K, get_rows_q3_K, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_Q4_K, get_rows_q4_K, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_Q5_K, get_rows_q5_K, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_Q6_K, get_rows_q6_K, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ2_XXS, get_rows_iq2_xxs, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ2_XS, get_rows_iq2_xs, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ3_XXS, get_rows_iq3_xxs, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ3_S, get_rows_iq3_s, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ2_S, get_rows_iq2_s, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ1_S, get_rows_iq1_s, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ1_M, get_rows_iq1_m, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ4_NL, get_rows_iq4_nl, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ4_XS, get_rows_iq4_xs, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GET_ROWS_I32, get_rows_i32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SET_ROWS_F32, set_rows_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SET_ROWS_F16, set_rows_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SET_ROWS_BF16, set_rows_bf16, use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SET_ROWS_Q8_0, set_rows_q8_0, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SET_ROWS_Q4_0, set_rows_q4_0, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SET_ROWS_Q4_1, set_rows_q4_1, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SET_ROWS_Q5_0, set_rows_q5_0, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SET_ROWS_Q5_1, set_rows_q5_1, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SET_ROWS_IQ4_NL, set_rows_iq4_nl, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_L2_NORM, l2_norm, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GROUP_NORM, group_norm, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_NORM, norm, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SSM_CONV_F32, ssm_conv_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SSM_SCAN_F32, ssm_scan_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SSM_SCAN_F32_GROUP, ssm_scan_f32_group, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_RWKV_WKV6_F32, rwkv_wkv6_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_RWKV_WKV7_F32, rwkv_wkv7_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_F32_F32, mul_mv_f32_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_F32_F32_C4, mul_mv_f32_f32_c4, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32, mul_mv_bf16_f32, has_simdgroup_reduction && use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32_C4, mul_mv_bf16_f32_c4, use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32_1ROW, mul_mv_bf16_f32_1row, has_simdgroup_reduction && use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32_L4, mul_mv_bf16_f32_l4, has_simdgroup_reduction && use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_BF16, mul_mv_bf16_bf16, has_simdgroup_reduction && use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32, mul_mv_f16_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32_C4, mul_mv_f16_f32_c4, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32_1ROW, mul_mv_f16_f32_1row, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32_L4, mul_mv_f16_f32_l4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F16, mul_mv_f16_f16, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_Q4_0_F32, mul_mv_q4_0_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_Q4_1_F32, mul_mv_q4_1_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_Q5_0_F32, mul_mv_q5_0_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_Q5_1_F32, mul_mv_q5_1_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_Q8_0_F32, mul_mv_q8_0_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_MXFP4_F32, mul_mv_mxfp4_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_2, mul_mv_ext_f32_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_3, mul_mv_ext_f32_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_4, mul_mv_ext_f32_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_5, mul_mv_ext_f32_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_2, mul_mv_ext_f16_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_3, mul_mv_ext_f16_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_4, mul_mv_ext_f16_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_5, mul_mv_ext_f16_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_2, mul_mv_ext_q4_0_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_3, mul_mv_ext_q4_0_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_4, mul_mv_ext_q4_0_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_5, mul_mv_ext_q4_0_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_2, mul_mv_ext_q4_1_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_3, mul_mv_ext_q4_1_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_4, mul_mv_ext_q4_1_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_5, mul_mv_ext_q4_1_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_2, mul_mv_ext_q5_0_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_3, mul_mv_ext_q5_0_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_4, mul_mv_ext_q5_0_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_5, mul_mv_ext_q5_0_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_2, mul_mv_ext_q5_1_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_3, mul_mv_ext_q5_1_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_4, mul_mv_ext_q5_1_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_5, mul_mv_ext_q5_1_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_2, mul_mv_ext_q8_0_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_3, mul_mv_ext_q8_0_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_4, mul_mv_ext_q8_0_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_5, mul_mv_ext_q8_0_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_2, mul_mv_ext_mxfp4_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_3, mul_mv_ext_mxfp4_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_4, mul_mv_ext_mxfp4_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_5, mul_mv_ext_mxfp4_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_2, mul_mv_ext_q4_K_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_3, mul_mv_ext_q4_K_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_4, mul_mv_ext_q4_K_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_5, mul_mv_ext_q4_K_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_2, mul_mv_ext_q5_K_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_3, mul_mv_ext_q5_K_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_4, mul_mv_ext_q5_K_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_5, mul_mv_ext_q5_K_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_2, mul_mv_ext_q6_K_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_3, mul_mv_ext_q6_K_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_4, mul_mv_ext_q6_K_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_5, mul_mv_ext_q6_K_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_2, mul_mv_ext_iq4_nl_f32_r1_2, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_3, mul_mv_ext_iq4_nl_f32_r1_3, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_4, mul_mv_ext_iq4_nl_f32_r1_4, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_5, mul_mv_ext_iq4_nl_f32_r1_5, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_Q2_K_F32, mul_mv_q2_K_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_Q3_K_F32, mul_mv_q3_K_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_Q4_K_F32, mul_mv_q4_K_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_Q5_K_F32, mul_mv_q5_K_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_Q6_K_F32, mul_mv_q6_K_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_IQ2_XXS_F32, mul_mv_iq2_xxs_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_IQ2_XS_F32, mul_mv_iq2_xs_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_IQ3_XXS_F32, mul_mv_iq3_xxs_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_IQ3_S_F32, mul_mv_iq3_s_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_IQ2_S_F32, mul_mv_iq2_s_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_IQ1_S_F32, mul_mv_iq1_s_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_IQ1_M_F32, mul_mv_iq1_m_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_IQ4_NL_F32, mul_mv_iq4_nl_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_IQ4_XS_F32, mul_mv_iq4_xs_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F32_F32, mul_mv_id_f32_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F16_F32, mul_mv_id_f16_f32, has_simdgroup_reduction); - //GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F16_F32_1ROW, mul_mv_id_f16_f32_1row, has_simdgroup_reduction); - //GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F16_F32_L4, mul_mv_id_f16_f32_l4, has_simdgroup_reduction); - //GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F16_F16, mul_mv_id_f16_f16, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_BF16_F32, mul_mv_id_bf16_f32, has_simdgroup_reduction && use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q4_0_F32, mul_mv_id_q4_0_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q4_1_F32, mul_mv_id_q4_1_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q5_0_F32, mul_mv_id_q5_0_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q5_1_F32, mul_mv_id_q5_1_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q8_0_F32, mul_mv_id_q8_0_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_MXFP4_F32, mul_mv_id_mxfp4_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q2_K_F32, mul_mv_id_q2_K_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q3_K_F32, mul_mv_id_q3_K_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q4_K_F32, mul_mv_id_q4_K_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q5_K_F32, mul_mv_id_q5_K_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q6_K_F32, mul_mv_id_q6_K_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ2_XXS_F32, mul_mv_id_iq2_xxs_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ2_XS_F32, mul_mv_id_iq2_xs_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ3_XXS_F32, mul_mv_id_iq3_xxs_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ3_S_F32, mul_mv_id_iq3_s_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ2_S_F32, mul_mv_id_iq2_s_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ1_S_F32, mul_mv_id_iq1_s_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ1_M_F32, mul_mv_id_iq1_m_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ4_NL_F32, mul_mv_id_iq4_nl_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ4_XS_F32, mul_mv_id_iq4_xs_f32, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_F32_F32, mul_mm_f32_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_F16_F32, mul_mm_f16_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_BF16_F32, mul_mm_bf16_f32, has_simdgroup_mm && use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_Q4_0_F32, mul_mm_q4_0_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_Q4_1_F32, mul_mm_q4_1_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_Q5_0_F32, mul_mm_q5_0_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_Q5_1_F32, mul_mm_q5_1_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_Q8_0_F32, mul_mm_q8_0_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_MXFP4_F32, mul_mm_mxfp4_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_Q2_K_F32, mul_mm_q2_K_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_Q3_K_F32, mul_mm_q3_K_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_Q4_K_F32, mul_mm_q4_K_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_Q5_K_F32, mul_mm_q5_K_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_Q6_K_F32, mul_mm_q6_K_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_IQ2_XXS_F32, mul_mm_iq2_xxs_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_IQ2_XS_F32, mul_mm_iq2_xs_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_IQ3_XXS_F32, mul_mm_iq3_xxs_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_IQ3_S_F32, mul_mm_iq3_s_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_IQ2_S_F32, mul_mm_iq2_s_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_IQ1_S_F32, mul_mm_iq1_s_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_IQ1_M_F32, mul_mm_iq1_m_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_IQ4_NL_F32, mul_mm_iq4_nl_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_IQ4_XS_F32, mul_mm_iq4_xs_f32, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_1, mul_mm_id_map0_f16_ne20_1, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_2, mul_mm_id_map0_f16_ne20_2, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_4, mul_mm_id_map0_f16_ne20_4, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_6, mul_mm_id_map0_f16_ne20_6, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_8, mul_mm_id_map0_f16_ne20_8, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_10, mul_mm_id_map0_f16_ne20_10, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_16, mul_mm_id_map0_f16_ne20_16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_F32_F16, mul_mm_id_f32_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_F16_F16, mul_mm_id_f16_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_BF16_F16, mul_mm_id_bf16_f16, has_simdgroup_mm && use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q4_0_F16, mul_mm_id_q4_0_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q4_1_F16, mul_mm_id_q4_1_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q5_0_F16, mul_mm_id_q5_0_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q5_1_F16, mul_mm_id_q5_1_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q8_0_F16, mul_mm_id_q8_0_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MXFP4_F16, mul_mm_id_mxfp4_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q2_K_F16, mul_mm_id_q2_K_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q3_K_F16, mul_mm_id_q3_K_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q4_K_F16, mul_mm_id_q4_K_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q5_K_F16, mul_mm_id_q5_K_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q6_K_F16, mul_mm_id_q6_K_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ2_XXS_F16, mul_mm_id_iq2_xxs_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ2_XS_F16, mul_mm_id_iq2_xs_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ3_XXS_F16, mul_mm_id_iq3_xxs_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ3_S_F16, mul_mm_id_iq3_s_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ2_S_F16, mul_mm_id_iq2_s_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ1_S_F16, mul_mm_id_iq1_s_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ1_M_F16, mul_mm_id_iq1_m_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ4_NL_F16, mul_mm_id_iq4_nl_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ4_XS_F16, mul_mm_id_iq4_xs_f16, has_simdgroup_mm); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_NORM_F32, rope_norm_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_NORM_F16, rope_norm_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_MULTI_F32, rope_multi_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_MULTI_F16, rope_multi_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_VISION_F32, rope_vision_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_VISION_F16, rope_vision_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F32, rope_neox_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F16, rope_neox_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_IM2COL_F16, im2col_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_IM2COL_F32, im2col_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_IM2COL_EXT_F16, im2col_ext_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_IM2COL_EXT_F32, im2col_ext_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CONV_TRANSPOSE_1D_F32_F32, conv_transpose_1d_f32_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CONV_TRANSPOSE_1D_F16_F32, conv_transpose_1d_f16_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_UPSCALE_F32, upscale_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_PAD_F32, pad_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_PAD_REFLECT_1D_F32, pad_reflect_1d_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_TIMESTEP_EMBEDDING_F32, timestep_embedding_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ARANGE_F32, arange_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ARGSORT_F32_I32_ASC, argsort_f32_i32_asc, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ARGSORT_F32_I32_DESC, argsort_f32_i32_desc, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_LEAKY_RELU_F32, leaky_relu_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F32_F32, cpy_f32_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F32_F16, cpy_f32_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F32_BF16, cpy_f32_bf16, use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F16_F32, cpy_f16_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F16_F16, cpy_f16_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_BF16_F32, cpy_bf16_f32, use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_BF16_BF16, cpy_bf16_bf16, use_bfloat); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F32_I32, cpy_f32_i32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_I32_F32, cpy_i32_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F32_Q8_0, cpy_f32_q8_0, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F32_Q4_0, cpy_f32_q4_0, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F32_Q4_1, cpy_f32_q4_1, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F32_Q5_0, cpy_f32_q5_0, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F32_Q5_1, cpy_f32_q5_1, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_F32_IQ4_NL, cpy_f32_iq4_nl, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_Q4_0_F32, cpy_q4_0_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_Q4_0_F16, cpy_q4_0_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_Q4_1_F32, cpy_q4_1_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_Q4_1_F16, cpy_q4_1_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_Q5_0_F32, cpy_q5_0_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_Q5_0_F16, cpy_q5_0_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_Q5_1_F32, cpy_q5_1_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_Q5_1_F16, cpy_q5_1_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_Q8_0_F32, cpy_q8_0_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CPY_Q8_0_F16, cpy_q8_0_f16, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_CONCAT, concat, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SQR, sqr, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SQRT, sqrt, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SIN, sin, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_COS, cos, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_NEG, neg, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_REGLU, reglu, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GEGLU, geglu, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SWIGLU, swiglu, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SWIGLU_OAI, swiglu_oai, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GEGLU_ERF, geglu_erf, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_GEGLU_QUICK, geglu_quick, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_SUM_ROWS, sum_rows, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_MEAN, mean, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_ARGMAX, argmax, has_simdgroup_reduction); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_POOL_2D_AVG_F32, pool_2d_avg_f32, true); - GGML_METAL_ADD_KERNEL(GGML_METAL_KERNEL_TYPE_POOL_2D_MAX_F32, pool_2d_max_f32, true); - } - - ctx->kernels_ext = [[NSMutableDictionary alloc] init]; - - return ctx; -} - -static id ggml_metal_get_kernel(struct ggml_backend_metal_context * ctx, const char * name) { - NSString * key = [NSString stringWithUTF8String:name]; - - ggml_metal_kernel_wrapper * obj = [ctx->kernels_ext objectForKey:key]; - if (obj) { - return obj.kernel.pipeline; - } - - return nil; -} - -static id ggml_metal_compile_kernel(ggml_backend_t backend, const char * base, const char * name, MTLFunctionConstantValues * cv) { - struct ggml_backend_metal_context * ctx = backend->context; - struct ggml_backend_metal_device_context * ctx_dev = backend->device->context; - - id res = nil; - - @autoreleasepool { - NSError * error = nil; - - NSString * base_func = [NSString stringWithUTF8String:base]; - - GGML_LOG_DEBUG("%s: compiling kernel: base = '%s', name = '%s'\n", __func__, base, name); - - // TODO: make sure it is thread-safe to compile kernels in parallel - id metal_function = [ctx_dev->mtl_library newFunctionWithName:base_func constantValues:cv error:&error]; - if (!metal_function) { - GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); - - return nil; - } - - struct ggml_metal_kernel kernel = { - /*.pipeline =*/ [ctx_dev->mtl_device newComputePipelineStateWithFunction:metal_function error:&error], - }; - - ggml_metal_kernel_wrapper * obj = [[ggml_metal_kernel_wrapper alloc] init]; - obj.kernel = kernel; - - res = obj.kernel.pipeline; - - NSString * key = [NSString stringWithUTF8String:name]; - [ctx->kernels_ext setObject:obj forKey:key]; - - [metal_function release]; - [obj release]; - - GGML_LOG_DEBUG("%s: loaded %-40s %16p | th_max = %4d | th_width = %4d\n", __func__, name, (void *) kernel.pipeline, - (int) kernel.pipeline.maxTotalThreadsPerThreadgroup, - (int) kernel.pipeline.threadExecutionWidth); - } - - return res; -} - -// tokens per expert -static size_t ggml_metal_mul_mat_id_extra_tpe(const struct ggml_tensor * op) { - assert(op->op == GGML_OP_MUL_MAT_ID); - - const int64_t ne02 = op->src[0]->ne[2]; // n_expert - - return ggml_type_size(GGML_TYPE_I32)*ne02; -} - -// id map [n_tokens, n_expert] -static size_t ggml_metal_mul_mat_id_extra_ids(const struct ggml_tensor * op) { - assert(op->op == GGML_OP_MUL_MAT_ID); - - const int64_t ne02 = op->src[0]->ne[2]; // n_expert - const int64_t ne21 = op->src[2]->ne[1]; // n_token - - return ggml_type_size(GGML_TYPE_I32)*ne02*ne21; -} - -// return true if we should use the FA vector kernel for this op -static bool ggml_metal_flash_attn_ext_use_vec(const struct ggml_tensor * op) { - assert(op->op == GGML_OP_FLASH_ATTN_EXT); - - const int64_t ne00 = op->src[0]->ne[0]; // head size - const int64_t ne01 = op->src[0]->ne[1]; // batch size - - // use vec kernel if the batch size is small and if the head size is supported - return (ne01 < 20) && (ne00 % 32 == 0); -} - -static size_t ggml_metal_flash_attn_ext_extra_tmp(const struct ggml_tensor * op) { - assert(op->op == GGML_OP_FLASH_ATTN_EXT); - - const int64_t nwg = 32; - - const int64_t ne01 = op->src[0]->ne[1]; - const int64_t ne02 = op->src[0]->ne[2]; - const int64_t ne03 = op->src[0]->ne[3]; - const int64_t ne20 = op->src[2]->ne[0]; - - // temp buffer for writing the results from each workgroup - // - ne20: the size of the Value head - // - + 2: the S and M values for each intermediate result - return ggml_type_size(GGML_TYPE_F32)*(ne01*ne02*ne03*nwg*(ne20 + 2)); -} - -static id ggml_metal_get_pipeline_flash_attn_ext( - ggml_backend_t backend, struct ggml_tensor * op, - bool has_mask, - bool has_sinks, - bool has_bias, - bool has_scap, - int32_t nsg) { - struct ggml_backend_metal_context * ctx = backend->context; - - char base[256]; - char name[256]; - - @autoreleasepool { - const int32_t dk = (int32_t) op->src[1]->ne[0]; - const int32_t dv = (int32_t) op->src[2]->ne[0]; - - const int32_t ns10 = op->src[1]->nb[1]/op->src[1]->nb[0]; - const int32_t ns20 = op->src[2]->nb[1]/op->src[2]->nb[0]; - - snprintf(base, 256, "kernel_%s_%s_dk%d_dv%d", - "flash_attn_ext", - ggml_type_name(op->src[1]->type), - dk, - dv); - - snprintf(name, 256, "kernel_%s_%s_dk%d_dv%d_mask=%d_sinks=%d_bias=%d_scap=%d_ns10=%d_ns20=%d_nsg=%d", - "flash_attn_ext", - ggml_type_name(op->src[1]->type), - dk, - dv, - has_mask, - has_sinks, - has_bias, - has_scap, - ns10, - ns20, - nsg); - - id res = ggml_metal_get_kernel(ctx, name); - if (res) { - // kernel found - return res; - } - - MTLFunctionConstantValues * cv = [[MTLFunctionConstantValues alloc] init]; - - [cv setConstantValue:&has_mask type:MTLDataTypeBool atIndex:FC_FLASH_ATTN_EXT + 0]; - [cv setConstantValue:&has_sinks type:MTLDataTypeBool atIndex:FC_FLASH_ATTN_EXT + 1]; - [cv setConstantValue:&has_bias type:MTLDataTypeBool atIndex:FC_FLASH_ATTN_EXT + 2]; - [cv setConstantValue:&has_scap type:MTLDataTypeBool atIndex:FC_FLASH_ATTN_EXT + 3]; - - [cv setConstantValue:&ns10 type:MTLDataTypeInt atIndex:FC_FLASH_ATTN_EXT + 20]; - [cv setConstantValue:&ns20 type:MTLDataTypeInt atIndex:FC_FLASH_ATTN_EXT + 21]; - [cv setConstantValue:&nsg type:MTLDataTypeInt atIndex:FC_FLASH_ATTN_EXT + 22]; - - res = ggml_metal_compile_kernel(backend, base, name, cv); - - [cv release]; - - return res; - } -} - -static id ggml_metal_get_pipeline_flash_attn_ext_vec( - ggml_backend_t backend, struct ggml_tensor * op, - bool has_mask, - bool has_sinks, - bool has_bias, - bool has_scap, - int32_t nsg, - int32_t nwg) { - struct ggml_backend_metal_context * ctx = backend->context; - - char base[256]; - char name[256]; - - @autoreleasepool { - const int32_t dk = (int32_t) op->src[1]->ne[0]; - const int32_t dv = (int32_t) op->src[2]->ne[0]; - - const int32_t ns10 = op->src[1]->nb[1]/op->src[1]->nb[0]; - const int32_t ns20 = op->src[2]->nb[1]/op->src[2]->nb[0]; - - snprintf(base, 256, "kernel_%s_%s_dk%d_dv%d", - "flash_attn_ext_vec", - ggml_type_name(op->src[1]->type), - dk, - dv); - - snprintf(name, 256, "kernel_%s_%s_dk%d_dv%d_mask=%d_sink=%d_bias=%d_softcap=%d_ns10=%d_ns20=%d_nsg=%d_nwg=%d", - "flash_attn_ext_vec", - ggml_type_name(op->src[1]->type), - dk, - dv, - has_mask, - has_sinks, - has_bias, - has_scap, - ns10, - ns20, - nsg, nwg); - - id res = ggml_metal_get_kernel(ctx, name); - if (res) { - // kernel found - return res; - } - - MTLFunctionConstantValues * cv = [[MTLFunctionConstantValues alloc] init]; - - [cv setConstantValue:&has_mask type:MTLDataTypeBool atIndex:FC_FLASH_ATTN_EXT_VEC + 0]; - [cv setConstantValue:&has_sinks type:MTLDataTypeBool atIndex:FC_FLASH_ATTN_EXT_VEC + 1]; - [cv setConstantValue:&has_bias type:MTLDataTypeBool atIndex:FC_FLASH_ATTN_EXT_VEC + 2]; - [cv setConstantValue:&has_scap type:MTLDataTypeBool atIndex:FC_FLASH_ATTN_EXT_VEC + 3]; - - [cv setConstantValue:&ns10 type:MTLDataTypeInt atIndex:FC_FLASH_ATTN_EXT_VEC + 20]; - [cv setConstantValue:&ns20 type:MTLDataTypeInt atIndex:FC_FLASH_ATTN_EXT_VEC + 21]; - [cv setConstantValue:&nsg type:MTLDataTypeInt atIndex:FC_FLASH_ATTN_EXT_VEC + 22]; - [cv setConstantValue:&nwg type:MTLDataTypeInt atIndex:FC_FLASH_ATTN_EXT_VEC + 23]; - - res = ggml_metal_compile_kernel(backend, base, name, cv); - - [cv release]; - - return res; - } -} - -static id ggml_metal_get_pipeline_flash_attn_ext_vec_reduce( - ggml_backend_t backend, struct ggml_tensor * op, - int32_t dv, - int32_t nwg) { - struct ggml_backend_metal_context * ctx = backend->context; - - char base[256]; - char name[256]; - - @autoreleasepool { - snprintf(base, 256, "kernel_flash_attn_ext_vec_reduce"); - snprintf(name, 256, "kernel_flash_attn_ext_vec_reduce_dv=%d_nwg=%d", dv, nwg); - - id res = ggml_metal_get_kernel(ctx, name); - if (res) { - // kernel found - return res; - } - - MTLFunctionConstantValues * cv = [[MTLFunctionConstantValues alloc] init]; - - [cv setConstantValue:&dv type:MTLDataTypeInt atIndex:FC_FLASH_ATTN_EXT_VEC_REDUCE + 0]; - [cv setConstantValue:&nwg type:MTLDataTypeInt atIndex:FC_FLASH_ATTN_EXT_VEC_REDUCE + 1]; - - res = ggml_metal_compile_kernel(backend, base, name, cv); - - [cv release]; - - return res; - } - - GGML_UNUSED(op); -} - -static id ggml_metal_get_pipeline_bin( - ggml_backend_t backend, enum ggml_op op, - int32_t n_fuse, - bool row) { - struct ggml_backend_metal_context * ctx = backend->context; - - char base[256]; - char name[256]; - - @autoreleasepool { - const char * op_str = "undefined"; - switch (op) { - case GGML_OP_ADD: op_str = "add"; break; - case GGML_OP_SUB: op_str = "sub"; break; - case GGML_OP_MUL: op_str = "mul"; break; - case GGML_OP_DIV: op_str = "div"; break; - default: GGML_ABORT("fatal error"); - }; - - if (row) { - snprintf(base, 256, "kernel_%s_row_c4_fuse_%d", op_str, n_fuse); - } else { - snprintf(base, 256, "kernel_%s_fuse_%d", op_str, n_fuse); - } - - snprintf(name, 256, "%s", base); - - id res = ggml_metal_get_kernel(ctx, name); - if (res) { - // kernel found - return res; - } - - return ggml_metal_compile_kernel(backend, base, name, nil); - } -} - -static id ggml_metal_get_pipeline_rms_norm( - ggml_backend_t backend, struct ggml_tensor * op, - int32_t n_fuse) { - struct ggml_backend_metal_context * ctx = backend->context; - - char base[256]; - char name[256]; - - @autoreleasepool { - switch (n_fuse) { - case 1: snprintf(base, 256, "kernel_rms_norm"); break; - case 2: snprintf(base, 256, "kernel_rms_norm_mul"); break; - case 3: snprintf(base, 256, "kernel_rms_norm_mul_add"); break; - default: GGML_ABORT("fatal error"); - } - - snprintf(name, 256, "%s", base); - - id res = ggml_metal_get_kernel(ctx, name); - if (res) { - // kernel found - return res; - } - - return ggml_metal_compile_kernel(backend, base, name, nil); - } - - GGML_UNUSED(op); -} - -static void ggml_metal_free(struct ggml_backend_metal_context * ctx) { - GGML_LOG_INFO("%s: deallocating\n", __func__); - - for (int i = 0; i < GGML_METAL_KERNEL_TYPE_COUNT; ++i) { - [ctx->kernels[i].pipeline release]; - } - - if (ctx->kernels_ext) { - [ctx->kernels_ext release]; - ctx->kernels_ext = nil; - } - - Block_release(ctx->encode_async); - - //[ctx->queue release]; // [TAG_QUEUE_PER_BACKEND] - - for (int i = 0; i < GGML_METAL_MAX_COMMAND_BUFFERS; ++i) { - if (ctx->cmd_bufs[i].obj) { - [ctx->cmd_bufs[i].obj release]; - } - - if (ctx->cmd_bufs[i].mem_ranges) { - ggml_mem_ranges_free(ctx->cmd_bufs[i].mem_ranges); - } - } - - [ctx->cmd_bufs_ext removeAllObjects]; - [ctx->cmd_bufs_ext release]; - - dispatch_release(ctx->d_queue); - - free(ctx); -} - -// temporarily defined here for compatibility between ggml-backend and the old API - -struct ggml_backend_metal_buffer { - void * data; - size_t size; - - id metal; -}; - -struct ggml_backend_metal_buffer_context { - void * all_data; - size_t all_size; - - // if false, the Metal buffer data is allocated in private GPU memory and is not shared with the host - bool is_shared; - - // multiple buffers are used only to avoid the maximum buffer size limitation when using mmap - int n_buffers; - struct ggml_backend_metal_buffer buffers[GGML_METAL_MAX_BUFFERS]; - - // optional MTLResidencySet - // note: cannot use explicity "id" here because it is not available on certain OSes - id rset; - - // pointers to global device objects - id device; - id queue; -}; - -// rset init -static bool ggml_backend_metal_buffer_rset_init( - struct ggml_backend_metal_buffer_context * ctx, - struct ggml_backend_metal_device_context * ctx_dev, - id device) { - ctx->rset = nil; - - if (!ctx_dev->has_residency_sets) { - return true; - } - -#if defined(GGML_METAL_HAS_RESIDENCY_SETS) - if (@available(macOS 15.0, iOS 18.0, tvOS 18.0, visionOS 2.0, *)) { - MTLResidencySetDescriptor * desc = [[MTLResidencySetDescriptor alloc] init]; - desc.label = @"ggml_backend_metal"; - desc.initialCapacity = ctx->n_buffers; - - NSError * error; - ctx->rset = [device newResidencySetWithDescriptor:desc error:&error]; - if (error) { - GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); - [desc release]; - return false; - } - - [desc release]; - - for (int i = 0; i < ctx->n_buffers; i++) { - [ctx->rset addAllocation:ctx->buffers[i].metal]; - } - - [ctx->rset commit]; - [ctx->rset requestResidency]; - - return true; - } -#else - GGML_UNUSED(ctx_dev); - GGML_UNUSED(device); -#endif - - return true; -} - -// rset free -static void ggml_backend_metal_buffer_rset_free(struct ggml_backend_metal_buffer_context * ctx) { -#if defined(GGML_METAL_HAS_RESIDENCY_SETS) - if (@available(macOS 15.0, iOS 18.0, tvOS 18.0, visionOS 2.0, *)) { - if (ctx->rset) { - [ctx->rset endResidency]; - [ctx->rset removeAllAllocations]; - [ctx->rset release]; - } - } -#else - GGML_UNUSED(ctx); -#endif -} - -// finds the Metal buffer that contains the tensor data on the GPU device -// the assumption is that there is 1-to-1 mapping between the host and device memory buffers, so we can find the -// Metal buffer based on the host memory pointer -// -static id ggml_metal_get_buffer(const struct ggml_tensor * t, size_t * offs) { - //GGML_LOG_INFO("%s: data tensor '%16s', offs_data = %8ld, offs_eval = %8ld, offs_cach = %8ld\n", __func__, t->name, offs_data, offs_eval, offs_cach); - - const int64_t tsize = ggml_nbytes(t); - - ggml_backend_buffer_t buffer = t->view_src ? t->view_src->buffer : t->buffer; - - struct ggml_backend_metal_buffer_context * buf_ctx = (struct ggml_backend_metal_buffer_context *) buffer->context; - - // find the view that contains the tensor fully - for (int i = 0; i < buf_ctx->n_buffers; ++i) { - const int64_t ioffs = (int64_t) t->data - (int64_t) buf_ctx->buffers[i].data; - - //GGML_LOG_INFO("ioffs = %10ld, tsize = %10ld, sum = %10ld, buf_ctx->buffers[%d].size = %10ld\n", ioffs, tsize, ioffs + tsize, i, buf_ctx->buffers[i].size); - if (ioffs >= 0 && ioffs + tsize <= (int64_t) buf_ctx->buffers[i].size) { - *offs = (size_t) ioffs; - - //GGML_LOG_INFO("%s: tensor '%16s', offs = %8ld\n", __func__, t->name, *offs); - - return buf_ctx->buffers[i].metal; - } - } - - GGML_LOG_ERROR("%s: error: tensor '%s' buffer is nil\n", __func__, t->name); - - return nil; -} - -static bool ggml_metal_supports_op(const struct ggml_backend_metal_device_context * ctx_dev, const struct ggml_tensor * op) { - const bool has_simdgroup_mm = ctx_dev->has_simdgroup_mm; - const bool has_simdgroup_reduction = ctx_dev->has_simdgroup_reduction; - const bool use_bfloat = ctx_dev->use_bfloat; - - if (!use_bfloat) { - if (op->type == GGML_TYPE_BF16) { - return false; - } - - for (size_t i = 0, n = 3; i < n; ++i) { - if (op->src[i] != NULL && op->src[i]->type == GGML_TYPE_BF16) { - return false; - } - } - } - - switch (op->op) { - case GGML_OP_UNARY: - switch (ggml_get_unary_op(op)) { - case GGML_UNARY_OP_TANH: - case GGML_UNARY_OP_RELU: - case GGML_UNARY_OP_SIGMOID: - case GGML_UNARY_OP_GELU: - case GGML_UNARY_OP_GELU_ERF: - case GGML_UNARY_OP_GELU_QUICK: - case GGML_UNARY_OP_SILU: - case GGML_UNARY_OP_ELU: - case GGML_UNARY_OP_NEG: - case GGML_UNARY_OP_ABS: - case GGML_UNARY_OP_SGN: - case GGML_UNARY_OP_STEP: - case GGML_UNARY_OP_HARDSWISH: - case GGML_UNARY_OP_HARDSIGMOID: - case GGML_UNARY_OP_EXP: - return ggml_is_contiguous(op->src[0]) && op->src[0]->type == GGML_TYPE_F32; - default: - return false; - } - case GGML_OP_GLU: - switch (ggml_get_glu_op(op)) { - case GGML_GLU_OP_REGLU: - case GGML_GLU_OP_GEGLU: - case GGML_GLU_OP_SWIGLU: - case GGML_GLU_OP_SWIGLU_OAI: - case GGML_GLU_OP_GEGLU_ERF: - case GGML_GLU_OP_GEGLU_QUICK: - return ggml_is_contiguous_1(op->src[0]) && op->src[0]->type == GGML_TYPE_F32; - default: - return false; - } - case GGML_OP_NONE: - case GGML_OP_RESHAPE: - case GGML_OP_VIEW: - case GGML_OP_TRANSPOSE: - case GGML_OP_PERMUTE: - case GGML_OP_CONCAT: - return true; - case GGML_OP_ADD: - case GGML_OP_SUB: - case GGML_OP_MUL: - case GGML_OP_DIV: - case GGML_OP_ADD_ID: - return op->src[0]->type == GGML_TYPE_F32; - case GGML_OP_ACC: - case GGML_OP_REPEAT: - case GGML_OP_SCALE: - case GGML_OP_CONV_TRANSPOSE_1D: - return true; - case GGML_OP_CLAMP: - return op->src[0]->type == GGML_TYPE_F32; - case GGML_OP_SQR: - case GGML_OP_SQRT: - case GGML_OP_SIN: - case GGML_OP_COS: - return ggml_is_contiguous(op->src[0]) && op->src[0]->type == GGML_TYPE_F32; - case GGML_OP_LOG: - return false; // TODO: implement - case GGML_OP_SUM_ROWS: - case GGML_OP_MEAN: - case GGML_OP_SOFT_MAX: - case GGML_OP_GROUP_NORM: - return has_simdgroup_reduction && ggml_is_contiguous_rows(op->src[0]); - case GGML_OP_RMS_NORM: - case GGML_OP_L2_NORM: - return has_simdgroup_reduction && (op->ne[0] % 4 == 0 && ggml_is_contiguous_1(op->src[0])); - case GGML_OP_ARGMAX: - return has_simdgroup_reduction; - case GGML_OP_NORM: - return has_simdgroup_reduction && (op->ne[0] % 4 == 0 && ggml_is_contiguous_1(op->src[0])); - case GGML_OP_ROPE: - return true; - case GGML_OP_IM2COL: - return ggml_is_contiguous(op->src[1]) && op->src[1]->type == GGML_TYPE_F32 && (op->type == GGML_TYPE_F16 || op->type == GGML_TYPE_F32); - case GGML_OP_POOL_1D: - return false; - case GGML_OP_UPSCALE: - return op->src[0]->type == GGML_TYPE_F32 && op->op_params[0] == GGML_SCALE_MODE_NEAREST; - case GGML_OP_POOL_2D: - return op->src[0]->type == GGML_TYPE_F32; - case GGML_OP_PAD: - return (ggml_get_op_params_i32(op, 0) == 0) && (ggml_get_op_params_i32(op, 2) == 0) && - (ggml_get_op_params_i32(op, 4) == 0) && (ggml_get_op_params_i32(op, 6) == 0); - case GGML_OP_PAD_REFLECT_1D: - case GGML_OP_TIMESTEP_EMBEDDING: - case GGML_OP_ARGSORT: - case GGML_OP_LEAKY_RELU: - return op->src[0]->type == GGML_TYPE_F32; - case GGML_OP_ARANGE: - return true; - case GGML_OP_FLASH_ATTN_EXT: - // for new head sizes, add checks here - if (op->src[0]->ne[0] != 40 && - op->src[0]->ne[0] != 64 && - op->src[0]->ne[0] != 80 && - op->src[0]->ne[0] != 96 && - op->src[0]->ne[0] != 112 && - op->src[0]->ne[0] != 128 && - op->src[0]->ne[0] != 192 && - op->src[0]->ne[0] != 256) { - return false; - } - if (op->src[0]->ne[0] == 576) { - // DeepSeek sizes - // TODO: disabled for now, until optmized - return false; - } - if (op->src[1]->type != op->src[2]->type) { - return false; - } - return has_simdgroup_mm; // TODO: over-restricted for vec-kernels - case GGML_OP_SSM_CONV: - case GGML_OP_SSM_SCAN: - return has_simdgroup_reduction; - case GGML_OP_RWKV_WKV6: - case GGML_OP_RWKV_WKV7: - return true; - case GGML_OP_MUL_MAT: - case GGML_OP_MUL_MAT_ID: - return has_simdgroup_reduction && - (op->src[0]->type != GGML_TYPE_F32 || op->src[1]->type == GGML_TYPE_F32); - case GGML_OP_CPY: - case GGML_OP_DUP: - case GGML_OP_CONT: - { - switch (op->src[0]->type) { - case GGML_TYPE_F32: - switch (op->type) { - case GGML_TYPE_F32: - case GGML_TYPE_F16: - case GGML_TYPE_BF16: - case GGML_TYPE_Q8_0: - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_IQ4_NL: - case GGML_TYPE_I32: - return true; - default: - return false; - } - case GGML_TYPE_F16: - switch (op->type) { - case GGML_TYPE_F32: - case GGML_TYPE_F16: - return true; - default: - return false; - } - case GGML_TYPE_BF16: - switch (op->type) { - case GGML_TYPE_F32: - case GGML_TYPE_BF16: - return true; - default: - return false; - } - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_Q8_0: - switch (op->type) { - case GGML_TYPE_F32: - case GGML_TYPE_F16: - return true; - default: - return false; - } - case GGML_TYPE_I32: - return op->type == GGML_TYPE_F32; - default: - return false; - }; - } - case GGML_OP_DIAG_MASK_INF: - case GGML_OP_GET_ROWS: - { - return op->ne[3] == 1; - } - case GGML_OP_SET_ROWS: - { - if (op->src[0]->type != GGML_TYPE_F32) { - return false; - } - - switch (op->type) { - case GGML_TYPE_F32: - case GGML_TYPE_F16: - case GGML_TYPE_BF16: - case GGML_TYPE_Q8_0: - case GGML_TYPE_Q4_0: - case GGML_TYPE_Q4_1: - case GGML_TYPE_Q5_0: - case GGML_TYPE_Q5_1: - case GGML_TYPE_IQ4_NL: - return true; - default: - return false; - }; - } - default: - return false; - } -} - -struct ggml_metal_encode_context { - ggml_backend_t backend; - - id encoder; - - struct ggml_mem_ranges * mem_ranges; -}; - -static bool ggml_metal_encode_concurrency_reset(struct ggml_metal_encode_context * ctx) { - if (!ctx->mem_ranges) { - return true; - } - - [ctx->encoder memoryBarrierWithScope:MTLBarrierScopeBuffers]; - - ggml_mem_ranges_reset(ctx->mem_ranges); - - return true; -} - -static bool ggml_metal_encode_concurrency_check(struct ggml_metal_encode_context * ctx, const struct ggml_tensor * node) { - if (!ctx->mem_ranges) { - return false; - } - - return ggml_mem_ranges_check(ctx->mem_ranges, node); -} - -static bool ggml_metal_encode_concurrency_add(struct ggml_metal_encode_context * ctx, const struct ggml_tensor * node) { - if (!ctx->mem_ranges) { - return true; - } - - return ggml_mem_ranges_add(ctx->mem_ranges, node); -} - -static int ggml_metal_encode_node(struct ggml_metal_encode_context * ctx_enc, int idx, int idx_end) { - ggml_backend_t backend = ctx_enc->backend; - - id encoder = ctx_enc->encoder; - - struct ggml_backend_metal_context * ctx = backend->context; - struct ggml_backend_metal_device_context * ctx_dev = backend->device->context; - - struct ggml_cgraph * gf = ctx->gf; - - enum ggml_op ops[8]; - - struct ggml_tensor ** nodes = ggml_graph_nodes(gf) + idx; - struct ggml_tensor * node = nodes[0]; - - //GGML_LOG_INFO("%s: encoding node %3d, op = %8s\n", __func__, idx, ggml_op_name(node->op)); - - struct ggml_tensor * src0 = node->src[0]; - struct ggml_tensor * src1 = node->src[1]; - struct ggml_tensor * src2 = node->src[2]; - struct ggml_tensor * dst = node; - - if (ggml_is_empty(dst)) { - return 1; - } - - switch (dst->op) { - case GGML_OP_NONE: - case GGML_OP_RESHAPE: - case GGML_OP_VIEW: - case GGML_OP_TRANSPOSE: - case GGML_OP_PERMUTE: - { - // noop -> next node - } return 1; - default: - { - } break; - } - - if (!ggml_metal_supports_op(ctx_dev, dst)) { - GGML_LOG_ERROR("%s: error: unsupported op '%s'\n", __func__, ggml_op_desc(dst)); - GGML_ABORT("unsupported op"); - } - - const int64_t ne00 = src0 ? src0->ne[0] : 0; - const int64_t ne01 = src0 ? src0->ne[1] : 0; - const int64_t ne02 = src0 ? src0->ne[2] : 0; - const int64_t ne03 = src0 ? src0->ne[3] : 0; - - const uint64_t nb00 = src0 ? src0->nb[0] : 0; - const uint64_t nb01 = src0 ? src0->nb[1] : 0; - const uint64_t nb02 = src0 ? src0->nb[2] : 0; - const uint64_t nb03 = src0 ? src0->nb[3] : 0; - - const int64_t ne10 = src1 ? src1->ne[0] : 0; - const int64_t ne11 = src1 ? src1->ne[1] : 0; - const int64_t ne12 = src1 ? src1->ne[2] : 0; - const int64_t ne13 = src1 ? src1->ne[3] : 0; - - const uint64_t nb10 = src1 ? src1->nb[0] : 0; - const uint64_t nb11 = src1 ? src1->nb[1] : 0; - const uint64_t nb12 = src1 ? src1->nb[2] : 0; - const uint64_t nb13 = src1 ? src1->nb[3] : 0; - - const int64_t ne20 = src2 ? src2->ne[0] : 0; - const int64_t ne21 = src2 ? src2->ne[1] : 0; - const int64_t ne22 = src2 ? src2->ne[2] : 0; GGML_UNUSED(ne22); - const int64_t ne23 = src2 ? src2->ne[3] : 0; GGML_UNUSED(ne23); - - const uint64_t nb20 = src2 ? src2->nb[0] : 0; GGML_UNUSED(nb20); - const uint64_t nb21 = src2 ? src2->nb[1] : 0; - const uint64_t nb22 = src2 ? src2->nb[2] : 0; - const uint64_t nb23 = src2 ? src2->nb[3] : 0; GGML_UNUSED(nb23); - - const int64_t ne0 = dst ? dst->ne[0] : 0; - const int64_t ne1 = dst ? dst->ne[1] : 0; - const int64_t ne2 = dst ? dst->ne[2] : 0; - const int64_t ne3 = dst ? dst->ne[3] : 0; - - const uint64_t nb0 = dst ? dst->nb[0] : 0; - const uint64_t nb1 = dst ? dst->nb[1] : 0; - const uint64_t nb2 = dst ? dst->nb[2] : 0; - const uint64_t nb3 = dst ? dst->nb[3] : 0; - - size_t offs_src[GGML_MAX_SRC]; - - id id_src[GGML_MAX_SRC]; - - enum ggml_type srct[GGML_MAX_SRC]; - - for (int i = 0; i < GGML_MAX_SRC; i++) { - offs_src[i] = 0; - id_src[i] = node->src[i] ? ggml_metal_get_buffer(node->src[i], &offs_src[i]) : nil; - srct[i] = node->src[i] ? node->src[i]->type : GGML_TYPE_COUNT; - } - - // TODO: tmp shorthands - remove - size_t offs_src0 = offs_src[0]; - size_t offs_src1 = offs_src[1]; - size_t offs_src2 = offs_src[2]; - - id id_src0 = id_src[0]; - id id_src1 = id_src[1]; - id id_src2 = id_src[2]; - - const enum ggml_type src0t = src0 ? src0->type : GGML_TYPE_COUNT; - const enum ggml_type src1t = src1 ? src1->type : GGML_TYPE_COUNT; - const enum ggml_type src2t = src2 ? src2->type : GGML_TYPE_COUNT; - const enum ggml_type dstt = dst ? dst->type : GGML_TYPE_COUNT; - - size_t offs_dst = 0; - - id id_dst = dst ? ggml_metal_get_buffer(dst, &offs_dst) : nil; - - int n_fuse = 1; - - // check if the current node can run concurrently with other nodes before it - // the condition is that: - // - the current node cannot write to any previous src or dst ranges - // - the current node cannot read from any previous dst ranges - // - // if the condition is not satisfied, we put a memory barrier and clear all ranges - // otherwise, we add the new ranges to the encoding context and process the node concurrently - // - { - const bool is_concurrent = ggml_metal_encode_concurrency_check(ctx_enc, node); - - if (!is_concurrent) { - ggml_metal_encode_concurrency_reset(ctx_enc); - } - - if (ctx_dev->debug_graph > 0) { - GGML_LOG_DEBUG("%s: node[%5d] - %-12s %s\n", __func__, idx, ggml_op_name(dst->op), is_concurrent ? "(concurrent)" : ""); - } - if (ctx_dev->debug_graph > 1) { - if (src0) { - GGML_LOG_DEBUG("%s: src0 - %4s [%5lld, %5lld, %5lld, %5lld] [%5lld, %5lld, %5lld, %5lld], %d, %s\n", __func__, ggml_type_name(src0t), ne00, ne01, ne02, ne03, nb00, nb01, nb02, nb03, - ggml_is_contiguous(src0), src0->name); - } - if (src1) { - GGML_LOG_DEBUG("%s: src1 - %4s [%5lld, %5lld, %5lld, %5lld] [%5lld, %5lld, %5lld, %5lld], %d, %s\n", __func__, ggml_type_name(src1t), ne10, ne11, ne12, ne13, nb10, nb11, nb12, nb13, - ggml_is_contiguous(src1), src1->name); - } - if (dst) { - GGML_LOG_DEBUG("%s: dst - %4s [%5lld, %5lld, %5lld, %5lld] [%5lld, %5lld, %5lld, %5lld], 1, %s\n", __func__, ggml_type_name(dstt), ne0, ne1, ne2, ne3, nb0, nb1, nb2, nb3, - dst->name); - } - } - } - - id device = ctx_dev->mtl_device; - - switch (dst->op) { - case GGML_OP_CONCAT: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CONCAT].pipeline; - - const int32_t dim = ((const int32_t *) dst->op_params)[0]; - - ggml_metal_kargs_concat args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne10 =*/ ne10, - /*.ne11 =*/ ne11, - /*.ne12 =*/ ne12, - /*.ne13 =*/ ne13, - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - /*.dim =*/ dim, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:3]; - - const int nth = MIN(1024, ne0); - - [encoder dispatchThreadgroups:MTLSizeMake(ne1, ne2, ne3) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_ADD: - case GGML_OP_SUB: - case GGML_OP_MUL: - case GGML_OP_DIV: - { - GGML_ASSERT(src0t == GGML_TYPE_F32); - GGML_ASSERT(src1t == GGML_TYPE_F32); - - GGML_ASSERT(ggml_is_contiguous_rows(src0)); - GGML_ASSERT(ggml_is_contiguous_rows(src1)); - - const size_t offs = 0; - - bool bcast_row = false; - - ggml_metal_kargs_bin args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne10 =*/ ne10, - /*.ne11 =*/ ne11, - /*.ne12 =*/ ne12, - /*.ne13 =*/ ne13, - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - /*.offs =*/ offs, - /*.o1 =*/ { offs_src1 }, - }; - - // c[0] = add(a, b[0]) - // c[1] = add(c[0], b[1]) - // c[2] = add(c[1], b[2]) - // ... - if (ctx_dev->use_fusion) { - ops[0] = GGML_OP_ADD; - ops[1] = GGML_OP_ADD; - ops[2] = GGML_OP_ADD; - ops[3] = GGML_OP_ADD; - ops[4] = GGML_OP_ADD; - ops[5] = GGML_OP_ADD; - ops[6] = GGML_OP_ADD; - ops[7] = GGML_OP_ADD; - - size_t offs_fuse; - id id_fuse; - - // note: in metal, we sometimes encode the graph in parallel so we have to avoid fusing nodes - // across splits. idx_end indicates the last node in the current split - for (n_fuse = 0; n_fuse <= 6 && idx + n_fuse + 1 < idx_end; ++n_fuse) { - if (!ggml_can_fuse(gf, idx + n_fuse, ops + n_fuse, 2)) { - break; - } - - if (nodes[n_fuse] != nodes[n_fuse + 1]->src[0]) { - break; - } - - // b[0] === b[1] === ... - if (!ggml_are_same_layout(nodes[n_fuse]->src[1], nodes[n_fuse + 1]->src[1])) { - break; - } - - // only fuse nodes if src1 is in the same Metal buffer - id_fuse = ggml_metal_get_buffer(nodes[n_fuse + 1]->src[1], &offs_fuse); - if (id_fuse != id_src1) { - break; - } - - ctx_dev->fuse_cnt[nodes[n_fuse + 1]->op]++; - - args.o1[n_fuse + 1] = offs_fuse; - } - - ++n_fuse; - - if (ctx_dev->debug_fusion > 1 && n_fuse > 1) { - GGML_LOG_DEBUG("%s: fuse: ADD x %d\n", __func__, n_fuse); - } - } - - id pipeline = nil; - - if (ggml_nelements(src1) == ne10 && ggml_is_contiguous(src1) && ne00 % 4 == 0 && ne10 % 4 == 0) { - GGML_ASSERT(ggml_is_contiguous(src0)); - - // src1 is a row - GGML_ASSERT(ne11 == 1); - - pipeline = ggml_metal_get_pipeline_bin(backend, dst->op, n_fuse, true); - - bcast_row = true; - } else { - pipeline = ggml_metal_get_pipeline_bin(backend, dst->op, n_fuse, false); - } - - if (n_fuse > 1) { - id_dst = ggml_metal_get_buffer(nodes[n_fuse - 1], &offs_dst); - - for (int i = 1; i < n_fuse; ++i) { - if (!ggml_metal_encode_concurrency_check(ctx_enc, nodes[i])) { - ggml_metal_encode_concurrency_reset(ctx_enc); - - break; - } - } - } - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:0 atIndex:2]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:3]; - - if (bcast_row) { - const int64_t n = ggml_nelements(dst)/4; - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } else { - int nth = 32; - - while (16*nth < ne0 && nth < (int) pipeline.maxTotalThreadsPerThreadgroup) { - nth *= 2; - } - - [encoder dispatchThreadgroups:MTLSizeMake(ne01, ne02, ne03) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } - } break; - case GGML_OP_ADD_ID: - { - GGML_ASSERT(src0t == GGML_TYPE_F32); - GGML_ASSERT(src1t == GGML_TYPE_F32); - GGML_ASSERT(src2t == GGML_TYPE_I32); - GGML_ASSERT(dstt == GGML_TYPE_F32); - - GGML_ASSERT(ggml_is_contiguous_rows(src0)); - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ADD_ID].pipeline; - - ggml_metal_kargs_add_id args = { - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb11 =*/ nb11, - /*.nb21 =*/ nb21, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - [encoder setBuffer:id_src2 offset:offs_src2 atIndex:3]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:4]; - - const int nth = MIN((int) pipeline.maxTotalThreadsPerThreadgroup, ne00); - - [encoder dispatchThreadgroups:MTLSizeMake(ne01, ne02, 1) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_REPEAT: - { - id pipeline; - - switch (src0t) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_REPEAT_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_REPEAT_F16].pipeline; break; - case GGML_TYPE_I32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_REPEAT_I32].pipeline; break; - case GGML_TYPE_I16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_REPEAT_I16].pipeline; break; - default: GGML_ABORT("fatal error"); - } - - ggml_metal_kargs_repeat args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:2]; - - const int nth = MIN((int) pipeline.maxTotalThreadsPerThreadgroup, ne0); - - [encoder dispatchThreadgroups:MTLSizeMake(ne1, ne2, ne3) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_ACC: - { - GGML_ASSERT(src0t == GGML_TYPE_F32); - GGML_ASSERT(src1t == GGML_TYPE_F32); - GGML_ASSERT(dstt == GGML_TYPE_F32); - - GGML_ASSERT(ggml_is_contiguous(src0)); - GGML_ASSERT(ggml_is_contiguous(src1)); - - const size_t pnb1 = ((const int32_t *) dst->op_params)[0]; - const size_t pnb2 = ((const int32_t *) dst->op_params)[1]; - const size_t pnb3 = ((const int32_t *) dst->op_params)[2]; - const size_t offs = ((const int32_t *) dst->op_params)[3]; - - const bool inplace = (bool) ((const int32_t *) dst->op_params)[4]; - - if (!inplace) { - // run a separete kernel to cpy src->dst - // not sure how to avoid this - // TODO: make a simpler cpy_bytes kernel - - const id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F32_F32].pipeline; - - ggml_metal_kargs_cpy args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:2]; - - const int nth = MIN((int) pipeline.maxTotalThreadsPerThreadgroup, ne00); - - [encoder dispatchThreadgroups:MTLSizeMake(ne01, ne02, ne03) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - - ggml_metal_encode_concurrency_reset(ctx_enc); - } - - ggml_metal_kargs_bin args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb00 =*/ nb00, - /*.nb01 =*/ pnb1, - /*.nb02 =*/ pnb2, - /*.nb03 =*/ pnb3, - /*.ne10 =*/ ne10, - /*.ne11 =*/ ne11, - /*.ne12 =*/ ne12, - /*.ne13 =*/ ne13, - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.nb0 =*/ nb0, - /*.nb1 =*/ pnb1, - /*.nb2 =*/ pnb2, - /*.nb3 =*/ pnb3, - /*.offs =*/ offs, - /*.o1 =*/ { offs_src1}, - }; - - //const id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ADD].pipeline; - const id pipeline = ggml_metal_get_pipeline_bin(backend, GGML_OP_ADD, 1, false); - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:0 atIndex:2]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:3]; - - const int nth = MIN((int) pipeline.maxTotalThreadsPerThreadgroup, ne00); - - [encoder dispatchThreadgroups:MTLSizeMake(ne11, ne12, ne13) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_SCALE: - { - GGML_ASSERT(ggml_is_contiguous(src0)); - - float scale; - float bias; - memcpy(&scale, ((const int32_t *) dst->op_params) + 0, sizeof(float)); - memcpy(&bias, ((const int32_t *) dst->op_params) + 1, sizeof(float)); - - int64_t n = ggml_nelements(dst); - - id pipeline = nil; - - if (n % 4 == 0) { - n /= 4; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SCALE_4].pipeline; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SCALE].pipeline; - } - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&scale length:sizeof(scale) atIndex:2]; - [encoder setBytes:&bias length:sizeof(bias) atIndex:3]; - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_OP_CLAMP: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CLAMP].pipeline; - - float min; - float max; - memcpy(&min, ((const int32_t *) dst->op_params) + 0, sizeof(float)); - memcpy(&max, ((const int32_t *) dst->op_params) + 1, sizeof(float)); - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&min length:sizeof(min) atIndex:2]; - [encoder setBytes:&max length:sizeof(max) atIndex:3]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_OP_UNARY: - switch (ggml_get_unary_op(node)) { - // we are not taking into account the strides, so for now require contiguous tensors - GGML_ASSERT(ggml_is_contiguous(src0)); - - case GGML_UNARY_OP_TANH: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_TANH].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_RELU: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_RELU].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_SIGMOID: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SIGMOID].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_GELU: - { - int64_t n = ggml_nelements(dst); - - id pipeline = nil; - - if (n % 4 == 0) { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GELU_4].pipeline; - n /= 4; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GELU].pipeline; - } - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_GELU_ERF: - { - int64_t n = ggml_nelements(dst); - - id pipeline = nil; - - if (n % 4 == 0) { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GELU_ERF_4].pipeline; - n /= 4; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GELU_ERF].pipeline; - } - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_GELU_QUICK: - { - int64_t n = ggml_nelements(dst); - - id pipeline = nil; - - if (n % 4 == 0) { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GELU_QUICK_4].pipeline; - n /= 4; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GELU_QUICK].pipeline; - } - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_SILU: - { - int64_t n = ggml_nelements(dst); - - id pipeline = nil; - - if (n % 4 == 0) { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SILU_4].pipeline; - n /= 4; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SILU].pipeline; - } - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_ELU: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ELU].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_NEG: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_NEG].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_ABS: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ABS].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_SGN: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SGN].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_STEP: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_STEP].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_HARDSWISH: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_HARDSWISH].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_HARDSIGMOID: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_HARDSIGMOID].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_UNARY_OP_EXP: - { - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_EXP].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - default: - { - GGML_LOG_WARN("%s: node %3d, op = %8s not implemented\n", __func__, idx, ggml_op_name(dst->op)); - GGML_ABORT("fatal error"); - } - } break; - case GGML_OP_GLU: - { - GGML_ASSERT(ggml_is_contiguous_1(src0)); - - if (src1) { - GGML_ASSERT(ggml_are_same_shape(src0, src1)); - } - - id pipeline = nil; - - switch (ggml_get_glu_op(node)) { - case GGML_GLU_OP_REGLU: - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_REGLU].pipeline; - break; - case GGML_GLU_OP_GEGLU: - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GEGLU].pipeline; - break; - case GGML_GLU_OP_SWIGLU: - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SWIGLU].pipeline; - break; - case GGML_GLU_OP_SWIGLU_OAI: - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SWIGLU_OAI].pipeline; - break; - case GGML_GLU_OP_GEGLU_ERF: - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GEGLU_ERF].pipeline; - break; - case GGML_GLU_OP_GEGLU_QUICK: - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GEGLU_QUICK].pipeline; - break; - default: - GGML_ABORT("fatal error"); - } - - const int32_t swp = ggml_get_op_params_i32(dst, 1); - const float alpha = ggml_get_op_params_f32(dst, 2); - const float limit = ggml_get_op_params_f32(dst, 3); - - const int32_t i00 = swp ? ne0 : 0; - const int32_t i10 = swp ? 0 : ne0; - - ggml_metal_kargs_glu args = { - /*.ne00 =*/ ne00, - /*.nb01 =*/ nb01, - /*.ne10 =*/ src1 ? ne10 : ne00, - /*.nb11 =*/ src1 ? nb11 : nb01, - /*.ne0 =*/ ne0, - /*.nb1 =*/ nb1, - /*.i00 =*/ src1 ? 0 : i00, - /*.i10 =*/ src1 ? 0 : i10, - /*.alpha=*/ alpha, - /*.limit=*/ limit - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - if (src1) { - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:1]; - } else { - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - } - [encoder setBuffer:id_dst offset:offs_dst atIndex:2]; - [encoder setBytes:&args length:sizeof(args) atIndex:3]; - - const int64_t nrows = ggml_nrows(src0); - - const int32_t nth = MIN((int) pipeline.maxTotalThreadsPerThreadgroup, ne00/2); - - [encoder dispatchThreadgroups:MTLSizeMake(nrows, 1, 1) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_SQR: - { - GGML_ASSERT(ggml_is_contiguous(src0)); - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SQR].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_OP_SQRT: - { - GGML_ASSERT(ggml_is_contiguous(src0)); - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SQRT].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_OP_SIN: - { - GGML_ASSERT(ggml_is_contiguous(src0)); - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SIN].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_OP_COS: - { - GGML_ASSERT(ggml_is_contiguous(src0)); - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_COS].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_OP_SUM_ROWS: - case GGML_OP_MEAN: - { - GGML_ASSERT(src0->nb[0] == ggml_type_size(src0->type)); - - id pipeline = nil; - - switch (dst->op) { - case GGML_OP_SUM_ROWS: - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SUM_ROWS].pipeline; - break; - case GGML_OP_MEAN: - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MEAN].pipeline; - break; - default: - GGML_ABORT("fatal error"); - } - - int nth = 32; // SIMD width - - while (nth < ne00 && nth < (int) pipeline.maxTotalThreadsPerThreadgroup) { - nth *= 2; - } - - nth = MIN(nth, (int) pipeline.maxTotalThreadsPerThreadgroup); - nth = MIN(nth, ne00); - - ggml_metal_kargs_sum_rows args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne10 =*/ ne10, - /*.ne11 =*/ ne11, - /*.ne12 =*/ ne12, - /*.ne13 =*/ ne13, - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:2]; - [encoder setThreadgroupMemoryLength:32*sizeof(float) atIndex:0]; - - [encoder dispatchThreadgroups:MTLSizeMake(ne01, ne02, ne03) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_SOFT_MAX: - { - GGML_ASSERT(!src1 || src1->type == GGML_TYPE_F16 || src1->type == GGML_TYPE_F32); - - int nth = 32; // SIMD width - - id pipeline = nil; - - const bool use_f16 = (src1 && src1->type == GGML_TYPE_F16); - - if (ne00%4 == 0) { - while (nth < ne00/4 && nth*ne01*ne02*ne03 < 256) { - nth *= 2; - } - if (use_f16) { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SOFT_MAX_F16_4].pipeline; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SOFT_MAX_F32_4].pipeline; - } - } else { - while (nth < ne00 && nth*ne01*ne02*ne03 < 256) { - nth *= 2; - } - if (use_f16) { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SOFT_MAX_F16].pipeline; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SOFT_MAX_F32].pipeline; - } - } - - float scale; - float max_bias; - - memcpy(&scale, ((const int32_t *) dst->op_params) + 0, sizeof(scale)); - memcpy(&max_bias, ((const int32_t *) dst->op_params) + 1, sizeof(max_bias)); - - const uint32_t n_head = src0->ne[2]; - const uint32_t n_head_log2 = 1u << (uint32_t) floorf(log2f((float) n_head)); - - const float m0 = powf(2.0f, -(max_bias ) / n_head_log2); - const float m1 = powf(2.0f, -(max_bias / 2.0f) / n_head_log2); - - id h_src0 = id_src0; - - // softmax - - ggml_metal_kargs_soft_max args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne11 =*/ ne11, - /*.ne12 =*/ ne12, - /*.ne13 =*/ ne13, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - /*.scale =*/ scale, - /*.max_bias =*/ max_bias, - /*.m0 =*/ m0, - /*.m1 =*/ m1, - /*.n_head_log2 =*/ n_head_log2, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:h_src0 offset:offs_src0 atIndex:0]; - if (id_src1) { - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:1]; - } else { - [encoder setBuffer:h_src0 offset:offs_src0 atIndex:1]; - } - if (id_src2) { - [encoder setBuffer:id_src2 offset:offs_src2 atIndex:2]; - } else { - [encoder setBuffer:h_src0 offset:offs_src0 atIndex:2]; - } - [encoder setBuffer:id_dst offset:offs_dst atIndex:3]; - [encoder setBytes:&args length:sizeof(args) atIndex:4]; - - [encoder setThreadgroupMemoryLength:32*sizeof(float) atIndex:0]; - - [encoder dispatchThreadgroups:MTLSizeMake(ne01, ne02, ne03) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_DIAG_MASK_INF: - { - const int n_past = ((const int32_t *)(dst->op_params))[0]; - - id pipeline = nil; - - if (ne00%8 == 0) { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_DIAG_MASK_INF_8].pipeline; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_DIAG_MASK_INF].pipeline; - } - - ggml_metal_kargs_diag_mask_inf args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.n_past =*/ n_past, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&args length:sizeof(args) atIndex:2]; - - if (ne00%8 == 0) { - [encoder dispatchThreadgroups:MTLSizeMake(ne00*ne01*ne02/8, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } - else { - [encoder dispatchThreadgroups:MTLSizeMake(ne00, ne01, ne02) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } - } break; - case GGML_OP_SSM_CONV: - { - GGML_ASSERT(src0t == GGML_TYPE_F32); - GGML_ASSERT(src1t == GGML_TYPE_F32); - - GGML_ASSERT(ggml_is_contiguous(src0)); - GGML_ASSERT(ggml_is_contiguous(src1)); - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SSM_CONV_F32].pipeline; - - ggml_metal_kargs_ssm_conv args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.ne10 =*/ ne10, - /*.ne11 =*/ ne11, - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:1]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:2]; - [encoder setBytes:&args length:sizeof(args) atIndex:3]; - - [encoder dispatchThreadgroups:MTLSizeMake(ne01, ne1, ne02) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_OP_SSM_SCAN: - { - struct ggml_tensor * src3 = node->src[3]; - struct ggml_tensor * src4 = node->src[4]; - struct ggml_tensor * src5 = node->src[5]; - struct ggml_tensor * src6 = node->src[6]; - - GGML_ASSERT(src3); - GGML_ASSERT(src4); - GGML_ASSERT(src5); - GGML_ASSERT(src6); - - size_t offs_src3 = 0; - size_t offs_src4 = 0; - size_t offs_src5 = 0; - size_t offs_src6 = 0; - - id id_src3 = src3 ? ggml_metal_get_buffer(src3, &offs_src3) : nil; - id id_src4 = src4 ? ggml_metal_get_buffer(src4, &offs_src4) : nil; - id id_src5 = src5 ? ggml_metal_get_buffer(src5, &offs_src5) : nil; - id id_src6 = src6 ? ggml_metal_get_buffer(src6, &offs_src6) : nil; - - const int64_t ne30 = src3->ne[0]; - const int64_t ne31 = src3->ne[1]; GGML_UNUSED(ne31); - - const uint64_t nb30 = src3->nb[0]; GGML_UNUSED(nb30); - const uint64_t nb31 = src3->nb[1]; - - const int64_t ne40 = src4->ne[0]; GGML_UNUSED(ne40); - const int64_t ne41 = src4->ne[1]; - const int64_t ne42 = src4->ne[2]; GGML_UNUSED(ne42); - const int64_t ne43 = src4->ne[3]; GGML_UNUSED(ne43); - - const uint64_t nb40 = src4->nb[0]; GGML_UNUSED(nb40); - const uint64_t nb41 = src4->nb[1]; - const uint64_t nb42 = src4->nb[2]; - const uint64_t nb43 = src4->nb[3]; - - const int64_t ne50 = src5->ne[0]; GGML_UNUSED(ne50); - const int64_t ne51 = src5->ne[1]; GGML_UNUSED(ne51); - const int64_t ne52 = src5->ne[2]; GGML_UNUSED(ne52); - const int64_t ne53 = src5->ne[3]; GGML_UNUSED(ne53); - - const uint64_t nb50 = src5->nb[0]; GGML_UNUSED(nb50); - const uint64_t nb51 = src5->nb[1]; - const uint64_t nb52 = src5->nb[2]; - const uint64_t nb53 = src5->nb[3]; - - const int64_t ne60 = src6->ne[0]; GGML_UNUSED(ne60); - - const uint64_t nb60 = src6->nb[0]; GGML_UNUSED(nb60); - - const int64_t d_state = ne00; - const int64_t d_inner = ne01; - const int64_t n_head = ne02; - const int64_t n_group = ne41; - const int64_t n_seq_tokens = ne12; - const int64_t n_seqs = ne13; - - id pipeline = nil; - - if (ne30 == 1) { - // Mamba-2 - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SSM_SCAN_F32_GROUP].pipeline; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SSM_SCAN_F32].pipeline; - } - - ggml_metal_kargs_ssm_scan args = { - /*.d_state =*/ d_state, - /*.d_inner =*/ d_inner, - /*.n_head =*/ n_head, - /*.n_group =*/ n_group, - /*.n_seq_tokens =*/ n_seq_tokens, - /*.n_seqs =*/ n_seqs, - /*.s_off =*/ ggml_nelements(src1) * sizeof(float), - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.nb21 =*/ nb21, - /*.nb22 =*/ nb22, - /*.nb31 =*/ nb31, - /*.nb41 =*/ nb41, - /*.nb42 =*/ nb42, - /*.nb43 =*/ nb43, - /*.nb51 =*/ nb51, - /*.nb52 =*/ nb52, - /*.nb53 =*/ nb53, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:1]; - [encoder setBuffer:id_src2 offset:offs_src2 atIndex:2]; - [encoder setBuffer:id_src3 offset:offs_src3 atIndex:3]; - [encoder setBuffer:id_src4 offset:offs_src4 atIndex:4]; - [encoder setBuffer:id_src5 offset:offs_src5 atIndex:5]; - [encoder setBuffer:id_src6 offset:offs_src6 atIndex:6]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:7]; - [encoder setBytes:&args length:sizeof(args) atIndex:8]; - - // One shared memory bucket for each simd group in the threadgroup - // NOTE: Metal kernels require the buffer size to be multiple of 16 bytes - // https://developer.apple.com/documentation/metal/mtlcomputecommandencoder/1443142-setthreadgroupmemorylength - if (d_state >= 32) { - GGML_ASSERT((int64_t)(d_state / 32) <= 32); - const int64_t shmem_size = 32; - GGML_ASSERT(d_state <= (int64_t)pipeline.maxTotalThreadsPerThreadgroup); - [encoder setThreadgroupMemoryLength:(shmem_size)*sizeof(float) atIndex:0]; - } - - if (ne30 == 1) { - // Mamba-2 - [encoder dispatchThreadgroups:MTLSizeMake(d_inner, n_head, n_seqs) threadsPerThreadgroup:MTLSizeMake(d_state, 1, 1)]; - } else { - GGML_ASSERT(d_inner == 1); - [encoder dispatchThreadgroups:MTLSizeMake(n_head, n_seqs, 1) threadsPerThreadgroup:MTLSizeMake(d_state, 1, 1)]; - } - } break; - case GGML_OP_RWKV_WKV6: - { - const int64_t B = dst->src[5]->ne[1]; - const int64_t T = dst->src[0]->ne[2]; - const int64_t C = dst->ne[0]; - const int64_t H = dst->src[0]->ne[1]; - - GGML_ASSERT(dst->src[5]->type == GGML_TYPE_F32); - GGML_ASSERT(C % H == 0); - GGML_ASSERT(C / H == 64); - - size_t offs_src3 = 0; - size_t offs_src4 = 0; - size_t offs_src5 = 0; - - id id_src3 = dst->src[3] ? ggml_metal_get_buffer(dst->src[3], &offs_src3) : nil; - id id_src4 = dst->src[4] ? ggml_metal_get_buffer(dst->src[4], &offs_src4) : nil; - id id_src5 = dst->src[5] ? ggml_metal_get_buffer(dst->src[5], &offs_src5) : nil; - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_RWKV_WKV6_F32].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:1]; - [encoder setBuffer:id_src2 offset:offs_src2 atIndex:2]; - [encoder setBuffer:id_src3 offset:offs_src3 atIndex:3]; - [encoder setBuffer:id_src4 offset:offs_src4 atIndex:4]; - [encoder setBuffer:id_src5 offset:offs_src5 atIndex:5]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:6]; - - [encoder setBytes:&B length:sizeof(B) atIndex:7]; - [encoder setBytes:&T length:sizeof(T) atIndex:8]; - [encoder setBytes:&C length:sizeof(C) atIndex:9]; - [encoder setBytes:&H length:sizeof(H) atIndex:10]; - - [encoder dispatchThreadgroups:MTLSizeMake(B * H, 1, 1) threadsPerThreadgroup:MTLSizeMake(C/ H, 1, 1)]; - } break; - case GGML_OP_RWKV_WKV7: - { - const int64_t B = dst->src[6]->ne[1]; - const int64_t T = dst->src[0]->ne[2]; - const int64_t C = dst->ne[0]; - const int64_t H = dst->src[0]->ne[1]; - - GGML_ASSERT(dst->src[6]->type == GGML_TYPE_F32); - GGML_ASSERT(C % H == 0); - GGML_ASSERT(C / H == 64); - - size_t offs_src3 = 0; - size_t offs_src4 = 0; - size_t offs_src5 = 0; - size_t offs_src6 = 0; - - id id_src3 = dst->src[3] ? ggml_metal_get_buffer(dst->src[3], &offs_src3) : nil; - id id_src4 = dst->src[4] ? ggml_metal_get_buffer(dst->src[4], &offs_src4) : nil; - id id_src5 = dst->src[5] ? ggml_metal_get_buffer(dst->src[5], &offs_src5) : nil; - id id_src6 = dst->src[6] ? ggml_metal_get_buffer(dst->src[6], &offs_src6) : nil; - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_RWKV_WKV7_F32].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:1]; - [encoder setBuffer:id_src2 offset:offs_src2 atIndex:2]; - [encoder setBuffer:id_src3 offset:offs_src3 atIndex:3]; - [encoder setBuffer:id_src4 offset:offs_src4 atIndex:4]; - [encoder setBuffer:id_src5 offset:offs_src5 atIndex:5]; - [encoder setBuffer:id_src6 offset:offs_src6 atIndex:6]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:7]; - - [encoder setBytes:&B length:sizeof(B) atIndex:8]; - [encoder setBytes:&T length:sizeof(T) atIndex:9]; - [encoder setBytes:&C length:sizeof(C) atIndex:10]; - [encoder setBytes:&H length:sizeof(H) atIndex:11]; - - [encoder dispatchThreadgroups:MTLSizeMake(B * H, 1, 1) threadsPerThreadgroup:MTLSizeMake(C/ H, 1, 1)]; - } break; - case GGML_OP_MUL_MAT: - { - GGML_ASSERT(ne00 == ne10); - - GGML_ASSERT(ne12 % ne02 == 0); - GGML_ASSERT(ne13 % ne03 == 0); - - const uint32_t r2 = ne12/ne02; - const uint32_t r3 = ne13/ne03; - - // find the break-even point where the matrix-matrix kernel becomes more efficient compared - // to the matrix-vector kernel - const int ne11_mm_min = 8; - - // first try to use small-batch mat-mv kernels - // these should be efficient for BS [2, ~8] - if (src1t == GGML_TYPE_F32 && (ne00%128 == 0) && - ( - ( - ( - src0t == GGML_TYPE_F32 || // TODO: helper function - src0t == GGML_TYPE_F16 || - src0t == GGML_TYPE_Q4_0 || - src0t == GGML_TYPE_Q4_1 || - src0t == GGML_TYPE_Q5_0 || - src0t == GGML_TYPE_Q5_1 || - src0t == GGML_TYPE_Q8_0 || - src0t == GGML_TYPE_MXFP4 || - src0t == GGML_TYPE_IQ4_NL || - false) && (ne11 >= 2 && ne11 <= 8) - ) || - ( - ( - src0t == GGML_TYPE_Q4_K || - src0t == GGML_TYPE_Q5_K || - src0t == GGML_TYPE_Q6_K || - false) && (ne11 >= 4 && ne11 <= 8) - ) - ) - ) { - // TODO: determine the optimal parameters based on grid utilization - // I still don't know why we should not always use the maximum available threads: - // - // nsg = pipeline.maxTotalThreadsPerThreadgroup / 32 - // - // my current hypothesis is that the work grid is not evenly divisible for different nsg - // values and there can be some tail effects when nsg is high. need to confirm this - // - const int nsg = 2; // num simdgroups per threadgroup - - // num threads along row per simdgroup - int nxpsg = 0; - if (ne00 % 256 == 0 && ne11 < 3) { - nxpsg = 16; - } else if (ne00 % 128 == 0) { - nxpsg = 8; - } else { - nxpsg = 4; - } - - const int nypsg = 32/nxpsg; // num threads along col per simdgroup (i.e. a simdgroup processes that many src0 rows at a time) - const int r0ptg = nypsg*nsg; // num src0 rows per threadgroup - int r1ptg = 4; // num src1 rows per threadgroup - - // note: not sure how optimal are those across all different hardware. there might be someting cleverer - switch (ne11) { - case 2: - r1ptg = 2; break; - case 3: - case 6: - r1ptg = 3; break; - case 4: - case 7: - case 8: - r1ptg = 4; break; - case 5: - r1ptg = 5; break; - }; - - id pipeline = nil; - - switch (src0->type) { - case GGML_TYPE_F32: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F32_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - case GGML_TYPE_F16: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_F16_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - case GGML_TYPE_Q4_0: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_0_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - case GGML_TYPE_Q4_1: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_1_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - case GGML_TYPE_Q5_0: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_0_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - case GGML_TYPE_Q5_1: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_1_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - case GGML_TYPE_Q8_0: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q8_0_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - case GGML_TYPE_MXFP4: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_MXFP4_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - case GGML_TYPE_Q4_K: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q4_K_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - case GGML_TYPE_Q5_K: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q5_K_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - case GGML_TYPE_Q6_K: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_Q6_K_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - case GGML_TYPE_IQ4_NL: - switch (r1ptg) { - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_2].pipeline; break; - case 3: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_3].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_4].pipeline; break; - case 5: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_EXT_IQ4_NL_F32_R1_5].pipeline; break; - default: GGML_ABORT("not implemented"); - } break; - default: GGML_ABORT("not implemented"); - } - - ggml_metal_kargs_mul_mv_ext args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne10 =*/ ne10, - /*.ne11 =*/ ne11, - /*.ne12 =*/ ne12, - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.r2 =*/ r2, - /*.r3 =*/ r3, - /*.nsg =*/ nsg, - /*.nxpsg =*/ nxpsg, - /*.r1ptg =*/ r1ptg, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:3]; - - //printf("ne01 = %lld nr0ptg = %d\n", ne01, nr0ptg); - [encoder dispatchThreadgroups:MTLSizeMake((ne01 + r0ptg - 1)/r0ptg, (ne11 + r1ptg - 1)/r1ptg, ne12*ne13) threadsPerThreadgroup:MTLSizeMake(32, nsg, 1)]; - } else - // for now the matrix-matrix multiplication kernel only works on A14+/M1+ SoCs - // AMD GPU and older A-chips will reuse matrix-vector multiplication kernel - if ([device supportsFamily:MTLGPUFamilyApple7] && - !ggml_is_transposed(src0) && - !ggml_is_transposed(src1) && - src1t == GGML_TYPE_F32 && - ne00 % 32 == 0 && ne00 >= 64 && - (ne11 > ne11_mm_min || (ggml_is_quantized(src0t) && ne12 > 1))) { - //printf("matrix: ne00 = %6d, ne01 = %6d, ne02 = %6d, ne11 = %6d, ne12 = %6d\n", ne00, ne01, ne02, ne11, ne12); - - // some Metal matrix data types require aligned pointers - // ref: https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf (Table 2.5) - switch (src0->type) { - case GGML_TYPE_F32: GGML_ASSERT(nb01 % 16 == 0); break; - case GGML_TYPE_F16: GGML_ASSERT(nb01 % 8 == 0); break; - case GGML_TYPE_BF16: GGML_ASSERT(nb01 % 8 == 0); break; - default: break; - } - - id pipeline = nil; - - switch (src0->type) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_F32_F32 ].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_F16_F32 ].pipeline; break; - case GGML_TYPE_BF16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_BF16_F32 ].pipeline; break; - case GGML_TYPE_Q4_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_Q4_0_F32 ].pipeline; break; - case GGML_TYPE_Q4_1: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_Q4_1_F32 ].pipeline; break; - case GGML_TYPE_Q5_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_Q5_0_F32 ].pipeline; break; - case GGML_TYPE_Q5_1: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_Q5_1_F32 ].pipeline; break; - case GGML_TYPE_Q8_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_Q8_0_F32 ].pipeline; break; - case GGML_TYPE_MXFP4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_MXFP4_F32 ].pipeline; break; - case GGML_TYPE_Q2_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_Q2_K_F32 ].pipeline; break; - case GGML_TYPE_Q3_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_Q3_K_F32 ].pipeline; break; - case GGML_TYPE_Q4_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_Q4_K_F32 ].pipeline; break; - case GGML_TYPE_Q5_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_Q5_K_F32 ].pipeline; break; - case GGML_TYPE_Q6_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_Q6_K_F32 ].pipeline; break; - case GGML_TYPE_IQ2_XXS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_IQ2_XXS_F32].pipeline; break; - case GGML_TYPE_IQ2_XS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_IQ2_XS_F32 ].pipeline; break; - case GGML_TYPE_IQ3_XXS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_IQ3_XXS_F32].pipeline; break; - case GGML_TYPE_IQ3_S: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_IQ3_S_F32 ].pipeline; break; - case GGML_TYPE_IQ2_S: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_IQ2_S_F32 ].pipeline; break; - case GGML_TYPE_IQ1_S: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_IQ1_S_F32 ].pipeline; break; - case GGML_TYPE_IQ1_M: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_IQ1_M_F32 ].pipeline; break; - case GGML_TYPE_IQ4_NL: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_IQ4_NL_F32 ].pipeline; break; - case GGML_TYPE_IQ4_XS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_IQ4_XS_F32 ].pipeline; break; - default: GGML_ABORT("MUL MAT-MAT not implemented"); - } - - ggml_metal_kargs_mul_mm args = { - /*.ne00 =*/ ne00, - /*.ne02 =*/ ne02, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne12 =*/ ne12, - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.r2 =*/ r2, - /*.r3 =*/ r3, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:3]; - - [encoder setThreadgroupMemoryLength:8192 atIndex:0]; - [encoder dispatchThreadgroups:MTLSizeMake((ne11 + 31)/32, (ne01 + 63)/64, ne12*ne13) threadsPerThreadgroup:MTLSizeMake(128, 1, 1)]; - } else { - id pipeline = nil; - - int nsg = 0; // number of simdgroups - int nr0 = 0; // number of src0 rows per simdgroup - int nr1 = 1; // number of src1 rows per threadgroup - - size_t smem = 0; // shared memory - - // use custom matrix x vector kernel - switch (src0t) { - case GGML_TYPE_F32: - { - GGML_ASSERT(src1t == GGML_TYPE_F32); - nsg = 1; - nr0 = 1; - nr1 = 4; - if (ne00 == 4) { - nr0 = 32; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_F32_F32_C4].pipeline; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_F32_F32].pipeline; - } - } break; - case GGML_TYPE_F16: - { - nsg = 1; - nr0 = 1; - if (src1t == GGML_TYPE_F32) { - if (ne00 == 4) { - nr0 = 32; - nr1 = 4; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32_C4].pipeline; - } else if (ne11 * ne12 < 4) { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32_1ROW].pipeline; - } else if (ne00 >= 128 && ne01 >= 8 && ne00%4 == 0) { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32_L4].pipeline; - nr1 = ne11; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F32].pipeline; - nr1 = 4; - } - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_F16_F16].pipeline; - nr1 = 4; - } - } break; - case GGML_TYPE_BF16: - { - nsg = 1; - nr0 = 1; - if (src1t == GGML_TYPE_F32) { - if (ne00 == 4) { - nr0 = 32; - nr1 = 4; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32_C4].pipeline; - } else if (ne11 * ne12 < 4) { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32_1ROW].pipeline; - } else if (ne00 >= 128 && ne01 >= 8 && ne00%4 == 0) { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32_L4].pipeline; - nr1 = ne11; - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_F32].pipeline; - nr1 = 4; - } - } else { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_BF16_BF16].pipeline; - nr1 = 4; - } - } break; - case GGML_TYPE_Q4_0: - { - nsg = N_SG_Q4_0; - nr0 = N_R0_Q4_0; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_Q4_0_F32].pipeline; - } break; - case GGML_TYPE_Q4_1: - { - nsg = N_SG_Q4_1; - nr0 = N_R0_Q4_1; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_Q4_1_F32].pipeline; - } break; - case GGML_TYPE_Q5_0: - { - nsg = N_SG_Q5_0; - nr0 = N_R0_Q5_0; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_Q5_0_F32].pipeline; - } break; - case GGML_TYPE_Q5_1: - { - nsg = N_SG_Q5_1; - nr0 = N_R0_Q5_1; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_Q5_1_F32].pipeline; - } break; - case GGML_TYPE_Q8_0: - { - nsg = N_SG_Q8_0; - nr0 = N_R0_Q8_0; - smem = 32*sizeof(float)*N_R0_Q8_0; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_Q8_0_F32].pipeline; - } break; - case GGML_TYPE_MXFP4: - { - nsg = N_SG_MXFP4; - nr0 = N_R0_MXFP4; - smem = 32*sizeof(float); - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_MXFP4_F32].pipeline; - } break; - case GGML_TYPE_Q2_K: - { - nsg = N_SG_Q2_K; - nr0 = N_R0_Q2_K; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_Q2_K_F32].pipeline; - } break; - case GGML_TYPE_Q3_K: - { - nsg = N_SG_Q3_K; - nr0 = N_R0_Q3_K; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_Q3_K_F32].pipeline; - } break; - case GGML_TYPE_Q4_K: - { - nsg = N_SG_Q4_K; - nr0 = N_R0_Q4_K; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_Q4_K_F32].pipeline; - } break; - case GGML_TYPE_Q5_K: - { - nsg = N_SG_Q5_K; - nr0 = N_R0_Q5_K; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_Q5_K_F32].pipeline; - } break; - case GGML_TYPE_Q6_K: - { - nsg = N_SG_Q6_K; - nr0 = N_R0_Q6_K; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_Q6_K_F32].pipeline; - } break; - case GGML_TYPE_IQ2_XXS: - { - nsg = N_SG_IQ2_XXS; - nr0 = N_R0_IQ2_XXS; - smem = 256*8+128; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_IQ2_XXS_F32].pipeline; - } break; - case GGML_TYPE_IQ2_XS: - { - nsg = N_SG_IQ2_XS; - nr0 = N_R0_IQ2_XS; - smem = 512*8+128; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_IQ2_XS_F32].pipeline; - } break; - case GGML_TYPE_IQ3_XXS: - { - nsg = N_SG_IQ3_XXS; - nr0 = N_R0_IQ3_XXS; - smem = 256*4+128; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_IQ3_XXS_F32].pipeline; - } break; - case GGML_TYPE_IQ3_S: - { - nsg = N_SG_IQ3_S; - nr0 = N_R0_IQ3_S; - smem = 512*4; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_IQ3_S_F32].pipeline; - } break; - case GGML_TYPE_IQ2_S: - { - nsg = N_SG_IQ2_S; - nr0 = N_R0_IQ2_S; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_IQ2_S_F32].pipeline; - } break; - case GGML_TYPE_IQ1_S: - { - nsg = N_SG_IQ1_S; - nr0 = N_R0_IQ1_S; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_IQ1_S_F32].pipeline; - } break; - case GGML_TYPE_IQ1_M: - { - nsg = N_SG_IQ1_M; - nr0 = N_R0_IQ1_M; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_IQ1_M_F32].pipeline; - } break; - case GGML_TYPE_IQ4_NL: - { - nsg = N_SG_IQ4_NL; - nr0 = N_R0_IQ4_NL; - smem = 32*sizeof(float); - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_IQ4_NL_F32].pipeline; - } break; - case GGML_TYPE_IQ4_XS: - { - nsg = N_SG_IQ4_XS; - nr0 = N_R0_IQ4_XS; - smem = 32*sizeof(float); - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_IQ4_XS_F32].pipeline; - } break; - default: - { - GGML_LOG_ERROR("Asserting on type %d\n", (int)src0t); - GGML_ABORT("not implemented"); - } - }; - - ggml_metal_kargs_mul_mv args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne10 =*/ ne10, - /*.ne11 =*/ ne11, - /*.ne12 =*/ ne12, - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.r2 =*/ r2, - /*.r3 =*/ r3, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:3]; - - if (smem > 0) { - [encoder setThreadgroupMemoryLength:smem atIndex:0]; - } - - if (src0t == GGML_TYPE_Q8_0) { - [encoder dispatchThreadgroups:MTLSizeMake((ne01 + nr0 - 1)/(nr0), (ne11 + nr1 - 1)/nr1, ne12*ne13) threadsPerThreadgroup:MTLSizeMake(32, nsg, 1)]; - } else { - [encoder dispatchThreadgroups:MTLSizeMake((ne01 + nr0*nsg - 1)/(nr0*nsg), (ne11 + nr1 - 1)/nr1, ne12*ne13) threadsPerThreadgroup:MTLSizeMake(32, nsg, 1)]; - } - } - } break; - case GGML_OP_MUL_MAT_ID: - { - // src2 = ids - GGML_ASSERT(src2t == GGML_TYPE_I32); - - GGML_ASSERT(!ggml_is_transposed(src0)); - GGML_ASSERT(!ggml_is_transposed(src1)); - - GGML_ASSERT(src1t == GGML_TYPE_F32); - - GGML_ASSERT(ne03 == 1); - GGML_ASSERT(ne13 == 1); - - const uint32_t r2 = 1; - const uint32_t r3 = 1; - - // find the break-even point where the matrix-matrix kernel becomes more efficient compared - // to the matrix-vector kernel - // ne20 = n_used_experts - // ne21 = n_rows (batch size) - const int ne21_mm_id_min = 32; - - // for now the matrix-matrix multiplication kernel only works on A14+/M1+ SoCs - // AMD GPU and older A-chips will reuse matrix-vector multiplication kernel - if ([device supportsFamily:MTLGPUFamilyApple7] && - ne00 % 32 == 0 && ne00 >= 64 && - (ne21 >= ne21_mm_id_min)) { - GGML_ASSERT(ne00 % 4 == 0); - - // some Metal matrix data types require aligned pointers - // ref: https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf (Table 2.5) - switch (src0->type) { - case GGML_TYPE_F32: GGML_ASSERT(nb01 % 16 == 0); break; - case GGML_TYPE_F16: GGML_ASSERT(nb01 % 8 == 0); break; - case GGML_TYPE_BF16: GGML_ASSERT(nb01 % 8 == 0); break; - default: break; - } - - // extra buffers for intermediate id mapping - size_t offs_tpe = offs_dst + ggml_nbytes(dst); - size_t offs_ids = offs_tpe + ggml_metal_mul_mat_id_extra_tpe(dst); - - { - ggml_metal_kargs_mul_mm_id_map0 args = { - ne02, - ne10, - ne11, // n_expert_used (bcast) - nb11, - nb12, - ne21, // n_tokens - ne20, // n_expert_used - nb21, - }; - - id pipeline = nil; - - pipeline = nil; - - switch (ne20) { - case 1: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_1 ].pipeline; break; - case 2: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_2 ].pipeline; break; - case 4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_4 ].pipeline; break; - case 6: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_6 ].pipeline; break; - case 8: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_8 ].pipeline; break; - case 10: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_10].pipeline; break; - case 16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MAP0_F16_NE20_16].pipeline; break; - default: GGML_ABORT("missing specialization for ne20 = %d", (int) ne20); - } - - GGML_ASSERT(ne02 <= (int) pipeline.maxTotalThreadsPerThreadgroup); - - const size_t smem = ne02*ne20*sizeof(uint16_t); - - GGML_ASSERT(smem <= device.maxThreadgroupMemoryLength); - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src2 offset:offs_src2 atIndex:1]; - [encoder setBuffer:id_dst offset:offs_tpe atIndex:2]; - [encoder setBuffer:id_dst offset:offs_ids atIndex:3]; - [encoder setThreadgroupMemoryLength:smem atIndex:0]; - - [encoder dispatchThreadgroups:MTLSizeMake(1, 1, 1) threadsPerThreadgroup:MTLSizeMake(ne02, 1, 1)]; - } - - // this barrier is always needed because the next kernel has to wait for the id maps to be computed - ggml_metal_encode_concurrency_reset(ctx_enc); - - { - id pipeline = nil; - - switch (src0->type) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_F32_F16 ].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_F16_F16 ].pipeline; break; - case GGML_TYPE_BF16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_BF16_F16 ].pipeline; break; - case GGML_TYPE_Q4_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q4_0_F16 ].pipeline; break; - case GGML_TYPE_Q4_1: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q4_1_F16 ].pipeline; break; - case GGML_TYPE_Q5_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q5_0_F16 ].pipeline; break; - case GGML_TYPE_Q5_1: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q5_1_F16 ].pipeline; break; - case GGML_TYPE_Q8_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q8_0_F16 ].pipeline; break; - case GGML_TYPE_MXFP4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_MXFP4_F16 ].pipeline; break; - case GGML_TYPE_Q2_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q2_K_F16 ].pipeline; break; - case GGML_TYPE_Q3_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q3_K_F16 ].pipeline; break; - case GGML_TYPE_Q4_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q4_K_F16 ].pipeline; break; - case GGML_TYPE_Q5_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q5_K_F16 ].pipeline; break; - case GGML_TYPE_Q6_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_Q6_K_F16 ].pipeline; break; - case GGML_TYPE_IQ2_XXS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ2_XXS_F16].pipeline; break; - case GGML_TYPE_IQ2_XS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ2_XS_F16 ].pipeline; break; - case GGML_TYPE_IQ3_XXS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ3_XXS_F16].pipeline; break; - case GGML_TYPE_IQ3_S: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ3_S_F16 ].pipeline; break; - case GGML_TYPE_IQ2_S: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ2_S_F16 ].pipeline; break; - case GGML_TYPE_IQ1_S: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ1_S_F16 ].pipeline; break; - case GGML_TYPE_IQ1_M: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ1_M_F16 ].pipeline; break; - case GGML_TYPE_IQ4_NL: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ4_NL_F16 ].pipeline; break; - case GGML_TYPE_IQ4_XS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MM_ID_IQ4_XS_F16 ].pipeline; break; - default: GGML_ABORT("MUL_MAT_ID not implemented"); - } - - ggml_metal_kargs_mul_mm_id args = { - /*.ne00 =*/ ne00, - /*.ne02 =*/ ne02, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne11 =*/ ne11, // n_expert_used (bcast) - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.ne20 =*/ ne20, // n_expert_used - /*.ne21 =*/ ne21, // n_tokens - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.r2 =*/ r2, - /*.r3 =*/ r3, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - [encoder setBuffer:id_dst offset:offs_tpe atIndex:3]; - [encoder setBuffer:id_dst offset:offs_ids atIndex:4]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:5]; - - [encoder setThreadgroupMemoryLength:8192 atIndex:0]; - [encoder dispatchThreadgroups:MTLSizeMake((ne21 + 31)/32, (ne01 + 63)/64, ne02) threadsPerThreadgroup:MTLSizeMake(128, 1, 1)]; - } - } else { - id pipeline = nil; - - int nsg = 0; // number of simdgroups - int nr0 = 0; // number of src0 rows per simdgroup - int nr1 = 1; // number of src1 rows per threadgroup - - size_t smem = 0; // shared memory - - // use custom matrix x vector kernel - switch (src0t) { - case GGML_TYPE_F32: - { - GGML_ASSERT(src1t == GGML_TYPE_F32); - nsg = 1; - nr0 = 1; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F32_F32].pipeline; - } break; - case GGML_TYPE_F16: - { - GGML_ASSERT(src1t == GGML_TYPE_F32); - nsg = 1; - nr0 = 1; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_F16_F32].pipeline; - } break; - case GGML_TYPE_BF16: - { - GGML_ASSERT(src1t == GGML_TYPE_F32); - nsg = 1; - nr0 = 1; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_BF16_F32].pipeline; - } break; - case GGML_TYPE_Q4_0: - { - nsg = N_SG_Q4_0; - nr0 = N_R0_Q4_0; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q4_0_F32].pipeline; - } break; - case GGML_TYPE_Q4_1: - { - nsg = N_SG_Q4_1; - nr0 = N_R0_Q4_1; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q4_1_F32].pipeline; - } break; - case GGML_TYPE_Q5_0: - { - nsg = N_SG_Q5_0; - nr0 = N_R0_Q5_0; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q5_0_F32].pipeline; - } break; - case GGML_TYPE_Q5_1: - { - nsg = N_SG_Q5_1; - nr0 = N_R0_Q5_1; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q5_1_F32].pipeline; - } break; - case GGML_TYPE_Q8_0: - { - nsg = N_SG_Q8_0; - nr0 = N_R0_Q8_0; - smem = 32*sizeof(float)*N_R0_Q8_0; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q8_0_F32].pipeline; - } break; - case GGML_TYPE_MXFP4: - { - nsg = N_SG_MXFP4; - nr0 = N_R0_MXFP4; - smem = 32*sizeof(float); - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_MXFP4_F32].pipeline; - } break; - case GGML_TYPE_Q2_K: - { - nsg = N_SG_Q2_K; - nr0 = N_R0_Q2_K; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q2_K_F32].pipeline; - } break; - case GGML_TYPE_Q3_K: - { - nsg = N_SG_Q3_K; - nr0 = N_R0_Q3_K; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q3_K_F32].pipeline; - } break; - case GGML_TYPE_Q4_K: - { - nsg = N_SG_Q4_K; - nr0 = N_R0_Q4_K; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q4_K_F32].pipeline; - } break; - case GGML_TYPE_Q5_K: - { - nsg = N_SG_Q5_K; - nr0 = N_R0_Q5_K; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q5_K_F32].pipeline; - } break; - case GGML_TYPE_Q6_K: - { - nsg = N_SG_Q6_K; - nr0 = N_R0_Q6_K; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_Q6_K_F32].pipeline; - } break; - case GGML_TYPE_IQ2_XXS: - { - nsg = N_SG_IQ2_XXS; - nr0 = N_R0_IQ2_XXS; - smem = 256*8+128; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ2_XXS_F32].pipeline; - } break; - case GGML_TYPE_IQ2_XS: - { - nsg = N_SG_IQ2_XS; - nr0 = N_R0_IQ2_XS; - smem = 512*8+128; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ2_XS_F32].pipeline; - } break; - case GGML_TYPE_IQ3_XXS: - { - nsg = N_SG_IQ3_XXS; - nr0 = N_R0_IQ3_XXS; - smem = 256*4+128; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ3_XXS_F32].pipeline; - } break; - case GGML_TYPE_IQ3_S: - { - nsg = N_SG_IQ3_S; - nr0 = N_R0_IQ3_S; - smem = 512*4; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ3_S_F32].pipeline; - } break; - case GGML_TYPE_IQ2_S: - { - nsg = N_SG_IQ2_S; - nr0 = N_R0_IQ2_S; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ2_S_F32].pipeline; - } break; - case GGML_TYPE_IQ1_S: - { - nsg = N_SG_IQ1_S; - nr0 = N_R0_IQ1_S; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ1_S_F32].pipeline; - } break; - case GGML_TYPE_IQ1_M: - { - nsg = N_SG_IQ1_M; - nr0 = N_R0_IQ1_M; - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ1_M_F32].pipeline; - } break; - case GGML_TYPE_IQ4_NL: - { - nsg = N_SG_IQ4_NL; - nr0 = N_R0_IQ4_NL; - smem = 32*sizeof(float); - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ4_NL_F32].pipeline; - } break; - case GGML_TYPE_IQ4_XS: - { - nsg = N_SG_IQ4_XS; - nr0 = N_R0_IQ4_XS; - smem = 32*sizeof(float); - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_MUL_MV_ID_IQ4_XS_F32].pipeline; - } break; - default: - { - GGML_LOG_ERROR("Asserting on type %d\n", (int)src2t); - GGML_ABORT("not implemented"); - } - }; - - if (ggml_is_quantized(src0t)) { - GGML_ASSERT(ne00 >= nsg*nr0); - } - - ggml_metal_kargs_mul_mv_id args = { - /*.nei0 =*/ ne20, - /*.nei1 =*/ ne21, - /*.nbi1 =*/ nb21, - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.ne10 =*/ ne10, - /*.ne11 =*/ ne11, - /*.ne12 =*/ ne12, - /*.ne13 =*/ ne13, - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.nb1 =*/ nb1, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:3]; - [encoder setBuffer:id_src2 offset:offs_src2 atIndex:4]; - - const int64_t _ne1 = 1; - const int64_t ne123 = ne20*ne21; - - if (smem > 0) { - [encoder setThreadgroupMemoryLength:smem atIndex:0]; - } - - if (src0t == GGML_TYPE_Q8_0) { - [encoder dispatchThreadgroups:MTLSizeMake((ne01 + nr0 - 1)/(nr0), (_ne1 + nr1 - 1)/nr1, ne123) threadsPerThreadgroup:MTLSizeMake(32, nsg, 1)]; - } else { - [encoder dispatchThreadgroups:MTLSizeMake((ne01 + nr0*nsg - 1)/(nr0*nsg), (_ne1 + nr1 - 1)/nr1, ne123) threadsPerThreadgroup:MTLSizeMake(32, nsg, 1)]; - } - } - } break; - case GGML_OP_GET_ROWS: - { - id pipeline = nil; - - switch (src0->type) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_F32 ].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_F16 ].pipeline; break; - case GGML_TYPE_BF16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_BF16 ].pipeline; break; - case GGML_TYPE_Q4_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_Q4_0 ].pipeline; break; - case GGML_TYPE_Q4_1: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_Q4_1 ].pipeline; break; - case GGML_TYPE_Q5_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_Q5_0 ].pipeline; break; - case GGML_TYPE_Q5_1: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_Q5_1 ].pipeline; break; - case GGML_TYPE_Q8_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_Q8_0 ].pipeline; break; - case GGML_TYPE_MXFP4: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_MXFP4 ].pipeline; break; - case GGML_TYPE_Q2_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_Q2_K ].pipeline; break; - case GGML_TYPE_Q3_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_Q3_K ].pipeline; break; - case GGML_TYPE_Q4_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_Q4_K ].pipeline; break; - case GGML_TYPE_Q5_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_Q5_K ].pipeline; break; - case GGML_TYPE_Q6_K: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_Q6_K ].pipeline; break; - case GGML_TYPE_IQ2_XXS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ2_XXS].pipeline; break; - case GGML_TYPE_IQ2_XS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ2_XS ].pipeline; break; - case GGML_TYPE_IQ3_XXS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ3_XXS].pipeline; break; - case GGML_TYPE_IQ3_S: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ3_S ].pipeline; break; - case GGML_TYPE_IQ2_S: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ2_S ].pipeline; break; - case GGML_TYPE_IQ1_S: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ1_S ].pipeline; break; - case GGML_TYPE_IQ1_M: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ1_M ].pipeline; break; - case GGML_TYPE_IQ4_NL: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ4_NL ].pipeline; break; - case GGML_TYPE_IQ4_XS: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_IQ4_XS ].pipeline; break; - case GGML_TYPE_I32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GET_ROWS_I32 ].pipeline; break; - default: GGML_ABORT("not implemented"); - } - - ggml_metal_kargs_get_rows args = { - /*.ne00 =*/ ne00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.ne10 =*/ ne10, - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:3]; - - [encoder dispatchThreadgroups:MTLSizeMake(ne10, ne11, 1) threadsPerThreadgroup:MTLSizeMake(32, 1, 1)]; - } break; - case GGML_OP_SET_ROWS: - { - id pipeline = nil; - - switch (dst->type) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SET_ROWS_F32 ].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SET_ROWS_F16 ].pipeline; break; - case GGML_TYPE_BF16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SET_ROWS_BF16 ].pipeline; break; - case GGML_TYPE_Q8_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SET_ROWS_Q8_0 ].pipeline; break; - case GGML_TYPE_Q4_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SET_ROWS_Q4_0 ].pipeline; break; - case GGML_TYPE_Q4_1: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SET_ROWS_Q4_1 ].pipeline; break; - case GGML_TYPE_Q5_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SET_ROWS_Q5_0 ].pipeline; break; - case GGML_TYPE_Q5_1: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SET_ROWS_Q5_1 ].pipeline; break; - case GGML_TYPE_IQ4_NL: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_SET_ROWS_IQ4_NL].pipeline; break; - default: GGML_ABORT("not implemented"); - } - - const int32_t nk0 = ne0/ggml_blck_size(dst->type); - - int nth = 32; // SIMD width - - while (nth < nk0 && nth < (int) pipeline.maxTotalThreadsPerThreadgroup) { - nth *= 2; - } - - int nrptg = 1; - if (nth > nk0) { - nrptg = (nth + nk0 - 1)/nk0; - nth = nk0; - - if (nrptg*nth > (int) pipeline.maxTotalThreadsPerThreadgroup) { - nrptg--; - } - } - - nth = MIN(nth, nk0); - - ggml_metal_kargs_set_rows args = { - /*.nk0 =*/ nk0, - /*.ne01 =*/ ne01, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne11 =*/ ne11, - /*.ne12 =*/ ne12, - /*.nb10 =*/ nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:3]; - - [encoder dispatchThreadgroups:MTLSizeMake((ne01 + nrptg - 1)/nrptg, ne02, ne03) threadsPerThreadgroup:MTLSizeMake(nth, nrptg, 1)]; - } break; - case GGML_OP_RMS_NORM: - { - GGML_ASSERT(ne00 % 4 == 0); - GGML_ASSERT(ggml_is_contiguous_rows(src0)); - - float eps; - memcpy(&eps, dst->op_params, sizeof(float)); - - ggml_metal_kargs_rms_norm args = { - /*.ne00 =*/ ne00, - /*.ne00_4 =*/ ne00/4, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - /*.eps =*/ eps, - /*.nef1 =*/ { ne01 }, - /*.nef2 =*/ { ne02 }, - /*.nef3 =*/ { ne03 }, - /*.nbf1 =*/ { nb01 }, - /*.nbf2 =*/ { nb02 }, - /*.nbf3 =*/ { nb03 }, - }; - - size_t offs_fuse[2] = { 0, 0 }; - id id_fuse[2] = { id_src0, id_src0 }; - - // d[0] = rms_norm(a) - // d[1] = mul(d[0], b) - // d[2] = add(d[1], c) - if (ctx_dev->use_fusion) { - ops[0] = GGML_OP_RMS_NORM; - ops[1] = GGML_OP_MUL; - ops[2] = GGML_OP_ADD; - - for (n_fuse = 0; n_fuse <= 1 && idx + n_fuse + 1 < idx_end; ++n_fuse) { - if (!ggml_can_fuse(gf, idx + n_fuse, ops + n_fuse, 2)) { - break; - } - - if (nodes[n_fuse] != nodes[n_fuse + 1]->src[0]) { - break; - } - - if (nodes[n_fuse + 1]->src[1]->ne[0] != node->ne[0]) { - break; - } - - if (!ggml_is_contiguous_rows(nodes[n_fuse + 1]->src[1])) { - break; - } - - if (nodes[n_fuse + 1]->type != GGML_TYPE_F32) { - break; - } - - ctx_dev->fuse_cnt[nodes[n_fuse + 1]->op]++; - - id_fuse[n_fuse] = ggml_metal_get_buffer(nodes[n_fuse + 1]->src[1], &offs_fuse[n_fuse]); - - args.nef1[n_fuse + 1] = nodes[n_fuse + 1]->src[1]->ne[1]; - args.nef2[n_fuse + 1] = nodes[n_fuse + 1]->src[1]->ne[2]; - args.nef3[n_fuse + 1] = nodes[n_fuse + 1]->src[1]->ne[3]; - - args.nbf1[n_fuse + 1] = nodes[n_fuse + 1]->src[1]->nb[1]; - args.nbf2[n_fuse + 1] = nodes[n_fuse + 1]->src[1]->nb[2]; - args.nbf3[n_fuse + 1] = nodes[n_fuse + 1]->src[1]->nb[3]; - } - - ++n_fuse; - - if (ctx_dev->debug_fusion > 1 && n_fuse > 1) { - if (n_fuse == 2) { - GGML_LOG_DEBUG("%s: fuse: RMS_NORM + MUL\n", __func__); - } - if (n_fuse == 3) { - GGML_LOG_DEBUG("%s: fuse: RMS_NORM + MUL + ADD\n", __func__); - } - } - } - - if (n_fuse > 1) { - id_dst = ggml_metal_get_buffer(nodes[n_fuse - 1], &offs_dst); - - for (int i = 1; i < n_fuse; ++i) { - if (!ggml_metal_encode_concurrency_check(ctx_enc, nodes[i])) { - ggml_metal_encode_concurrency_reset(ctx_enc); - - break; - } - } - } - - const id pipeline = ggml_metal_get_pipeline_rms_norm(backend, node, n_fuse); - - int nth = 32; // SIMD width - - while (nth < ne00/4 && nth < (int) pipeline.maxTotalThreadsPerThreadgroup) { - nth *= 2; - } - - nth = MIN(nth, (int) pipeline.maxTotalThreadsPerThreadgroup); - nth = MIN(nth, ne00/4); - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_fuse[0] offset:offs_fuse[0] atIndex:2]; - [encoder setBuffer:id_fuse[1] offset:offs_fuse[1] atIndex:3]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:4]; - - [encoder setThreadgroupMemoryLength:32*sizeof(float) atIndex:0]; - - [encoder dispatchThreadgroups:MTLSizeMake(ne01, ne02, ne03) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_L2_NORM: - { - GGML_ASSERT(ne00 % 4 == 0); - GGML_ASSERT(ggml_is_contiguous_1(src0)); - - float eps; - memcpy(&eps, dst->op_params, sizeof(float)); - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_L2_NORM].pipeline; - - int nth = 32; // SIMD width - - while (nth < ne00/4 && nth < (int) pipeline.maxTotalThreadsPerThreadgroup) { - nth *= 2; - } - - nth = MIN(nth, (int) pipeline.maxTotalThreadsPerThreadgroup); - nth = MIN(nth, ne00/4); - - ggml_metal_kargs_l2_norm args = { - /*.ne00 =*/ ne00, - /*.ne00_4 =*/ ne00/4, - /*.nb01 =*/ nb01, - /*.eps =*/ eps, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:2]; - - [encoder setThreadgroupMemoryLength:32*sizeof(float) atIndex:0]; - - const int64_t nrows = ggml_nrows(src0); - - [encoder dispatchThreadgroups:MTLSizeMake(nrows, 1, 1) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_GROUP_NORM: - { - GGML_ASSERT(ggml_is_contiguous(src0)); - - float eps; - memcpy(&eps, dst->op_params + 1, sizeof(float)); - - const int32_t n_groups = ((const int32_t *) dst->op_params)[0]; - - int nth = 32; // SIMD width - - //while (nth < ne00/4 && nth < 1024) { - // nth *= 2; - //} - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_GROUP_NORM].pipeline; - - ggml_metal_kargs_group_norm args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.n_groups =*/ n_groups, - /*.eps =*/ eps, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&args length:sizeof(args) atIndex:2]; - [encoder setThreadgroupMemoryLength:32*sizeof(float) atIndex:0]; - - [encoder dispatchThreadgroups:MTLSizeMake(n_groups, 1, 1) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_NORM: - { - GGML_ASSERT(ne00 % 4 == 0); - GGML_ASSERT(ggml_is_contiguous_1(src0)); - - float eps; - memcpy(&eps, dst->op_params, sizeof(float)); - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_NORM].pipeline; - - int nth = 32; // SIMD width - - while (nth < ne00/4 && nth < (int) pipeline.maxTotalThreadsPerThreadgroup) { - nth *= 2; - } - - nth = MIN(nth, (int) pipeline.maxTotalThreadsPerThreadgroup); - nth = MIN(nth, ne00/4); - - ggml_metal_kargs_norm args = { - /*.ne00 =*/ ne00, - /*.ne00_4 =*/ ne00/4, - /*.nb01 =*/ nb01, - /*.eps =*/ eps, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:2]; - - [encoder setThreadgroupMemoryLength:32*sizeof(float) atIndex:0]; - - const int64_t nrows = ggml_nrows(src0); - - [encoder dispatchThreadgroups:MTLSizeMake(nrows, 1, 1) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_ROPE: - { - // make sure we have one or more position id(ne10) per token(ne02) - GGML_ASSERT(ne10 % ne02 == 0); - GGML_ASSERT(ne10 >= ne02); - - const int nth = MIN(1024, ne00); - - const int n_past = ((const int32_t *) dst->op_params)[0]; - const int n_dims = ((const int32_t *) dst->op_params)[1]; - const int mode = ((const int32_t *) dst->op_params)[2]; - // skip 3, n_ctx, used in GLM RoPE, unimplemented in metal - const int n_ctx_orig = ((const int32_t *) dst->op_params)[4]; - - float freq_base; - float freq_scale; - float ext_factor; - float attn_factor; - float beta_fast; - float beta_slow; - - memcpy(&freq_base, (const int32_t *) dst->op_params + 5, sizeof(float)); - memcpy(&freq_scale, (const int32_t *) dst->op_params + 6, sizeof(float)); - memcpy(&ext_factor, (const int32_t *) dst->op_params + 7, sizeof(float)); - memcpy(&attn_factor, (const int32_t *) dst->op_params + 8, sizeof(float)); - memcpy(&beta_fast, (const int32_t *) dst->op_params + 9, sizeof(float)); - memcpy(&beta_slow, (const int32_t *) dst->op_params + 10, sizeof(float)); - - const bool is_neox = mode & GGML_ROPE_TYPE_NEOX; - const bool is_mrope = mode & GGML_ROPE_TYPE_MROPE; - const bool is_vision = mode == GGML_ROPE_TYPE_VISION; - - // mrope - const int sect_0 = ((const int32_t *) dst->op_params)[11]; - const int sect_1 = ((const int32_t *) dst->op_params)[12]; - const int sect_2 = ((const int32_t *) dst->op_params)[13]; - const int sect_3 = ((const int32_t *) dst->op_params)[14]; - - id pipeline = nil; - - if (is_neox) { - switch (src0->type) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_NEOX_F16].pipeline; break; - default: GGML_ABORT("fatal error"); - }; - } else if (is_mrope && !is_vision) { - GGML_ASSERT(ne10*4 >= ne02); // need at least 4 pos per token - switch (src0->type) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_MULTI_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_MULTI_F16].pipeline; break; - default: GGML_ABORT("fatal error"); - }; - } else if (is_vision) { - GGML_ASSERT(ne10*4 >= ne02); // need at least 4 pos per token - switch (src0->type) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_VISION_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_VISION_F16].pipeline; break; - default: GGML_ABORT("fatal error"); - }; - } else { - switch (src0->type) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_NORM_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ROPE_NORM_F16].pipeline; break; - default: GGML_ABORT("fatal error"); - }; - } - - ggml_metal_kargs_rope args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - /*.n_past =*/ n_past, - /*.n_dims =*/ n_dims, - /*.n_ctx_orig =*/ n_ctx_orig, - /*.freq_base =*/ freq_base, - /*.freq_scale =*/ freq_scale, - /*.ext_factor =*/ ext_factor, - /*.attn_factor =*/ attn_factor, - /*.beta_fast =*/ beta_fast, - /*.beta_slow =*/ beta_slow, - /* sect_0 =*/ sect_0, - /* sect_1 =*/ sect_1, - /* sect_2 =*/ sect_2, - /* sect_3 =*/ sect_3, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - if (id_src2 != nil) { - [encoder setBuffer:id_src2 offset:offs_src2 atIndex:3]; - } else { - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:3]; - } - [encoder setBuffer:id_dst offset:offs_dst atIndex:4]; - - [encoder dispatchThreadgroups:MTLSizeMake(ne01, ne02, ne03) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_IM2COL: - { - GGML_ASSERT(ggml_is_contiguous(src1)); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F16 || dst->type == GGML_TYPE_F32); - - const int32_t s0 = ((const int32_t *)(dst->op_params))[0]; - const int32_t s1 = ((const int32_t *)(dst->op_params))[1]; - const int32_t p0 = ((const int32_t *)(dst->op_params))[2]; - const int32_t p1 = ((const int32_t *)(dst->op_params))[3]; - const int32_t d0 = ((const int32_t *)(dst->op_params))[4]; - const int32_t d1 = ((const int32_t *)(dst->op_params))[5]; - - const bool is_2D = ((const int32_t *)(dst->op_params))[6] == 1; - - const int32_t N = src1->ne[is_2D ? 3 : 2]; - const int32_t IC = src1->ne[is_2D ? 2 : 1]; - const int32_t IH = is_2D ? src1->ne[1] : 1; - const int32_t IW = src1->ne[0]; - - const int32_t KH = is_2D ? src0->ne[1] : 1; - const int32_t KW = src0->ne[0]; - - const int32_t OH = is_2D ? dst->ne[2] : 1; - const int32_t OW = dst->ne[1]; - - const int32_t CHW = IC * KH * KW; - - const uint64_t ofs0 = src1->nb[is_2D ? 3 : 2] / 4; - const uint64_t ofs1 = src1->nb[is_2D ? 2 : 1] / 4; - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_IM2COL_F32].pipeline; - - const bool is_gt_mttpt = ((size_t)(N * KH * KW)) > pipeline.maxTotalThreadsPerThreadgroup; - - switch (dst->type) { - case GGML_TYPE_F32: { - pipeline = (is_gt_mttpt ? - ctx->kernels[GGML_METAL_KERNEL_TYPE_IM2COL_EXT_F32].pipeline - : - ctx->kernels[GGML_METAL_KERNEL_TYPE_IM2COL_F32].pipeline); - } break; - case GGML_TYPE_F16: { - pipeline = (is_gt_mttpt ? - ctx->kernels[GGML_METAL_KERNEL_TYPE_IM2COL_EXT_F16].pipeline - : - ctx->kernels[GGML_METAL_KERNEL_TYPE_IM2COL_F16].pipeline); - } break; - default: GGML_ABORT("fatal error"); - }; - - ggml_metal_kargs_im2col args = { - /*.ofs0 =*/ ofs0, - /*.ofs1 =*/ ofs1, - /*.IW =*/ IW, - /*.IH =*/ IH, - /*.CHW =*/ CHW, - /*.s0 =*/ s0, - /*.s1 =*/ s1, - /*.p0 =*/ p0, - /*.p1 =*/ p1, - /*.d0 =*/ d0, - /*.d1 =*/ d1, - /*.N =*/ N, - /*.KH =*/ KH, - /*.KW =*/ KW, - /*.KHW =*/ KH * KW, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&args length:sizeof(args) atIndex:2]; - - if (is_gt_mttpt) { - const uint64_t n_threads = MIN(pipeline.maxTotalThreadsPerThreadgroup, (uint64_t)N); - - const int64_t quotient = N / n_threads + (N % n_threads > 0 ? 1 : 0); - - [encoder dispatchThreadgroups:MTLSizeMake(quotient * CHW, OH, OW) threadsPerThreadgroup:MTLSizeMake(n_threads, 1, 1)]; - } else { - [encoder dispatchThreadgroups:MTLSizeMake(IC, OH, OW) threadsPerThreadgroup:MTLSizeMake(N, KH, KW)]; - } - } break; - case GGML_OP_CONV_TRANSPOSE_1D: - { - GGML_ASSERT(ggml_is_contiguous(src0)); - GGML_ASSERT(ggml_is_contiguous(src1)); - GGML_ASSERT(src0->type == GGML_TYPE_F16 || src0->type == GGML_TYPE_F32); - GGML_ASSERT(src1->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_F32); - - const int32_t s0 = ((const int32_t *)(dst->op_params))[0]; - - const int32_t IC = src1->ne[1]; - const int32_t IL = src1->ne[0]; - - const int32_t K = src0->ne[0]; - - const int32_t OL = dst->ne[0]; - const int32_t OC = dst->ne[1]; - - id pipeline; - - switch (src0->type) { - case GGML_TYPE_F32: { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CONV_TRANSPOSE_1D_F32_F32].pipeline; - } break; - case GGML_TYPE_F16: { - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CONV_TRANSPOSE_1D_F16_F32].pipeline; - } break; - default: GGML_ABORT("fatal error"); - }; - - ggml_metal_kargs_conv_transpose_1d args = { - /*.IC =*/ IC, - /*.IL =*/ IL, - /*.K =*/ K, - /*.s0 =*/ s0, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:1]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:2]; - [encoder setBytes:&args length:sizeof(args) atIndex:3]; - - [encoder dispatchThreadgroups:MTLSizeMake(OL, OC, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_OP_UPSCALE: - { - GGML_ASSERT(src0->type == GGML_TYPE_F32); - - const float sf0 = (float)ne0/src0->ne[0]; - const float sf1 = (float)ne1/src0->ne[1]; - const float sf2 = (float)ne2/src0->ne[2]; - const float sf3 = (float)ne3/src0->ne[3]; - - const id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_UPSCALE_F32].pipeline; - - ggml_metal_kargs_upscale args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - /*.sf0 =*/ sf0, - /*.sf1 =*/ sf1, - /*.sf2 =*/ sf2, - /*.sf3 =*/ sf3 - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&args length:sizeof(args) atIndex:2]; - - const int nth = MIN((int) pipeline.maxTotalThreadsPerThreadgroup, ne0); - - [encoder dispatchThreadgroups:MTLSizeMake(ne1, ne2, ne3) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_PAD: - { - GGML_ASSERT(src0->type == GGML_TYPE_F32); - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_PAD_F32].pipeline; - - ggml_metal_kargs_pad args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3 - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&args length:sizeof(args) atIndex:2]; - - const int nth = MIN(1024, ne0); - - [encoder dispatchThreadgroups:MTLSizeMake(ne1, ne2, ne3) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_PAD_REFLECT_1D: - { - GGML_ASSERT(src0->type == GGML_TYPE_F32); - - const int32_t p0 = ((const int32_t *)(dst->op_params))[0]; - const int32_t p1 = ((const int32_t *)(dst->op_params))[1]; - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_PAD_REFLECT_1D_F32].pipeline; - - ggml_metal_kargs_pad_reflect_1d args = { - /*.ne00 =*/ ne00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - /*.p0 =*/ p0, - /*.p1 =*/ p1 - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&args length:sizeof(args) atIndex:2]; - - const int nth = MIN(1024, ne0); - - [encoder dispatchThreadgroups:MTLSizeMake(ne1, ne2, ne3) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_ARANGE: - { - GGML_ASSERT(dst->type == GGML_TYPE_F32); - - float start; - float step; - - memcpy(&start, ((const int32_t *) dst->op_params) + 0, sizeof(float)); - memcpy(&step, ((const int32_t *) dst->op_params) + 2, sizeof(float)); - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ARANGE_F32].pipeline; - - ggml_metal_kargs_arange args = { - /*.ne0 =*/ ne0, - /*.start =*/ start, - /*.step =*/ step - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:0]; - [encoder setBytes:&args length:sizeof(args) atIndex:1]; - - const int nth = MIN(1024, ne0); - - [encoder dispatchThreadgroups:MTLSizeMake(1, 1, 1) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_TIMESTEP_EMBEDDING: - { - GGML_ASSERT(src0->type == GGML_TYPE_F32); - - const int dim = dst->op_params[0]; - const int max_period = dst->op_params[1]; - - const int half = dim / 2; - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_TIMESTEP_EMBEDDING_F32].pipeline; - - ggml_metal_kargs_timestep_embedding args = { - /*.nb1 =*/ nb1, - /*.dim =*/ dim, - /*.max_period =*/ max_period - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&args length:sizeof(args) atIndex:2]; - - const int nth = MIN(1024, half); - - [encoder dispatchThreadgroups:MTLSizeMake(ne00, 1, 1) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - case GGML_OP_ARGSORT: - { - GGML_ASSERT(src0->type == GGML_TYPE_F32); - GGML_ASSERT( dst->type == GGML_TYPE_I32); - - const int nrows = ggml_nrows(src0); - - enum ggml_sort_order order = (enum ggml_sort_order) dst->op_params[0]; - - // bitonic sort requires the number of elements to be power of 2 - int64_t ne00_padded = 1; - while (ne00_padded < ne00) { - ne00_padded *= 2; - } - - // Metal kernels require the buffer size to be multiple of 16 bytes - // https://developer.apple.com/documentation/metal/mtlcomputecommandencoder/1443142-setthreadgroupmemorylength - const int mem_size = GGML_PAD(ne00_padded*sizeof(int32_t), 16); - - id pipeline = nil; - - switch (order) { - case GGML_SORT_ORDER_ASC: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ARGSORT_F32_I32_ASC].pipeline; break; - case GGML_SORT_ORDER_DESC: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ARGSORT_F32_I32_DESC].pipeline; break; - default: GGML_ABORT("fatal error"); - }; - - ggml_metal_kargs_argsort args = { - /*.ncols =*/ ne00, - /*.ncols_pad =*/ ne00_padded - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&args length:sizeof(args) atIndex:2]; - [encoder setThreadgroupMemoryLength:mem_size atIndex:0]; - - [encoder dispatchThreadgroups:MTLSizeMake(1, nrows, 1) threadsPerThreadgroup:MTLSizeMake(ne00_padded, 1, 1)]; - } break; - case GGML_OP_LEAKY_RELU: - { - GGML_ASSERT(src0->type == GGML_TYPE_F32); - - float slope; - memcpy(&slope, dst->op_params, sizeof(float)); - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_LEAKY_RELU_F32].pipeline; - - ggml_metal_kargs_leaky_relu args = { - /*.slope =*/ slope - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&args length:sizeof(args) atIndex:2]; - - const int64_t n = ggml_nelements(dst); - - [encoder dispatchThreadgroups:MTLSizeMake(n, 1, 1) threadsPerThreadgroup:MTLSizeMake(1, 1, 1)]; - } break; - case GGML_OP_FLASH_ATTN_EXT: - { - GGML_ASSERT(ne00 % 4 == 0); - GGML_ASSERT(ne11 % 32 == 0); - - GGML_ASSERT(src0->type == GGML_TYPE_F32); - GGML_ASSERT(src1->type == src2->type); - - //GGML_ASSERT(ggml_are_same_shape (src1, src2)); - GGML_ASSERT(ne11 == ne21); - GGML_ASSERT(ne12 == ne22); - - struct ggml_tensor * src3 = node->src[3]; // mask - struct ggml_tensor * src4 = node->src[4]; // sinks - - size_t offs_src3 = 0; - size_t offs_src4 = 0; - - id id_src3 = src3 ? ggml_metal_get_buffer(src3, &offs_src3) : nil; - id id_src4 = src4 ? ggml_metal_get_buffer(src4, &offs_src4) : nil; - - GGML_ASSERT(!src3 || src3->type == GGML_TYPE_F16); - GGML_ASSERT(!src3 || src3->ne[1] >= GGML_PAD(src0->ne[1], 8) && - "the Flash-Attention Metal kernel requires the mask to be padded to 8 and at least n_queries big"); - - const int64_t ne30 = src3 ? src3->ne[0] : 0; GGML_UNUSED(ne30); - //const int64_t ne31 = src3 ? src3->ne[1] : 0; - const int64_t ne32 = src3 ? src3->ne[2] : 0; GGML_UNUSED(ne32); - const int64_t ne33 = src3 ? src3->ne[3] : 0; GGML_UNUSED(ne33); - - const uint64_t nb30 = src3 ? src3->nb[0] : 0; GGML_UNUSED(nb30); - const uint64_t nb31 = src3 ? src3->nb[1] : 0; - const uint64_t nb32 = src3 ? src3->nb[2] : 0; GGML_UNUSED(nb32); - const uint64_t nb33 = src3 ? src3->nb[3] : 0; GGML_UNUSED(nb33); - - float scale; - float max_bias; - float logit_softcap; - - memcpy(&scale, ((const int32_t *) dst->op_params) + 0, sizeof(scale)); - memcpy(&max_bias, ((const int32_t *) dst->op_params) + 1, sizeof(max_bias)); - memcpy(&logit_softcap, ((const int32_t *) dst->op_params) + 2, sizeof(logit_softcap)); - - if (logit_softcap != 0.0f) { - scale /= logit_softcap; - } - - const bool has_mask = src3 != NULL; - const bool has_sinks = src4 != NULL; - const bool has_bias = max_bias != 0.0f; - const bool has_scap = logit_softcap != 0.0f; - - const uint32_t n_head = src0->ne[2]; - const uint32_t n_head_log2 = 1u << (uint32_t) floorf(log2f((float) n_head)); - - const float m0 = powf(2.0f, -(max_bias ) / n_head_log2); - const float m1 = powf(2.0f, -(max_bias / 2.0f) / n_head_log2); - - GGML_ASSERT(ne01 < 65536); - - if (!ggml_metal_flash_attn_ext_use_vec(dst)) { - // half8x8 kernel - const int64_t nqptg = 8; // queries per threadgroup !! sync with kernel template arguments !! - const int64_t ncpsg = 64; // cache values per simdgroup !! sync with kernel template arguments !! - - GGML_ASSERT(nqptg <= 32); - GGML_ASSERT(nqptg % 8 == 0); - GGML_ASSERT(ncpsg % 32 == 0); - - const int is_q = ggml_is_quantized(src1->type) ? 1 : 0; - - // 2*(2*ncpsg) - // ncpsg soft_max values + ncpsg mask values - // - // 16*32*(nsg) - // the shared memory needed for the simdgroups to load the KV cache - // each thread loads (dequantizes) 16 head elements, there are 32 threads in th SG - // -#define FATTN_SMEM(nsg) (GGML_PAD((nqptg*(ne00 + 2*GGML_PAD(ne20, 64) + 2*(2*ncpsg)) + is_q*(16*32*(nsg)))*(sizeof(float)/2), 16)) - - //int64_t nsgmax = 4; - // - //if (is_q) { - // nsgmax = 2; - // while (true) { - // const size_t smem = FATTN_SMEM(nsgmax); - // if (smem > device.maxThreadgroupMemoryLength/2) { - // break; - // } - // nsgmax *= 2; - // } - // nsgmax /= 2; - //} - - // simdgroups per threadgroup (a.k.a. warps) - //nsg = ne01 <= nqptg ? MAX(4, MIN(nsgmax, MIN(ne11/ncpsg, (int64_t) pipeline.maxTotalThreadsPerThreadgroup/32))) : 4; - int32_t nsg = 4; - - const size_t smem = FATTN_SMEM(nsg); - - ggml_metal_kargs_flash_attn_ext args = { - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne11 =*/ ne11, - /*.ne_12_2 =*/ ne12, - /*.ne_12_3 =*/ ne13, - /*.ns10 =*/ nb11/nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.ns20 =*/ nb21/nb20, - /*.nb21 =*/ nb21, - /*.nb22 =*/ nb22, - /*.nb23 =*/ nb23, - /*.ne32 =*/ ne32, - /*.ne33 =*/ ne33, - /*.nb31 =*/ nb31, - /*.nb32 =*/ nb32, - /*.nb33 =*/ nb33, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.scale =*/ scale, - /*.max_bias =*/ max_bias, - /*.m0 =*/ m0, - /*.m1 =*/ m1, - /*.n_head_log2 =*/ n_head_log2, - /*.logit_softcap =*/ logit_softcap, - }; - - id pipeline = ggml_metal_get_pipeline_flash_attn_ext(backend, node, has_mask, has_sinks, has_bias, has_scap, nsg); - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - [encoder setBuffer:id_src2 offset:offs_src2 atIndex:3]; - if (id_src3) { - [encoder setBuffer:id_src3 offset:offs_src3 atIndex:4]; - } else { - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:4]; - } - if (id_src4) { - [encoder setBuffer:id_src4 offset:offs_src4 atIndex:5]; - } else { - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:5]; - } - - [encoder setBuffer:id_dst offset:offs_dst atIndex:6]; - - //printf("smem: %zu, max: %zu, nsg = %d, ne02 = %d, ne12 = %d\n", smem, device.maxThreadgroupMemoryLength, (int) nsg, ne02, ne12); - GGML_ASSERT(smem <= device.maxThreadgroupMemoryLength); - [encoder setThreadgroupMemoryLength:smem atIndex:0]; - [encoder dispatchThreadgroups:MTLSizeMake((ne01 + nqptg - 1)/nqptg, ne02, ne03) threadsPerThreadgroup:MTLSizeMake(32, nsg, 1)]; -#undef FATTN_SMEM - } else { - // half4x4 kernel - const int64_t nqptg = 1; // queries per threadgroup !! sync with kernel template arguments !! - const int64_t ncpsg = 32; // cache values per simdgroup !! sync with kernel template arguments !! - const int64_t nkpsg = 1*ncpsg; - - GGML_ASSERT(nqptg <= 32); - GGML_ASSERT(nqptg % 1 == 0); - GGML_ASSERT(ncpsg % 32 == 0); - - // ne00 + 2*ncpsg*(nsg) - // for each query, we load it as f16 in shared memory (ne00) - // and store the soft_max values and the mask - // - // ne20*(nsg) - // each simdgroup has a full f32 head vector in shared mem to accumulate results - // -#define FATTN_SMEM(nsg) (GGML_PAD((nqptg*(GGML_PAD(ne00, 128) + 4*ncpsg*(nsg)) + 2*GGML_PAD(ne20, 128)*(nsg))*(sizeof(float)/2), 16)) - - int64_t nsgmax = 2; - while (true) { - const size_t smem = FATTN_SMEM(nsgmax); - // avoid using more than half of the threadgroup memory - can cause slow downs especially for large head sizes - if (smem > device.maxThreadgroupMemoryLength/2) { - break; - } - nsgmax *= 2; - } - nsgmax /= 2; - - // simdgroups per threadgroup (a.k.a. warps) - //const int64_t nsgt = MAX(2, MIN(nsgmax, MIN((ne11 + nkpsg - 1)/(nkpsg), (int64_t) pipeline.maxTotalThreadsPerThreadgroup/32))); - const int64_t nsgt = MAX(2, MIN(nsgmax, MIN((ne11 + nkpsg - 1)/(nkpsg), (int64_t) 1024/32))); - - int64_t nsg = 1; - while (nsg <= nsgt) { - nsg *= 2; - } - nsg /= 2; - - // workgroups - // each workgroup handles nsg*nkpsg cache values - int32_t nwg = 1; - if (false) { - // for small KV caches, we could launch a single workgroup and write the results directly to dst/ - // however, this does not lead to significant improvement, so disabled - nwg = 1; - nsg = 4; - } else { - nwg = 32; - nsg = 1; - while (2*nwg*nsg*nkpsg < ne11 && nsg < 4) { - nsg *= 2; - } - } - - ggml_metal_kargs_flash_attn_ext_vec args = { - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne11 =*/ ne11, - /*.ne_12_2 =*/ ne12, - /*.ne_12_3 =*/ ne13, - /*.ns10 =*/ nb11/nb10, - /*.nb11 =*/ nb11, - /*.nb12 =*/ nb12, - /*.nb13 =*/ nb13, - /*.ns20 =*/ nb21/nb20, - /*.nb21 =*/ nb21, - /*.nb22 =*/ nb22, - /*.nb23 =*/ nb23, - /*.ne32 =*/ ne32, - /*.ne33 =*/ ne33, - /*.nb31 =*/ nb31, - /*.nb32 =*/ nb32, - /*.nb33 =*/ nb33, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.scale =*/ scale, - /*.max_bias =*/ max_bias, - /*.m0 =*/ m0, - /*.m1 =*/ m1, - /*.n_head_log2 =*/ n_head_log2, - /*.logit_softcap =*/ logit_softcap, - }; - - id pipeline = ggml_metal_get_pipeline_flash_attn_ext_vec(backend, node, has_mask, has_sinks, has_bias, has_scap, nsg, nwg); - - GGML_ASSERT(nsg*32 <= (int) pipeline.maxTotalThreadsPerThreadgroup); - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_src1 offset:offs_src1 atIndex:2]; - [encoder setBuffer:id_src2 offset:offs_src2 atIndex:3]; - if (id_src3) { - [encoder setBuffer:id_src3 offset:offs_src3 atIndex:4]; - } else { - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:4]; - } - if (id_src4) { - [encoder setBuffer:id_src4 offset:offs_src4 atIndex:5]; - } else { - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:5]; - } - - const size_t smem = FATTN_SMEM(nsg); - - //printf("smem: %zu, max: %zu, nsg = %d, nsgmax = %d\n", smem, device.maxThreadgroupMemoryLength, (int) nsg, (int) nsgmax); - GGML_ASSERT(smem <= device.maxThreadgroupMemoryLength); - - if (nwg == 1) { - // using 1 workgroup -> write the result directly into dst - [encoder setBuffer:id_dst offset:offs_dst atIndex:6]; - - [encoder setThreadgroupMemoryLength:smem atIndex:0]; - [encoder dispatchThreadgroups:MTLSizeMake((ne01 + nqptg - 1)/nqptg, ne02, ne03*nwg) threadsPerThreadgroup:MTLSizeMake(32, nsg, 1)]; - } else { - // sanity checks - GGML_ASSERT(ne01*ne02*ne03 == ne1*ne2*ne3); - GGML_ASSERT(ne1*ne2*ne3 <= (1u << 31)); - - // write the results from each workgroup into a temp buffer - const size_t offs_tmp = offs_dst + ggml_nbytes(dst); - [encoder setBuffer:id_dst offset:offs_tmp atIndex:6]; - - [encoder setThreadgroupMemoryLength:smem atIndex:0]; - [encoder dispatchThreadgroups:MTLSizeMake((ne01 + nqptg - 1)/nqptg, ne02, ne03*nwg) threadsPerThreadgroup:MTLSizeMake(32, nsg, 1)]; - - // sync the 2 kernels - ggml_metal_encode_concurrency_reset(ctx_enc); - - // reduce the results from the workgroups - { - const int32_t nrows = ne1*ne2*ne3; - - ggml_metal_kargs_flash_attn_ext_vec_reduce args0 = { - nrows, - }; - - id pipeline0 = ggml_metal_get_pipeline_flash_attn_ext_vec_reduce(backend, node, ne20, nwg); - - [encoder setComputePipelineState:pipeline0]; - [encoder setBytes:&args0 length:sizeof(args0) atIndex:0]; - [encoder setBuffer:id_dst offset:offs_tmp atIndex:1]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:2]; - - //printf("ne1 = %d, ne2 = %d, ne3 = %d, ne20 = %d\n", ne1, ne2, ne3, ne20); - [encoder dispatchThreadgroups:MTLSizeMake(nrows, 1, 1) threadsPerThreadgroup:MTLSizeMake(32*nwg, 1, 1)]; - } - } -#undef FATTN_SMEM - } - } break; - case GGML_OP_DUP: - case GGML_OP_CPY: - case GGML_OP_CONT: - { - id pipeline = nil; - - switch (src0t) { - case GGML_TYPE_F32: - { - GGML_ASSERT(ne0 % ggml_blck_size(dst->type) == 0); - - switch (dstt) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F32_F32].pipeline; break; - case GGML_TYPE_I32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F32_I32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F32_F16].pipeline; break; - case GGML_TYPE_BF16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F32_BF16].pipeline; break; - case GGML_TYPE_Q8_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F32_Q8_0].pipeline; break; - case GGML_TYPE_Q4_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F32_Q4_0].pipeline; break; - case GGML_TYPE_Q4_1: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F32_Q4_1].pipeline; break; - case GGML_TYPE_Q5_0: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F32_Q5_0].pipeline; break; - case GGML_TYPE_Q5_1: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F32_Q5_1].pipeline; break; - case GGML_TYPE_IQ4_NL: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F32_IQ4_NL].pipeline; break; - default: GGML_ABORT("not implemented"); - }; - } break; - case GGML_TYPE_I32: - { - switch (dstt) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_I32_F32].pipeline; break; - default: GGML_ABORT("not implemented"); - }; - } break; - case GGML_TYPE_F16: - { - switch (dstt) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F16_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_F16_F16].pipeline; break; - default: GGML_ABORT("not implemented"); - }; - } break; - case GGML_TYPE_BF16: - { - switch (dstt) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_BF16_F32].pipeline; break; - case GGML_TYPE_BF16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_BF16_BF16].pipeline; break; - default: GGML_ABORT("not implemented"); - }; - } break; - case GGML_TYPE_Q4_0: - { - switch (dstt) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_Q4_0_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_Q4_0_F16].pipeline; break; - default: GGML_ABORT("not implemented"); - }; - } break; - case GGML_TYPE_Q4_1: - { - switch (dstt) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_Q4_1_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_Q4_1_F16].pipeline; break; - default: GGML_ABORT("not implemented"); - }; - } break; - case GGML_TYPE_Q5_0: - { - switch (dstt) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_Q5_0_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_Q5_0_F16].pipeline; break; - default: GGML_ABORT("not implemented"); - }; - } break; - case GGML_TYPE_Q5_1: - { - switch (dstt) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_Q5_1_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_Q5_1_F16].pipeline; break; - default: GGML_ABORT("not implemented"); - }; - } break; - case GGML_TYPE_Q8_0: - { - switch (dstt) { - case GGML_TYPE_F32: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_Q8_0_F32].pipeline; break; - case GGML_TYPE_F16: pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_CPY_Q8_0_F16].pipeline; break; - default: GGML_ABORT("not implemented"); - }; - } break; - default: GGML_ABORT("not implemented"); - } - - GGML_ASSERT(ne00 % ggml_blck_size(src0->type) == 0); - - // TODO: support - //const int32_t nk00 = ne00/ggml_blck_size(dst->type); - const int32_t nk00 = ne00; - - int nth = 32; // SIMD width - - while (nth < nk00 && nth < (int) pipeline.maxTotalThreadsPerThreadgroup) { - nth *= 2; - } - - nth = MIN(nth, (int) pipeline.maxTotalThreadsPerThreadgroup); - - // when rows are small, we can batch them together in a single threadgroup - int nrptg = 1; - - // TODO: relax this constraint in the future - if (ggml_blck_size(src0->type) == 1 && ggml_blck_size(dst->type) == 1) { - if (nth > nk00) { - nrptg = (nth + nk00 - 1)/nk00; - nth = nk00; - - if (nrptg*nth > (int) pipeline.maxTotalThreadsPerThreadgroup) { - nrptg--; - } - } - } - - nth = MIN(nth, nk00); - - ggml_metal_kargs_cpy args = { - /*.ne00 =*/ nk00, - /*.ne01 =*/ ne01, - /*.ne02 =*/ ne02, - /*.ne03 =*/ ne03, - /*.nb00 =*/ nb00, - /*.nb01 =*/ nb01, - /*.nb02 =*/ nb02, - /*.nb03 =*/ nb03, - /*.ne0 =*/ ne0, - /*.ne1 =*/ ne1, - /*.ne2 =*/ ne2, - /*.ne3 =*/ ne3, - /*.nb0 =*/ nb0, - /*.nb1 =*/ nb1, - /*.nb2 =*/ nb2, - /*.nb3 =*/ nb3, - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBytes:&args length:sizeof(args) atIndex:0]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:1]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:2]; - - [encoder dispatchThreadgroups:MTLSizeMake((ne01 + nrptg - 1)/nrptg, ne02, ne03) threadsPerThreadgroup:MTLSizeMake(nth, nrptg, 1)]; - } break; - case GGML_OP_POOL_2D: - { - GGML_ASSERT(ggml_is_contiguous(src0)); - GGML_ASSERT(src0t == GGML_TYPE_F32 && src0t == dstt); - - const int32_t * opts = dst->op_params; - enum ggml_op_pool op = opts[0]; - - id pipeline = nil; - switch (src0t) { - case GGML_TYPE_F32: { - switch(op) { - case GGML_OP_POOL_AVG: - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_POOL_2D_AVG_F32].pipeline; break; - case GGML_OP_POOL_MAX: - pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_POOL_2D_MAX_F32].pipeline; break; - default: GGML_ASSERT(false && "not implemented"); - } - } break; - default: GGML_ASSERT(false && "not implemented"); - } - - const int32_t k0 = opts[1]; - const int32_t k1 = opts[2]; - const int32_t s0 = opts[3]; - const int32_t s1 = opts[4]; - const int32_t p0 = opts[5]; - const int32_t p1 = opts[6]; - - const int64_t IH = src0->ne[1]; - const int64_t IW = src0->ne[0]; - - const int64_t N = dst->ne[3]; - const int64_t OC = dst->ne[2]; - const int64_t OH = dst->ne[1]; - const int64_t OW = dst->ne[0]; - - const int64_t parallel_elements = N * OC * OH * OW; - const int64_t n_threads = MIN((int64_t)[pipeline maxTotalThreadsPerThreadgroup], parallel_elements); - const int64_t n_tg = (parallel_elements + n_threads - 1) / n_threads; - - ggml_metal_kargs_pool_2d args_pool_2d = { - /* .k0 = */ k0, - /* .k1 = */ k1, - /* .s0 = */ s0, - /* .s1 = */ s1, - /* .p0 = */ p0, - /* .p1 = */ p1, - /* .IH = */ IH, - /* .IW = */ IW, - /* .OH = */ OH, - /* .OW = */ OW, - /* .parallel_elements = */ parallel_elements - }; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&args_pool_2d length:sizeof(args_pool_2d) atIndex:2]; - - [encoder dispatchThreadgroups:MTLSizeMake(n_tg, 1, 1) threadsPerThreadgroup:MTLSizeMake(n_threads, 1, 1)]; - } break; - case GGML_OP_ARGMAX: - { - GGML_ASSERT(src0->type == GGML_TYPE_F32); - GGML_ASSERT(ggml_is_contiguous_1(src0)); - GGML_ASSERT(nb00 == ggml_type_size(src0->type)); - - const int64_t nrows = ggml_nrows(src0); - - int nth = 32; // SIMD width - while (nth < ne00 && nth*ne01*ne02*ne03 < 256) { - nth *= 2; - } - - id pipeline = ctx->kernels[GGML_METAL_KERNEL_TYPE_ARGMAX].pipeline; - - [encoder setComputePipelineState:pipeline]; - [encoder setBuffer:id_src0 offset:offs_src0 atIndex:0]; - [encoder setBuffer:id_dst offset:offs_dst atIndex:1]; - [encoder setBytes:&ne00 length:sizeof( int64_t) atIndex:2]; - [encoder setBytes:&nb01 length:sizeof(uint64_t) atIndex:3]; - [encoder setThreadgroupMemoryLength:32*sizeof(float) atIndex:0]; - [encoder setThreadgroupMemoryLength:32*sizeof(int32_t) atIndex:1]; - - [encoder dispatchThreadgroups:MTLSizeMake(nrows, 1, 1) threadsPerThreadgroup:MTLSizeMake(nth, 1, 1)]; - } break; - default: - { - GGML_LOG_ERROR("%s: error: node %3d, op = %8s not implemented\n", __func__, idx, ggml_op_name(dst->op)); - GGML_ABORT("fatal error"); - } - } - - if (ctx_dev->debug_graph > 0) { - if (n_fuse > 1) { - GGML_LOG_DEBUG("%s: fuse %d ops\n", __func__, n_fuse); - } - } - - // update the mem ranges in the encoding context - for (int i = 0; i < n_fuse; ++i) { - if (!ggml_metal_encode_concurrency_add(ctx_enc, nodes[i])) { - ggml_metal_encode_concurrency_reset(ctx_enc); - } - } - - return n_fuse; -} - -static enum ggml_status ggml_metal_graph_compute( - ggml_backend_t backend, - struct ggml_cgraph * gf) { - struct ggml_backend_metal_context * ctx = backend->context; - struct ggml_backend_metal_device_context * ctx_dev = backend->device->context; - - // number of nodes encoded by the main thread (empirically determined) - const int n_main = 64; - - // number of threads in addition to the main thread - const int n_cb = ctx->n_cb; - - // submit the ggml compute graph to the GPU by creating command buffers and encoding the ops in them - // the first n_nodes_0 are encoded and submitted for processing directly by the calling thread - // while these nodes are processing, we start n_cb threads to enqueue the rest of the nodes - // each thread creates it's own command buffer and enqueues the ops in parallel - // - // tests on M1 Pro and M2 Ultra using LLaMA models, show that optimal values for n_cb are 1 or 2 - - @autoreleasepool { - ctx->gf = gf; - - ctx->n_nodes_0 = MIN(n_main, gf->n_nodes); - ctx->n_nodes_1 = gf->n_nodes - ctx->n_nodes_0; - - ctx->n_nodes_per_cb = (ctx->n_nodes_1 + ctx->n_cb - 1) / ctx->n_cb; - - const bool should_capture = ctx->capture_next_compute; - if (should_capture) { - ctx->capture_next_compute = false; - - // make sure all previous computations have finished before starting the capture - if (ctx->cmd_buf_last) { - [ctx->cmd_buf_last waitUntilCompleted]; - ctx->cmd_buf_last = nil; - } - - if (!ctx->capture_started) { - // create capture scope - ctx->capture_scope = [[MTLCaptureManager sharedCaptureManager] newCaptureScopeWithDevice:ctx_dev->mtl_device]; - - MTLCaptureDescriptor * descriptor = [MTLCaptureDescriptor new]; - descriptor.captureObject = ctx->capture_scope; - descriptor.destination = MTLCaptureDestinationGPUTraceDocument; - descriptor.outputURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"/tmp/perf-metal.gputrace"]]; - - NSError * error = nil; - if (![[MTLCaptureManager sharedCaptureManager] startCaptureWithDescriptor:descriptor error:&error]) { - GGML_LOG_ERROR("%s: error: unable to start capture '%s'\n", __func__, [[error localizedDescription] UTF8String]); - } else { - [ctx->capture_scope beginScope]; - ctx->capture_started = true; - } - } - } - - // the main thread commits the first few commands immediately - // cmd_buf[n_cb] - { - id cmd_buf = [ctx->queue commandBufferWithUnretainedReferences]; - [cmd_buf retain]; - - if (ctx->cmd_bufs[n_cb].obj) { - [ctx->cmd_bufs[n_cb].obj release]; - } - ctx->cmd_bufs[n_cb].obj = cmd_buf; - - [cmd_buf enqueue]; - - ctx->encode_async(n_cb); - } - - // remember the command buffer for the next iteration - ctx->cmd_buf_last = ctx->cmd_bufs[n_cb].obj; - - // prepare the rest of the command buffers asynchronously (optional) - // cmd_buf[0.. n_cb) - for (int cb_idx = 0; cb_idx < n_cb; ++cb_idx) { - id cmd_buf = [ctx->queue commandBufferWithUnretainedReferences]; - [cmd_buf retain]; - - if (ctx->cmd_bufs[cb_idx].obj) { - [ctx->cmd_bufs[cb_idx].obj release]; - } - ctx->cmd_bufs[cb_idx].obj = cmd_buf; - - // always enqueue the first two command buffers - // enqueue all of the command buffers if we don't need to abort - if (cb_idx < 2 || ctx->abort_callback == NULL) { - [cmd_buf enqueue]; - - // update the pointer to the last queued command buffer - // this is needed to implement synchronize() - ctx->cmd_buf_last = cmd_buf; - } - } - - dispatch_apply(n_cb, ctx->d_queue, ctx->encode_async); - - // for debugging: block until graph is computed - //[ctx->cmd_buf_last waitUntilCompleted]; - - // enter here only when capturing in order to wait for all computation to finish - // otherwise, we leave the graph to compute asynchronously - if (!should_capture && ctx->capture_started) { - // wait for completion and check status of each command buffer - // needed to detect if the device ran out-of-memory for example (#1881) - { - id cmd_buf = ctx->cmd_bufs[n_cb].obj; - [cmd_buf waitUntilCompleted]; - - MTLCommandBufferStatus status = [cmd_buf status]; - if (status != MTLCommandBufferStatusCompleted) { - GGML_LOG_INFO("%s: command buffer %d failed with status %lu\n", __func__, n_cb, status); - if (status == MTLCommandBufferStatusError) { - GGML_LOG_INFO("error: %s\n", [[cmd_buf error].localizedDescription UTF8String]); - } - - return GGML_STATUS_FAILED; - } - } - - for (int i = 0; i < n_cb; ++i) { - id cmd_buf = ctx->cmd_bufs[i].obj; - [cmd_buf waitUntilCompleted]; - - MTLCommandBufferStatus status = [cmd_buf status]; - if (status != MTLCommandBufferStatusCompleted) { - GGML_LOG_INFO("%s: command buffer %d failed with status %lu\n", __func__, i, status); - if (status == MTLCommandBufferStatusError) { - GGML_LOG_INFO("error: %s\n", [[cmd_buf error].localizedDescription UTF8String]); - } - - return GGML_STATUS_FAILED; - } - - id next_buffer = (i + 1 < n_cb ? ctx->cmd_bufs[i + 1].obj : nil); - if (!next_buffer) { - continue; - } - - const bool next_queued = ([next_buffer status] != MTLCommandBufferStatusNotEnqueued); - if (next_queued) { - continue; - } - - if (ctx->abort_callback && ctx->abort_callback(ctx->abort_callback_data)) { - GGML_LOG_INFO("%s: command buffer %d aborted", __func__, i); - return GGML_STATUS_ABORTED; - } - - [next_buffer commit]; - } - - [ctx->capture_scope endScope]; - [[MTLCaptureManager sharedCaptureManager] stopCapture]; - } - } - - return GGML_STATUS_SUCCESS; -} - -//////////////////////////////////////////////////////////////////////////////// -// backend interface -//////////////////////////////////////////////////////////////////////////////// - -// shared buffer - -static void ggml_backend_metal_buffer_shared_free_buffer(ggml_backend_buffer_t buffer) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - for (int i = 0; i < ctx->n_buffers; i++) { - [ctx->buffers[i].metal release]; - } - - ggml_backend_metal_buffer_rset_free(ctx); - - GGML_ASSERT(ctx->is_shared); - - { -#if TARGET_OS_OSX - vm_deallocate((vm_map_t)mach_task_self(), (vm_address_t)ctx->all_data, ctx->all_size); -#else - free(ctx->all_data); -#endif - } - - free(ctx); -} - -static void * ggml_backend_metal_buffer_shared_get_base(ggml_backend_buffer_t buffer) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - return ctx->all_data; -} - -static void ggml_backend_metal_buffer_shared_memset_tensor(ggml_backend_buffer_t buffer, struct ggml_tensor * tensor, uint8_t value, size_t offset, size_t size) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - GGML_ASSERT(ctx->is_shared); - - memset((char *)tensor->data + offset, value, size); -} - -static void ggml_backend_metal_buffer_shared_set_tensor(ggml_backend_buffer_t buffer, struct ggml_tensor * tensor, const void * data, size_t offset, size_t size) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - GGML_ASSERT(ctx->is_shared); - - memcpy((char *)tensor->data + offset, data, size); -} - -static void ggml_backend_metal_buffer_shared_get_tensor(ggml_backend_buffer_t buffer, const struct ggml_tensor * tensor, void * data, size_t offset, size_t size) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - GGML_ASSERT(ctx->is_shared); - - memcpy(data, (const char *)tensor->data + offset, size); -} - -static bool ggml_backend_metal_buffer_shared_cpy_tensor(ggml_backend_buffer_t buffer, const struct ggml_tensor * src, struct ggml_tensor * dst) { - GGML_UNUSED(buffer); - GGML_UNUSED(src); - GGML_UNUSED(dst); - - return false; -} - -static void ggml_backend_metal_buffer_shared_clear(ggml_backend_buffer_t buffer, uint8_t value) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - GGML_ASSERT(ctx->is_shared); - - memset(ctx->all_data, value, ctx->all_size); -} - -static struct ggml_backend_buffer_i ggml_backend_metal_buffer_shared_i = { - /* .free_buffer = */ ggml_backend_metal_buffer_shared_free_buffer, - /* .get_base = */ ggml_backend_metal_buffer_shared_get_base, - /* .init_tensor = */ NULL, - /* .memset_tensor = */ ggml_backend_metal_buffer_shared_memset_tensor, - /* .set_tensor = */ ggml_backend_metal_buffer_shared_set_tensor, - /* .get_tensor = */ ggml_backend_metal_buffer_shared_get_tensor, - /* .cpy_tensor = */ ggml_backend_metal_buffer_shared_cpy_tensor, - /* .clear = */ ggml_backend_metal_buffer_shared_clear, - /* .reset = */ NULL, -}; - -// private buffer - -static void ggml_backend_metal_buffer_private_free_buffer(ggml_backend_buffer_t buffer) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - for (int i = 0; i < ctx->n_buffers; i++) { - [ctx->buffers[i].metal release]; - } - - ggml_backend_metal_buffer_rset_free(ctx); - - GGML_ASSERT(!ctx->is_shared); - - free(ctx); -} - -static void * ggml_backend_metal_buffer_private_get_base(ggml_backend_buffer_t buffer) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - return ctx->all_data; -} - -static void ggml_backend_metal_buffer_private_memset_tensor(ggml_backend_buffer_t buffer, struct ggml_tensor * tensor, uint8_t value, size_t offset, size_t size) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - GGML_ASSERT(!ctx->is_shared); - - @autoreleasepool { - // dst - size_t buf_dst_offset = 0; - id buf_dst = ggml_metal_get_buffer(tensor, &buf_dst_offset); - - buf_dst_offset += offset; - - id queue = ctx->queue; - id cmd_buf = [queue commandBufferWithUnretainedReferences]; - - { - id encoder = [cmd_buf blitCommandEncoder]; - - [encoder fillBuffer:buf_dst - range:NSMakeRange(buf_dst_offset, buf_dst_offset + size) - value:value]; - - [encoder endEncoding]; - } - - [cmd_buf commit]; - [cmd_buf waitUntilCompleted]; - } -} - -static void ggml_backend_metal_buffer_private_set_tensor(ggml_backend_buffer_t buffer, struct ggml_tensor * tensor, const void * data, size_t offset, size_t size) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - GGML_ASSERT(!ctx->is_shared); - - @autoreleasepool { - // src - void * data_ptr = (void *)(uintptr_t) data; // "const cast" the src data - id buf_src = [ctx->device newBufferWithBytesNoCopy:data_ptr - length:size - options:MTLResourceStorageModeShared - deallocator:nil]; - - // dst - size_t buf_dst_offset = 0; - id buf_dst = ggml_metal_get_buffer(tensor, &buf_dst_offset); - - buf_dst_offset += offset; - - // note: for experimentation purposes, here we use a semaphore to wait for the copy to complete - // this is alternative to waitUntilCompleted, which should be faster, but don't seem to make much difference - dispatch_semaphore_t completion_semaphore = dispatch_semaphore_create(0); - - id queue = ctx->queue; - id cmd_buf = [queue commandBufferWithUnretainedReferences]; - - { - id encoder = [cmd_buf blitCommandEncoder]; - - [encoder copyFromBuffer:buf_src - sourceOffset:0 - toBuffer:buf_dst - destinationOffset:buf_dst_offset - size:size]; - - [encoder endEncoding]; - } - - [cmd_buf addCompletedHandler:^(id cb) { - // TODO: can check for errors here - GGML_UNUSED(cb); - - dispatch_semaphore_signal(completion_semaphore); - }]; - - [cmd_buf commit]; - - dispatch_semaphore_wait(completion_semaphore, DISPATCH_TIME_FOREVER); - //[cmd_buf waitUntilCompleted]; - } -} - -static void ggml_backend_metal_buffer_private_get_tensor(ggml_backend_buffer_t buffer, const struct ggml_tensor * tensor, void * data, size_t offset, size_t size) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - GGML_ASSERT(!ctx->is_shared); - - @autoreleasepool { - // src - size_t buf_src_offset = 0; - id buf_src = ggml_metal_get_buffer(tensor, &buf_src_offset); - - buf_src_offset += offset; - - // dst - id buf_dst = [ctx->device newBufferWithBytesNoCopy:data - length:size - options:MTLResourceStorageModeShared - deallocator:nil]; - - id queue = ctx->queue; - id cmd_buf = [queue commandBufferWithUnretainedReferences]; - - { - id encoder = [cmd_buf blitCommandEncoder]; - - [encoder copyFromBuffer:buf_src - sourceOffset:buf_src_offset - toBuffer:buf_dst - destinationOffset:0 - size:size]; - - [encoder endEncoding]; - } - - [cmd_buf commit]; - [cmd_buf waitUntilCompleted]; - } -} - -static bool ggml_backend_metal_buffer_private_cpy_tensor(ggml_backend_buffer_t buffer, const struct ggml_tensor * src, struct ggml_tensor * dst) { - GGML_UNUSED(buffer); - GGML_UNUSED(src); - GGML_UNUSED(dst); - - return false; -} - -static void ggml_backend_metal_buffer_private_clear(ggml_backend_buffer_t buffer, uint8_t value) { - struct ggml_backend_metal_buffer_context * ctx = (struct ggml_backend_metal_buffer_context *)buffer->context; - - GGML_ASSERT(!ctx->is_shared); - - @autoreleasepool { - id queue = ctx->queue; - id cmd_buf = [queue commandBufferWithUnretainedReferences]; - - { - id encoder = [cmd_buf blitCommandEncoder]; - - [encoder fillBuffer:ctx->buffers[0].metal - range:NSMakeRange(0, ctx->buffers[0].size) - value:value]; - - [encoder endEncoding]; - } - - [cmd_buf commit]; - [cmd_buf waitUntilCompleted]; - } -} - -static struct ggml_backend_buffer_i ggml_backend_metal_buffer_private_i = { - /* .free_buffer = */ ggml_backend_metal_buffer_private_free_buffer, - /* .get_base = */ ggml_backend_metal_buffer_private_get_base, - /* .init_tensor = */ NULL, - /* .memset_tensor = */ ggml_backend_metal_buffer_private_memset_tensor, - /* .set_tensor = */ ggml_backend_metal_buffer_private_set_tensor, - /* .get_tensor = */ ggml_backend_metal_buffer_private_get_tensor, - /* .cpy_tensor = */ ggml_backend_metal_buffer_private_cpy_tensor, - /* .clear = */ ggml_backend_metal_buffer_private_clear, - /* .reset = */ NULL, -}; - -// -// buffer types -// - -static void ggml_backend_metal_log_allocated_size(id device, size_t size_aligned) { -#ifndef GGML_METAL_NDEBUG -#if TARGET_OS_OSX || (TARGET_OS_IOS && __clang_major__ >= 15) - if (@available(macOS 10.12, iOS 16.0, *)) { - GGML_LOG_DEBUG("%s: allocated buffer, size = %8.2f MiB, (%8.2f / %8.2f)\n", - __func__, - size_aligned / 1024.0 / 1024.0, - device.currentAllocatedSize / 1024.0 / 1024.0, - device.recommendedMaxWorkingSetSize / 1024.0 / 1024.0); - - if (device.currentAllocatedSize > device.recommendedMaxWorkingSetSize) { - GGML_LOG_WARN("%s: warning: current allocated size is greater than the recommended max working set size\n", __func__); - } - } else { - GGML_LOG_INFO("%s: allocated buffer, size = %8.2f MiB, (%8.2f)\n", - __func__, - size_aligned / 1024.0 / 1024.0, - device.currentAllocatedSize / 1024.0 / 1024.0); - } -#endif -#endif - GGML_UNUSED(device); - GGML_UNUSED(size_aligned); -} - -// common method for allocating shread or private Metal buffers -static ggml_backend_buffer_t ggml_backend_metal_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size, bool shared) { - struct ggml_backend_metal_buffer_context * ctx = calloc(1, sizeof(struct ggml_backend_metal_buffer_context)); - - const size_t size_page = sysconf(_SC_PAGESIZE); - - size_t size_aligned = size; - if ((size_aligned % size_page) != 0) { - size_aligned += (size_page - (size_aligned % size_page)); - } - - struct ggml_backend_metal_device_context * ctx_dev = (struct ggml_backend_metal_device_context *)buft->device->context; - - GGML_ASSERT(ctx_dev->mtl_device != nil); - - id device = ctx_dev->mtl_device; - - // allocate shared buffer if the device supports it and it is required by the buffer type - if (ctx_dev->use_shared_buffers && shared) { - ctx->all_data = ggml_metal_host_malloc(size_aligned); - ctx->is_shared = true; - } else { - // dummy, non-NULL value - we'll populate this after creating the Metal buffer below - ctx->all_data = (void *) 0x000000400ULL; - ctx->is_shared = false; - } - ctx->all_size = size_aligned; - - ctx->device = device; - ctx->queue = ctx_dev->mtl_queue; - - ctx->n_buffers = 1; - - if (ctx->all_data != NULL) { - ctx->buffers[0].size = size; - ctx->buffers[0].metal = nil; - - if (size_aligned > 0) { - if (ctx_dev->use_shared_buffers) { - ctx->buffers[0].metal = [device newBufferWithBytesNoCopy:ctx->all_data - length:size_aligned - options:MTLResourceStorageModeShared - deallocator:nil]; - } else { - ctx->buffers[0].metal = [device newBufferWithLength:size_aligned options:MTLResourceStorageModePrivate]; - - ctx->all_data = (void *) (ctx->buffers[0].metal.gpuAddress); - } - } - - ctx->buffers[0].data = ctx->all_data; - } - - if (size_aligned > 0 && (ctx->all_data == NULL || ctx->buffers[0].metal == nil)) { - GGML_LOG_ERROR("%s: error: failed to allocate buffer, size = %8.2f MiB\n", __func__, size_aligned / 1024.0 / 1024.0); - free(ctx); - return NULL; - } - - if (!ggml_backend_metal_buffer_rset_init(ctx, ctx_dev, device)) { - GGML_LOG_ERROR("%s: error: failed to initialize residency set\n", __func__); - free(ctx); - return NULL; - } - - //ggml_backend_metal_log_allocated_size(device, size_aligned); - - struct ggml_backend_buffer_i buf_i = ctx->is_shared ? ggml_backend_metal_buffer_shared_i : ggml_backend_metal_buffer_private_i; - - return ggml_backend_buffer_init(buft, buf_i, ctx, size); -} - -static size_t ggml_backend_metal_buffer_type_get_alloc_size(ggml_backend_buffer_type_t buft, const struct ggml_tensor * tensor) { - size_t res = ggml_nbytes(tensor); - - // some operations require additional memory for fleeting data: - switch (tensor->op) { - case GGML_OP_MUL_MAT_ID: - { - res += ggml_metal_mul_mat_id_extra_tpe(tensor); - res += ggml_metal_mul_mat_id_extra_ids(tensor); - } break; - case GGML_OP_FLASH_ATTN_EXT: - { - if (ggml_metal_flash_attn_ext_use_vec(tensor)) { - res += ggml_metal_flash_attn_ext_extra_tmp(tensor); - } - } break; - default: - break; - } - - return res; - - GGML_UNUSED(buft); -} - -// default (shared) buffer type - -static const char * ggml_backend_metal_buffer_type_shared_get_name(ggml_backend_buffer_type_t buft) { - return "Metal"; - - GGML_UNUSED(buft); -} - -static ggml_backend_buffer_t ggml_backend_metal_buffer_type_shared_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) { - return ggml_backend_metal_buffer_type_alloc_buffer(buft, size, true); -} - -static size_t ggml_backend_metal_buffer_type_shared_get_alignment(ggml_backend_buffer_type_t buft) { - return 32; - - GGML_UNUSED(buft); -} - -static size_t ggml_backend_metal_buffer_type_shared_get_max_size(ggml_backend_buffer_type_t buft) { - const size_t max_size = ((struct ggml_backend_metal_device_context *)buft->device->context)->max_size; - - return max_size; -} - -static size_t ggml_backend_metal_buffer_type_shared_get_alloc_size(ggml_backend_buffer_type_t buft, const struct ggml_tensor * tensor) { - return ggml_backend_metal_buffer_type_get_alloc_size(buft, tensor); -} - -static bool ggml_backend_metal_buffer_type_shared_is_host(ggml_backend_buffer_type_t buft) { - return false; - - GGML_UNUSED(buft); -} - -static ggml_backend_buffer_type_t ggml_backend_metal_buffer_type_shared(void) { - static struct ggml_backend_buffer_type ggml_backend_buffer_type_metal = { - /* .iface = */ { - /* .get_name = */ ggml_backend_metal_buffer_type_shared_get_name, - /* .alloc_buffer = */ ggml_backend_metal_buffer_type_shared_alloc_buffer, - /* .get_alignment = */ ggml_backend_metal_buffer_type_shared_get_alignment, - /* .get_max_size = */ ggml_backend_metal_buffer_type_shared_get_max_size, - /* .get_alloc_size = */ ggml_backend_metal_buffer_type_shared_get_alloc_size, - /* .is_host = */ ggml_backend_metal_buffer_type_shared_is_host, - }, - /* .device = */ &g_ggml_backend_metal_device, - /* .context = */ NULL, - }; - - return &ggml_backend_buffer_type_metal; -} - -// default (private) buffer type - -static const char * ggml_backend_metal_buffer_type_private_get_name(ggml_backend_buffer_type_t buft) { - return "Metal_Private"; - - GGML_UNUSED(buft); -} - -static ggml_backend_buffer_t ggml_backend_metal_buffer_type_private_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) { - return ggml_backend_metal_buffer_type_alloc_buffer(buft, size, false); -} - -static size_t ggml_backend_metal_buffer_type_private_get_alignment(ggml_backend_buffer_type_t buft) { - return 32; - - GGML_UNUSED(buft); -} - -static size_t ggml_backend_metal_buffer_type_private_get_max_size(ggml_backend_buffer_type_t buft) { - const size_t max_size = ((struct ggml_backend_metal_device_context *)buft->device->context)->max_size; - - return max_size; -} - -static size_t ggml_backend_metal_buffer_type_private_get_alloc_size(ggml_backend_buffer_type_t buft, const struct ggml_tensor * tensor) { - return ggml_backend_metal_buffer_type_get_alloc_size(buft, tensor); -} - -static bool ggml_backend_metal_buffer_type_private_is_host(ggml_backend_buffer_type_t buft) { - return false; - - GGML_UNUSED(buft); -} - -static ggml_backend_buffer_type_t ggml_backend_metal_buffer_type_private(void) { - static struct ggml_backend_buffer_type ggml_backend_buffer_type_metal = { - /* .iface = */ { - /* .get_name = */ ggml_backend_metal_buffer_type_private_get_name, - /* .alloc_buffer = */ ggml_backend_metal_buffer_type_private_alloc_buffer, - /* .get_alignment = */ ggml_backend_metal_buffer_type_private_get_alignment, - /* .get_max_size = */ ggml_backend_metal_buffer_type_private_get_max_size, - /* .get_alloc_size = */ ggml_backend_metal_buffer_type_private_get_alloc_size, - /* .is_host = */ ggml_backend_metal_buffer_type_private_is_host, - }, - /* .device = */ &g_ggml_backend_metal_device, - /* .context = */ NULL, - }; - - return &ggml_backend_buffer_type_metal; -} - -// mapped buffer type - -static const char * ggml_backend_metal_buffer_type_mapped_get_name(ggml_backend_buffer_type_t buft) { - return "Metal_Mapped"; - - GGML_UNUSED(buft); -} - -static ggml_backend_buffer_t ggml_backend_metal_buffer_type_mapped_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) { - // for mapped buffers, prefer shared memory - return ggml_backend_metal_buffer_type_alloc_buffer(buft, size, true); -} - -static size_t ggml_backend_metal_buffer_type_mapped_get_alignment(ggml_backend_buffer_type_t buft) { - return 32; - - GGML_UNUSED(buft); -} - -static size_t ggml_backend_metal_buffer_type_mapped_get_max_size(ggml_backend_buffer_type_t buft) { - const size_t max_size = ((struct ggml_backend_metal_device_context *)buft->device->context)->max_size; - - return max_size; -} - -static size_t ggml_backend_metal_buffer_type_mapped_get_alloc_size(ggml_backend_buffer_type_t buft, const struct ggml_tensor * tensor) { - return ggml_backend_metal_buffer_type_get_alloc_size(buft, tensor); -} - -static bool ggml_backend_metal_buffer_type_mapped_is_host(ggml_backend_buffer_type_t buft) { - return false; - - GGML_UNUSED(buft); -} - -static ggml_backend_buffer_type_t ggml_backend_metal_buffer_type_mapped(void) { - // note: not obvious, but this buffer type still needs to implement .alloc_buffer: - // https://github.com/ggml-org/llama.cpp/pull/15832#discussion_r2333177099 - static struct ggml_backend_buffer_type ggml_backend_buffer_type_mapped_metal = { - /* .iface = */ { - /* .get_name = */ ggml_backend_metal_buffer_type_mapped_get_name, - /* .alloc_buffer = */ ggml_backend_metal_buffer_type_mapped_alloc_buffer, - /* .get_alignment = */ ggml_backend_metal_buffer_type_mapped_get_alignment, - /* .get_max_size = */ ggml_backend_metal_buffer_type_mapped_get_max_size, - /* .get_alloc_size = */ ggml_backend_metal_buffer_type_mapped_get_alloc_size, - /* .is_host = */ ggml_backend_metal_buffer_type_mapped_is_host, - }, - /* .device = */ &g_ggml_backend_metal_device, - /* .context = */ NULL, - }; - - return &ggml_backend_buffer_type_mapped_metal; -} - -// backend - -static const char * ggml_backend_metal_name(ggml_backend_t backend) { - return "Metal"; - - GGML_UNUSED(backend); -} - -static void ggml_backend_metal_free(ggml_backend_t backend) { - struct ggml_backend_metal_context * ctx = backend->context; - - ggml_metal_free(ctx); - - free(backend); -} - -static void ggml_backend_metal_synchronize(ggml_backend_t backend) { - struct ggml_backend_metal_context * ctx = backend->context; - - // wait for any backend operations to finish - if (ctx->cmd_buf_last) { - [ctx->cmd_buf_last waitUntilCompleted]; - ctx->cmd_buf_last = nil; - } - - // release any completed command buffers - if (ctx->cmd_bufs_ext.count > 0) { - for (size_t i = 0; i < ctx->cmd_bufs_ext.count; ++i) { - id cmd_buf = ctx->cmd_bufs_ext[i]; - - MTLCommandBufferStatus status = [cmd_buf status]; - if (status != MTLCommandBufferStatusCompleted) { - GGML_LOG_ERROR("%s: error: command buffer %d failed with status %d\n", __func__, (int) i, (int) status); - if (status == MTLCommandBufferStatusError) { - GGML_LOG_ERROR("error: %s\n", [[cmd_buf error].localizedDescription UTF8String]); - } - GGML_ABORT("fatal error"); - } - - [cmd_buf release]; - } - - [ctx->cmd_bufs_ext removeAllObjects]; - } -} - -static void ggml_backend_metal_set_tensor_async(ggml_backend_t backend, struct ggml_tensor * tensor, const void * data, size_t offset, size_t size) { - struct ggml_backend_metal_context * ctx = backend->context; - struct ggml_backend_metal_device_context * ctx_dev = backend->device->context; - - @autoreleasepool { - id device = ctx_dev->mtl_device; - - // wrap the source data into a Metal buffer - id buf_src = [device newBufferWithBytes:data - length:size - options:MTLResourceStorageModeShared]; - - size_t buf_dst_offset = 0; - id buf_dst = ggml_metal_get_buffer(tensor, &buf_dst_offset); - - if (buf_dst == nil) { - GGML_ABORT("%s: failed to find buffer for tensor '%s'\n", __func__, tensor->name); - } - - buf_dst_offset += offset; - - // queue the copy operation into the queue of the Metal context - // this will be queued at the end, after any currently ongoing GPU operations - id cmd_buf = [ctx->queue commandBufferWithUnretainedReferences]; - id encoder = [cmd_buf blitCommandEncoder]; - - [encoder copyFromBuffer:buf_src - sourceOffset:0 - toBuffer:buf_dst - destinationOffset:buf_dst_offset - size:size]; - - [encoder endEncoding]; - [cmd_buf commit]; - - // do not wait here for completion - //[cmd_buf waitUntilCompleted]; - - // instead, remember a reference to the command buffer and wait for it later if needed - [ctx->cmd_bufs_ext addObject:cmd_buf]; - ctx->cmd_buf_last = cmd_buf; - - [cmd_buf retain]; - } -} - -static void ggml_backend_metal_get_tensor_async(ggml_backend_t backend, const struct ggml_tensor * tensor, void * data, size_t offset, size_t size) { - struct ggml_backend_metal_context * ctx = backend->context; - struct ggml_backend_metal_device_context * ctx_dev = backend->device->context; - - @autoreleasepool { - id device = ctx_dev->mtl_device; - - id buf_dst = [device newBufferWithBytesNoCopy:data - length:size - options:MTLResourceStorageModeShared - deallocator:nil]; - - size_t buf_src_offset = 0; - id buf_src = ggml_metal_get_buffer(tensor, &buf_src_offset); - - if (buf_src == nil) { - GGML_ABORT("%s: failed to find buffer for tensor '%s'\n", __func__, tensor->name); - } - - buf_src_offset += offset; - - // queue the copy operation into the queue of the Metal context - // this will be queued at the end, after any currently ongoing GPU operations - id cmd_buf = [ctx->queue commandBufferWithUnretainedReferences]; - id encoder = [cmd_buf blitCommandEncoder]; - - [encoder copyFromBuffer:buf_src - sourceOffset:buf_src_offset - toBuffer:buf_dst - destinationOffset:0 - size:size]; - - [encoder endEncoding]; - [cmd_buf commit]; - - // do not wait here for completion - //[cmd_buf waitUntilCompleted]; - - // instead, remember a reference to the command buffer and wait for it later if needed - [ctx->cmd_bufs_ext addObject:cmd_buf]; - ctx->cmd_buf_last = cmd_buf; - - [cmd_buf retain]; - } -} - -static bool ggml_backend_metal_cpy_tensor_async(ggml_backend_t backend_src, ggml_backend_t backend_dst, const struct ggml_tensor * src, struct ggml_tensor * dst) { - return false; - - GGML_UNUSED(backend_src); - GGML_UNUSED(backend_dst); - GGML_UNUSED(src); - GGML_UNUSED(dst); -} - -static enum ggml_status ggml_backend_metal_graph_compute(ggml_backend_t backend, struct ggml_cgraph * cgraph) { - return ggml_metal_graph_compute(backend, cgraph); -} - -static void ggml_backend_metal_graph_optimize(ggml_backend_t backend, struct ggml_cgraph * cgraph) { - struct ggml_backend_metal_device_context * ctx_dev = backend->device->context; - - //const int64_t t_start = ggml_time_us(); - - if (ctx_dev->use_graph_optimize) { - ggml_metal_graph_optimize(cgraph); - } - - //printf("%s: graph optimize took %.3f ms\n", __func__, (ggml_time_us() - t_start) / 1000.0); -} - -static void ggml_backend_metal_set_n_cb(ggml_backend_t backend, int n_cb) { - GGML_ASSERT(ggml_backend_is_metal(backend)); - - struct ggml_backend_metal_context * ctx = (struct ggml_backend_metal_context *)backend->context; - - if (ctx->n_cb != n_cb) { - ctx->n_cb = MIN(n_cb, GGML_METAL_MAX_COMMAND_BUFFERS); - - if (ctx->n_cb > 2) { - GGML_LOG_WARN("%s: n_cb = %d, using n_cb > 2 is not recommended and can degrade the performance in some cases\n", __func__, n_cb); - } - } - - if (ctx->encode_async) { - Block_release(ctx->encode_async); - } - - ctx->encode_async = Block_copy(^(size_t iter) { - const int cb_idx = iter; - const int n_cb_l = ctx->n_cb; - - const int n_nodes_0 = ctx->n_nodes_0; - const int n_nodes_1 = ctx->n_nodes_1; - - const int n_nodes_per_cb = ctx->n_nodes_per_cb; - - id cmd_buf = ctx->cmd_bufs[cb_idx].obj; - struct ggml_mem_ranges * mem_ranges = ctx->cmd_bufs[cb_idx].mem_ranges; - - if (mem_ranges) { - ggml_mem_ranges_reset(mem_ranges); - } - - id encoder; - - struct ggml_backend_metal_device_context * ctx_dev = backend->device->context; - - if (ctx_dev->use_concurrency) { - encoder = [cmd_buf computeCommandEncoderWithDispatchType: MTLDispatchTypeConcurrent]; - } else { - encoder = [cmd_buf computeCommandEncoder]; - } - - int node_start = 0; - int node_end = n_nodes_0; - - if (cb_idx < n_cb_l) { - node_start = n_nodes_0 + ( (cb_idx + 0) * n_nodes_per_cb); - node_end = n_nodes_0 + (MIN((cb_idx == n_cb_l - 1) ? n_nodes_1 : (cb_idx + 1) * n_nodes_per_cb, n_nodes_1)); - } - - const bool should_capture = ctx->capture_next_compute; - - struct ggml_metal_encode_context ctx_enc = { - /*.backend =*/ backend, - /*.encoder =*/ encoder, - /*.mem_ranges =*/ mem_ranges, - }; - - for (int idx = node_start; idx < node_end;) { - if (should_capture) { - [encoder pushDebugGroup:[NSString stringWithCString:ggml_op_desc(ggml_graph_node(ctx->gf, idx)) encoding:NSUTF8StringEncoding]]; - } - - const int res = ggml_metal_encode_node(&ctx_enc, idx, node_end); - if (idx + res > node_end) { - GGML_ABORT("fusion error: nodes spanning multiple encoders have been fused. this indicates a bug in the fusion logic %s", - "https://github.com/ggml-org/llama.cpp/pull/14849"); - } - - if (should_capture) { - [encoder popDebugGroup]; - } - - if (res == 0) { - break; - } - - idx += res; - } - - [encoder endEncoding]; - - if (cb_idx < 2 || ctx->abort_callback == NULL) { - [cmd_buf commit]; - } - }); -} - -static struct ggml_backend_i ggml_backend_metal_i = { - /* .get_name = */ ggml_backend_metal_name, - /* .free = */ ggml_backend_metal_free, - /* .set_tensor_async = */ ggml_backend_metal_set_tensor_async, - /* .get_tensor_async = */ ggml_backend_metal_get_tensor_async, - /* .cpy_tensor_async = */ ggml_backend_metal_cpy_tensor_async, // only needed for multi-GPU setups - /* .synchronize = */ ggml_backend_metal_synchronize, - /* .graph_plan_create = */ NULL, - /* .graph_plan_free = */ NULL, - /* .graph_plan_update = */ NULL, - /* .graph_plan_compute = */ NULL, - /* .graph_compute = */ ggml_backend_metal_graph_compute, - - // the events API is needed only for multi-GPU setups, so likely no need to implement it for Metal - // in any case, these docs seem relevant if we ever decide to implement it: - // https://developer.apple.com/documentation/metal/mtlcommandbuffer#Synchronizing-Passes-with-Events - /* .event_record = */ NULL, - /* .event_wait = */ NULL, - /* .optimize_graph = */ ggml_backend_metal_graph_optimize, -}; - -static ggml_guid_t ggml_backend_metal_guid(void) { - static ggml_guid guid = { 0x81, 0xa1, 0x8b, 0x1e, 0x71, 0xec, 0x79, 0xed, 0x2b, 0x85, 0xdc, 0x8a, 0x61, 0x98, 0x30, 0xe6 }; - return &guid; -} - -// TODO: remove in the future -ggml_backend_t ggml_backend_metal_init(void) { - ggml_backend_dev_t dev = ggml_backend_reg_dev_get(ggml_backend_metal_reg(), 0); - - struct ggml_backend_metal_context * ctx = ggml_metal_init(dev); - if (ctx == NULL) { - GGML_LOG_ERROR("%s: error: failed to allocate context\n", __func__); - return NULL; - } - - ggml_backend_t backend = malloc(sizeof(struct ggml_backend)); - - *backend = (struct ggml_backend) { - /* .guid = */ ggml_backend_metal_guid(), - /* .interface = */ ggml_backend_metal_i, - /* .device = */ dev, - /* .context = */ ctx, - }; - - ggml_backend_metal_set_n_cb(backend, 1); - - return backend; -} - -bool ggml_backend_is_metal(ggml_backend_t backend) { - return backend != NULL && ggml_guid_matches(backend->guid, ggml_backend_metal_guid()); -} - -void ggml_backend_metal_set_abort_callback(ggml_backend_t backend, ggml_abort_callback abort_callback, void * user_data) { - GGML_ASSERT(ggml_backend_is_metal(backend)); - - struct ggml_backend_metal_context * ctx = (struct ggml_backend_metal_context *)backend->context; - - ctx->abort_callback = abort_callback; - ctx->abort_callback_data = user_data; -} - -bool ggml_backend_metal_supports_family(ggml_backend_t backend, int family) { - GGML_ASSERT(ggml_backend_is_metal(backend)); - - struct ggml_backend_metal_device_context * ctx_dev = backend->device->context; - - GGML_ASSERT(ctx_dev->mtl_device != nil); - - return [ctx_dev->mtl_device supportsFamily:(MTLGPUFamilyApple1 + family - 1)]; -} - -void ggml_backend_metal_capture_next_compute(ggml_backend_t backend) { - GGML_ASSERT(ggml_backend_is_metal(backend)); - - struct ggml_backend_metal_context * ctx = (struct ggml_backend_metal_context *)backend->context; - ctx->capture_next_compute = true; -} - -// backend device - -static const char * ggml_backend_metal_device_get_name(ggml_backend_dev_t dev) { - return "Metal"; - - GGML_UNUSED(dev); -} - -static const char * ggml_backend_metal_device_get_description(ggml_backend_dev_t dev) { - struct ggml_backend_metal_device_context * ctx_dev = (struct ggml_backend_metal_device_context *)dev->context; - - return ctx_dev->name; -} - -static void ggml_backend_metal_device_get_memory(ggml_backend_dev_t dev, size_t * free, size_t * total) { - if (@available(macOS 10.12, iOS 16.0, *)) { - struct ggml_backend_metal_device_context * ctx_dev = (struct ggml_backend_metal_device_context *)dev->context; - id device = ctx_dev->mtl_device; - - *total = device.recommendedMaxWorkingSetSize; - *free = *total - device.currentAllocatedSize; - } else { - *free = 1; - *total = 1; - } -} - -static enum ggml_backend_dev_type ggml_backend_metal_device_get_type(ggml_backend_dev_t dev) { - return GGML_BACKEND_DEVICE_TYPE_GPU; - - GGML_UNUSED(dev); -} - -static void ggml_backend_metal_device_get_props(ggml_backend_dev_t dev, struct ggml_backend_dev_props * props) { - props->name = ggml_backend_metal_device_get_name(dev); - props->description = ggml_backend_metal_device_get_description(dev); - props->type = ggml_backend_metal_device_get_type(dev); - ggml_backend_metal_device_get_memory(dev, &props->memory_free, &props->memory_total); - props->caps = (struct ggml_backend_dev_caps) { - /* .async = */ true, - /* .host_buffer = */ false, - /* .buffer_from_host_ptr = */ true, - /* .events = */ false, - }; -} - -static ggml_backend_t ggml_backend_metal_device_init(ggml_backend_dev_t dev, const char * params) { - struct ggml_backend_metal_context * ctx = ggml_metal_init(dev); - if (ctx == NULL) { - GGML_LOG_ERROR("%s: error: failed to allocate context\n", __func__); - return NULL; - } - - ggml_backend_t backend = malloc(sizeof(struct ggml_backend)); - - *backend = (struct ggml_backend) { - /* .guid = */ ggml_backend_metal_guid(), - /* .interface = */ ggml_backend_metal_i, - /* .device = */ dev, - /* .context = */ ctx, - }; - - ggml_backend_metal_set_n_cb(backend, 1); - - return backend; - - GGML_UNUSED(params); -} - -static ggml_backend_buffer_type_t ggml_backend_metal_device_get_buffer_type(ggml_backend_dev_t dev) { - struct ggml_backend_metal_device_context * ctx_dev = dev->context; - - return ctx_dev->use_shared_buffers ? ggml_backend_metal_buffer_type_shared() : ggml_backend_metal_buffer_type_private(); -} - -static ggml_backend_buffer_t ggml_backend_metal_device_buffer_mapped(ggml_backend_dev_t dev, void * ptr, size_t size, size_t max_tensor_size) { - struct ggml_backend_metal_buffer_context * ctx = calloc(1, sizeof(struct ggml_backend_metal_buffer_context)); - - ctx->all_data = ptr; - ctx->all_size = size; - - ctx->is_shared = true; - - ctx->n_buffers = 0; - - const size_t size_page = sysconf(_SC_PAGESIZE); - - // page-align the data ptr - { - const uintptr_t offs = (uintptr_t) ptr % size_page; - ptr = (void *) ((char *) ptr - offs); - size += offs; - } - - size_t size_aligned = size; - if ((size_aligned % size_page) != 0) { - size_aligned += (size_page - (size_aligned % size_page)); - } - - struct ggml_backend_metal_device_context * ctx_dev = (struct ggml_backend_metal_device_context *)dev->context; - - GGML_ASSERT(ctx_dev->mtl_device != nil); - - id device = ctx_dev->mtl_device; - - ctx->device = device; - ctx->queue = ctx_dev->mtl_queue; - - // the buffer fits into the max buffer size allowed by the device - if (size_aligned <= device.maxBufferLength) { - ctx->buffers[ctx->n_buffers].data = ptr; - ctx->buffers[ctx->n_buffers].size = size; - ctx->buffers[ctx->n_buffers].metal = nil; - - if (size_aligned > 0) { - ctx->buffers[ctx->n_buffers].metal = [device newBufferWithBytesNoCopy:ptr length:size_aligned options:MTLResourceStorageModeShared deallocator:nil]; - - if (ctx->buffers[ctx->n_buffers].metal == nil) { - GGML_LOG_ERROR("%s: error: failed to allocate buffer, size = %8.2f MiB\n", __func__, size_aligned / 1024.0 / 1024.0); - return false; - } - } - - ggml_backend_metal_log_allocated_size(device, size_aligned); - - ++ctx->n_buffers; - } else { - // this overlap between the views will guarantee that the tensor with the maximum size will fully fit into - // one of the views - const size_t size_ovlp = ((max_tensor_size + size_page - 1) / size_page + 1) * size_page; // round-up 2 pages just in case - const size_t size_step = device.maxBufferLength - size_ovlp; - const size_t size_view = device.maxBufferLength; - - for (size_t i = 0; i < size; i += size_step) { - const size_t size_step_aligned = (i + size_view <= size) ? size_view : (size_aligned - i); - - ctx->buffers[ctx->n_buffers].data = (void *) ((uint8_t *) ptr + i); - ctx->buffers[ctx->n_buffers].size = size_step_aligned; - ctx->buffers[ctx->n_buffers].metal = nil; - - if (size_step_aligned > 0) { - ctx->buffers[ctx->n_buffers].metal = [device newBufferWithBytesNoCopy:(void *) ((uint8_t *) ptr + i) length:size_step_aligned options:MTLResourceStorageModeShared deallocator:nil]; - - if (ctx->buffers[ctx->n_buffers].metal == nil) { - GGML_LOG_ERROR("%s: error: failed to allocate buffer, size = %8.2f MiB\n", __func__, size_step_aligned / 1024.0 / 1024.0); - return false; - } - } - - ggml_backend_metal_log_allocated_size(device, size_step_aligned); - - if (i + size_step < size) { - GGML_LOG_INFO("\n"); - } - - ++ctx->n_buffers; - } - } - - if (!ggml_backend_metal_buffer_rset_init(ctx, ctx_dev, device)) { - GGML_LOG_ERROR("%s: error: failed to initialize residency set\n", __func__); - free(ctx); - return NULL; - } - - return ggml_backend_buffer_init(ggml_backend_metal_buffer_type_mapped(), ggml_backend_metal_buffer_shared_i, ctx, size); -} - -static bool ggml_backend_metal_device_supports_op(ggml_backend_dev_t dev, const struct ggml_tensor * op) { - struct ggml_backend_metal_device_context * ctx_dev = dev->context; - - return ggml_metal_supports_op(ctx_dev, op); -} - -static bool ggml_backend_metal_device_supports_buft(ggml_backend_dev_t dev, ggml_backend_buffer_type_t buft) { - return - buft->iface.get_name == ggml_backend_metal_buffer_type_shared_get_name || - buft->iface.get_name == ggml_backend_metal_buffer_type_private_get_name || - buft->iface.get_name == ggml_backend_metal_buffer_type_mapped_get_name; - - GGML_UNUSED(dev); -} - -static int64_t get_op_batch_size(const struct ggml_tensor * op) { - switch (op->op) { - case GGML_OP_MUL_MAT: - return op->ne[1]; - case GGML_OP_MUL_MAT_ID: - return op->ne[2]; - default: - return ggml_nrows(op); - } -} - -static bool ggml_backend_metal_device_offload_op(ggml_backend_dev_t dev, const struct ggml_tensor * op) { - const int min_batch_size = 32; - - return (op->op == GGML_OP_MUL_MAT || - op->op == GGML_OP_MUL_MAT_ID) && - get_op_batch_size(op) >= min_batch_size; - - GGML_UNUSED(dev); - GGML_UNUSED(op); -} - -static struct ggml_backend_device_i ggml_backend_metal_device_i = { - /* .get_name = */ ggml_backend_metal_device_get_name, - /* .get_description = */ ggml_backend_metal_device_get_description, - /* .get_memory = */ ggml_backend_metal_device_get_memory, - /* .get_type = */ ggml_backend_metal_device_get_type, - /* .get_props = */ ggml_backend_metal_device_get_props, - /* .init_backend = */ ggml_backend_metal_device_init, - /* .get_buffer_type = */ ggml_backend_metal_device_get_buffer_type, - /* .get_host_buffer_type = */ NULL, - /* .buffer_from_host_ptr = */ ggml_backend_metal_device_buffer_mapped, - /* .supports_op = */ ggml_backend_metal_device_supports_op, - /* .supports_buft = */ ggml_backend_metal_device_supports_buft, - /* .offload_op = */ ggml_backend_metal_device_offload_op, - /* .event_new = */ NULL, - /* .event_free = */ NULL, - /* .event_synchronize = */ NULL, -}; - -// backend registry - -static const char * ggml_backend_metal_reg_get_name(ggml_backend_reg_t reg) { - return "Metal"; - - GGML_UNUSED(reg); -} - -static size_t ggml_backend_metal_reg_device_count(ggml_backend_reg_t reg) { - return 1; - - GGML_UNUSED(reg); -} - -static ggml_backend_dev_t ggml_backend_metal_reg_device_get(ggml_backend_reg_t reg, size_t index) { - GGML_ASSERT(index == 0); - - return &g_ggml_backend_metal_device; - - GGML_UNUSED(reg); - GGML_UNUSED(index); -} - -static struct ggml_backend_feature g_ggml_backend_metal_features[] = { -#if defined(GGML_METAL_EMBED_LIBRARY) - { "EMBED_LIBRARY", "1" }, -#endif -#if defined(GGML_METAL_USE_BF16) - { "BF16", "1" }, -#endif - { nil, nil }, -}; - -static struct ggml_backend_feature * ggml_backend_metal_get_features(ggml_backend_reg_t reg) { - return g_ggml_backend_metal_features; - - GGML_UNUSED(reg); -} - -static void * ggml_backend_metal_get_proc_address(ggml_backend_reg_t reg, const char * name) { - if (strcmp(name, "ggml_backend_get_features") == 0) { - return (void *)ggml_backend_metal_get_features; - } - - return NULL; - - GGML_UNUSED(reg); -} -static struct ggml_backend_reg_i ggml_backend_metal_reg_i = { - /* .get_name = */ ggml_backend_metal_reg_get_name, - /* .device_count = */ ggml_backend_metal_reg_device_count, - /* .device_get = */ ggml_backend_metal_reg_device_get, - /* .get_proc_address = */ ggml_backend_metal_get_proc_address, -}; - -// called upon program exit -static void ggml_metal_cleanup(void) { - ggml_backend_metal_device_rel(&g_ggml_ctx_dev_main); -} - -// TODO: make thread-safe -ggml_backend_reg_t ggml_backend_metal_reg(void) { - ggml_backend_metal_device_acq(&g_ggml_ctx_dev_main); - - // register cleanup callback - // TODO: not ideal, but not sure if there is a better way to do this in Objective-C - atexit(ggml_metal_cleanup); - - { - g_ggml_backend_metal_reg = (struct ggml_backend_reg) { - /* .api_version = */ GGML_BACKEND_API_VERSION, - /* .iface = */ ggml_backend_metal_reg_i, - /* .context = */ NULL, - }; - - g_ggml_backend_metal_device = (struct ggml_backend_device) { - /* .iface = */ ggml_backend_metal_device_i, - /* .reg = */ &g_ggml_backend_metal_reg, - /* .context = */ &g_ggml_ctx_dev_main, - }; - } - - return &g_ggml_backend_metal_reg; -} - -GGML_BACKEND_DL_IMPL(ggml_backend_metal_reg) diff --git a/ggml/src/ggml-metal/ggml-metal.metal b/ggml/src/ggml-metal/ggml-metal.metal index 5057e264f6..f34b89e590 100644 --- a/ggml/src/ggml-metal/ggml-metal.metal +++ b/ggml/src/ggml-metal/ggml-metal.metal @@ -27,11 +27,11 @@ using namespace metal; // .../usr/bin/metal -dM -E -c ggml/src/ggml-metal/ggml-metal.metal // .../usr/bin/metal -dM -E -c -target air64-apple-ios14.0 ggml/src/ggml-metal/ggml-metal.metal // -#if __METAL_VERSION__ < 310 && defined(GGML_METAL_USE_BF16) -#undef GGML_METAL_USE_BF16 +#if __METAL_VERSION__ < 310 && defined(GGML_METAL_HAS_BF16) +#undef GGML_METAL_HAS_BF16 #endif -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) typedef matrix bfloat4x4; #endif @@ -87,7 +87,7 @@ void dequantize_f16_t4(device const half4 * src, short il, thread type4 & reg) { reg = (type4)(*(src)); } -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template void dequantize_bf16(device const bfloat4x4 * src, short il, thread type4x4 & reg) { reg = (type4x4)(*src); @@ -1222,53 +1222,78 @@ typedef decltype(kernel_div_row_c4_fuse_impl<1>) kernel_div_row_c4_fuse_t; template [[host_name("kernel_div_row_c4_fuse_1")]] kernel kernel_div_row_c4_fuse_t kernel_div_row_c4_fuse_impl<1>; -kernel void kernel_scale( +kernel void kernel_scale_f32( + constant ggml_metal_kargs_scale & args, device const float * src0, device float * dst, - constant float & scale, - constant float & bias, uint tpig[[thread_position_in_grid]]) { - dst[tpig] = src0[tpig] * scale + bias; + dst[tpig] = src0[tpig] * args.scale + args.bias; } -kernel void kernel_scale_4( +kernel void kernel_scale_f32_4( + constant ggml_metal_kargs_scale & args, device const float4 * src0, device float4 * dst, - constant float & scale, - constant float & bias, uint tpig[[thread_position_in_grid]]) { - dst[tpig] = src0[tpig] * scale + bias; + dst[tpig] = src0[tpig] * args.scale + args.bias; } -kernel void kernel_clamp( +kernel void kernel_clamp_f32( + constant ggml_metal_kargs_clamp & args, device const float * src0, device float * dst, - constant float & min, - constant float & max, uint tpig[[thread_position_in_grid]]) { - dst[tpig] = src0[tpig] < min ? min : (src0[tpig] > max ? max : src0[tpig]); + dst[tpig] = clamp(src0[tpig], args.min, args.max); } -kernel void kernel_relu( +kernel void kernel_clamp_f32_4( + constant ggml_metal_kargs_clamp & args, + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = clamp(src0[tpig], args.min, args.max); +} + +kernel void kernel_relu_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { dst[tpig] = max(0.0f, src0[tpig]); } -kernel void kernel_sigmoid( +kernel void kernel_relu_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = max(0.0f, src0[tpig]); +} + +kernel void kernel_sigmoid_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { dst[tpig] = 1.0f / (1.0f + exp(-src0[tpig])); } -kernel void kernel_tanh( +kernel void kernel_sigmoid_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = 1.0f / (1.0f + exp(-src0[tpig])); +} + +kernel void kernel_tanh_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { - device const float & x = src0[tpig]; - dst[tpig] = precise::tanh(x); + dst[tpig] = precise::tanh(src0[tpig]); +} + +kernel void kernel_tanh_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = precise::tanh(src0[tpig]); } constant float GELU_COEF_A = 0.044715f; @@ -1276,7 +1301,7 @@ constant float GELU_QUICK_COEF = -1.702f; constant float SQRT_2_OVER_PI = 0.79788456080286535587989211986876f; constant float SQRT_2_INV = 0.70710678118654752440084436210484f; -kernel void kernel_gelu( +kernel void kernel_gelu_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { @@ -1285,7 +1310,7 @@ kernel void kernel_gelu( dst[tpig] = 0.5f*x*(1.0f + precise::tanh(SQRT_2_OVER_PI*x*(1.0f + GELU_COEF_A*x*x))); } -kernel void kernel_gelu_4( +kernel void kernel_gelu_f32_4( device const float4 * src0, device float4 * dst, uint tpig[[thread_position_in_grid]]) { @@ -1298,7 +1323,7 @@ kernel void kernel_gelu_4( dst[tpig] = 0.5f*x*(1.0f + precise::tanh(SQRT_2_OVER_PI*x*(1.0f + GELU_COEF_A*x*x))); } -kernel void kernel_gelu_quick( +kernel void kernel_gelu_quick_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { @@ -1307,7 +1332,7 @@ kernel void kernel_gelu_quick( dst[tpig] = x*(1.0f/(1.0f+exp(GELU_QUICK_COEF*x))); } -kernel void kernel_gelu_quick_4( +kernel void kernel_gelu_quick_f32_4( device const float4 * src0, device float4 * dst, uint tpig[[thread_position_in_grid]]) { @@ -1334,7 +1359,7 @@ T erf_approx(T x) { return sign_x * y; } -kernel void kernel_gelu_erf( +kernel void kernel_gelu_erf_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { @@ -1343,7 +1368,7 @@ kernel void kernel_gelu_erf( dst[tpig] = 0.5f*x*(1.0f+erf_approx(x*SQRT_2_INV)); } -kernel void kernel_gelu_erf_4( +kernel void kernel_gelu_erf_f32_4( device const float4 * src0, device float4 * dst, uint tpig[[thread_position_in_grid]]) { @@ -1352,7 +1377,7 @@ kernel void kernel_gelu_erf_4( dst[tpig] = 0.5f*x*(1.0f+erf_approx(x*SQRT_2_INV)); } -kernel void kernel_silu( +kernel void kernel_silu_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { @@ -1360,7 +1385,7 @@ kernel void kernel_silu( dst[tpig] = x / (1.0f + exp(-x)); } -kernel void kernel_silu_4( +kernel void kernel_silu_f32_4( device const float4 * src0, device float4 * dst, uint tpig[[thread_position_in_grid]]) { @@ -1368,99 +1393,202 @@ kernel void kernel_silu_4( dst[tpig] = x / (1.0f + exp(-x)); } -kernel void kernel_elu( +kernel void kernel_elu_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { - device const float & x = src0[tpig]; + const float x = src0[tpig]; dst[tpig] = (x > 0.0f) ? x : (exp(x) - 1.0f); } -kernel void kernel_sqr( +kernel void kernel_elu_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + const float4 x = src0[tpig]; + dst[tpig][0] = (x[0] > 0.0f) ? x[0] : (exp(x[0]) - 1.0f); + dst[tpig][1] = (x[1] > 0.0f) ? x[1] : (exp(x[1]) - 1.0f); + dst[tpig][2] = (x[2] > 0.0f) ? x[2] : (exp(x[2]) - 1.0f); + dst[tpig][3] = (x[3] > 0.0f) ? x[3] : (exp(x[3]) - 1.0f); +} + +kernel void kernel_sqr_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { dst[tpig] = src0[tpig] * src0[tpig]; } -kernel void kernel_sqrt( +kernel void kernel_sqr_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] * src0[tpig]; +} + +kernel void kernel_sqrt_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { dst[tpig] = sqrt(src0[tpig]); } -kernel void kernel_sin( +kernel void kernel_sqrt_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = sqrt(src0[tpig]); +} + +kernel void kernel_sin_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { dst[tpig] = sin(src0[tpig]); } -kernel void kernel_cos( +kernel void kernel_sin_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = sin(src0[tpig]); +} + +kernel void kernel_cos_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { dst[tpig] = cos(src0[tpig]); } -kernel void kernel_neg( +kernel void kernel_cos_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = cos(src0[tpig]); +} + +kernel void kernel_log_f32( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = log(src0[tpig]); +} + +kernel void kernel_log_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = log(src0[tpig]); +} + +kernel void kernel_neg_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { dst[tpig] = -src0[tpig]; } -kernel void kernel_abs( +kernel void kernel_neg_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = -src0[tpig]; +} + +kernel void kernel_abs_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { dst[tpig] = fabs(src0[tpig]); } -kernel void kernel_sgn( - device const float * src0, - device float * dst, +kernel void kernel_abs_f32_4( + device const float4 * src0, + device float4 * dst, uint tpig[[thread_position_in_grid]]) { - device const float & x = src0[tpig]; - dst[tpig] = (x > 0.0f) ? 1.0f : ((x < 0.0f) ? -1.0f : 0.0f); + dst[tpig] = fabs(src0[tpig]); } -kernel void kernel_step( +kernel void kernel_sgn_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { - dst[tpig] = src0[tpig] > 0.0f ? 1.0f : 0.0f; + dst[tpig] = sign(src0[tpig]); } -kernel void kernel_hardswish( +kernel void kernel_sgn_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = sign(src0[tpig]); +} + +kernel void kernel_step_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { - device const float & x = src0[tpig]; + dst[tpig] = step(0.0f, src0[tpig]); +} + +kernel void kernel_step_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = step(0.0f, src0[tpig]); +} + +kernel void kernel_hardswish_f32( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + const float x = src0[tpig]; dst[tpig] = x * fmin(1.0f, fmax(0.0f, (x + 3.0f) / 6.0f)); } -kernel void kernel_hardsigmoid( +kernel void kernel_hardswish_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + const float4 x = src0[tpig]; + dst[tpig] = x * fmin(1.0f, fmax(0.0f, (x + 3.0f) / 6.0f)); +} + +kernel void kernel_hardsigmoid_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { - device const float & x = src0[tpig]; + const float x = src0[tpig]; dst[tpig] = fmin(1.0f, fmax(0.0f, (x + 3.0f) / 6.0f)); } -kernel void kernel_exp( +kernel void kernel_hardsigmoid_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + const float4 x = src0[tpig]; + dst[tpig] = fmin(1.0f, fmax(0.0f, (x + 3.0f) / 6.0f)); +} + +kernel void kernel_exp_f32( device const float * src0, device float * dst, uint tpig[[thread_position_in_grid]]) { dst[tpig] = exp(src0[tpig]); } -kernel void kernel_reglu( +kernel void kernel_exp_f32_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = exp(src0[tpig]); +} + +kernel void kernel_reglu_f32( + constant ggml_metal_kargs_glu & args, device const char * src0, device const char * src1, device char * dst, - constant ggml_metal_kargs_glu & args, uint tgpig[[threadgroup_position_in_grid]], uint tpitg[[thread_position_in_threadgroup]], uint ntg[[threads_per_threadgroup]]) { @@ -1476,11 +1604,11 @@ kernel void kernel_reglu( } } -kernel void kernel_geglu( +kernel void kernel_geglu_f32( + constant ggml_metal_kargs_glu & args, device const char * src0, device const char * src1, device char * dst, - constant ggml_metal_kargs_glu & args, uint tgpig[[threadgroup_position_in_grid]], uint tpitg[[thread_position_in_threadgroup]], uint ntg[[threads_per_threadgroup]]) { @@ -1498,11 +1626,11 @@ kernel void kernel_geglu( } } -kernel void kernel_swiglu( +kernel void kernel_swiglu_f32( + constant ggml_metal_kargs_glu & args, device const char * src0, device const char * src1, device char * dst, - constant ggml_metal_kargs_glu & args, uint tgpig[[threadgroup_position_in_grid]], uint tpitg[[thread_position_in_threadgroup]], uint ntg[[threads_per_threadgroup]]) { @@ -1520,11 +1648,11 @@ kernel void kernel_swiglu( } } -kernel void kernel_swiglu_oai( +kernel void kernel_swiglu_oai_f32( + constant ggml_metal_kargs_glu & args, device const char * src0, device const char * src1, device char * dst, - constant ggml_metal_kargs_glu & args, uint tgpig[[threadgroup_position_in_grid]], uint tpitg[[thread_position_in_threadgroup]], uint ntg[[threads_per_threadgroup]]) { @@ -1546,11 +1674,11 @@ kernel void kernel_swiglu_oai( } } -kernel void kernel_geglu_erf( +kernel void kernel_geglu_erf_f32( + constant ggml_metal_kargs_glu & args, device const char * src0, device const char * src1, device char * dst, - constant ggml_metal_kargs_glu & args, uint tgpig[[threadgroup_position_in_grid]], uint tpitg[[thread_position_in_threadgroup]], uint ntg[[threads_per_threadgroup]]) { @@ -1568,11 +1696,11 @@ kernel void kernel_geglu_erf( } } -kernel void kernel_geglu_quick( +kernel void kernel_geglu_quick_f32( + constant ggml_metal_kargs_glu & args, device const char * src0, device const char * src1, device char * dst, - constant ggml_metal_kargs_glu & args, uint tgpig[[threadgroup_position_in_grid]], uint tpitg[[thread_position_in_threadgroup]], uint ntg[[threads_per_threadgroup]]) { @@ -1642,16 +1770,16 @@ kernel void kernel_sum_rows( typedef decltype(kernel_sum_rows) kernel_sum_rows_t; -template [[host_name("kernel_sum_rows")]] kernel kernel_sum_rows_t kernel_sum_rows; -template [[host_name("kernel_mean")]] kernel kernel_sum_rows_t kernel_sum_rows; +template [[host_name("kernel_sum_rows_f32")]] kernel kernel_sum_rows_t kernel_sum_rows; +template [[host_name("kernel_mean_f32")]] kernel kernel_sum_rows_t kernel_sum_rows; template kernel void kernel_soft_max( + constant ggml_metal_kargs_soft_max & args, device const char * src0, device const char * src1, device const char * src2, device char * dst, - constant ggml_metal_kargs_soft_max & args, threadgroup float * buf [[threadgroup(0)]], uint3 tgpig[[threadgroup_position_in_grid]], uint3 tpitg[[thread_position_in_threadgroup]], @@ -1753,11 +1881,11 @@ kernel void kernel_soft_max( template kernel void kernel_soft_max_4( + constant ggml_metal_kargs_soft_max & args, device const char * src0, device const char * src1, device const char * src2, device char * dst, - constant ggml_metal_kargs_soft_max & args, threadgroup float * buf [[threadgroup(0)]], uint3 tgpig[[threadgroup_position_in_grid]], uint3 tpitg[[thread_position_in_threadgroup]], @@ -1867,53 +1995,12 @@ template [[host_name("kernel_soft_max_f32")]] kernel kernel_soft_max_t kerne template [[host_name("kernel_soft_max_f16_4")]] kernel kernel_soft_max_4_t kernel_soft_max_4; template [[host_name("kernel_soft_max_f32_4")]] kernel kernel_soft_max_4_t kernel_soft_max_4; -kernel void kernel_diag_mask_inf( - device const float * src0, - device float * dst, - constant ggml_metal_kargs_diag_mask_inf & args, - uint3 tpig[[thread_position_in_grid]]) { - const int64_t i02 = tpig[2]; - const int64_t i01 = tpig[1]; - const int64_t i00 = tpig[0]; - - if (i00 > args.n_past + i01) { - dst[i02*args.ne01*args.ne00 + i01*args.ne00 + i00] = -INFINITY; - } else { - dst[i02*args.ne01*args.ne00 + i01*args.ne00 + i00] = src0[i02*args.ne01*args.ne00 + i01*args.ne00 + i00]; - } -} - -kernel void kernel_diag_mask_inf_8( - device const float4 * src0, - device float4 * dst, - constant ggml_metal_kargs_diag_mask_inf & args, - uint3 tpig[[thread_position_in_grid]]) { - - const int64_t i = 2*tpig[0]; - - dst[i+0] = src0[i+0]; - dst[i+1] = src0[i+1]; - int64_t i4 = 4*i; - const int64_t i02 = i4/(args.ne00*args.ne01); i4 -= i02*args.ne00*args.ne01; - const int64_t i01 = i4/(args.ne00); i4 -= i01*args.ne00; - const int64_t i00 = i4; - for (int k = 3; k >= 0; --k) { - if (i00 + 4 + k <= args.n_past + i01) { - break; - } - dst[i+1][k] = -INFINITY; - if (i00 + k > args.n_past + i01) { - dst[i][k] = -INFINITY; - } - } -} - // ref: ggml.c:ggml_compute_forward_ssm_conv_f32 -kernel void kernel_ssm_conv_f32( +kernel void kernel_ssm_conv_f32_f32( + constant ggml_metal_kargs_ssm_conv & args, device const void * src0, device const void * src1, device float * dst, - constant ggml_metal_kargs_ssm_conv & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tpitg[[thread_position_in_threadgroup]], uint3 ntg[[threads_per_threadgroup]]) { @@ -1942,6 +2029,7 @@ kernel void kernel_ssm_conv_f32( // ref: ggml.c:ggml_compute_forward_ssm_scan_f32, Mamba-1 part kernel void kernel_ssm_scan_f32( + constant ggml_metal_kargs_ssm_scan & args, device const void * src0, device const void * src1, device const void * src2, @@ -1951,7 +2039,6 @@ kernel void kernel_ssm_scan_f32( device const void * src6, device float * dst, threadgroup float * shared [[threadgroup(0)]], - constant ggml_metal_kargs_ssm_scan & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tpitg[[thread_position_in_threadgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]], @@ -2057,7 +2144,8 @@ kernel void kernel_ssm_scan_f32( } // ref: ggml.c:ggml_compute_forward_ssm_scan_f32, Mamba-2 part -kernel void kernel_ssm_scan_f32_group( +kernel void kernel_ssm_scan_group_f32( + constant ggml_metal_kargs_ssm_scan & args, device const void * src0, device const void * src1, device const void * src2, @@ -2067,7 +2155,6 @@ kernel void kernel_ssm_scan_f32_group( device const void * src6, device float * dst, threadgroup float * shared [[threadgroup(0)]], - constant ggml_metal_kargs_ssm_scan & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tpitg[[thread_position_in_threadgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]], @@ -2346,24 +2433,22 @@ kernel void kernel_rwkv_wkv7_f32( } } -kernel void kernel_argmax( - device const void * x, - device int32_t * dst, - constant int64_t & ncols, - constant uint64_t & nb01, - threadgroup float * shared_maxval [[threadgroup(0)]], - threadgroup int32_t * shared_argmax [[threadgroup(1)]], +kernel void kernel_argmax_f32( + constant ggml_metal_kargs_argmax & args, + device const char * src0, + device char * dst, + threadgroup char * shmem [[threadgroup(0)]], uint tgpig[[threadgroup_position_in_grid]], uint tpitg[[thread_position_in_threadgroup]], uint sgitg[[simdgroup_index_in_threadgroup]], uint tiisg[[thread_index_in_simdgroup]], uint ntg[[threads_per_threadgroup]]) { - device const float * x_row = (device const float *) ((device const char *) x + tgpig * nb01); + device const float * x_row = (device const float *) ((device const char *) src0 + tgpig * args.nb01); float lmax = -INFINITY; int32_t larg = -1; - for (int i00 = tpitg; i00 < ncols; i00 += ntg) { + for (int i00 = tpitg; i00 < args.ne00; i00 += ntg) { if (x_row[i00] > lmax) { lmax = x_row[i00]; larg = i00; @@ -2374,6 +2459,11 @@ kernel void kernel_argmax( float max_val = simd_max(lmax); int32_t arg_val = simd_max(select(-1, larg, lmax == max_val)); + device int32_t * dst_i32 = (device int32_t *) dst; + + threadgroup float * shared_maxval = (threadgroup float *) shmem; + threadgroup int32_t * shared_argmax = (threadgroup int32_t *) shmem + N_SIMDWIDTH; + if (ntg > N_SIMDWIDTH) { if (sgitg == 0) { shared_maxval[tiisg] = -INFINITY; @@ -2395,15 +2485,15 @@ kernel void kernel_argmax( float max_val_reduced = simd_max(max_val); int32_t arg_val_reduced = simd_max(select(-1, arg_val, max_val == max_val_reduced)); - dst[tgpig] = arg_val_reduced; + dst_i32[tgpig] = arg_val_reduced; return; } - dst[tgpig] = arg_val; + dst_i32[tgpig] = arg_val; } -kernel void kernel_norm( +kernel void kernel_norm_f32( constant ggml_metal_kargs_norm & args, device const char * src0, device char * dst, @@ -2537,11 +2627,11 @@ kernel void kernel_rms_norm_fuse_impl( typedef decltype(kernel_rms_norm_fuse_impl<1>) kernel_rms_norm_fuse_t; -template [[host_name("kernel_rms_norm")]] kernel kernel_rms_norm_fuse_t kernel_rms_norm_fuse_impl<1>; -template [[host_name("kernel_rms_norm_mul")]] kernel kernel_rms_norm_fuse_t kernel_rms_norm_fuse_impl<2>; -template [[host_name("kernel_rms_norm_mul_add")]] kernel kernel_rms_norm_fuse_t kernel_rms_norm_fuse_impl<3>; +template [[host_name("kernel_rms_norm_f32")]] kernel kernel_rms_norm_fuse_t kernel_rms_norm_fuse_impl<1>; +template [[host_name("kernel_rms_norm_mul_f32")]] kernel kernel_rms_norm_fuse_t kernel_rms_norm_fuse_impl<2>; +template [[host_name("kernel_rms_norm_mul_add_f32")]] kernel kernel_rms_norm_fuse_t kernel_rms_norm_fuse_impl<3>; -kernel void kernel_l2_norm( +kernel void kernel_l2_norm_f32( constant ggml_metal_kargs_l2_norm & args, device const char * src0, device char * dst, @@ -2584,10 +2674,10 @@ kernel void kernel_l2_norm( } } -kernel void kernel_group_norm( +kernel void kernel_group_norm_f32( + constant ggml_metal_kargs_group_norm & args, device const float * src0, device float * dst, - constant ggml_metal_kargs_group_norm & args, threadgroup float * buf [[threadgroup(0)]], uint tgpig[[threadgroup_position_in_grid]], uint tpitg[[thread_position_in_threadgroup]], @@ -2595,7 +2685,7 @@ kernel void kernel_group_norm( uint tiisg[[thread_index_in_simdgroup]], uint ntg[[threads_per_threadgroup]]) { const int64_t ne = args.ne00*args.ne01*args.ne02; - const int64_t gs = args.ne00*args.ne01*((args.ne02 + args.n_groups - 1) / args.n_groups); + const int64_t gs = args.ne00*args.ne01*((args.ne02 + args.ngrp - 1) / args.ngrp); int start = tgpig * gs; int end = start + gs; @@ -3407,7 +3497,7 @@ typedef decltype(kernel_mul_mv) mul_mv_t; template [[host_name("kernel_mul_mv_f32_f32")]] kernel mul_mv_t kernel_mul_mv; template [[host_name("kernel_mul_mv_f16_f32")]] kernel mul_mv_t kernel_mul_mv; template [[host_name("kernel_mul_mv_f16_f16")]] kernel mul_mv_t kernel_mul_mv; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_mul_mv_bf16_f32")]] kernel mul_mv_t kernel_mul_mv; template [[host_name("kernel_mul_mv_bf16_bf16")]] kernel mul_mv_t kernel_mul_mv; #endif @@ -3472,7 +3562,7 @@ typedef decltype(kernel_mul_mv_c4) mul_mv_c4_t; template [[host_name("kernel_mul_mv_f32_f32_c4")]] kernel mul_mv_c4_t kernel_mul_mv_c4; template [[host_name("kernel_mul_mv_f16_f32_c4")]] kernel mul_mv_c4_t kernel_mul_mv_c4; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_mul_mv_bf16_f32_c4")]] kernel mul_mv_c4_t kernel_mul_mv_c4; #endif @@ -3529,7 +3619,7 @@ kernel void kernel_mul_mv_1row( typedef decltype(kernel_mul_mv_1row) mul_mv_1row_t; template [[host_name("kernel_mul_mv_f16_f32_1row")]] kernel mul_mv_1row_t kernel_mul_mv_1row; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_mul_mv_bf16_f32_1row")]] kernel mul_mv_1row_t kernel_mul_mv_1row; #endif @@ -3576,7 +3666,7 @@ kernel void kernel_mul_mv_l4( typedef decltype(kernel_mul_mv_l4) mul_mv_l4_t; template [[host_name("kernel_mul_mv_f16_f32_l4")]] kernel mul_mv_l4_t kernel_mul_mv_l4; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_mul_mv_bf16_f32_l4")]] kernel mul_mv_l4_t kernel_mul_mv_l4; #endif @@ -3879,62 +3969,63 @@ template [[host_name("kernel_rope_multi_f16")]] kernel kernel_rope_multi_t kerne template [[host_name("kernel_rope_vision_f32")]] kernel kernel_rope_vision_t kernel_rope_vision; template [[host_name("kernel_rope_vision_f16")]] kernel kernel_rope_vision_t kernel_rope_vision; -typedef void (im2col_t)( - device const float * x, - device char * dst, - constant ggml_metal_kargs_im2col & args, - uint3 tgpig[[threadgroup_position_in_grid]], - uint3 tgpg[[threadgroups_per_grid]], - uint3 tpitg[[thread_position_in_threadgroup]], - uint3 ntg[[threads_per_threadgroup]]); - -template -kernel void kernel_im2col( - device const float * x, - device char * dst, - constant ggml_metal_kargs_im2col & args, - uint3 tgpig[[threadgroup_position_in_grid]], - uint3 tgpg[[threadgroups_per_grid]], - uint3 tpitg[[thread_position_in_threadgroup]], - uint3 ntg[[threads_per_threadgroup]]) { -// const int64_t IC = tgpg[0]; - const int64_t OH = tgpg[1]; - const int64_t OW = tgpg[2]; - -// const int64_t N = ntg[0]; - const int64_t KH = ntg[1]; - const int64_t KW = ntg[2]; - - const int64_t in = tpitg[0]; - const int64_t ikh = tpitg[1]; - const int64_t ikw = tpitg[2]; - - const int64_t iic = tgpig[0]; - const int64_t ioh = tgpig[1]; - const int64_t iow = tgpig[2]; - - const int64_t iiw = iow*args.s0 + ikw*args.d0 - args.p0; - const int64_t iih = ioh*args.s1 + ikh*args.d1 - args.p1; - - const int64_t offset_dst = (in*OH*OW + ioh*OW + iow)*args.CHW + (iic*(KH*KW) + ikh*KW + ikw); - - device T * pdst = (device T *) (dst); - - if (iih < 0 || iih >= args.IH || iiw < 0 || iiw >= args.IW) { - pdst[offset_dst] = 0.0f; - } else { - const int64_t offset_src = in*args.ofs0 + iic*args.ofs1 + iih*args.IW + iiw; - pdst[offset_dst] = x[offset_src]; - } -} - -template [[host_name("kernel_im2col_f32")]] kernel im2col_t kernel_im2col; -template [[host_name("kernel_im2col_f16")]] kernel im2col_t kernel_im2col; +// TODO: obolete -- remove +//typedef void (im2col_t)( +// constant ggml_metal_kargs_im2col & args, +// device const float * x, +// device char * dst, +// uint3 tgpig[[threadgroup_position_in_grid]], +// uint3 tgpg[[threadgroups_per_grid]], +// uint3 tpitg[[thread_position_in_threadgroup]], +// uint3 ntg[[threads_per_threadgroup]]); +// +//template +//kernel void kernel_im2col( +// constant ggml_metal_kargs_im2col & args, +// device const float * x, +// device char * dst, +// uint3 tgpig[[threadgroup_position_in_grid]], +// uint3 tgpg[[threadgroups_per_grid]], +// uint3 tpitg[[thread_position_in_threadgroup]], +// uint3 ntg[[threads_per_threadgroup]]) { +//// const int64_t IC = tgpg[0]; +// const int64_t OH = tgpg[1]; +// const int64_t OW = tgpg[2]; +// +//// const int64_t N = ntg[0]; +// const int64_t KH = ntg[1]; +// const int64_t KW = ntg[2]; +// +// const int64_t in = tpitg[0]; +// const int64_t ikh = tpitg[1]; +// const int64_t ikw = tpitg[2]; +// +// const int64_t iic = tgpig[0]; +// const int64_t ioh = tgpig[1]; +// const int64_t iow = tgpig[2]; +// +// const int64_t iiw = iow*args.s0 + ikw*args.d0 - args.p0; +// const int64_t iih = ioh*args.s1 + ikh*args.d1 - args.p1; +// +// const int64_t offset_dst = (in*OH*OW + ioh*OW + iow)*args.CHW + (iic*(KH*KW) + ikh*KW + ikw); +// +// device T * pdst = (device T *) (dst); +// +// if (iih < 0 || iih >= args.IH || iiw < 0 || iiw >= args.IW) { +// pdst[offset_dst] = 0.0f; +// } else { +// const int64_t offset_src = in*args.ofs0 + iic*args.ofs1 + iih*args.IW + iiw; +// pdst[offset_dst] = x[offset_src]; +// } +//} +// +//template [[host_name("kernel_im2col_f32")]] kernel im2col_t kernel_im2col; +//template [[host_name("kernel_im2col_f16")]] kernel im2col_t kernel_im2col; typedef void (im2col_ext_t)( + constant ggml_metal_kargs_im2col & args, device const float * x, device char * dst, - constant ggml_metal_kargs_im2col & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tgpg[[threadgroups_per_grid]], uint3 tpitg[[thread_position_in_threadgroup]], @@ -3942,16 +4033,16 @@ typedef void (im2col_ext_t)( template kernel void kernel_im2col_ext( + constant ggml_metal_kargs_im2col & args, device const float * x, device char * dst, - constant ggml_metal_kargs_im2col & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tgpg[[threadgroups_per_grid]], // tgpg[0] = D x IC x KH x KW, CHW = IC x KH x KW uint3 tpitg[[thread_position_in_threadgroup]], uint3 ntg[[threads_per_threadgroup]]) { // [M, 1, 1] const int64_t KHW = (int64_t)args.KHW; - const int64_t d = tgpig[0] / args.CHW; + const int64_t d = tgpig[0] / args.CHW; const int64_t chw = tgpig[0] % args.CHW; const int64_t tgpig_0 = chw / KHW; // 0 ~ (IC - 1) const int64_t HW = tgpig[0] % KHW; @@ -3985,19 +4076,19 @@ template [[host_name("kernel_im2col_ext_f32")]] kernel im2col_ext_t kernel_im2co template [[host_name("kernel_im2col_ext_f16")]] kernel im2col_ext_t kernel_im2col_ext; typedef void (conv_transpose_1d_t)( + constant ggml_metal_kargs_conv_transpose_1d & args, device const float * src0, device const float * src1, device char * dst, - constant ggml_metal_kargs_conv_transpose_1d & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tgpg[[threadgroups_per_grid]]); template kernel void kernel_conv_transpose_1d( + constant ggml_metal_kargs_conv_transpose_1d & args, device const T * src0, device const float * src1, device char * dst, - constant ggml_metal_kargs_conv_transpose_1d & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tgpg[[threadgroups_per_grid]]) { @@ -4021,26 +4112,26 @@ kernel void kernel_conv_transpose_1d( template [[host_name("kernel_conv_transpose_1d_f32_f32")]] kernel void kernel_conv_transpose_1d( + constant ggml_metal_kargs_conv_transpose_1d & args, device const float * src0, device const float * src1, device char * dst, - constant ggml_metal_kargs_conv_transpose_1d & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tgpg[[threadgroups_per_grid]]); template [[host_name("kernel_conv_transpose_1d_f16_f32")]] kernel void kernel_conv_transpose_1d( + constant ggml_metal_kargs_conv_transpose_1d & args, device const half * src0, device const float * src1, device char * dst, - constant ggml_metal_kargs_conv_transpose_1d & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tgpg[[threadgroups_per_grid]]); kernel void kernel_upscale_f32( + constant ggml_metal_kargs_upscale & args, device const char * src0, device char * dst, - constant ggml_metal_kargs_upscale & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tpitg[[thread_position_in_threadgroup]], uint3 ntg[[threads_per_threadgroup]]) { @@ -4064,9 +4155,9 @@ kernel void kernel_upscale_f32( } kernel void kernel_pad_f32( + constant ggml_metal_kargs_pad & args, device const char * src0, device char * dst, - constant ggml_metal_kargs_pad & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tpitg[[thread_position_in_threadgroup]], uint3 ntg[[threads_per_threadgroup]]) { @@ -4100,9 +4191,9 @@ kernel void kernel_pad_f32( } kernel void kernel_pad_reflect_1d_f32( + constant ggml_metal_kargs_pad_reflect_1d & args, device const char * src0, device char * dst, - constant ggml_metal_kargs_pad_reflect_1d & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tgpg[[threadgroups_per_grid]], uint3 tpitg[[thread_position_in_threadgroup]], @@ -4133,8 +4224,8 @@ kernel void kernel_pad_reflect_1d_f32( } kernel void kernel_arange_f32( - device char * dst, constant ggml_metal_kargs_arange & args, + device char * dst, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tpitg[[thread_position_in_threadgroup]], uint3 ntg[[threads_per_threadgroup]]) { @@ -4147,9 +4238,9 @@ kernel void kernel_arange_f32( } kernel void kernel_timestep_embedding_f32( + constant ggml_metal_kargs_timestep_embedding & args, device const char * src0, device char * dst, - constant ggml_metal_kargs_timestep_embedding & args, uint3 tgpig[[threadgroup_position_in_grid]], uint3 tpitg[[thread_position_in_threadgroup]], uint3 ntg[[threads_per_threadgroup]]) { @@ -4173,19 +4264,19 @@ kernel void kernel_timestep_embedding_f32( // bitonic sort implementation following the CUDA kernels as reference typedef void (argsort_t)( - device const float * x, - device int32_t * dst, constant ggml_metal_kargs_argsort & args, + device const float * x, + device int32_t * dst, threadgroup int32_t * shared_values [[threadgroup(0)]], uint3 tgpig[[threadgroup_position_in_grid]], uint3 tpitg[[thread_position_in_threadgroup]]); template kernel void kernel_argsort_f32_i32( - device const float * x, - device int32_t * dst, constant ggml_metal_kargs_argsort & args, - threadgroup int32_t * shared_values [[threadgroup(0)]], + device const float * x, + device int32_t * dst, + threadgroup int32_t * shared_values [[threadgroup(0)]], uint3 tgpig[[threadgroup_position_in_grid]], uint3 tpitg[[thread_position_in_threadgroup]]) { // bitonic sort @@ -4238,11 +4329,21 @@ template [[host_name("kernel_argsort_f32_i32_asc")]] kernel argsort_t kernel_ar template [[host_name("kernel_argsort_f32_i32_desc")]] kernel argsort_t kernel_argsort_f32_i32; kernel void kernel_leaky_relu_f32( + constant ggml_metal_kargs_leaky_relu & args, device const float * src0, device float * dst, - constant ggml_metal_kargs_leaky_relu & args, uint tpig[[thread_position_in_grid]]) { - dst[tpig] = src0[tpig] > 0.0f ? src0[tpig] : src0[tpig] * args.slope; + const float x = src0[tpig]; + dst[tpig] = x > 0.0f ? x : x * args.slope; +} + +kernel void kernel_leaky_relu_f32_4( + constant ggml_metal_kargs_leaky_relu & args, + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + const float4 x = src0[tpig]; + dst[tpig] = float4(x > 0.0f)*x + float4(x <= 0.0f)*(x * args.slope); } constant bool FC_flash_attn_ext_has_mask [[function_constant(FC_FLASH_ATTN_EXT + 0)]]; @@ -4884,7 +4985,7 @@ template [[host_name("kernel_flash_attn_ext_f16_dk192_dv128")]] kernel flash_at template [[host_name("kernel_flash_attn_ext_f16_dk256_dv256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; template [[host_name("kernel_flash_attn_ext_f16_dk576_dv512")]] kernel flash_attn_ext_t kernel_flash_attn_ext; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_flash_attn_ext_bf16_dk40_dv40" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; template [[host_name("kernel_flash_attn_ext_bf16_dk64_dv64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; template [[host_name("kernel_flash_attn_ext_bf16_dk80_dv80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; @@ -5450,7 +5551,7 @@ kernel void kernel_flash_attn_ext_vec( typedef decltype(kernel_flash_attn_ext_vec) flash_attn_ext_vec_t; template [[host_name("kernel_flash_attn_ext_vec_f16_dk64_dv64")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_flash_attn_ext_vec_bf16_dk64_dv64")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; #endif template [[host_name("kernel_flash_attn_ext_vec_q4_0_dk64_dv64")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; @@ -5460,7 +5561,7 @@ template [[host_name("kernel_flash_attn_ext_vec_q5_1_dk64_dv64")]] kernel flas template [[host_name("kernel_flash_attn_ext_vec_q8_0_dk64_dv64")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; template [[host_name("kernel_flash_attn_ext_vec_f16_dk96_dv96")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_flash_attn_ext_vec_bf16_dk96_dv96")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; #endif template [[host_name("kernel_flash_attn_ext_vec_q4_0_dk96_dv96")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; @@ -5470,7 +5571,7 @@ template [[host_name("kernel_flash_attn_ext_vec_q5_1_dk96_dv96")]] kernel flas template [[host_name("kernel_flash_attn_ext_vec_q8_0_dk96_dv96")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; template [[host_name("kernel_flash_attn_ext_vec_f16_dk128_dv128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_flash_attn_ext_vec_bf16_dk128_dv128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; #endif template [[host_name("kernel_flash_attn_ext_vec_q4_0_dk128_dv128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; @@ -5480,7 +5581,7 @@ template [[host_name("kernel_flash_attn_ext_vec_q5_1_dk128_dv128")]] kernel flas template [[host_name("kernel_flash_attn_ext_vec_q8_0_dk128_dv128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; template [[host_name("kernel_flash_attn_ext_vec_f16_dk192_dv192")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_flash_attn_ext_vec_bf16_dk192_dv192")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; #endif template [[host_name("kernel_flash_attn_ext_vec_q4_0_dk192_dv192")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; @@ -5490,7 +5591,7 @@ template [[host_name("kernel_flash_attn_ext_vec_q5_1_dk192_dv192")]] kernel flas template [[host_name("kernel_flash_attn_ext_vec_q8_0_dk192_dv192")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; template [[host_name("kernel_flash_attn_ext_vec_f16_dk192_dv128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_flash_attn_ext_vec_bf16_dk192_dv128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; #endif template [[host_name("kernel_flash_attn_ext_vec_q4_0_dk192_dv128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; @@ -5500,7 +5601,7 @@ template [[host_name("kernel_flash_attn_ext_vec_q5_1_dk192_dv128")]] kernel flas template [[host_name("kernel_flash_attn_ext_vec_q8_0_dk192_dv128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; template [[host_name("kernel_flash_attn_ext_vec_f16_dk256_dv256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_flash_attn_ext_vec_bf16_dk256_dv256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; #endif template [[host_name("kernel_flash_attn_ext_vec_q4_0_dk256_dv256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; @@ -5510,7 +5611,7 @@ template [[host_name("kernel_flash_attn_ext_vec_q5_1_dk256_dv256")]] kernel flas template [[host_name("kernel_flash_attn_ext_vec_q8_0_dk256_dv256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; template [[host_name("kernel_flash_attn_ext_vec_f16_dk576_dv512")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_flash_attn_ext_vec_bf16_dk576_dv512")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; #endif template [[host_name("kernel_flash_attn_ext_vec_q4_0_dk576_dv512")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; @@ -5603,12 +5704,12 @@ template [[host_name("kernel_cpy_f32_f32")]] kernel kernel_cpy_t kernel_cpy; template [[host_name("kernel_cpy_f32_i32")]] kernel kernel_cpy_t kernel_cpy; template [[host_name("kernel_cpy_i32_f32")]] kernel kernel_cpy_t kernel_cpy; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_cpy_f32_bf16")]] kernel kernel_cpy_t kernel_cpy; #endif template [[host_name("kernel_cpy_f16_f32")]] kernel kernel_cpy_t kernel_cpy; template [[host_name("kernel_cpy_f16_f16")]] kernel kernel_cpy_t kernel_cpy; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_cpy_bf16_f32")]] kernel kernel_cpy_t kernel_cpy; template [[host_name("kernel_cpy_bf16_bf16")]] kernel kernel_cpy_t kernel_cpy; #endif @@ -7880,13 +7981,13 @@ kernel void kernel_mul_mm_id_map0( typedef decltype(kernel_mul_mm_id_map0<1>) kernel_mul_mm_id_map0_t; -template [[host_name("kernel_mul_mm_id_map0_f16_ne20_1" )]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<1>; -template [[host_name("kernel_mul_mm_id_map0_f16_ne20_2" )]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<2>; -template [[host_name("kernel_mul_mm_id_map0_f16_ne20_4" )]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<4>; -template [[host_name("kernel_mul_mm_id_map0_f16_ne20_6" )]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<6>; -template [[host_name("kernel_mul_mm_id_map0_f16_ne20_8" )]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<8>; -template [[host_name("kernel_mul_mm_id_map0_f16_ne20_10")]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<10>; -template [[host_name("kernel_mul_mm_id_map0_f16_ne20_16")]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<16>; +template [[host_name("kernel_mul_mm_id_map0_ne20_1" )]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<1>; +template [[host_name("kernel_mul_mm_id_map0_ne20_2" )]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<2>; +template [[host_name("kernel_mul_mm_id_map0_ne20_4" )]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<4>; +template [[host_name("kernel_mul_mm_id_map0_ne20_6" )]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<6>; +template [[host_name("kernel_mul_mm_id_map0_ne20_8" )]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<8>; +template [[host_name("kernel_mul_mm_id_map0_ne20_10")]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<10>; +template [[host_name("kernel_mul_mm_id_map0_ne20_16")]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<16>; template kernel void kernel_mul_mm_id( @@ -8050,7 +8151,7 @@ typedef decltype(kernel_get_rows_f) get_rows_f_t; template [[host_name("kernel_get_rows_f32")]] kernel get_rows_f_t kernel_get_rows_f; template [[host_name("kernel_get_rows_f16")]] kernel get_rows_f_t kernel_get_rows_f; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_get_rows_bf16")]] kernel get_rows_f_t kernel_get_rows_f; #endif @@ -8085,7 +8186,7 @@ typedef decltype(kernel_set_rows_f) set_rows_f_t; template [[host_name("kernel_set_rows_f32")]] kernel set_rows_f_t kernel_set_rows_f; template [[host_name("kernel_set_rows_f16")]] kernel set_rows_f_t kernel_set_rows_f; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_set_rows_bf16")]] kernel set_rows_f_t kernel_set_rows_f; #endif @@ -8106,7 +8207,7 @@ typedef decltype(kernel_mul_mm; template [[host_name("kernel_mul_mm_f16_f32")]] kernel mul_mm_t kernel_mul_mm; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_mul_mm_bf16_f32")]] kernel mul_mm_t kernel_mul_mm; #endif template [[host_name("kernel_mul_mm_q4_0_f32")]] kernel mul_mm_t kernel_mul_mm; @@ -8138,7 +8239,7 @@ typedef decltype(kernel_mul_mm_id; template [[host_name("kernel_mul_mm_id_f16_f16")]] kernel mul_mm_id kernel_mul_mm_id; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_mul_mm_id_bf16_f16")]] kernel mul_mm_id kernel_mul_mm_id; #endif template [[host_name("kernel_mul_mm_id_q4_0_f16")]] kernel mul_mm_id kernel_mul_mm_id; @@ -8282,7 +8383,7 @@ typedef decltype(kernel_mul_mv_id>>; template [[host_name("kernel_mul_mv_id_f16_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -#if defined(GGML_METAL_USE_BF16) +#if defined(GGML_METAL_HAS_BF16) template [[host_name("kernel_mul_mv_id_bf16_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; #endif template [[host_name("kernel_mul_mv_id_q8_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; @@ -8310,12 +8411,12 @@ template [[host_name("kernel_mul_mv_id_iq4_nl_f32")]] kernel kernel_mul_mv_id_t template [[host_name("kernel_mul_mv_id_iq4_xs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; kernel void kernel_pool_2d_max_f32( + constant ggml_metal_kargs_pool_2d & args, device const float * src0, device float * dst, - constant ggml_metal_kargs_pool_2d & args, uint gid[[thread_position_in_grid]]) { - if (gid >= args.parallel_elements) { + if (gid >= args.np) { return; } @@ -8348,12 +8449,12 @@ kernel void kernel_pool_2d_max_f32( } kernel void kernel_pool_2d_avg_f32( + constant ggml_metal_kargs_pool_2d & args, device const float * src0, device float * dst, - constant ggml_metal_kargs_pool_2d & args, uint gid[[thread_position_in_grid]]) { - if (gid >= args.parallel_elements) { + if (gid >= args.np) { return; } diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index b54a1a4e82..ce4a88761c 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -6325,12 +6325,20 @@ static std::vector> make_test_cases_eval() { } for (ggml_type type : {GGML_TYPE_F16, GGML_TYPE_F32}) { - test_cases.emplace_back(new test_sqr(type)); - test_cases.emplace_back(new test_sqrt(type)); - test_cases.emplace_back(new test_log(type)); - test_cases.emplace_back(new test_sin(type)); - test_cases.emplace_back(new test_cos(type)); - test_cases.emplace_back(new test_clamp(type)); + test_cases.emplace_back(new test_sqr (type)); + test_cases.emplace_back(new test_sqrt (type)); + test_cases.emplace_back(new test_log (type)); + test_cases.emplace_back(new test_sin (type)); + test_cases.emplace_back(new test_cos (type)); + test_cases.emplace_back(new test_clamp (type)); + test_cases.emplace_back(new test_leaky_relu(type)); + test_cases.emplace_back(new test_sqr (type, {7, 1, 5, 3})); + test_cases.emplace_back(new test_sqrt (type, {7, 1, 5, 3})); + test_cases.emplace_back(new test_log (type, {7, 1, 5, 3})); + test_cases.emplace_back(new test_sin (type, {7, 1, 5, 3})); + test_cases.emplace_back(new test_cos (type, {7, 1, 5, 3})); + test_cases.emplace_back(new test_clamp (type, {7, 1, 5, 3})); + test_cases.emplace_back(new test_leaky_relu(type, {7, 1, 5, 3})); } test_cases.emplace_back(new test_diag_mask_inf(GGML_TYPE_F32, {10, 10, 1, 1}, 5)); From d304f459d8619399eb232b1e3689379306f439d3 Mon Sep 17 00:00:00 2001 From: Reese Levine Date: Wed, 17 Sep 2025 13:09:40 -0700 Subject: [PATCH 05/11] GGML WebGPU: Support for ADD, MUL, RMS_NORM, GET_ROWS operators (#16018) * Add paramater buffer pool, batching of submissions, refactor command building/submission * Add header for linux builds * Free staged parameter buffers at once * Format with clang-format * Fix thread-safe implementation * Use device implicit synchronization * Update workflow to use custom release * Remove testing branch workflow * some f32 tests passing * Disable set_rows until it's implemented * f32 add all tests passing * Begin work on set_rows * Work on set rows * Add error buffers for reporting unsupported SET_ROWS indices * Remove extra comments * Add templated addition, clean up code * Get addition and multiplication working * Implement rms_norm * Add get_rows implementation * Add new get_rows files * Refactor use of wg size entry * Fix compilation * Try manually unrolled q4_0 quant * Revert "Try manually unrolled q4_0 quant" This reverts commit 77f8b96515f7e640ae4b0e44f066321fbc4a6166. * Move to constant max wg size * Check for tensor size in supports_op * Vectorize f32 and change default workgroup size * Move f32 get_rows from < 4 to % 4 != 0 * fix linter errors * Add in-place tests --------- Co-authored-by: Neha Abbas --- ggml/src/ggml-webgpu/ggml-webgpu.cpp | 707 ++++++++----- .../ggml-webgpu/wgsl-shaders/add.tmpl.wgsl | 44 + .../wgsl-shaders/add_in_place.tmpl.wgsl | 41 + .../ggml-webgpu/wgsl-shaders/binary_head.tmpl | 45 + .../wgsl-shaders/common_decls.tmpl | 930 ++++++++++++++++++ .../ggml-webgpu/wgsl-shaders/embed_wgsl.py | 53 +- .../wgsl-shaders/get_rows.tmpl.wgsl | 874 ++++++++++++++++ .../ggml-webgpu/wgsl-shaders/mul.tmpl.wgsl | 44 + .../wgsl-shaders/mul_in_place.tmpl.wgsl | 41 + .../wgsl-shaders/mul_mat.tmpl.wgsl | 925 +---------------- .../ggml-webgpu/wgsl-shaders/rms_norm.wgsl | 57 ++ .../wgsl-shaders/rms_norm_in_place.wgsl | 48 + .../ggml-webgpu/wgsl-shaders/set_rows.wgsl | 1 - tests/test-backend-ops.cpp | 4 + 14 files changed, 2673 insertions(+), 1141 deletions(-) create mode 100644 ggml/src/ggml-webgpu/wgsl-shaders/add.tmpl.wgsl create mode 100644 ggml/src/ggml-webgpu/wgsl-shaders/add_in_place.tmpl.wgsl create mode 100644 ggml/src/ggml-webgpu/wgsl-shaders/binary_head.tmpl create mode 100644 ggml/src/ggml-webgpu/wgsl-shaders/common_decls.tmpl create mode 100644 ggml/src/ggml-webgpu/wgsl-shaders/get_rows.tmpl.wgsl create mode 100644 ggml/src/ggml-webgpu/wgsl-shaders/mul.tmpl.wgsl create mode 100644 ggml/src/ggml-webgpu/wgsl-shaders/mul_in_place.tmpl.wgsl create mode 100644 ggml/src/ggml-webgpu/wgsl-shaders/rms_norm.wgsl create mode 100644 ggml/src/ggml-webgpu/wgsl-shaders/rms_norm_in_place.wgsl diff --git a/ggml/src/ggml-webgpu/ggml-webgpu.cpp b/ggml/src/ggml-webgpu/ggml-webgpu.cpp index df6a3ed95a..8e7b986df8 100644 --- a/ggml/src/ggml-webgpu/ggml-webgpu.cpp +++ b/ggml/src/ggml-webgpu/ggml-webgpu.cpp @@ -116,6 +116,10 @@ struct webgpu_context_struct { wgpu::Queue queue; wgpu::Limits limits; + // Separate this out from limits since on some Metal systems, the limit returned by + // querying the limits is higher than the actual allowed maximum. + uint32_t max_wg_size_x; + std::recursive_mutex mutex; webgpu_buf_pool param_buf_pool; @@ -124,7 +128,15 @@ struct webgpu_context_struct { wgpu::ComputePipeline memset_pipeline; wgpu::ComputePipeline mul_mat_pipeline[30][2]; wgpu::ComputePipeline set_rows_pipeline; + wgpu::ComputePipeline get_rows_pipeline[30]; + wgpu::ComputePipeline get_rows_f32_no_vec_pipeline; wgpu::ComputePipeline cpy_pipeline; + wgpu::ComputePipeline add_pipeline[2]; + wgpu::ComputePipeline add_ip_pipeline[2]; + wgpu::ComputePipeline mul_pipeline[2]; + wgpu::ComputePipeline mul_ip_pipeline[2]; + wgpu::ComputePipeline rms_norm_pipeline; + wgpu::ComputePipeline rms_norm_ip_pipeline; size_t memset_bytes_per_thread; @@ -232,14 +244,15 @@ static void ggml_backend_webgpu_wait_on_submission(webgpu_context & ctx) { std::lock_guard lock(ctx->mutex); if (ctx->callback_futures.empty()) { // no existing callbacks, wait on queue submission - ctx->instance.WaitAny(ctx->queue.OnSubmittedWorkDone( - wgpu::CallbackMode::AllowSpontaneous, - [](wgpu::QueueWorkDoneStatus status, wgpu::StringView message) { - if (status != wgpu::QueueWorkDoneStatus::Success) { - GGML_LOG_ERROR("ggml_webgpu: Failed to submit commands: %s\n", std::string(message).c_str()); - } - }), - UINT64_MAX); + ctx->instance.WaitAny( + ctx->queue.OnSubmittedWorkDone(wgpu::CallbackMode::AllowSpontaneous, + [](wgpu::QueueWorkDoneStatus status, wgpu::StringView message) { + if (status != wgpu::QueueWorkDoneStatus::Success) { + GGML_LOG_ERROR("ggml_webgpu: Failed to submit commands: %s\n", + std::string(message).c_str()); + } + }), + UINT64_MAX); } else { // existing callbacks, wait on them ctx->instance.WaitAny(ctx->callback_futures.size(), ctx->callback_futures.data(), UINT64_MAX); @@ -286,10 +299,7 @@ static void ggml_backend_webgpu_submit_queue(webgpu_context & ctx) { // Check for errrors in SET_ROWS operations for (auto & error_bufs : staged_set_row_error_bufs) { wgpu::Future f = error_bufs.host_buf.MapAsync( - wgpu::MapMode::Read, - 0, - error_bufs.host_buf.GetSize(), - wgpu::CallbackMode::AllowSpontaneous, + wgpu::MapMode::Read, 0, error_bufs.host_buf.GetSize(), wgpu::CallbackMode::AllowSpontaneous, [ctx, error_bufs](wgpu::MapAsyncStatus status, wgpu::StringView message) { if (status != wgpu::MapAsyncStatus::Success) { GGML_LOG_ERROR("ggml_webgpu: Failed to map error buffer: %s\n", std::string(message).c_str()); @@ -311,10 +321,7 @@ static void ggml_backend_webgpu_map_buffer(webgpu_context & ctx, wgpu::MapMode mode, size_t offset, size_t size) { - ctx->instance.WaitAny(buffer.MapAsync(mode, - offset, - size, - wgpu::CallbackMode::AllowSpontaneous, + ctx->instance.WaitAny(buffer.MapAsync(mode, offset, size, wgpu::CallbackMode::AllowSpontaneous, [](wgpu::MapAsyncStatus status, wgpu::StringView message) { if (status != wgpu::MapAsyncStatus::Success) { GGML_LOG_ERROR("ggml_webgpu: Failed to map buffer: %s\n", @@ -351,7 +358,8 @@ static void ggml_backend_webgpu_build_and_enqueue(webgpu_context & std::vector params, std::vector bind_group_entries, uint32_t wg_x, - bool submit_and_wait = false) { + const char * bind_group_label = nullptr, + bool submit_and_wait = false) { webgpu_pool_bufs params_bufs = ctx->param_buf_pool.alloc_bufs(); ggml_backend_webgpu_map_buffer(ctx, params_bufs.host_buf, wgpu::MapMode::Write, 0, params_bufs.host_buf.GetSize()); @@ -372,6 +380,9 @@ static void ggml_backend_webgpu_build_and_enqueue(webgpu_context & bind_group_desc.layout = pipeline.GetBindGroupLayout(0); bind_group_desc.entryCount = bind_group_entries.size(); bind_group_desc.entries = bind_group_entries.data(); + if (bind_group_label) { + bind_group_desc.label = bind_group_label; + } wgpu::BindGroup bind_group = ctx->device.CreateBindGroup(&bind_group_desc); wgpu::CommandEncoder encoder = ctx->device.CreateCommandEncoder(); @@ -415,9 +426,9 @@ static void ggml_backend_webgpu_buffer_memset(webgpu_context & ctx, std::vector entries = { { .binding = 0, .buffer = buf, .offset = 0, .size = buf.GetSize() } }; - size_t bytes_per_wg = ctx->limits.maxComputeWorkgroupSizeX * ctx->memset_bytes_per_thread; + size_t bytes_per_wg = ctx->max_wg_size_x * ctx->memset_bytes_per_thread; uint32_t wg_x = ((size + 3) + bytes_per_wg - 1) / bytes_per_wg; - ggml_backend_webgpu_build_and_enqueue(ctx, ctx->memset_pipeline, params, entries, wg_x, true); + ggml_backend_webgpu_build_and_enqueue(ctx, ctx->memset_pipeline, params, entries, wg_x, "MEMSET", true); } /** End WebGPU Actions */ @@ -461,26 +472,26 @@ static size_t ggml_webgpu_tensor_binding_size(webgpu_context & ctx, ggml_tensor ~(WEBGPU_STORAGE_BUF_BINDING_MULT - 1); } +// Used to determine if two tensors are the same for in-place operations +static bool ggml_webgpu_tensor_equal(ggml_tensor * a, ggml_tensor * b) { + return (ggml_webgpu_tensor_buf(a).Get() == ggml_webgpu_tensor_buf(b).Get()) && + (ggml_webgpu_tensor_offset(a) == ggml_webgpu_tensor_offset(b)); +} + static void ggml_webgpu_cpy(webgpu_context & ctx, ggml_tensor * src, ggml_tensor * dst) { uint32_t ne = (uint32_t) ggml_nelements(dst); - std::vector params = { ne, - (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, src) / ggml_type_size(src->type)), - (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, dst) / ggml_type_size(dst->type)), - // Convert byte-strides to element-strides - (uint32_t) (src->nb[0] / ggml_type_size(src->type)), - (uint32_t) (src->nb[1] / ggml_type_size(src->type)), - (uint32_t) (src->nb[2] / ggml_type_size(src->type)), - (uint32_t) (src->nb[3] / ggml_type_size(src->type)), - (uint32_t) (dst->nb[0] / ggml_type_size(dst->type)), - (uint32_t) (dst->nb[1] / ggml_type_size(dst->type)), - (uint32_t) (dst->nb[2] / ggml_type_size(dst->type)), - (uint32_t) (dst->nb[3] / ggml_type_size(dst->type)), - // Logical shape — same for both tensors even if permuted - (uint32_t) src->ne[0], - (uint32_t) src->ne[1], - (uint32_t) src->ne[2], - (uint32_t) src->ne[3] }; + std::vector params = { + ne, (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, src) / ggml_type_size(src->type)), + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, dst) / ggml_type_size(dst->type)), + // Convert byte-strides to element-strides + (uint32_t) (src->nb[0] / ggml_type_size(src->type)), (uint32_t) (src->nb[1] / ggml_type_size(src->type)), + (uint32_t) (src->nb[2] / ggml_type_size(src->type)), (uint32_t) (src->nb[3] / ggml_type_size(src->type)), + (uint32_t) (dst->nb[0] / ggml_type_size(dst->type)), (uint32_t) (dst->nb[1] / ggml_type_size(dst->type)), + (uint32_t) (dst->nb[2] / ggml_type_size(dst->type)), (uint32_t) (dst->nb[3] / ggml_type_size(dst->type)), + // Logical shape — same for both tensors even if permuted + (uint32_t) src->ne[0], (uint32_t) src->ne[1], (uint32_t) src->ne[2], (uint32_t) src->ne[3] + }; std::vector entries = { { .binding = 0, @@ -493,9 +504,9 @@ static void ggml_webgpu_cpy(webgpu_context & ctx, ggml_tensor * src, ggml_tensor .size = ggml_webgpu_tensor_binding_size(ctx, dst) } }; - size_t max_wg_size = ctx->limits.maxComputeWorkgroupSizeX; + size_t max_wg_size = ctx->max_wg_size_x; uint32_t wg_x = (ne + max_wg_size - 1) / max_wg_size; - ggml_backend_webgpu_build_and_enqueue(ctx, ctx->cpy_pipeline, params, entries, wg_x); + ggml_backend_webgpu_build_and_enqueue(ctx, ctx->cpy_pipeline, params, entries, wg_x, ggml_op_name(dst->op)); } static void ggml_webgpu_set_rows(webgpu_context & ctx, ggml_tensor * src, ggml_tensor * idx, ggml_tensor * dst) { @@ -509,27 +520,21 @@ static void ggml_webgpu_set_rows(webgpu_context & ctx, ggml_tensor * src, ggml_t error_bufs.host_buf.Unmap(); } - std::vector params = { (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, src) / ggml_type_size(src->type)), - (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, idx) / ggml_type_size(idx->type)), - (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, dst) / ggml_type_size(dst->type)), - // Convert byte-strides to element-strides - (uint32_t) (src->nb[1] / ggml_type_size(src->type)), - (uint32_t) (src->nb[2] / ggml_type_size(src->type)), - (uint32_t) (src->nb[3] / ggml_type_size(src->type)), - (uint32_t) (idx->nb[0] / ggml_type_size(idx->type)), - (uint32_t) (idx->nb[1] / ggml_type_size(idx->type)), - (uint32_t) (idx->nb[2] / ggml_type_size(idx->type)), - (uint32_t) (dst->nb[1] / ggml_type_size(dst->type)), - (uint32_t) (dst->nb[2] / ggml_type_size(dst->type)), - (uint32_t) (dst->nb[3] / ggml_type_size(dst->type)), - // Shape of src - (uint32_t) src->ne[0], - (uint32_t) src->ne[1], - (uint32_t) src->ne[2], - (uint32_t) src->ne[3], - // Shape of idx - (uint32_t) (idx->ne[1]), - (uint32_t) (idx->ne[2]) }; + std::vector params = { + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, src) / ggml_type_size(src->type)), + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, idx) / ggml_type_size(idx->type)), + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, dst) / ggml_type_size(dst->type)), + // Convert byte-strides to element-strides + (uint32_t) (src->nb[1] / ggml_type_size(src->type)), (uint32_t) (src->nb[2] / ggml_type_size(src->type)), + (uint32_t) (src->nb[3] / ggml_type_size(src->type)), (uint32_t) (idx->nb[0] / ggml_type_size(idx->type)), + (uint32_t) (idx->nb[1] / ggml_type_size(idx->type)), (uint32_t) (idx->nb[2] / ggml_type_size(idx->type)), + (uint32_t) (dst->nb[1] / ggml_type_size(dst->type)), (uint32_t) (dst->nb[2] / ggml_type_size(dst->type)), + (uint32_t) (dst->nb[3] / ggml_type_size(dst->type)), + // Shape of src + (uint32_t) src->ne[0], (uint32_t) src->ne[1], (uint32_t) src->ne[2], (uint32_t) src->ne[3], + // Shape of idx + (uint32_t) (idx->ne[1]), (uint32_t) (idx->ne[2]) + }; std::vector entries = { { .binding = 0, @@ -547,13 +552,55 @@ static void ggml_webgpu_set_rows(webgpu_context & ctx, ggml_tensor * src, ggml_t { .binding = 3, .buffer = error_bufs.dev_buf, .offset = 0, .size = error_bufs.dev_buf.GetSize() } }; - size_t max_wg_size = ctx->limits.maxComputeWorkgroupSizeX; + size_t max_wg_size = ctx->max_wg_size_x; uint32_t wg_x = (src->ne[1] * src->ne[2] * src->ne[3] + max_wg_size - 1) / max_wg_size; std::lock_guard lock(ctx->mutex); ctx->staged_set_row_error_bufs.push_back(error_bufs); - ggml_backend_webgpu_build_and_enqueue(ctx, ctx->set_rows_pipeline, params, entries, wg_x); + ggml_backend_webgpu_build_and_enqueue(ctx, ctx->set_rows_pipeline, params, entries, wg_x, ggml_op_name(dst->op)); +} + +static void ggml_webgpu_get_rows(webgpu_context & ctx, ggml_tensor * src, ggml_tensor * idx, ggml_tensor * dst) { + std::vector params = { + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, src) / ggml_type_size(src->type)), + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, idx) / ggml_type_size(idx->type)), + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, dst) / ggml_type_size(dst->type)), + // Convert byte-strides to element-strides + (uint32_t) (src->nb[1] / ggml_type_size(src->type)), (uint32_t) (src->nb[2] / ggml_type_size(src->type)), + (uint32_t) (src->nb[3] / ggml_type_size(src->type)), (uint32_t) (idx->nb[0] / ggml_type_size(idx->type)), + (uint32_t) (idx->nb[1] / ggml_type_size(idx->type)), (uint32_t) (idx->nb[2] / ggml_type_size(idx->type)), + (uint32_t) (dst->nb[1] / ggml_type_size(dst->type)), (uint32_t) (dst->nb[2] / ggml_type_size(dst->type)), + (uint32_t) (dst->nb[3] / ggml_type_size(dst->type)), + // Shape of dst + (uint32_t) dst->ne[0], (uint32_t) dst->ne[1], (uint32_t) dst->ne[2], (uint32_t) dst->ne[3], + // Shape of idx + (uint32_t) (idx->ne[1]), (uint32_t) (idx->ne[2]) + }; + + std::vector entries = { + { .binding = 0, + .buffer = ggml_webgpu_tensor_buf(src), + .offset = ggml_webgpu_tensor_align_offset(ctx, src), + .size = ggml_webgpu_tensor_binding_size(ctx, src) }, + { .binding = 1, + .buffer = ggml_webgpu_tensor_buf(idx), + .offset = ggml_webgpu_tensor_align_offset(ctx, idx), + .size = ggml_webgpu_tensor_binding_size(ctx, idx) }, + { .binding = 2, + .buffer = ggml_webgpu_tensor_buf(dst), + .offset = ggml_webgpu_tensor_align_offset(ctx, dst), + .size = ggml_webgpu_tensor_binding_size(ctx, dst) } + }; + + size_t max_wg_size = ctx->max_wg_size_x; + uint32_t wg_x = (dst->ne[1] * dst->ne[2] * dst->ne[3] + max_wg_size - 1) / max_wg_size; + + wgpu::ComputePipeline pipeline = ctx->get_rows_pipeline[src->type]; + if (src->type == GGML_TYPE_F32 && dst->ne[0] % 4 != 0) { + pipeline = ctx->get_rows_f32_no_vec_pipeline; + } + ggml_backend_webgpu_build_and_enqueue(ctx, pipeline, params, entries, wg_x, ggml_op_name(dst->op)); } static void ggml_webgpu_mul_mat(webgpu_context & ctx, ggml_tensor * src0, ggml_tensor * src1, ggml_tensor * dst) { @@ -593,7 +640,104 @@ static void ggml_webgpu_mul_mat(webgpu_context & ctx, ggml_tensor * src0, ggml_t uint32_t wg_x = (dst->ne[0] * dst->ne[1] * dst->ne[2] * dst->ne[3] + WEBGPU_MUL_MAT_WG_SIZE - 1) / WEBGPU_MUL_MAT_WG_SIZE; - ggml_backend_webgpu_build_and_enqueue(ctx, ctx->mul_mat_pipeline[src0->type][src1->type], params, entries, wg_x); + ggml_backend_webgpu_build_and_enqueue(ctx, ctx->mul_mat_pipeline[src0->type][src1->type], params, entries, wg_x, + ggml_op_name(dst->op)); +} + +static void ggml_webgpu_binary_op(webgpu_context & ctx, + ggml_tensor * src0, + ggml_tensor * src1, + ggml_tensor * dst, + wgpu::ComputePipeline & pipeline, + bool in_place) { + std::vector params = { + (uint32_t) ggml_nelements(dst), + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, src0) / ggml_type_size(src0->type)), + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, src1) / ggml_type_size(src1->type)), + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, dst) / ggml_type_size(dst->type)), + (uint32_t) (src1->nb[0] / ggml_type_size(src1->type)), + (uint32_t) (src1->nb[1] / ggml_type_size(src1->type)), + (uint32_t) (src1->nb[2] / ggml_type_size(src1->type)), + (uint32_t) (src1->nb[3] / ggml_type_size(src1->type)), + (uint32_t) src0->ne[0], + (uint32_t) src0->ne[1], + (uint32_t) src0->ne[2], + (uint32_t) src1->ne[0], + (uint32_t) src1->ne[1], + (uint32_t) src1->ne[2], + (uint32_t) src1->ne[3], + }; + + std::vector entries = { + { .binding = 0, + .buffer = ggml_webgpu_tensor_buf(src0), + .offset = ggml_webgpu_tensor_align_offset(ctx, src0), + .size = ggml_webgpu_tensor_binding_size(ctx, src0) }, + { .binding = 1, + .buffer = ggml_webgpu_tensor_buf(src1), + .offset = ggml_webgpu_tensor_align_offset(ctx, src1), + .size = ggml_webgpu_tensor_binding_size(ctx, src1) } + }; + if (!in_place) { + entries.push_back({ .binding = 2, + .buffer = ggml_webgpu_tensor_buf(dst), + .offset = ggml_webgpu_tensor_align_offset(ctx, dst), + .size = ggml_webgpu_tensor_binding_size(ctx, dst) }); + } + + size_t max_wg_size = ctx->max_wg_size_x; + uint32_t wg_x = (ggml_nelements(dst) + max_wg_size - 1) / max_wg_size; + ggml_backend_webgpu_build_and_enqueue(ctx, pipeline, params, entries, wg_x, ggml_op_name(dst->op)); +} + +static void ggml_webgpu_rms_norm(webgpu_context & ctx, ggml_tensor * src, ggml_tensor * dst) { + bool in_place = ggml_webgpu_tensor_equal(src, dst); + + uint32_t eps; + memcpy(&eps, dst->op_params, sizeof(float)); + + std::vector params = { + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, src) / ggml_type_size(src->type)), + }; + if (!in_place) { + params.push_back((uint32_t) (ggml_webgpu_tensor_misalignment(ctx, dst) / ggml_type_size(dst->type))); + } + params.push_back((uint32_t) (src->nb[1] / ggml_type_size(src->type))); + params.push_back((uint32_t) (src->nb[2] / ggml_type_size(src->type))); + params.push_back((uint32_t) (src->nb[3] / ggml_type_size(src->type))); + if (!in_place) { + params.push_back((uint32_t) (dst->nb[1] / ggml_type_size(dst->type))); + params.push_back((uint32_t) (dst->nb[2] / ggml_type_size(dst->type))); + params.push_back((uint32_t) (dst->nb[3] / ggml_type_size(dst->type))); + } + params.push_back((uint32_t) src->ne[0]); + params.push_back((uint32_t) src->ne[1]); + params.push_back((uint32_t) src->ne[2]); + params.push_back((uint32_t) src->ne[3]); + params.push_back(eps); // epsilon, will be bitcast to float in shader + + std::vector entries = { + { .binding = 0, + .buffer = ggml_webgpu_tensor_buf(src), + .offset = ggml_webgpu_tensor_align_offset(ctx, src), + .size = ggml_webgpu_tensor_binding_size(ctx, src) } + }; + if (!in_place) { + entries.push_back({ .binding = 1, + .buffer = ggml_webgpu_tensor_buf(dst), + .offset = ggml_webgpu_tensor_align_offset(ctx, dst), + .size = ggml_webgpu_tensor_binding_size(ctx, dst) }); + } + + wgpu::ComputePipeline pipeline; + if (in_place) { + pipeline = ctx->rms_norm_ip_pipeline; + } else { + pipeline = ctx->rms_norm_pipeline; + } + size_t max_wg_size = ctx->max_wg_size_x; + uint32_t wg_x = (src->ne[1] * src->ne[2] * src->ne[3] + max_wg_size - 1) / max_wg_size; + ggml_backend_webgpu_build_and_enqueue(ctx, pipeline, params, entries, wg_x, ggml_op_name(dst->op)); } // Returns true if node has enqueued work into the queue, false otherwise @@ -615,20 +759,34 @@ static bool ggml_webgpu_encode_node(webgpu_context ctx, ggml_tensor * node) { case GGML_OP_RESHAPE: return false; case GGML_OP_CPY: - { - ggml_webgpu_cpy(ctx, src0, node); - break; - } + ggml_webgpu_cpy(ctx, src0, node); + break; case GGML_OP_SET_ROWS: - { - ggml_webgpu_set_rows(ctx, src0, src1, node); - break; - } + ggml_webgpu_set_rows(ctx, src0, src1, node); + break; + case GGML_OP_GET_ROWS: + ggml_webgpu_get_rows(ctx, src0, src1, node); + break; case GGML_OP_MUL_MAT: - { - ggml_webgpu_mul_mat(ctx, src0, src1, node); - break; + ggml_webgpu_mul_mat(ctx, src0, src1, node); + break; + case GGML_OP_ADD: + if (ggml_webgpu_tensor_equal(src0, node)) { + ggml_webgpu_binary_op(ctx, src0, src1, node, ctx->add_ip_pipeline[node->type], true); + } else { + ggml_webgpu_binary_op(ctx, src0, src1, node, ctx->add_pipeline[node->type], false); } + break; + case GGML_OP_MUL: + if (ggml_webgpu_tensor_equal(src0, node)) { + ggml_webgpu_binary_op(ctx, src0, src1, node, ctx->mul_ip_pipeline[node->type], true); + } else { + ggml_webgpu_binary_op(ctx, src0, src1, node, ctx->mul_pipeline[node->type], false); + } + break; + case GGML_OP_RMS_NORM: + ggml_webgpu_rms_norm(ctx, src0, node); + break; default: return false; } @@ -731,8 +889,8 @@ static void ggml_backend_webgpu_buffer_set_tensor(ggml_backend_buffer_t buffer, ((uint8_t *) &val32)[i] = ((const uint8_t *) data)[size - remaining_size + i]; } // memset the remaining bytes - ggml_backend_webgpu_buffer_memset( - webgpu_ctx, buf_ctx->buffer, val32, total_offset + (size - remaining_size), remaining_size); + ggml_backend_webgpu_buffer_memset(webgpu_ctx, buf_ctx->buffer, val32, total_offset + (size - remaining_size), + remaining_size); } else { // wait for WriteBuffer to complete ggml_backend_webgpu_wait_on_submission(webgpu_ctx); @@ -766,11 +924,8 @@ static void ggml_backend_webgpu_buffer_get_tensor(ggml_backend_buffer_t buffer, if (webgpu_ctx->get_tensor_staging_buf) { webgpu_ctx->get_tensor_staging_buf.Destroy(); } - ggml_webgpu_create_buffer(device, - webgpu_ctx->get_tensor_staging_buf, - final_size, - wgpu::BufferUsage::CopyDst | wgpu::BufferUsage::MapRead, - "get_tensor_staging_buf"); + ggml_webgpu_create_buffer(device, webgpu_ctx->get_tensor_staging_buf, final_size, + wgpu::BufferUsage::CopyDst | wgpu::BufferUsage::MapRead, "get_tensor_staging_buf"); } // Copy the data from the buffer to the staging buffer @@ -824,8 +979,7 @@ static ggml_backend_buffer_t ggml_backend_webgpu_buffer_type_alloc_buffer(ggml_b ggml_backend_webgpu_device_context * ctx = static_cast(buft->device->context); wgpu::Buffer buf; - ggml_webgpu_create_buffer(ctx->webgpu_ctx->device, - buf, + ggml_webgpu_create_buffer(ctx->webgpu_ctx->device, buf, (size + WEBGPU_STORAGE_BUF_BINDING_MULT - 1) & ~(WEBGPU_STORAGE_BUF_BINDING_MULT - 1), wgpu::BufferUsage::Storage | wgpu::BufferUsage::CopySrc | wgpu::BufferUsage::CopyDst, "allocated_buffer"); @@ -890,9 +1044,17 @@ static ggml_guid_t ggml_backend_webgpu_guid(void) { return reinterpret_cast((void *) guid_str); } +// The max workgroup size is a common constant +static std::vector ggml_webgpu_max_wg_size_entry(webgpu_context & webgpu_ctx) { + std::vector constants(1); + constants[0].key = "wg_size"; + constants[0].value = webgpu_ctx->max_wg_size_x; + return constants; +} + static void ggml_webgpu_init_memset_pipeline(webgpu_context & webgpu_ctx) { // we use the maximum workgroup size for the memset pipeline - size_t max_wg_size = webgpu_ctx->limits.maxComputeWorkgroupSizeX; + size_t max_wg_size = webgpu_ctx->max_wg_size_x; size_t max_threads = max_wg_size * webgpu_ctx->limits.maxComputeWorkgroupsPerDimension; // Size the bytes_per_thread so that the largest buffer size can be handled webgpu_ctx->memset_bytes_per_thread = @@ -906,109 +1068,142 @@ static void ggml_webgpu_init_memset_pipeline(webgpu_context & webgpu_ctx) { } static void ggml_webgpu_init_mul_mat_pipeline(webgpu_context & webgpu_ctx) { - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_F32][GGML_TYPE_F32], - wgsl_mul_mat_f32_f32, - "mul_mat_f32_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_F16][GGML_TYPE_F16], - wgsl_mul_mat_f16_f16, - "mul_mat_f16_f16"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_F16][GGML_TYPE_F32], - wgsl_mul_mat_f16_f32, - "mul_mat_f16_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q4_0][GGML_TYPE_F32], - wgsl_mul_mat_q4_0_f32, - "mul_mat_q4_0_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q4_1][GGML_TYPE_F32], - wgsl_mul_mat_q4_1_f32, - "mul_mat_q4_1_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q5_0][GGML_TYPE_F32], - wgsl_mul_mat_q5_0_f32, - "mul_mat_q5_0_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q5_1][GGML_TYPE_F32], - wgsl_mul_mat_q5_1_f32, - "mul_mat_q5_1_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q8_0][GGML_TYPE_F32], - wgsl_mul_mat_q8_0_f32, - "mul_mat_q8_0_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q2_K][GGML_TYPE_F32], - wgsl_mul_mat_q2_k_f32, - "mul_mat_q2_k_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q3_K][GGML_TYPE_F32], - wgsl_mul_mat_q3_k_f32, - "mul_mat_q3_k_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q4_K][GGML_TYPE_F32], - wgsl_mul_mat_q4_k_f32, - "mul_mat_q4_k_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q5_K][GGML_TYPE_F32], - wgsl_mul_mat_q5_k_f32, - "mul_mat_q5_k_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q6_K][GGML_TYPE_F32], - wgsl_mul_mat_q6_k_f32, - "mul_mat_q6_k_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ2_XXS][GGML_TYPE_F32], - wgsl_mul_mat_iq2_xxs_f32, - "mul_mat_iq2_xxs_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ2_XS][GGML_TYPE_F32], - wgsl_mul_mat_iq2_xs_f32, - "mul_mat_iq2_xs_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ2_S][GGML_TYPE_F32], - wgsl_mul_mat_iq2_s_f32, - "mul_mat_iq2_s_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ3_XXS][GGML_TYPE_F32], - wgsl_mul_mat_iq3_xxs_f32, - "mul_mat_iq3_xxs_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ3_S][GGML_TYPE_F32], - wgsl_mul_mat_iq3_s_f32, - "mul_mat_iq3_s_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ1_S][GGML_TYPE_F32], - wgsl_mul_mat_iq1_s_f32, - "mul_mat_iq1_s_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ1_M][GGML_TYPE_F32], - wgsl_mul_mat_iq1_m_f32, - "mul_mat_iq1_m_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ4_NL][GGML_TYPE_F32], - wgsl_mul_mat_iq4_nl_f32, - "mul_mat_iq4_nl_f32"); - ggml_webgpu_create_pipeline(webgpu_ctx->device, - webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ4_XS][GGML_TYPE_F32], - wgsl_mul_mat_iq4_xs_f32, - "mul_mat_iq4_xs_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_F32][GGML_TYPE_F32], + wgsl_mul_mat_f32_f32, "mul_mat_f32_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_F16][GGML_TYPE_F16], + wgsl_mul_mat_f16_f16, "mul_mat_f16_f16"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_F16][GGML_TYPE_F32], + wgsl_mul_mat_f16_f32, "mul_mat_f16_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q4_0][GGML_TYPE_F32], + wgsl_mul_mat_q4_0_f32, "mul_mat_q4_0_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q4_1][GGML_TYPE_F32], + wgsl_mul_mat_q4_1_f32, "mul_mat_q4_1_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q5_0][GGML_TYPE_F32], + wgsl_mul_mat_q5_0_f32, "mul_mat_q5_0_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q5_1][GGML_TYPE_F32], + wgsl_mul_mat_q5_1_f32, "mul_mat_q5_1_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q8_0][GGML_TYPE_F32], + wgsl_mul_mat_q8_0_f32, "mul_mat_q8_0_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q2_K][GGML_TYPE_F32], + wgsl_mul_mat_q2_k_f32, "mul_mat_q2_k_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q3_K][GGML_TYPE_F32], + wgsl_mul_mat_q3_k_f32, "mul_mat_q3_k_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q4_K][GGML_TYPE_F32], + wgsl_mul_mat_q4_k_f32, "mul_mat_q4_k_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q5_K][GGML_TYPE_F32], + wgsl_mul_mat_q5_k_f32, "mul_mat_q5_k_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_Q6_K][GGML_TYPE_F32], + wgsl_mul_mat_q6_k_f32, "mul_mat_q6_k_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ2_XXS][GGML_TYPE_F32], + wgsl_mul_mat_iq2_xxs_f32, "mul_mat_iq2_xxs_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ2_XS][GGML_TYPE_F32], + wgsl_mul_mat_iq2_xs_f32, "mul_mat_iq2_xs_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ2_S][GGML_TYPE_F32], + wgsl_mul_mat_iq2_s_f32, "mul_mat_iq2_s_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ3_XXS][GGML_TYPE_F32], + wgsl_mul_mat_iq3_xxs_f32, "mul_mat_iq3_xxs_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ3_S][GGML_TYPE_F32], + wgsl_mul_mat_iq3_s_f32, "mul_mat_iq3_s_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ1_S][GGML_TYPE_F32], + wgsl_mul_mat_iq1_s_f32, "mul_mat_iq1_s_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ1_M][GGML_TYPE_F32], + wgsl_mul_mat_iq1_m_f32, "mul_mat_iq1_m_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ4_NL][GGML_TYPE_F32], + wgsl_mul_mat_iq4_nl_f32, "mul_mat_iq4_nl_f32"); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_mat_pipeline[GGML_TYPE_IQ4_XS][GGML_TYPE_F32], + wgsl_mul_mat_iq4_xs_f32, "mul_mat_iq4_xs_f32"); } static void ggml_webgpu_init_set_rows_pipeline(webgpu_context & webgpu_ctx) { - std::vector constants(1); - constants[0].key = "wg_size"; - constants[0].value = webgpu_ctx->limits.maxComputeWorkgroupSizeX; - ggml_webgpu_create_pipeline( - webgpu_ctx->device, webgpu_ctx->set_rows_pipeline, wgsl_set_rows, "set_rows", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->set_rows_pipeline, wgsl_set_rows, "set_rows", + ggml_webgpu_max_wg_size_entry(webgpu_ctx)); +} + +static void ggml_webgpu_init_get_rows_pipeline(webgpu_context & webgpu_ctx) { + std::vector constants = ggml_webgpu_max_wg_size_entry(webgpu_ctx); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_F32], wgsl_get_rows_f32_vec, + "get_rows_f32_vec", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_f32_no_vec_pipeline, wgsl_get_rows_f32, + "get_rows_f32", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_F16], wgsl_get_rows_f16, + "get_rows_f16", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_I32], wgsl_get_rows_i32, + "get_rows_i32", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_Q4_0], wgsl_get_rows_q4_0, + "get_rows_q4_0", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_Q4_1], wgsl_get_rows_q4_1, + "get_rows_q4_1", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_Q5_0], wgsl_get_rows_q5_0, + "get_rows_q5_0", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_Q5_1], wgsl_get_rows_q5_1, + "get_rows_q5_1", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_Q8_0], wgsl_get_rows_q8_0, + "get_rows_q8_0", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_Q2_K], wgsl_get_rows_q2_k, + "get_rows_q2_k", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_Q3_K], wgsl_get_rows_q3_k, + "get_rows_q3_k", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_Q4_K], wgsl_get_rows_q4_k, + "get_rows_q4_k", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_Q5_K], wgsl_get_rows_q5_k, + "get_rows_q5_k", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_Q6_K], wgsl_get_rows_q6_k, + "get_rows_q6_k", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_IQ2_XXS], + wgsl_get_rows_iq2_xxs, "get_rows_iq2_xxs", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_IQ2_XS], + wgsl_get_rows_iq2_xs, "get_rows_iq2_xs", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_IQ2_S], wgsl_get_rows_iq2_s, + "get_rows_iq2_s", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_IQ3_XXS], + wgsl_get_rows_iq3_xxs, "get_rows_iq3_xxs", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_IQ3_S], wgsl_get_rows_iq3_s, + "get_rows_iq3_s", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_IQ1_S], wgsl_get_rows_iq1_s, + "get_rows_iq1_s", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_IQ1_M], wgsl_get_rows_iq1_m, + "get_rows_iq1_m", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_IQ4_NL], + wgsl_get_rows_iq4_nl, "get_rows_iq4_nl", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->get_rows_pipeline[GGML_TYPE_IQ4_XS], + wgsl_get_rows_iq4_xs, "get_rows_iq4_xs", constants); } static void ggml_webgpu_init_cpy_pipeline(webgpu_context & webgpu_ctx) { - std::vector constants(1); - constants[0].key = "wg_size"; - constants[0].value = webgpu_ctx->limits.maxComputeWorkgroupSizeX; - ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->cpy_pipeline, wgsl_cpy, "cpy", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->cpy_pipeline, wgsl_cpy, "cpy", + ggml_webgpu_max_wg_size_entry(webgpu_ctx)); +} + +static void ggml_webgpu_init_add_pipeline(webgpu_context & webgpu_ctx) { + std::vector constants = ggml_webgpu_max_wg_size_entry(webgpu_ctx); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->add_pipeline[GGML_TYPE_F32], wgsl_add_f32, "add_f32", + constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->add_pipeline[GGML_TYPE_F16], wgsl_add_f16, "add_f16", + constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->add_ip_pipeline[GGML_TYPE_F32], wgsl_add_in_place_f32, + "add_in_place_f32", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->add_ip_pipeline[GGML_TYPE_F16], wgsl_add_in_place_f16, + "add_in_place_f16", constants); +} + +static void ggml_webgpu_init_mul_pipeline(webgpu_context & webgpu_ctx) { + std::vector constants = ggml_webgpu_max_wg_size_entry(webgpu_ctx); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_pipeline[GGML_TYPE_F32], wgsl_mul_f32, "mul_f32", + constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_pipeline[GGML_TYPE_F16], wgsl_mul_f16, "mul_f16", + constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_ip_pipeline[GGML_TYPE_F32], wgsl_mul_in_place_f32, + "mul_in_place_f32", constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->mul_ip_pipeline[GGML_TYPE_F16], wgsl_mul_in_place_f16, + "mul_in_place_f16", constants); +} + +static void ggml_webgpu_init_rms_norm_pipeline(webgpu_context & webgpu_ctx) { + std::vector constants = ggml_webgpu_max_wg_size_entry(webgpu_ctx); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->rms_norm_pipeline, wgsl_rms_norm, "rms_norm", + constants); + ggml_webgpu_create_pipeline(webgpu_ctx->device, webgpu_ctx->rms_norm_ip_pipeline, wgsl_rms_norm_in_place, + "rms_norm_in_place", constants); } static ggml_backend_t ggml_backend_webgpu_device_init(ggml_backend_dev_t dev, const char * params) { @@ -1058,24 +1253,77 @@ static bool ggml_backend_webgpu_device_supports_buft(ggml_backend_dev_t dev, ggm return buft->iface.get_name == ggml_backend_webgpu_buffer_type_get_name; } -static bool ggml_backend_webgpu_device_supports_op(ggml_backend_dev_t dev, const ggml_tensor * op) { - GGML_UNUSED(dev); +static bool ggml_webgpu_supported_qtype(ggml_type type) { + switch (type) { + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q2_K: + case GGML_TYPE_Q3_K: + case GGML_TYPE_Q4_K: + case GGML_TYPE_Q5_K: + case GGML_TYPE_Q6_K: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ2_S: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ1_S: + case GGML_TYPE_IQ1_M: + case GGML_TYPE_IQ4_NL: + case GGML_TYPE_IQ4_XS: + return true; + default: + return false; + } +} +static bool ggml_backend_webgpu_device_supports_op(ggml_backend_dev_t dev, const ggml_tensor * op) { + ggml_backend_webgpu_device_context * ctx = static_cast(dev->context); + + webgpu_context webgpu_ctx = ctx->webgpu_ctx; + + ggml_tensor * src0 = op->src[0]; + ggml_tensor * src1 = op->src[1]; + // on smaller devices (or CI), tensors may be larger than the max storage buffer size + if (ggml_nbytes(op) > webgpu_ctx->limits.maxStorageBufferBindingSize || + (src0 != nullptr && ggml_nbytes(src0) > webgpu_ctx->limits.maxStorageBufferBindingSize) || + (src1 != nullptr && ggml_nbytes(src1) > webgpu_ctx->limits.maxStorageBufferBindingSize)) { + return false; + } + + bool supports_op = false; switch (op->op) { case GGML_OP_NONE: case GGML_OP_VIEW: case GGML_OP_PERMUTE: case GGML_OP_TRANSPOSE: case GGML_OP_RESHAPE: - return true; + supports_op = true; + break; + case GGML_OP_ADD: + case GGML_OP_MUL: + supports_op = (op->type == GGML_TYPE_F32 || op->type == GGML_TYPE_F16) && (op->src[0]->type == op->type) && + (op->src[1]->type == op->type); + break; case GGML_OP_CPY: case GGML_OP_SET_ROWS: - return op->type == GGML_TYPE_F16 && op->src[0]->type == GGML_TYPE_F32; + supports_op = (op->type == GGML_TYPE_F16 && op->src[0]->type == GGML_TYPE_F32); + break; + case GGML_OP_GET_ROWS: + if (op->src[0]->type == GGML_TYPE_F32 || op->src[0]->type == GGML_TYPE_F16 || + op->src[0]->type == GGML_TYPE_I32 || ggml_webgpu_supported_qtype(op->src[0]->type)) { + supports_op = (op->type == GGML_TYPE_F32); + } + break; case GGML_OP_MUL_MAT: { switch (op->src[1]->type) { case GGML_TYPE_F16: - return op->src[0]->type == GGML_TYPE_F16; + supports_op = (op->src[0]->type == GGML_TYPE_F16); + break; case GGML_TYPE_F32: switch (op->src[0]->type) { case GGML_TYPE_F32: @@ -1099,17 +1347,30 @@ static bool ggml_backend_webgpu_device_supports_op(ggml_backend_dev_t dev, const case GGML_TYPE_IQ1_M: case GGML_TYPE_IQ4_NL: case GGML_TYPE_IQ4_XS: - return true; + supports_op = true; + break; default: - return false; + break; } default: - return false; + break; } + break; } + case GGML_OP_RMS_NORM: + supports_op = op->type == GGML_TYPE_F32 && op->src[0]->type == GGML_TYPE_F32; + break; default: - return false; + break; } +#ifdef GGML_WEBGPU_DEBUG + if (!supports_op) { + WEBGPU_LOG_DEBUG("not supported: " << ggml_op_name(op->op) << " with types dst: " << ggml_type_name(op->type) + << ", src0: " << (op->src[0] ? ggml_type_name(op->src[0]->type) : "null") + << ", src1: " << (op->src[1] ? ggml_type_name(op->src[1]->type) : "null")); + } +#endif + return supports_op; } static struct ggml_backend_device_i ggml_backend_webgpu_device_i = { @@ -1155,18 +1416,20 @@ static ggml_backend_dev_t ggml_backend_webgpu_reg_get_device(ggml_backend_reg_t webgpu_context ctx = reg_ctx->webgpu_ctx; wgpu::RequestAdapterOptions options = {}; - ctx->instance.WaitAny( - ctx->instance.RequestAdapter(&options, wgpu::CallbackMode::AllowSpontaneous, - [&ctx](wgpu::RequestAdapterStatus status, wgpu::Adapter adapter, const char * message) { - if (status != wgpu::RequestAdapterStatus::Success) { - GGML_LOG_ERROR("ggml_webgpu: Failed to get an adapter: %s\n", message); - return; - } - ctx->adapter = std::move(adapter); - }), UINT64_MAX); + ctx->instance.WaitAny(ctx->instance.RequestAdapter( + &options, wgpu::CallbackMode::AllowSpontaneous, + [&ctx](wgpu::RequestAdapterStatus status, wgpu::Adapter adapter, const char * message) { + if (status != wgpu::RequestAdapterStatus::Success) { + GGML_LOG_ERROR("ggml_webgpu: Failed to get an adapter: %s\n", message); + return; + } + ctx->adapter = std::move(adapter); + }), + UINT64_MAX); GGML_ASSERT(ctx->adapter != nullptr); ctx->adapter.GetLimits(&ctx->limits); + ctx->max_wg_size_x = 288; // default value wgpu::AdapterInfo info{}; ctx->adapter.GetInfo(&info); @@ -1182,21 +1445,21 @@ static ggml_backend_dev_t ggml_backend_webgpu_reg_get_device(ggml_backend_reg_t wgpu::CallbackMode::AllowSpontaneous, [](const wgpu::Device & device, wgpu::DeviceLostReason reason, wgpu::StringView message) { GGML_UNUSED(device); - GGML_LOG_ERROR( - "ggml_webgpu: Device lost! Reason: %d, Message: %s\n", static_cast(reason), std::string(message).c_str()); + GGML_LOG_ERROR("ggml_webgpu: Device lost! Reason: %d, Message: %s\n", static_cast(reason), + std::string(message).c_str()); }); dev_desc.SetUncapturedErrorCallback( [](const wgpu::Device & device, wgpu::ErrorType reason, wgpu::StringView message) { GGML_UNUSED(device); - GGML_LOG_ERROR( - "ggml_webgpu: Device error! Reason: %d, Message: %s\n", static_cast(reason), std::string(message).c_str()); + GGML_LOG_ERROR("ggml_webgpu: Device error! Reason: %d, Message: %s\n", static_cast(reason), + std::string(message).c_str()); }); ctx->instance.WaitAny(ctx->adapter.RequestDevice( - &dev_desc, - wgpu::CallbackMode::AllowSpontaneous, + &dev_desc, wgpu::CallbackMode::AllowSpontaneous, [ctx](wgpu::RequestDeviceStatus status, wgpu::Device device, wgpu::StringView message) { if (status != wgpu::RequestDeviceStatus::Success) { - GGML_LOG_ERROR("ggml_webgpu: Failed to get a device: %s\n", std::string(message).c_str()); + GGML_LOG_ERROR("ggml_webgpu: Failed to get a device: %s\n", + std::string(message).c_str()); return; } ctx->device = std::move(device); @@ -1208,34 +1471,28 @@ static ggml_backend_dev_t ggml_backend_webgpu_reg_get_device(ggml_backend_reg_t ctx->queue = ctx->device.GetQueue(); // Create buffer pool for shader parameters - ctx->param_buf_pool.init(ctx->device, - WEBGPU_NUM_PARAM_BUFS, - WEBGPU_PARAMS_BUF_SIZE_BYTES, + ctx->param_buf_pool.init(ctx->device, WEBGPU_NUM_PARAM_BUFS, WEBGPU_PARAMS_BUF_SIZE_BYTES, wgpu::BufferUsage::CopyDst | wgpu::BufferUsage::Uniform, wgpu::BufferUsage::CopySrc | wgpu::BufferUsage::MapWrite); - ctx->set_rows_error_buf_pool.init(ctx->device, - WEBGPU_NUM_SET_ROWS_ERROR_BUFS, - WEBGPU_SET_ROWS_ERROR_BUF_SIZE_BYTES, + ctx->set_rows_error_buf_pool.init(ctx->device, WEBGPU_NUM_SET_ROWS_ERROR_BUFS, WEBGPU_SET_ROWS_ERROR_BUF_SIZE_BYTES, wgpu::BufferUsage::CopySrc | wgpu::BufferUsage::Storage, wgpu::BufferUsage::CopyDst | wgpu::BufferUsage::MapRead); ggml_webgpu_init_memset_pipeline(ctx); ggml_webgpu_init_mul_mat_pipeline(ctx); ggml_webgpu_init_set_rows_pipeline(ctx); + ggml_webgpu_init_get_rows_pipeline(ctx); ggml_webgpu_init_cpy_pipeline(ctx); + ggml_webgpu_init_add_pipeline(ctx); + ggml_webgpu_init_mul_pipeline(ctx); + ggml_webgpu_init_rms_norm_pipeline(ctx); #ifdef GGML_WEBGPU_DEBUG // Initialize debug buffers - ggml_webgpu_create_buffer(ctx->device, - ctx->debug_host_buf, - WEBGPU_DEBUG_BUF_ELEMS * sizeof(uint32_t), - wgpu::BufferUsage::CopyDst | wgpu::BufferUsage::MapRead, - "debug_host_buf"); - ggml_webgpu_create_buffer(ctx->device, - ctx->debug_dev_buf, - WEBGPU_DEBUG_BUF_ELEMS * sizeof(uint32_t), - wgpu::BufferUsage::Storage | wgpu::BufferUsage::CopySrc, - "debug_dev_buf"); + ggml_webgpu_create_buffer(ctx->device, ctx->debug_host_buf, WEBGPU_DEBUG_BUF_ELEMS * sizeof(uint32_t), + wgpu::BufferUsage::CopyDst | wgpu::BufferUsage::MapRead, "debug_host_buf"); + ggml_webgpu_create_buffer(ctx->device, ctx->debug_dev_buf, WEBGPU_DEBUG_BUF_ELEMS * sizeof(uint32_t), + wgpu::BufferUsage::Storage | wgpu::BufferUsage::CopySrc, "debug_dev_buf"); #endif static ggml_backend_webgpu_device_context device_ctx; @@ -1246,12 +1503,8 @@ static ggml_backend_dev_t ggml_backend_webgpu_reg_get_device(ggml_backend_reg_t GGML_LOG_INFO( "ggml_webgpu: adapter_info: vendor_id: %u | vendor: %s | architecture: %s | device_id: %u | name: %s | " "device_desc: %s\n", - info.vendorID, - std::string(info.vendor).c_str(), - std::string(info.architecture).c_str(), - info.deviceID, - std::string(info.device).c_str(), - std::string(info.description).c_str()); + info.vendorID, std::string(info.vendor).c_str(), std::string(info.architecture).c_str(), info.deviceID, + std::string(info.device).c_str(), std::string(info.description).c_str()); // See GGML Backend Device Interface section static ggml_backend_device device = { diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/add.tmpl.wgsl b/ggml/src/ggml-webgpu/wgsl-shaders/add.tmpl.wgsl new file mode 100644 index 0000000000..f261cbb553 --- /dev/null +++ b/ggml/src/ggml-webgpu/wgsl-shaders/add.tmpl.wgsl @@ -0,0 +1,44 @@ +#define(VARIANTS) + +[ + { + "REPLS": { + "TYPE" : "f32", + } + }, + { + "REPLS": { + "TYPE" : "f16", + } + } +] + +#end(VARIANTS) + +#define(SHADER) + +enable f16; + +#include "binary_head.tmpl" + +@group(0) @binding(0) +var src0: array<{{TYPE}}>; + +@group(0) @binding(1) +var src1: array<{{TYPE}}>; + +@group(0) @binding(2) +var dst: array<{{TYPE}}>; + +@group(0) @binding(3) +var params: Params; + +override wg_size: u32; +@compute @workgroup_size(wg_size) +fn main(@builtin(global_invocation_id) gid: vec3) { + if (gid.x < params.ne) { + dst[params.offset_dst + gid.x] = src0[params.offset_src0 + gid.x] + src1[params.offset_src1 + src1_index(gid.x)]; + } +} + +#end(SHADER) diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/add_in_place.tmpl.wgsl b/ggml/src/ggml-webgpu/wgsl-shaders/add_in_place.tmpl.wgsl new file mode 100644 index 0000000000..903f7bdbcc --- /dev/null +++ b/ggml/src/ggml-webgpu/wgsl-shaders/add_in_place.tmpl.wgsl @@ -0,0 +1,41 @@ +#define(VARIANTS) + +[ + { + "REPLS": { + "TYPE" : "f32", + } + }, + { + "REPLS": { + "TYPE" : "f16", + } + } +] + +#end(VARIANTS) + +#define(SHADER) + +enable f16; + +#include "binary_head.tmpl" + +@group(0) @binding(0) +var src0: array<{{TYPE}}>; + +@group(0) @binding(1) +var src1: array<{{TYPE}}>; + +@group(0) @binding(2) +var params: Params; + +override wg_size: u32; +@compute @workgroup_size(wg_size) +fn main(@builtin(global_invocation_id) gid: vec3) { + if (gid.x < params.ne) { + src0[params.offset_dst + gid.x] = src0[params.offset_src0 + gid.x] + src1[params.offset_src1 + src1_index(gid.x)]; + } +} + +#end(SHADER) diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/binary_head.tmpl b/ggml/src/ggml-webgpu/wgsl-shaders/binary_head.tmpl new file mode 100644 index 0000000000..4b254f468d --- /dev/null +++ b/ggml/src/ggml-webgpu/wgsl-shaders/binary_head.tmpl @@ -0,0 +1,45 @@ +struct Params { + ne: u32, + + // offsets in elements + offset_src0: u32, + offset_src1: u32, + offset_dst: u32, + + stride_src1_0: u32, + stride_src1_1: u32, + stride_src1_2: u32, + stride_src1_3: u32, + + a_ne0: u32, + a_ne1: u32, + a_ne2: u32, + + b_ne0: u32, + b_ne1: u32, + b_ne2: u32, + b_ne3: u32, +}; + +fn src1_index(_i: u32) -> u32 { + var i = _i; + let a_i3 = i / (params.a_ne2 * params.a_ne1 * params.a_ne0); + i = i % (params.a_ne2 * params.a_ne1 * params.a_ne0); + let a_i2 = i / (params.a_ne1 * params.a_ne0); + i = i % (params.a_ne1 * params.a_ne0); + let a_i1 = i / params.a_ne0; + let a_i0 = i % params.a_ne0; + + // handle repetition of b + // index loops back to the beginning and repeats after elements are exhausted = modulo + let b_i0 = a_i0 % params.b_ne0; + let b_i1 = a_i1 % params.b_ne1; + let b_i2 = a_i2 % params.b_ne2; + let b_i3 = a_i3 % params.b_ne3; + + // compute index for position in b's flat array + return b_i0 * params.stride_src1_0 + + b_i1 * params.stride_src1_1 + + b_i2 * params.stride_src1_2 + + b_i3 * params.stride_src1_3; +} diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/common_decls.tmpl b/ggml/src/ggml-webgpu/wgsl-shaders/common_decls.tmpl new file mode 100644 index 0000000000..389c97bb51 --- /dev/null +++ b/ggml/src/ggml-webgpu/wgsl-shaders/common_decls.tmpl @@ -0,0 +1,930 @@ +#decl(BYTE_HELPERS) + +fn get_byte(value: u32, index: u32) -> u32 { + return (value >> (index * 8)) & 0xFF; +} + +fn get_byte_i32(value: u32, index: u32) -> i32 { + return bitcast(((value >> (index * 8)) & 0xFF) << 24) >> 24; +} + +#enddecl(BYTE_HELPERS) + +#decl(Q4_0_T) +struct q4_0 { + d: f16, + qs: array +}; +#enddecl(Q4_0_T) + +#decl(Q4_1_T) +struct q4_1 { + d: f16, + m: f16, + qs: array +}; +#enddecl(Q4_1_T) + +#decl(Q5_0_T) +struct q5_0 { + d: f16, + qh: array, + qs: array +}; +#enddecl(Q5_0_T) + +#decl(Q5_1_T) +struct q5_1 { + d: f16, + m: f16, + qh: u32, + qs: array +}; +#enddecl(Q5_1_T) + +#decl(Q8_0_T) +struct q8_0 { + d: f16, + qs: array +}; +#enddecl(Q8_0_T) + +#decl(Q8_1_T) +struct q8_1 { + d: f16, + m: f16, + qs: array +}; +#enddecl(Q8_1_T) + +#decl(Q2_K_T) +struct q2_k { + scales: array, + qs: array, + d: f16, + dmin: f16 +}; +#enddecl(Q2_K_T) + +#decl(Q3_K_T) +struct q3_k { + hmask: array, + qs: array, + scales: array, + d: f16 +}; +#enddecl(Q3_K_T) + +#decl(Q45_K_SCALE_MIN) + +fn get_scale_min(is: u32, scales: array) -> vec2 { + if (is < 4) { + let sc_byte = get_byte(scales[is / 4], is % 4); + let min_byte = get_byte(scales[(is + 4) / 4], is % 4); + return vec2(f32(sc_byte & 63), f32(min_byte & 63)); + } else { + let sc_min_lo = get_byte(scales[(is + 4) / 4], (is + 4) % 4); + let sc_hi = get_byte(scales[(is - 4) / 4], (is - 4) % 4); + let min_hi = get_byte(scales[is / 4], is % 4); + let sc = (sc_min_lo & 0xF) | ((sc_hi >> 6) << 4); + let m = (sc_min_lo >> 4) | ((min_hi >> 6) << 4); + return vec2(f32(sc), f32(m)); + } +} + +#enddecl(Q45_K_SCALE_MIN) + +#decl(Q4_K_T) +struct q4_k { + d: f16, + dmin: f16, + scales: array, + qs: array +}; +#enddecl(Q4_K_T) + +#decl(Q5_K_T) +struct q5_k { + d: f16, + dmin: f16, + scales: array, + qh: array, + qs: array +}; +#enddecl(Q5_K_T) + +#decl(Q6_K_T) +struct q6_k { + ql: array, + qh: array, + scales: array, + d: f16 +}; +#enddecl(Q6_K_T) + +#decl(IQ2_XXS_T) +struct iq2_xxs { + d: f16, + qs: array +}; +#enddecl(IQ2_XXS_T) + +#decl(IQ2_XS_T) +struct iq2_xs { + d: f16, + qs: array, + scales: array +}; +#enddecl(IQ2_XS_T) + +#decl(IQ2_S_T) +struct iq2_s { + d: f16, + qs: array, + qh: array, + scales: array +}; +#enddecl(IQ2_S_T) + +#decl(IQ3_XSS_T) +struct iq3_xxs { + d: f16, + qs: array +}; +#enddecl(IQ3_XSS_T) + +#decl(IQ3_S_T) +struct iq3_s { + d: f16, + qs: array, + qh: array, + signs: array, + scales: array +}; +#enddecl(IQ3_S_T) + +#decl(IQ1_S_T) +struct iq1_s { + d: f16, + qs: array, + qh: array +}; +#enddecl(IQ1_S_T) + +#decl(IQ1_M_T) +struct iq1_m { + qs: array, + qh: array, + scales: array +}; +#enddecl(IQ1_M_T) + +#decl(IQ4_NL_T) +struct iq4_nl { + d: f16, + qs: array, +}; +#enddecl(IQ4_NL_T) + +#decl(IQ4_XS_T) +struct iq4_xs { + d: f16, + scales_h: f16, + scales_l: u32, + qs: array +}; +#enddecl(IQ4_XS_T) + +#decl(IQ23_TABLES) +const kmask_iq2xs : array = array( + 0x08040201u, // 1, 2, 4, 8 + 0x80402010u // 16, 32, 64, 128 +); + +const ksigns_iq2xs: array = array( + 0x03828100,0x87060584,0x8b0a0988,0x0f8e8d0c, + 0x93121190,0x17969514,0x1b9a9918,0x9f1e1d9c, + 0xa32221a0,0x27a6a524,0x2baaa928,0xaf2e2dac, + 0x33b2b130,0xb73635b4,0xbb3a39b8,0x3fbebd3c, + 0xc34241c0,0x47c6c544,0x4bcac948,0xcf4e4dcc, + 0x53d2d150,0xd75655d4,0xdb5a59d8,0x5fdedd5c, + 0x63e2e160,0xe76665e4,0xeb6a69e8,0x6feeed6c, + 0xf37271f0,0x77f6f574,0x7bfaf978,0xff7e7dfc +); +#enddecl(IQ23_TABLES) + +#decl(IQ2_XXS_GRID) +const iq2xxs_grid = array( + 0x08080808, 0x08080808, 0x0808082b, 0x08080808, 0x08081919, 0x08080808, 0x08082b08, 0x08080808, + 0x08082b2b, 0x08080808, 0x08190819, 0x08080808, 0x08191908, 0x08080808, 0x082b0808, 0x08080808, + 0x082b082b, 0x08080808, 0x082b2b08, 0x08080808, 0x082b2b2b, 0x08080808, 0x19080819, 0x08080808, + 0x19081908, 0x08080808, 0x19190808, 0x08080808, 0x19192b08, 0x08080808, 0x192b0819, 0x08080808, + 0x192b1908, 0x08080808, 0x2b080808, 0x08080808, 0x2b08082b, 0x08080808, 0x2b082b2b, 0x08080808, + 0x2b2b082b, 0x08080808, 0x08080819, 0x08080819, 0x08081908, 0x08080819, 0x08190808, 0x08080819, + 0x08191919, 0x08080819, 0x19080808, 0x08080819, 0x2b081908, 0x08080819, 0x2b192b08, 0x08080819, + 0x08080808, 0x0808082b, 0x0808082b, 0x0808082b, 0x082b082b, 0x0808082b, 0x2b08082b, 0x0808082b, + 0x08080819, 0x08081908, 0x08081908, 0x08081908, 0x08190808, 0x08081908, 0x082b0819, 0x08081908, + 0x082b1908, 0x08081908, 0x19080808, 0x08081908, 0x1908082b, 0x08081908, 0x19082b08, 0x08081908, + 0x192b0808, 0x08081908, 0x2b080819, 0x08081908, 0x2b081908, 0x08081908, 0x2b190808, 0x08081908, + 0x2b2b1908, 0x08081908, 0x08080808, 0x08081919, 0x0808082b, 0x08081919, 0x08082b08, 0x08081919, + 0x082b0808, 0x08081919, 0x1908192b, 0x08081919, 0x192b2b19, 0x08081919, 0x2b080808, 0x08081919, + 0x2b190819, 0x08081919, 0x08082b19, 0x0808192b, 0x08190808, 0x0808192b, 0x19080808, 0x0808192b, + 0x2b081908, 0x0808192b, 0x2b2b1908, 0x0808192b, 0x08080808, 0x08082b08, 0x08081919, 0x08082b08, + 0x08082b08, 0x08082b08, 0x08191908, 0x08082b08, 0x082b2b08, 0x08082b08, 0x19080819, 0x08082b08, + 0x19081908, 0x08082b08, 0x19190808, 0x08082b08, 0x1919082b, 0x08082b08, 0x2b082b08, 0x08082b08, + 0x08081908, 0x08082b19, 0x19080808, 0x08082b19, 0x0808082b, 0x08082b2b, 0x08191908, 0x08082b2b, + 0x08080819, 0x08190808, 0x08081908, 0x08190808, 0x08190808, 0x08190808, 0x082b0819, 0x08190808, + 0x19080808, 0x08190808, 0x192b0808, 0x08190808, 0x2b081908, 0x08190808, 0x2b190808, 0x08190808, + 0x2b191919, 0x08190808, 0x08080808, 0x08190819, 0x08082b08, 0x08190819, 0x082b0808, 0x08190819, + 0x19190808, 0x08190819, 0x19192b2b, 0x08190819, 0x2b080808, 0x08190819, 0x082b1908, 0x0819082b, + 0x19081919, 0x0819082b, 0x08080808, 0x08191908, 0x08082b08, 0x08191908, 0x082b0808, 0x08191908, + 0x082b1919, 0x08191908, 0x19082b19, 0x08191908, 0x2b080808, 0x08191908, 0x08192b08, 0x08191919, + 0x192b082b, 0x08191919, 0x08080808, 0x0819192b, 0x0819192b, 0x0819192b, 0x08080819, 0x08192b08, + 0x08081908, 0x08192b08, 0x08190808, 0x08192b08, 0x19080808, 0x08192b08, 0x2b080819, 0x08192b08, + 0x08080808, 0x08192b19, 0x08081919, 0x08192b19, 0x2b2b0808, 0x08192b19, 0x19190819, 0x08192b2b, + 0x08080808, 0x082b0808, 0x0808082b, 0x082b0808, 0x08082b2b, 0x082b0808, 0x19081908, 0x082b0808, + 0x192b0819, 0x082b0808, 0x2b080808, 0x082b0808, 0x2b08082b, 0x082b0808, 0x082b2b19, 0x082b0819, + 0x19082b08, 0x082b0819, 0x08080808, 0x082b082b, 0x0808082b, 0x082b082b, 0x08080819, 0x082b1908, + 0x08081908, 0x082b1908, 0x08190808, 0x082b1908, 0x19080808, 0x082b1908, 0x1919192b, 0x082b1908, + 0x08080808, 0x082b1919, 0x19080819, 0x082b1919, 0x192b1908, 0x082b1919, 0x2b190808, 0x082b192b, + 0x08082b08, 0x082b2b08, 0x082b0808, 0x082b2b08, 0x2b191908, 0x082b2b08, 0x19081908, 0x082b2b2b, + 0x08080819, 0x19080808, 0x08081908, 0x19080808, 0x08190808, 0x19080808, 0x08192b08, 0x19080808, + 0x082b0819, 0x19080808, 0x082b1908, 0x19080808, 0x19080808, 0x19080808, 0x19082b08, 0x19080808, + 0x1919192b, 0x19080808, 0x192b0808, 0x19080808, 0x2b080819, 0x19080808, 0x2b081908, 0x19080808, + 0x2b190808, 0x19080808, 0x08080808, 0x19080819, 0x082b0808, 0x19080819, 0x192b0819, 0x19080819, + 0x2b080808, 0x19080819, 0x2b081919, 0x19080819, 0x08080819, 0x1908082b, 0x08190808, 0x1908082b, + 0x19082b08, 0x1908082b, 0x1919192b, 0x1908082b, 0x192b2b08, 0x1908082b, 0x08080808, 0x19081908, + 0x08082b08, 0x19081908, 0x082b0808, 0x19081908, 0x2b080808, 0x19081908, 0x2b192b19, 0x19081908, + 0x0819082b, 0x19081919, 0x082b1908, 0x19081919, 0x08080808, 0x1908192b, 0x08080819, 0x19082b08, + 0x08081908, 0x19082b08, 0x08190808, 0x19082b08, 0x19080808, 0x19082b08, 0x19081919, 0x19082b08, + 0x08080808, 0x19082b19, 0x19192b08, 0x19082b19, 0x192b0819, 0x19082b19, 0x2b08082b, 0x19082b19, + 0x19081919, 0x19082b2b, 0x2b190808, 0x19082b2b, 0x08080808, 0x19190808, 0x08082b08, 0x19190808, + 0x08190819, 0x19190808, 0x08192b19, 0x19190808, 0x082b0808, 0x19190808, 0x2b080808, 0x19190808, + 0x2b082b08, 0x19190808, 0x08081908, 0x19190819, 0x1908082b, 0x19190819, 0x2b2b1908, 0x19190819, + 0x2b190819, 0x1919082b, 0x2b190808, 0x19191908, 0x2b19082b, 0x19191908, 0x08082b2b, 0x19191919, + 0x08080819, 0x1919192b, 0x19191908, 0x1919192b, 0x08080808, 0x19192b08, 0x08190819, 0x19192b08, + 0x08192b19, 0x19192b08, 0x192b1908, 0x19192b08, 0x19080808, 0x19192b19, 0x08082b08, 0x19192b2b, + 0x08081908, 0x192b0808, 0x08190808, 0x192b0808, 0x19080808, 0x192b0808, 0x192b2b08, 0x192b0808, + 0x08080808, 0x192b0819, 0x19191919, 0x192b0819, 0x08192b08, 0x192b082b, 0x192b0808, 0x192b082b, + 0x08080808, 0x192b1908, 0x08081919, 0x192b1908, 0x08190808, 0x192b1919, 0x0819082b, 0x192b1919, + 0x2b081908, 0x192b1919, 0x1908082b, 0x192b2b08, 0x08080808, 0x2b080808, 0x0808082b, 0x2b080808, + 0x08082b2b, 0x2b080808, 0x19080819, 0x2b080808, 0x2b08082b, 0x2b080808, 0x08081908, 0x2b080819, + 0x08192b08, 0x2b080819, 0x19080808, 0x2b080819, 0x08190819, 0x2b08082b, 0x08080819, 0x2b081908, + 0x08081908, 0x2b081908, 0x08190808, 0x2b081908, 0x08191919, 0x2b081908, 0x19080808, 0x2b081908, + 0x192b0808, 0x2b081908, 0x08080808, 0x2b081919, 0x1908192b, 0x2b081919, 0x2b191908, 0x2b081919, + 0x08082b19, 0x2b08192b, 0x19080808, 0x2b08192b, 0x192b0808, 0x2b08192b, 0x0808082b, 0x2b082b08, + 0x08081908, 0x2b082b19, 0x08190819, 0x2b082b2b, 0x08081908, 0x2b190808, 0x08190808, 0x2b190808, + 0x082b1908, 0x2b190808, 0x19080808, 0x2b190808, 0x2b2b0819, 0x2b190808, 0x0819192b, 0x2b190819, + 0x2b080808, 0x2b190819, 0x19081919, 0x2b19082b, 0x08080808, 0x2b191908, 0x082b082b, 0x2b191908, + 0x19081908, 0x2b191908, 0x19190819, 0x2b191919, 0x2b080819, 0x2b192b08, 0x082b0808, 0x2b192b19, + 0x0808082b, 0x2b2b0808, 0x19190808, 0x2b2b0808, 0x2b081919, 0x2b2b0808, 0x08082b19, 0x2b2b0819, + 0x08080808, 0x2b2b082b, 0x08192b08, 0x2b2b1908, 0x19190808, 0x2b2b2b08, 0x08081908, 0x2b2b2b19 +); +#enddecl(IQ2_XXS_GRID) + +#decl(IQ2_XS_GRID) +const iq2xs_grid = array( + 0x08080808, 0x08080808, 0x0808082b, 0x08080808, 0x08081919, 0x08080808, 0x08082b08, 0x08080808, + 0x08082b2b, 0x08080808, 0x08190819, 0x08080808, 0x08191908, 0x08080808, 0x0819192b, 0x08080808, + 0x08192b19, 0x08080808, 0x082b0808, 0x08080808, 0x082b082b, 0x08080808, 0x082b1919, 0x08080808, + 0x082b2b08, 0x08080808, 0x19080819, 0x08080808, 0x19081908, 0x08080808, 0x1908192b, 0x08080808, + 0x19082b19, 0x08080808, 0x19190808, 0x08080808, 0x1919082b, 0x08080808, 0x19191919, 0x08080808, + 0x19192b08, 0x08080808, 0x192b0819, 0x08080808, 0x192b1908, 0x08080808, 0x2b080808, 0x08080808, + 0x2b08082b, 0x08080808, 0x2b081919, 0x08080808, 0x2b082b08, 0x08080808, 0x2b190819, 0x08080808, + 0x2b191908, 0x08080808, 0x2b192b19, 0x08080808, 0x2b2b0808, 0x08080808, 0x08080819, 0x08080819, + 0x08081908, 0x08080819, 0x0808192b, 0x08080819, 0x08082b19, 0x08080819, 0x08190808, 0x08080819, + 0x0819082b, 0x08080819, 0x08191919, 0x08080819, 0x08192b08, 0x08080819, 0x08192b2b, 0x08080819, + 0x082b0819, 0x08080819, 0x082b1908, 0x08080819, 0x19080808, 0x08080819, 0x1908082b, 0x08080819, + 0x19081919, 0x08080819, 0x19082b08, 0x08080819, 0x19190819, 0x08080819, 0x19191908, 0x08080819, + 0x192b0808, 0x08080819, 0x192b2b08, 0x08080819, 0x2b080819, 0x08080819, 0x2b081908, 0x08080819, + 0x2b190808, 0x08080819, 0x08080808, 0x0808082b, 0x0808082b, 0x0808082b, 0x08081919, 0x0808082b, + 0x08082b08, 0x0808082b, 0x08190819, 0x0808082b, 0x08191908, 0x0808082b, 0x082b0808, 0x0808082b, + 0x19080819, 0x0808082b, 0x19081908, 0x0808082b, 0x19190808, 0x0808082b, 0x19191919, 0x0808082b, + 0x2b080808, 0x0808082b, 0x2b082b2b, 0x0808082b, 0x08080819, 0x08081908, 0x08081908, 0x08081908, + 0x0808192b, 0x08081908, 0x08082b19, 0x08081908, 0x08190808, 0x08081908, 0x0819082b, 0x08081908, + 0x08191919, 0x08081908, 0x08192b08, 0x08081908, 0x082b0819, 0x08081908, 0x082b1908, 0x08081908, + 0x19080808, 0x08081908, 0x1908082b, 0x08081908, 0x19081919, 0x08081908, 0x19082b08, 0x08081908, + 0x19190819, 0x08081908, 0x19191908, 0x08081908, 0x1919192b, 0x08081908, 0x192b0808, 0x08081908, + 0x2b080819, 0x08081908, 0x2b081908, 0x08081908, 0x2b190808, 0x08081908, 0x08080808, 0x08081919, + 0x0808082b, 0x08081919, 0x08081919, 0x08081919, 0x08082b08, 0x08081919, 0x08190819, 0x08081919, + 0x08191908, 0x08081919, 0x082b0808, 0x08081919, 0x19080819, 0x08081919, 0x19081908, 0x08081919, + 0x19190808, 0x08081919, 0x192b0819, 0x08081919, 0x2b080808, 0x08081919, 0x08080819, 0x0808192b, + 0x08081908, 0x0808192b, 0x08190808, 0x0808192b, 0x082b192b, 0x0808192b, 0x19080808, 0x0808192b, + 0x1908082b, 0x0808192b, 0x2b081908, 0x0808192b, 0x08080808, 0x08082b08, 0x0808082b, 0x08082b08, + 0x08081919, 0x08082b08, 0x08082b08, 0x08082b08, 0x08082b2b, 0x08082b08, 0x08190819, 0x08082b08, + 0x08191908, 0x08082b08, 0x082b0808, 0x08082b08, 0x082b1919, 0x08082b08, 0x19080819, 0x08082b08, + 0x19081908, 0x08082b08, 0x19190808, 0x08082b08, 0x19192b08, 0x08082b08, 0x2b080808, 0x08082b08, + 0x2b2b0808, 0x08082b08, 0x2b2b2b2b, 0x08082b08, 0x08080819, 0x08082b19, 0x08081908, 0x08082b19, + 0x08190808, 0x08082b19, 0x19080808, 0x08082b19, 0x2b080819, 0x08082b19, 0x2b082b19, 0x08082b19, + 0x08080808, 0x08082b2b, 0x082b0808, 0x08082b2b, 0x082b2b08, 0x08082b2b, 0x2b19192b, 0x08082b2b, + 0x2b2b0808, 0x08082b2b, 0x08080819, 0x08190808, 0x08081908, 0x08190808, 0x0808192b, 0x08190808, + 0x08082b19, 0x08190808, 0x08190808, 0x08190808, 0x0819082b, 0x08190808, 0x08191919, 0x08190808, + 0x08192b08, 0x08190808, 0x082b0819, 0x08190808, 0x082b1908, 0x08190808, 0x19080808, 0x08190808, + 0x1908082b, 0x08190808, 0x19081919, 0x08190808, 0x19082b08, 0x08190808, 0x19190819, 0x08190808, + 0x19191908, 0x08190808, 0x192b0808, 0x08190808, 0x192b2b2b, 0x08190808, 0x2b080819, 0x08190808, + 0x2b081908, 0x08190808, 0x2b190808, 0x08190808, 0x08080808, 0x08190819, 0x0808082b, 0x08190819, + 0x08081919, 0x08190819, 0x08082b08, 0x08190819, 0x08190819, 0x08190819, 0x08191908, 0x08190819, + 0x082b0808, 0x08190819, 0x19080819, 0x08190819, 0x19081908, 0x08190819, 0x19190808, 0x08190819, + 0x2b080808, 0x08190819, 0x2b191908, 0x08190819, 0x2b19192b, 0x08190819, 0x08080819, 0x0819082b, + 0x08081908, 0x0819082b, 0x0808192b, 0x0819082b, 0x08190808, 0x0819082b, 0x19080808, 0x0819082b, + 0x192b0808, 0x0819082b, 0x08080808, 0x08191908, 0x0808082b, 0x08191908, 0x08081919, 0x08191908, + 0x08082b08, 0x08191908, 0x08190819, 0x08191908, 0x08191908, 0x08191908, 0x082b0808, 0x08191908, + 0x19080819, 0x08191908, 0x19081908, 0x08191908, 0x19082b19, 0x08191908, 0x19190808, 0x08191908, + 0x192b1908, 0x08191908, 0x2b080808, 0x08191908, 0x08080819, 0x08191919, 0x08081908, 0x08191919, + 0x08190808, 0x08191919, 0x19080808, 0x08191919, 0x08080808, 0x0819192b, 0x08191908, 0x0819192b, + 0x19082b19, 0x0819192b, 0x08080819, 0x08192b08, 0x08081908, 0x08192b08, 0x08190808, 0x08192b08, + 0x0819082b, 0x08192b08, 0x19080808, 0x08192b08, 0x19191908, 0x08192b08, 0x2b08192b, 0x08192b08, + 0x08080808, 0x08192b19, 0x08081919, 0x08192b19, 0x192b192b, 0x08192b19, 0x19190819, 0x08192b2b, + 0x2b2b2b19, 0x08192b2b, 0x08080808, 0x082b0808, 0x0808082b, 0x082b0808, 0x08081919, 0x082b0808, + 0x08082b08, 0x082b0808, 0x08082b2b, 0x082b0808, 0x08190819, 0x082b0808, 0x08191908, 0x082b0808, + 0x082b0808, 0x082b0808, 0x19080819, 0x082b0808, 0x19081908, 0x082b0808, 0x19190808, 0x082b0808, + 0x2b080808, 0x082b0808, 0x2b2b0808, 0x082b0808, 0x08080819, 0x082b0819, 0x08081908, 0x082b0819, + 0x08190808, 0x082b0819, 0x19080808, 0x082b0819, 0x19082b08, 0x082b0819, 0x192b1919, 0x082b0819, + 0x08080808, 0x082b082b, 0x082b082b, 0x082b082b, 0x2b080808, 0x082b082b, 0x2b2b2b08, 0x082b082b, + 0x08080819, 0x082b1908, 0x08081908, 0x082b1908, 0x08190808, 0x082b1908, 0x082b2b19, 0x082b1908, + 0x19080808, 0x082b1908, 0x08080808, 0x082b1919, 0x19080819, 0x082b1919, 0x1919082b, 0x082b1919, + 0x2b192b19, 0x082b1919, 0x08080819, 0x082b192b, 0x08192b2b, 0x082b192b, 0x2b2b192b, 0x082b192b, + 0x08080808, 0x082b2b08, 0x08082b08, 0x082b2b08, 0x08082b2b, 0x082b2b08, 0x082b0808, 0x082b2b08, + 0x19191919, 0x082b2b08, 0x2b082b08, 0x082b2b08, 0x2b2b082b, 0x082b2b08, 0x192b2b08, 0x082b2b19, + 0x2b190808, 0x082b2b19, 0x08082b08, 0x082b2b2b, 0x082b0808, 0x082b2b2b, 0x2b08082b, 0x082b2b2b, + 0x2b082b08, 0x082b2b2b, 0x2b082b2b, 0x082b2b2b, 0x08080819, 0x19080808, 0x08081908, 0x19080808, + 0x0808192b, 0x19080808, 0x08082b19, 0x19080808, 0x08190808, 0x19080808, 0x0819082b, 0x19080808, + 0x08191919, 0x19080808, 0x08192b08, 0x19080808, 0x082b0819, 0x19080808, 0x082b1908, 0x19080808, + 0x19080808, 0x19080808, 0x1908082b, 0x19080808, 0x19081919, 0x19080808, 0x19082b08, 0x19080808, + 0x19082b2b, 0x19080808, 0x19190819, 0x19080808, 0x19191908, 0x19080808, 0x192b0808, 0x19080808, + 0x192b1919, 0x19080808, 0x2b080819, 0x19080808, 0x2b081908, 0x19080808, 0x2b190808, 0x19080808, + 0x08080808, 0x19080819, 0x0808082b, 0x19080819, 0x08081919, 0x19080819, 0x08082b08, 0x19080819, + 0x08190819, 0x19080819, 0x08191908, 0x19080819, 0x082b0808, 0x19080819, 0x19080819, 0x19080819, + 0x19081908, 0x19080819, 0x19190808, 0x19080819, 0x2b080808, 0x19080819, 0x2b081919, 0x19080819, + 0x2b2b082b, 0x19080819, 0x08080819, 0x1908082b, 0x08081908, 0x1908082b, 0x08190808, 0x1908082b, + 0x0819082b, 0x1908082b, 0x082b2b19, 0x1908082b, 0x19080808, 0x1908082b, 0x08080808, 0x19081908, + 0x0808082b, 0x19081908, 0x08081919, 0x19081908, 0x08082b08, 0x19081908, 0x08190819, 0x19081908, + 0x08191908, 0x19081908, 0x08192b19, 0x19081908, 0x082b0808, 0x19081908, 0x19080819, 0x19081908, + 0x19081908, 0x19081908, 0x19190808, 0x19081908, 0x2b080808, 0x19081908, 0x2b191908, 0x19081908, + 0x08080819, 0x19081919, 0x08081908, 0x19081919, 0x08190808, 0x19081919, 0x082b1908, 0x19081919, + 0x19080808, 0x19081919, 0x2b192b2b, 0x19081919, 0x08080808, 0x1908192b, 0x08082b2b, 0x1908192b, + 0x19081908, 0x1908192b, 0x19190808, 0x1908192b, 0x08080819, 0x19082b08, 0x08081908, 0x19082b08, + 0x08190808, 0x19082b08, 0x19080808, 0x19082b08, 0x19081919, 0x19082b08, 0x19191908, 0x19082b08, + 0x192b082b, 0x19082b08, 0x08080808, 0x19082b19, 0x08190819, 0x19082b19, 0x19081908, 0x19082b19, + 0x19190808, 0x19082b19, 0x192b2b19, 0x19082b19, 0x08081908, 0x19082b2b, 0x08080808, 0x19190808, + 0x0808082b, 0x19190808, 0x08081919, 0x19190808, 0x08082b08, 0x19190808, 0x08190819, 0x19190808, + 0x08191908, 0x19190808, 0x082b0808, 0x19190808, 0x082b2b08, 0x19190808, 0x19080819, 0x19190808, + 0x19081908, 0x19190808, 0x19190808, 0x19190808, 0x2b080808, 0x19190808, 0x08080819, 0x19190819, + 0x08081908, 0x19190819, 0x08190808, 0x19190819, 0x08191919, 0x19190819, 0x19080808, 0x19190819, + 0x1908082b, 0x19190819, 0x08080808, 0x1919082b, 0x19081908, 0x1919082b, 0x2b2b2b2b, 0x1919082b, + 0x08080819, 0x19191908, 0x08081908, 0x19191908, 0x08190808, 0x19191908, 0x082b0819, 0x19191908, + 0x19080808, 0x19191908, 0x192b0808, 0x19191908, 0x2b080819, 0x19191908, 0x2b2b0819, 0x19191908, + 0x08080808, 0x19191919, 0x08082b08, 0x19191919, 0x2b080808, 0x19191919, 0x2b082b08, 0x19191919, + 0x082b0819, 0x1919192b, 0x192b2b08, 0x1919192b, 0x2b2b0819, 0x1919192b, 0x08080808, 0x19192b08, + 0x08191908, 0x19192b08, 0x19080819, 0x19192b08, 0x19190808, 0x19192b08, 0x2b192b19, 0x19192b08, + 0x08192b2b, 0x19192b19, 0x19080808, 0x19192b19, 0x1908082b, 0x19192b19, 0x2b081919, 0x19192b2b, + 0x08080819, 0x192b0808, 0x08081908, 0x192b0808, 0x08190808, 0x192b0808, 0x19080808, 0x192b0808, + 0x19191908, 0x192b0808, 0x192b082b, 0x192b0808, 0x2b08192b, 0x192b0808, 0x2b2b2b19, 0x192b0808, + 0x08080808, 0x192b0819, 0x082b1908, 0x192b082b, 0x19082b2b, 0x192b082b, 0x2b19082b, 0x192b082b, + 0x08080808, 0x192b1908, 0x0819192b, 0x192b1908, 0x08190808, 0x192b1919, 0x19080808, 0x192b1919, + 0x19081919, 0x192b1919, 0x2b2b1908, 0x192b1919, 0x08080819, 0x192b2b08, 0x192b2b2b, 0x192b2b08, + 0x082b1919, 0x192b2b19, 0x0808192b, 0x192b2b2b, 0x19191908, 0x192b2b2b, 0x192b082b, 0x192b2b2b, + 0x08080808, 0x2b080808, 0x0808082b, 0x2b080808, 0x08081919, 0x2b080808, 0x08082b08, 0x2b080808, + 0x08190819, 0x2b080808, 0x08191908, 0x2b080808, 0x082b0808, 0x2b080808, 0x082b2b2b, 0x2b080808, + 0x19080819, 0x2b080808, 0x19081908, 0x2b080808, 0x19190808, 0x2b080808, 0x2b080808, 0x2b080808, + 0x2b08082b, 0x2b080808, 0x2b2b2b08, 0x2b080808, 0x2b2b2b2b, 0x2b080808, 0x08080819, 0x2b080819, + 0x08081908, 0x2b080819, 0x0808192b, 0x2b080819, 0x08190808, 0x2b080819, 0x19080808, 0x2b080819, + 0x19190819, 0x2b080819, 0x19192b19, 0x2b080819, 0x08080808, 0x2b08082b, 0x082b0808, 0x2b08082b, + 0x2b080808, 0x2b08082b, 0x2b08082b, 0x2b08082b, 0x2b2b0808, 0x2b08082b, 0x2b2b2b08, 0x2b08082b, + 0x08080819, 0x2b081908, 0x08081908, 0x2b081908, 0x08190808, 0x2b081908, 0x0819082b, 0x2b081908, + 0x08191919, 0x2b081908, 0x19080808, 0x2b081908, 0x192b0808, 0x2b081908, 0x2b082b19, 0x2b081908, + 0x08080808, 0x2b081919, 0x19081908, 0x2b081919, 0x2b2b1919, 0x2b081919, 0x08192b08, 0x2b08192b, + 0x192b2b2b, 0x2b08192b, 0x08080808, 0x2b082b08, 0x08082b08, 0x2b082b08, 0x082b1919, 0x2b082b08, + 0x19192b2b, 0x2b082b08, 0x2b080808, 0x2b082b08, 0x2b08082b, 0x2b082b08, 0x2b2b2b08, 0x2b082b08, + 0x0808192b, 0x2b082b19, 0x082b082b, 0x2b082b2b, 0x2b080808, 0x2b082b2b, 0x2b082b08, 0x2b082b2b, + 0x2b19192b, 0x2b082b2b, 0x2b2b2b08, 0x2b082b2b, 0x08080819, 0x2b190808, 0x08081908, 0x2b190808, + 0x08190808, 0x2b190808, 0x19080808, 0x2b190808, 0x1919192b, 0x2b190808, 0x2b081908, 0x2b190808, + 0x08080808, 0x2b190819, 0x082b082b, 0x2b190819, 0x192b1908, 0x2b190819, 0x1919192b, 0x2b19082b, + 0x2b082b19, 0x2b19082b, 0x08080808, 0x2b191908, 0x08081919, 0x2b191908, 0x19081908, 0x2b191908, + 0x19190808, 0x2b191908, 0x19192b08, 0x2b191908, 0x082b2b19, 0x2b191919, 0x2b190808, 0x2b191919, + 0x2b19082b, 0x2b191919, 0x19080819, 0x2b19192b, 0x19190819, 0x2b192b08, 0x2b2b192b, 0x2b192b08, + 0x19082b19, 0x2b192b19, 0x08191919, 0x2b192b2b, 0x192b0808, 0x2b192b2b, 0x08080808, 0x2b2b0808, + 0x0808082b, 0x2b2b0808, 0x08082b08, 0x2b2b0808, 0x08082b2b, 0x2b2b0808, 0x082b0808, 0x2b2b0808, + 0x082b2b2b, 0x2b2b0808, 0x2b2b0808, 0x2b2b0808, 0x19190819, 0x2b2b0819, 0x19192b19, 0x2b2b0819, + 0x2b2b192b, 0x2b2b0819, 0x08080808, 0x2b2b082b, 0x0808082b, 0x2b2b082b, 0x08082b08, 0x2b2b082b, + 0x082b2b2b, 0x2b2b082b, 0x2b080808, 0x2b2b082b, 0x2b2b0808, 0x2b2b082b, 0x19080808, 0x2b2b1908, + 0x2b191919, 0x2b2b1908, 0x192b1919, 0x2b2b192b, 0x2b192b08, 0x2b2b192b, 0x08082b2b, 0x2b2b2b08, + 0x082b0808, 0x2b2b2b08, 0x082b082b, 0x2b2b2b08, 0x082b2b08, 0x2b2b2b08, 0x2b2b0808, 0x2b2b2b08, + 0x2b2b2b08, 0x2b2b2b08, 0x08081908, 0x2b2b2b19, 0x2b081908, 0x2b2b2b19, 0x2b08192b, 0x2b2b2b19, + 0x082b2b08, 0x2b2b2b2b, 0x082b2b2b, 0x2b2b2b2b, 0x2b190819, 0x2b2b2b2b, 0x2b2b2b2b, 0x2b2b2b2b +); +#enddecl(IQ2_XS_GRID) + +#decl(IQ2_S_GRID) +const iq2s_grid = array( + 0x08080808, 0x08080808, 0x0808082b, 0x08080808, 0x08081919, 0x08080808, 0x08082b08, 0x08080808, + 0x08082b2b, 0x08080808, 0x08190819, 0x08080808, 0x08191908, 0x08080808, 0x0819192b, 0x08080808, + 0x08192b19, 0x08080808, 0x082b0808, 0x08080808, 0x082b082b, 0x08080808, 0x082b1919, 0x08080808, + 0x082b2b08, 0x08080808, 0x19080819, 0x08080808, 0x19081908, 0x08080808, 0x1908192b, 0x08080808, + 0x19082b19, 0x08080808, 0x19190808, 0x08080808, 0x1919082b, 0x08080808, 0x19191919, 0x08080808, + 0x19192b08, 0x08080808, 0x192b0819, 0x08080808, 0x192b1908, 0x08080808, 0x192b192b, 0x08080808, + 0x192b2b19, 0x08080808, 0x2b080808, 0x08080808, 0x2b08082b, 0x08080808, 0x2b081919, 0x08080808, + 0x2b082b08, 0x08080808, 0x2b190819, 0x08080808, 0x2b191908, 0x08080808, 0x2b2b0808, 0x08080808, + 0x2b2b1919, 0x08080808, 0x2b2b2b2b, 0x08080808, 0x08080819, 0x08080819, 0x08081908, 0x08080819, + 0x0808192b, 0x08080819, 0x08082b19, 0x08080819, 0x08190808, 0x08080819, 0x0819082b, 0x08080819, + 0x08191919, 0x08080819, 0x08192b08, 0x08080819, 0x082b0819, 0x08080819, 0x082b1908, 0x08080819, + 0x19080808, 0x08080819, 0x1908082b, 0x08080819, 0x19081919, 0x08080819, 0x19082b08, 0x08080819, + 0x19190819, 0x08080819, 0x19191908, 0x08080819, 0x1919192b, 0x08080819, 0x19192b19, 0x08080819, + 0x192b0808, 0x08080819, 0x192b1919, 0x08080819, 0x192b2b08, 0x08080819, 0x2b080819, 0x08080819, + 0x2b081908, 0x08080819, 0x2b190808, 0x08080819, 0x2b19082b, 0x08080819, 0x2b191919, 0x08080819, + 0x2b2b0819, 0x08080819, 0x2b2b1908, 0x08080819, 0x08080808, 0x0808082b, 0x0808082b, 0x0808082b, + 0x08081919, 0x0808082b, 0x08082b08, 0x0808082b, 0x08190819, 0x0808082b, 0x08191908, 0x0808082b, + 0x082b0808, 0x0808082b, 0x082b2b2b, 0x0808082b, 0x19080819, 0x0808082b, 0x19081908, 0x0808082b, + 0x1908192b, 0x0808082b, 0x19082b19, 0x0808082b, 0x19190808, 0x0808082b, 0x19191919, 0x0808082b, + 0x2b080808, 0x0808082b, 0x2b081919, 0x0808082b, 0x2b082b2b, 0x0808082b, 0x2b191908, 0x0808082b, + 0x2b2b082b, 0x0808082b, 0x08080819, 0x08081908, 0x08081908, 0x08081908, 0x0808192b, 0x08081908, + 0x08082b19, 0x08081908, 0x08190808, 0x08081908, 0x0819082b, 0x08081908, 0x08191919, 0x08081908, + 0x08192b08, 0x08081908, 0x082b0819, 0x08081908, 0x082b1908, 0x08081908, 0x082b192b, 0x08081908, + 0x082b2b19, 0x08081908, 0x19080808, 0x08081908, 0x1908082b, 0x08081908, 0x19081919, 0x08081908, + 0x19082b08, 0x08081908, 0x19082b2b, 0x08081908, 0x19190819, 0x08081908, 0x19191908, 0x08081908, + 0x1919192b, 0x08081908, 0x19192b19, 0x08081908, 0x192b0808, 0x08081908, 0x192b082b, 0x08081908, + 0x192b1919, 0x08081908, 0x2b080819, 0x08081908, 0x2b081908, 0x08081908, 0x2b08192b, 0x08081908, + 0x2b082b19, 0x08081908, 0x2b190808, 0x08081908, 0x2b191919, 0x08081908, 0x2b192b08, 0x08081908, + 0x2b2b0819, 0x08081908, 0x2b2b1908, 0x08081908, 0x08080808, 0x08081919, 0x0808082b, 0x08081919, + 0x08081919, 0x08081919, 0x08082b08, 0x08081919, 0x08082b2b, 0x08081919, 0x08190819, 0x08081919, + 0x08191908, 0x08081919, 0x0819192b, 0x08081919, 0x08192b19, 0x08081919, 0x082b0808, 0x08081919, + 0x082b1919, 0x08081919, 0x082b2b08, 0x08081919, 0x19080819, 0x08081919, 0x19081908, 0x08081919, + 0x1908192b, 0x08081919, 0x19082b19, 0x08081919, 0x19190808, 0x08081919, 0x1919082b, 0x08081919, + 0x19191919, 0x08081919, 0x19192b08, 0x08081919, 0x192b0819, 0x08081919, 0x192b1908, 0x08081919, + 0x2b080808, 0x08081919, 0x2b08082b, 0x08081919, 0x2b081919, 0x08081919, 0x2b082b08, 0x08081919, + 0x2b190819, 0x08081919, 0x2b191908, 0x08081919, 0x2b2b0808, 0x08081919, 0x08080819, 0x0808192b, + 0x08081908, 0x0808192b, 0x0808192b, 0x0808192b, 0x08082b19, 0x0808192b, 0x08190808, 0x0808192b, + 0x08191919, 0x0808192b, 0x19080808, 0x0808192b, 0x19081919, 0x0808192b, 0x19082b08, 0x0808192b, + 0x19190819, 0x0808192b, 0x19191908, 0x0808192b, 0x192b0808, 0x0808192b, 0x2b080819, 0x0808192b, + 0x2b081908, 0x0808192b, 0x2b190808, 0x0808192b, 0x08080808, 0x08082b08, 0x0808082b, 0x08082b08, + 0x08081919, 0x08082b08, 0x08082b08, 0x08082b08, 0x08190819, 0x08082b08, 0x08191908, 0x08082b08, + 0x0819192b, 0x08082b08, 0x08192b19, 0x08082b08, 0x082b0808, 0x08082b08, 0x082b1919, 0x08082b08, + 0x082b2b2b, 0x08082b08, 0x19080819, 0x08082b08, 0x19081908, 0x08082b08, 0x1908192b, 0x08082b08, + 0x19082b19, 0x08082b08, 0x19190808, 0x08082b08, 0x1919082b, 0x08082b08, 0x19191919, 0x08082b08, + 0x19192b08, 0x08082b08, 0x192b0819, 0x08082b08, 0x192b1908, 0x08082b08, 0x2b080808, 0x08082b08, + 0x2b081919, 0x08082b08, 0x2b191908, 0x08082b08, 0x2b2b2b2b, 0x08082b08, 0x08080819, 0x08082b19, + 0x08081908, 0x08082b19, 0x08190808, 0x08082b19, 0x0819082b, 0x08082b19, 0x08191919, 0x08082b19, + 0x08192b08, 0x08082b19, 0x082b0819, 0x08082b19, 0x19080808, 0x08082b19, 0x19081919, 0x08082b19, + 0x19082b08, 0x08082b19, 0x19190819, 0x08082b19, 0x19191908, 0x08082b19, 0x192b0808, 0x08082b19, + 0x2b080819, 0x08082b19, 0x2b190808, 0x08082b19, 0x08080808, 0x08082b2b, 0x08190819, 0x08082b2b, + 0x08191908, 0x08082b2b, 0x082b082b, 0x08082b2b, 0x082b2b08, 0x08082b2b, 0x082b2b2b, 0x08082b2b, + 0x19190808, 0x08082b2b, 0x2b192b19, 0x08082b2b, 0x08080819, 0x08190808, 0x08081908, 0x08190808, + 0x0808192b, 0x08190808, 0x08082b19, 0x08190808, 0x08190808, 0x08190808, 0x0819082b, 0x08190808, + 0x08191919, 0x08190808, 0x08192b08, 0x08190808, 0x082b0819, 0x08190808, 0x082b1908, 0x08190808, + 0x082b192b, 0x08190808, 0x19080808, 0x08190808, 0x1908082b, 0x08190808, 0x19081919, 0x08190808, + 0x19082b08, 0x08190808, 0x19190819, 0x08190808, 0x19191908, 0x08190808, 0x1919192b, 0x08190808, + 0x19192b19, 0x08190808, 0x192b0808, 0x08190808, 0x192b082b, 0x08190808, 0x192b1919, 0x08190808, + 0x192b2b08, 0x08190808, 0x2b080819, 0x08190808, 0x2b081908, 0x08190808, 0x2b08192b, 0x08190808, + 0x2b190808, 0x08190808, 0x2b191919, 0x08190808, 0x2b192b08, 0x08190808, 0x2b2b0819, 0x08190808, + 0x2b2b1908, 0x08190808, 0x08080808, 0x08190819, 0x0808082b, 0x08190819, 0x08081919, 0x08190819, + 0x08082b08, 0x08190819, 0x08082b2b, 0x08190819, 0x08190819, 0x08190819, 0x08191908, 0x08190819, + 0x0819192b, 0x08190819, 0x08192b19, 0x08190819, 0x082b0808, 0x08190819, 0x082b082b, 0x08190819, + 0x082b1919, 0x08190819, 0x082b2b08, 0x08190819, 0x19080819, 0x08190819, 0x19081908, 0x08190819, + 0x1908192b, 0x08190819, 0x19082b19, 0x08190819, 0x19190808, 0x08190819, 0x1919082b, 0x08190819, + 0x19191919, 0x08190819, 0x19192b08, 0x08190819, 0x192b0819, 0x08190819, 0x192b1908, 0x08190819, + 0x2b080808, 0x08190819, 0x2b08082b, 0x08190819, 0x2b081919, 0x08190819, 0x2b082b08, 0x08190819, + 0x2b190819, 0x08190819, 0x2b191908, 0x08190819, 0x08080819, 0x0819082b, 0x08081908, 0x0819082b, + 0x08082b19, 0x0819082b, 0x08190808, 0x0819082b, 0x08191919, 0x0819082b, 0x082b0819, 0x0819082b, + 0x082b1908, 0x0819082b, 0x19080808, 0x0819082b, 0x19081919, 0x0819082b, 0x19190819, 0x0819082b, + 0x19191908, 0x0819082b, 0x2b080819, 0x0819082b, 0x2b081908, 0x0819082b, 0x2b190808, 0x0819082b, + 0x08080808, 0x08191908, 0x0808082b, 0x08191908, 0x08081919, 0x08191908, 0x08082b08, 0x08191908, + 0x08190819, 0x08191908, 0x08191908, 0x08191908, 0x0819192b, 0x08191908, 0x08192b19, 0x08191908, + 0x082b0808, 0x08191908, 0x082b1919, 0x08191908, 0x082b2b08, 0x08191908, 0x19080819, 0x08191908, + 0x19081908, 0x08191908, 0x1908192b, 0x08191908, 0x19082b19, 0x08191908, 0x19190808, 0x08191908, + 0x1919082b, 0x08191908, 0x19191919, 0x08191908, 0x19192b08, 0x08191908, 0x192b0819, 0x08191908, + 0x192b1908, 0x08191908, 0x2b080808, 0x08191908, 0x2b08082b, 0x08191908, 0x2b081919, 0x08191908, + 0x2b082b08, 0x08191908, 0x2b190819, 0x08191908, 0x2b191908, 0x08191908, 0x2b2b0808, 0x08191908, + 0x08080819, 0x08191919, 0x08081908, 0x08191919, 0x0808192b, 0x08191919, 0x08082b19, 0x08191919, + 0x08190808, 0x08191919, 0x0819082b, 0x08191919, 0x08191919, 0x08191919, 0x08192b08, 0x08191919, + 0x082b0819, 0x08191919, 0x082b1908, 0x08191919, 0x19080808, 0x08191919, 0x1908082b, 0x08191919, + 0x19081919, 0x08191919, 0x19082b08, 0x08191919, 0x19190819, 0x08191919, 0x19191908, 0x08191919, + 0x192b0808, 0x08191919, 0x2b080819, 0x08191919, 0x2b081908, 0x08191919, 0x2b190808, 0x08191919, + 0x08080808, 0x0819192b, 0x08081919, 0x0819192b, 0x08082b08, 0x0819192b, 0x08190819, 0x0819192b, + 0x08191908, 0x0819192b, 0x082b0808, 0x0819192b, 0x19080819, 0x0819192b, 0x19081908, 0x0819192b, + 0x19190808, 0x0819192b, 0x2b080808, 0x0819192b, 0x2b2b2b2b, 0x0819192b, 0x08080819, 0x08192b08, + 0x08081908, 0x08192b08, 0x0808192b, 0x08192b08, 0x08082b19, 0x08192b08, 0x08190808, 0x08192b08, + 0x08191919, 0x08192b08, 0x08192b08, 0x08192b08, 0x082b0819, 0x08192b08, 0x19080808, 0x08192b08, + 0x1908082b, 0x08192b08, 0x19081919, 0x08192b08, 0x19082b08, 0x08192b08, 0x19190819, 0x08192b08, + 0x19191908, 0x08192b08, 0x192b0808, 0x08192b08, 0x2b080819, 0x08192b08, 0x2b081908, 0x08192b08, + 0x08080808, 0x08192b19, 0x0808082b, 0x08192b19, 0x08081919, 0x08192b19, 0x08082b08, 0x08192b19, + 0x08190819, 0x08192b19, 0x08191908, 0x08192b19, 0x082b0808, 0x08192b19, 0x19080819, 0x08192b19, + 0x19081908, 0x08192b19, 0x19190808, 0x08192b19, 0x192b2b19, 0x08192b19, 0x2b2b082b, 0x08192b19, + 0x08081908, 0x08192b2b, 0x08190808, 0x08192b2b, 0x19080808, 0x08192b2b, 0x1919192b, 0x08192b2b, + 0x08080808, 0x082b0808, 0x0808082b, 0x082b0808, 0x08081919, 0x082b0808, 0x08082b08, 0x082b0808, + 0x08190819, 0x082b0808, 0x08191908, 0x082b0808, 0x0819192b, 0x082b0808, 0x08192b19, 0x082b0808, + 0x082b0808, 0x082b0808, 0x082b1919, 0x082b0808, 0x082b2b2b, 0x082b0808, 0x19080819, 0x082b0808, + 0x19081908, 0x082b0808, 0x19190808, 0x082b0808, 0x1919082b, 0x082b0808, 0x19191919, 0x082b0808, + 0x192b1908, 0x082b0808, 0x2b080808, 0x082b0808, 0x2b082b2b, 0x082b0808, 0x2b191908, 0x082b0808, + 0x2b2b2b2b, 0x082b0808, 0x08080819, 0x082b0819, 0x08081908, 0x082b0819, 0x08190808, 0x082b0819, + 0x0819082b, 0x082b0819, 0x08191919, 0x082b0819, 0x082b0819, 0x082b0819, 0x19080808, 0x082b0819, + 0x1908082b, 0x082b0819, 0x19081919, 0x082b0819, 0x19190819, 0x082b0819, 0x19191908, 0x082b0819, + 0x192b0808, 0x082b0819, 0x2b080819, 0x082b0819, 0x2b081908, 0x082b0819, 0x2b190808, 0x082b0819, + 0x08080808, 0x082b082b, 0x08082b2b, 0x082b082b, 0x082b082b, 0x082b082b, 0x082b2b08, 0x082b082b, + 0x082b2b2b, 0x082b082b, 0x19081908, 0x082b082b, 0x19190808, 0x082b082b, 0x2b082b08, 0x082b082b, + 0x2b082b2b, 0x082b082b, 0x2b2b2b08, 0x082b082b, 0x08080819, 0x082b1908, 0x08081908, 0x082b1908, + 0x0808192b, 0x082b1908, 0x08082b19, 0x082b1908, 0x08190808, 0x082b1908, 0x08191919, 0x082b1908, + 0x08192b08, 0x082b1908, 0x082b0819, 0x082b1908, 0x082b1908, 0x082b1908, 0x19080808, 0x082b1908, + 0x1908082b, 0x082b1908, 0x19081919, 0x082b1908, 0x19082b08, 0x082b1908, 0x19190819, 0x082b1908, + 0x19191908, 0x082b1908, 0x192b0808, 0x082b1908, 0x2b080819, 0x082b1908, 0x2b081908, 0x082b1908, + 0x2b190808, 0x082b1908, 0x08080808, 0x082b1919, 0x08081919, 0x082b1919, 0x08082b08, 0x082b1919, + 0x08190819, 0x082b1919, 0x08191908, 0x082b1919, 0x082b0808, 0x082b1919, 0x19080819, 0x082b1919, + 0x19081908, 0x082b1919, 0x19190808, 0x082b1919, 0x192b192b, 0x082b1919, 0x2b080808, 0x082b1919, + 0x08080819, 0x082b192b, 0x08081908, 0x082b192b, 0x08190808, 0x082b192b, 0x19080808, 0x082b192b, + 0x19192b19, 0x082b192b, 0x08080808, 0x082b2b08, 0x08081919, 0x082b2b08, 0x08190819, 0x082b2b08, + 0x08191908, 0x082b2b08, 0x19080819, 0x082b2b08, 0x19081908, 0x082b2b08, 0x19190808, 0x082b2b08, + 0x2b082b2b, 0x082b2b08, 0x2b2b2b2b, 0x082b2b08, 0x08080819, 0x082b2b19, 0x08081908, 0x082b2b19, + 0x08190808, 0x082b2b19, 0x2b191919, 0x082b2b19, 0x08082b2b, 0x082b2b2b, 0x082b082b, 0x082b2b2b, + 0x192b1908, 0x082b2b2b, 0x2b082b08, 0x082b2b2b, 0x2b082b2b, 0x082b2b2b, 0x08080819, 0x19080808, + 0x08081908, 0x19080808, 0x0808192b, 0x19080808, 0x08082b19, 0x19080808, 0x08190808, 0x19080808, + 0x0819082b, 0x19080808, 0x08191919, 0x19080808, 0x08192b08, 0x19080808, 0x08192b2b, 0x19080808, + 0x082b0819, 0x19080808, 0x082b1908, 0x19080808, 0x082b192b, 0x19080808, 0x19080808, 0x19080808, + 0x1908082b, 0x19080808, 0x19081919, 0x19080808, 0x19082b08, 0x19080808, 0x19082b2b, 0x19080808, + 0x19190819, 0x19080808, 0x19191908, 0x19080808, 0x1919192b, 0x19080808, 0x19192b19, 0x19080808, + 0x192b0808, 0x19080808, 0x192b082b, 0x19080808, 0x192b1919, 0x19080808, 0x2b080819, 0x19080808, + 0x2b081908, 0x19080808, 0x2b190808, 0x19080808, 0x2b191919, 0x19080808, 0x2b192b08, 0x19080808, + 0x2b2b0819, 0x19080808, 0x2b2b1908, 0x19080808, 0x08080808, 0x19080819, 0x0808082b, 0x19080819, + 0x08081919, 0x19080819, 0x08082b08, 0x19080819, 0x08190819, 0x19080819, 0x08191908, 0x19080819, + 0x0819192b, 0x19080819, 0x08192b19, 0x19080819, 0x082b0808, 0x19080819, 0x082b082b, 0x19080819, + 0x082b1919, 0x19080819, 0x19080819, 0x19080819, 0x19081908, 0x19080819, 0x1908192b, 0x19080819, + 0x19082b19, 0x19080819, 0x19190808, 0x19080819, 0x1919082b, 0x19080819, 0x19191919, 0x19080819, + 0x19192b08, 0x19080819, 0x192b0819, 0x19080819, 0x192b1908, 0x19080819, 0x2b080808, 0x19080819, + 0x2b08082b, 0x19080819, 0x2b081919, 0x19080819, 0x2b082b08, 0x19080819, 0x2b190819, 0x19080819, + 0x2b191908, 0x19080819, 0x2b2b0808, 0x19080819, 0x08080819, 0x1908082b, 0x08081908, 0x1908082b, + 0x08190808, 0x1908082b, 0x0819082b, 0x1908082b, 0x08191919, 0x1908082b, 0x08192b08, 0x1908082b, + 0x082b1908, 0x1908082b, 0x19080808, 0x1908082b, 0x19081919, 0x1908082b, 0x19082b08, 0x1908082b, + 0x19190819, 0x1908082b, 0x19191908, 0x1908082b, 0x192b0808, 0x1908082b, 0x2b080819, 0x1908082b, + 0x2b081908, 0x1908082b, 0x08080808, 0x19081908, 0x0808082b, 0x19081908, 0x08081919, 0x19081908, + 0x08082b08, 0x19081908, 0x08082b2b, 0x19081908, 0x08190819, 0x19081908, 0x08191908, 0x19081908, + 0x0819192b, 0x19081908, 0x08192b19, 0x19081908, 0x082b0808, 0x19081908, 0x082b082b, 0x19081908, + 0x082b1919, 0x19081908, 0x082b2b08, 0x19081908, 0x19080819, 0x19081908, 0x19081908, 0x19081908, + 0x1908192b, 0x19081908, 0x19082b19, 0x19081908, 0x19190808, 0x19081908, 0x1919082b, 0x19081908, + 0x19191919, 0x19081908, 0x19192b08, 0x19081908, 0x192b0819, 0x19081908, 0x192b1908, 0x19081908, + 0x2b080808, 0x19081908, 0x2b08082b, 0x19081908, 0x2b081919, 0x19081908, 0x2b082b08, 0x19081908, + 0x2b190819, 0x19081908, 0x2b191908, 0x19081908, 0x2b2b0808, 0x19081908, 0x08080819, 0x19081919, + 0x08081908, 0x19081919, 0x0808192b, 0x19081919, 0x08082b19, 0x19081919, 0x08190808, 0x19081919, + 0x0819082b, 0x19081919, 0x08191919, 0x19081919, 0x08192b08, 0x19081919, 0x082b0819, 0x19081919, + 0x082b1908, 0x19081919, 0x19080808, 0x19081919, 0x1908082b, 0x19081919, 0x19081919, 0x19081919, + 0x19082b08, 0x19081919, 0x19190819, 0x19081919, 0x19191908, 0x19081919, 0x192b0808, 0x19081919, + 0x192b2b2b, 0x19081919, 0x2b080819, 0x19081919, 0x2b081908, 0x19081919, 0x2b190808, 0x19081919, + 0x08080808, 0x1908192b, 0x0808082b, 0x1908192b, 0x08081919, 0x1908192b, 0x08082b08, 0x1908192b, + 0x08190819, 0x1908192b, 0x08191908, 0x1908192b, 0x082b0808, 0x1908192b, 0x19080819, 0x1908192b, + 0x19081908, 0x1908192b, 0x19190808, 0x1908192b, 0x2b080808, 0x1908192b, 0x2b2b1919, 0x1908192b, + 0x08080819, 0x19082b08, 0x08081908, 0x19082b08, 0x08082b19, 0x19082b08, 0x08190808, 0x19082b08, + 0x0819082b, 0x19082b08, 0x08191919, 0x19082b08, 0x08192b08, 0x19082b08, 0x082b0819, 0x19082b08, + 0x082b1908, 0x19082b08, 0x19080808, 0x19082b08, 0x1908082b, 0x19082b08, 0x19081919, 0x19082b08, + 0x19082b08, 0x19082b08, 0x19190819, 0x19082b08, 0x19191908, 0x19082b08, 0x192b0808, 0x19082b08, + 0x2b081908, 0x19082b08, 0x2b190808, 0x19082b08, 0x08080808, 0x19082b19, 0x0808082b, 0x19082b19, + 0x08081919, 0x19082b19, 0x08082b08, 0x19082b19, 0x08190819, 0x19082b19, 0x08191908, 0x19082b19, + 0x082b0808, 0x19082b19, 0x19080819, 0x19082b19, 0x19081908, 0x19082b19, 0x19190808, 0x19082b19, + 0x2b080808, 0x19082b19, 0x2b19192b, 0x19082b19, 0x08080819, 0x19082b2b, 0x08081908, 0x19082b2b, + 0x08190808, 0x19082b2b, 0x19080808, 0x19082b2b, 0x08080808, 0x19190808, 0x0808082b, 0x19190808, + 0x08081919, 0x19190808, 0x08082b08, 0x19190808, 0x08190819, 0x19190808, 0x08191908, 0x19190808, + 0x0819192b, 0x19190808, 0x08192b19, 0x19190808, 0x082b0808, 0x19190808, 0x082b082b, 0x19190808, + 0x082b1919, 0x19190808, 0x082b2b08, 0x19190808, 0x19080819, 0x19190808, 0x19081908, 0x19190808, + 0x1908192b, 0x19190808, 0x19082b19, 0x19190808, 0x19190808, 0x19190808, 0x1919082b, 0x19190808, + 0x19191919, 0x19190808, 0x19192b08, 0x19190808, 0x192b0819, 0x19190808, 0x192b1908, 0x19190808, + 0x2b080808, 0x19190808, 0x2b08082b, 0x19190808, 0x2b081919, 0x19190808, 0x2b082b08, 0x19190808, + 0x2b190819, 0x19190808, 0x2b191908, 0x19190808, 0x08080819, 0x19190819, 0x08081908, 0x19190819, + 0x0808192b, 0x19190819, 0x08082b19, 0x19190819, 0x08190808, 0x19190819, 0x0819082b, 0x19190819, + 0x08191919, 0x19190819, 0x08192b08, 0x19190819, 0x082b0819, 0x19190819, 0x082b1908, 0x19190819, + 0x19080808, 0x19190819, 0x1908082b, 0x19190819, 0x19081919, 0x19190819, 0x19082b08, 0x19190819, + 0x19190819, 0x19190819, 0x19191908, 0x19190819, 0x192b0808, 0x19190819, 0x2b080819, 0x19190819, + 0x2b081908, 0x19190819, 0x2b190808, 0x19190819, 0x08080808, 0x1919082b, 0x08081919, 0x1919082b, + 0x08082b08, 0x1919082b, 0x08190819, 0x1919082b, 0x08191908, 0x1919082b, 0x082b0808, 0x1919082b, + 0x19080819, 0x1919082b, 0x19081908, 0x1919082b, 0x19190808, 0x1919082b, 0x192b2b19, 0x1919082b, + 0x2b080808, 0x1919082b, 0x08080819, 0x19191908, 0x08081908, 0x19191908, 0x0808192b, 0x19191908, + 0x08082b19, 0x19191908, 0x08190808, 0x19191908, 0x0819082b, 0x19191908, 0x08191919, 0x19191908, + 0x08192b08, 0x19191908, 0x082b0819, 0x19191908, 0x082b1908, 0x19191908, 0x19080808, 0x19191908, + 0x1908082b, 0x19191908, 0x19081919, 0x19191908, 0x19082b08, 0x19191908, 0x19190819, 0x19191908, + 0x19191908, 0x19191908, 0x192b0808, 0x19191908, 0x2b080819, 0x19191908, 0x2b081908, 0x19191908, + 0x2b190808, 0x19191908, 0x08080808, 0x19191919, 0x0808082b, 0x19191919, 0x08081919, 0x19191919, + 0x08082b08, 0x19191919, 0x08190819, 0x19191919, 0x08191908, 0x19191919, 0x082b0808, 0x19191919, + 0x19080819, 0x19191919, 0x19081908, 0x19191919, 0x19190808, 0x19191919, 0x2b080808, 0x19191919, + 0x08080819, 0x1919192b, 0x08081908, 0x1919192b, 0x08190808, 0x1919192b, 0x082b192b, 0x1919192b, + 0x19080808, 0x1919192b, 0x08080808, 0x19192b08, 0x0808082b, 0x19192b08, 0x08081919, 0x19192b08, + 0x08082b08, 0x19192b08, 0x08190819, 0x19192b08, 0x08191908, 0x19192b08, 0x082b0808, 0x19192b08, + 0x19080819, 0x19192b08, 0x19081908, 0x19192b08, 0x19190808, 0x19192b08, 0x19192b2b, 0x19192b08, + 0x2b080808, 0x19192b08, 0x08080819, 0x19192b19, 0x08081908, 0x19192b19, 0x08190808, 0x19192b19, + 0x19080808, 0x19192b19, 0x08080808, 0x19192b2b, 0x08192b19, 0x19192b2b, 0x2b081919, 0x19192b2b, + 0x2b2b2b08, 0x19192b2b, 0x08080819, 0x192b0808, 0x08081908, 0x192b0808, 0x0808192b, 0x192b0808, + 0x08190808, 0x192b0808, 0x0819082b, 0x192b0808, 0x08191919, 0x192b0808, 0x08192b08, 0x192b0808, + 0x082b0819, 0x192b0808, 0x082b1908, 0x192b0808, 0x19080808, 0x192b0808, 0x19081919, 0x192b0808, + 0x19082b08, 0x192b0808, 0x19190819, 0x192b0808, 0x19191908, 0x192b0808, 0x192b0808, 0x192b0808, + 0x2b081908, 0x192b0808, 0x2b190808, 0x192b0808, 0x08080808, 0x192b0819, 0x0808082b, 0x192b0819, + 0x08081919, 0x192b0819, 0x08082b08, 0x192b0819, 0x08190819, 0x192b0819, 0x08191908, 0x192b0819, + 0x082b0808, 0x192b0819, 0x19080819, 0x192b0819, 0x19081908, 0x192b0819, 0x19190808, 0x192b0819, + 0x2b080808, 0x192b0819, 0x2b192b19, 0x192b0819, 0x08081908, 0x192b082b, 0x08190808, 0x192b082b, + 0x19080808, 0x192b082b, 0x1919192b, 0x192b082b, 0x2b2b0819, 0x192b082b, 0x08080808, 0x192b1908, + 0x08081919, 0x192b1908, 0x08082b08, 0x192b1908, 0x08190819, 0x192b1908, 0x08191908, 0x192b1908, + 0x082b0808, 0x192b1908, 0x19080819, 0x192b1908, 0x19081908, 0x192b1908, 0x19190808, 0x192b1908, + 0x2b080808, 0x192b1908, 0x08080819, 0x192b1919, 0x08081908, 0x192b1919, 0x08190808, 0x192b1919, + 0x19080808, 0x192b1919, 0x19082b2b, 0x192b1919, 0x192b2b08, 0x192b1919, 0x2b19082b, 0x192b1919, + 0x08080808, 0x192b192b, 0x2b191908, 0x192b192b, 0x08080819, 0x192b2b08, 0x08081908, 0x192b2b08, + 0x08190808, 0x192b2b08, 0x192b1919, 0x192b2b08, 0x2b192b08, 0x192b2b08, 0x08080808, 0x192b2b19, + 0x082b2b2b, 0x192b2b19, 0x1908082b, 0x192b2b2b, 0x2b2b0819, 0x192b2b2b, 0x08080808, 0x2b080808, + 0x0808082b, 0x2b080808, 0x08081919, 0x2b080808, 0x08082b08, 0x2b080808, 0x08190819, 0x2b080808, + 0x08191908, 0x2b080808, 0x08192b19, 0x2b080808, 0x082b0808, 0x2b080808, 0x082b1919, 0x2b080808, + 0x19080819, 0x2b080808, 0x19081908, 0x2b080808, 0x19190808, 0x2b080808, 0x1919082b, 0x2b080808, + 0x19191919, 0x2b080808, 0x19192b08, 0x2b080808, 0x192b0819, 0x2b080808, 0x2b080808, 0x2b080808, + 0x2b081919, 0x2b080808, 0x2b190819, 0x2b080808, 0x2b191908, 0x2b080808, 0x08080819, 0x2b080819, + 0x08081908, 0x2b080819, 0x08082b19, 0x2b080819, 0x08190808, 0x2b080819, 0x0819082b, 0x2b080819, + 0x08191919, 0x2b080819, 0x08192b08, 0x2b080819, 0x082b0819, 0x2b080819, 0x082b1908, 0x2b080819, + 0x19080808, 0x2b080819, 0x1908082b, 0x2b080819, 0x19081919, 0x2b080819, 0x19082b08, 0x2b080819, + 0x19190819, 0x2b080819, 0x19191908, 0x2b080819, 0x2b080819, 0x2b080819, 0x2b081908, 0x2b080819, + 0x2b190808, 0x2b080819, 0x2b2b2b19, 0x2b080819, 0x08080808, 0x2b08082b, 0x08081919, 0x2b08082b, + 0x08082b2b, 0x2b08082b, 0x08190819, 0x2b08082b, 0x08191908, 0x2b08082b, 0x19080819, 0x2b08082b, + 0x19081908, 0x2b08082b, 0x19190808, 0x2b08082b, 0x08080819, 0x2b081908, 0x08081908, 0x2b081908, + 0x0808192b, 0x2b081908, 0x08082b19, 0x2b081908, 0x08190808, 0x2b081908, 0x0819082b, 0x2b081908, + 0x08191919, 0x2b081908, 0x08192b08, 0x2b081908, 0x082b0819, 0x2b081908, 0x19080808, 0x2b081908, + 0x1908082b, 0x2b081908, 0x19081919, 0x2b081908, 0x19082b08, 0x2b081908, 0x19190819, 0x2b081908, + 0x19191908, 0x2b081908, 0x192b0808, 0x2b081908, 0x2b080819, 0x2b081908, 0x2b081908, 0x2b081908, + 0x2b190808, 0x2b081908, 0x08080808, 0x2b081919, 0x0808082b, 0x2b081919, 0x08081919, 0x2b081919, + 0x08082b08, 0x2b081919, 0x08190819, 0x2b081919, 0x08191908, 0x2b081919, 0x082b0808, 0x2b081919, + 0x19080819, 0x2b081919, 0x19081908, 0x2b081919, 0x19190808, 0x2b081919, 0x2b080808, 0x2b081919, + 0x2b082b2b, 0x2b081919, 0x08080819, 0x2b08192b, 0x08081908, 0x2b08192b, 0x08190808, 0x2b08192b, + 0x082b2b19, 0x2b08192b, 0x19080808, 0x2b08192b, 0x08080808, 0x2b082b08, 0x08081919, 0x2b082b08, + 0x08190819, 0x2b082b08, 0x08191908, 0x2b082b08, 0x19080819, 0x2b082b08, 0x19081908, 0x2b082b08, + 0x19190808, 0x2b082b08, 0x2b2b082b, 0x2b082b08, 0x08080819, 0x2b082b19, 0x08081908, 0x2b082b19, + 0x19080808, 0x2b082b19, 0x192b1919, 0x2b082b19, 0x082b082b, 0x2b082b2b, 0x19192b08, 0x2b082b2b, + 0x19192b2b, 0x2b082b2b, 0x2b08082b, 0x2b082b2b, 0x2b2b082b, 0x2b082b2b, 0x08080819, 0x2b190808, + 0x08081908, 0x2b190808, 0x08082b19, 0x2b190808, 0x08190808, 0x2b190808, 0x0819082b, 0x2b190808, + 0x08191919, 0x2b190808, 0x08192b08, 0x2b190808, 0x082b1908, 0x2b190808, 0x19080808, 0x2b190808, + 0x1908082b, 0x2b190808, 0x19081919, 0x2b190808, 0x19082b08, 0x2b190808, 0x19190819, 0x2b190808, + 0x19191908, 0x2b190808, 0x192b0808, 0x2b190808, 0x2b080819, 0x2b190808, 0x2b081908, 0x2b190808, + 0x2b190808, 0x2b190808, 0x08080808, 0x2b190819, 0x08081919, 0x2b190819, 0x08190819, 0x2b190819, + 0x08191908, 0x2b190819, 0x19080819, 0x2b190819, 0x19081908, 0x2b190819, 0x19190808, 0x2b190819, + 0x19192b2b, 0x2b190819, 0x08080819, 0x2b19082b, 0x08081908, 0x2b19082b, 0x08190808, 0x2b19082b, + 0x19080808, 0x2b19082b, 0x2b2b192b, 0x2b19082b, 0x08080808, 0x2b191908, 0x0808082b, 0x2b191908, + 0x08081919, 0x2b191908, 0x08082b08, 0x2b191908, 0x08190819, 0x2b191908, 0x08191908, 0x2b191908, + 0x082b0808, 0x2b191908, 0x19080819, 0x2b191908, 0x19081908, 0x2b191908, 0x19190808, 0x2b191908, + 0x2b080808, 0x2b191908, 0x2b19192b, 0x2b191908, 0x08080819, 0x2b191919, 0x08081908, 0x2b191919, + 0x08190808, 0x2b191919, 0x19080808, 0x2b191919, 0x2b192b08, 0x2b191919, 0x2b2b0819, 0x2b191919, + 0x08080808, 0x2b19192b, 0x1908192b, 0x2b19192b, 0x192b1908, 0x2b19192b, 0x08080819, 0x2b192b08, + 0x08081908, 0x2b192b08, 0x08190808, 0x2b192b08, 0x082b192b, 0x2b192b08, 0x19080808, 0x2b192b08, + 0x2b2b2b19, 0x2b192b08, 0x08080808, 0x2b192b19, 0x19082b19, 0x2b192b19, 0x1919082b, 0x2b192b19, + 0x2b190808, 0x2b192b2b, 0x08080808, 0x2b2b0808, 0x08081919, 0x2b2b0808, 0x08082b2b, 0x2b2b0808, + 0x08191908, 0x2b2b0808, 0x082b082b, 0x2b2b0808, 0x082b2b2b, 0x2b2b0808, 0x19080819, 0x2b2b0808, + 0x19081908, 0x2b2b0808, 0x19190808, 0x2b2b0808, 0x2b2b082b, 0x2b2b0808, 0x2b2b2b2b, 0x2b2b0808, + 0x19080808, 0x2b2b0819, 0x192b1919, 0x2b2b0819, 0x0808082b, 0x2b2b082b, 0x08082b2b, 0x2b2b082b, + 0x082b082b, 0x2b2b082b, 0x082b2b08, 0x2b2b082b, 0x082b2b2b, 0x2b2b082b, 0x2b08082b, 0x2b2b082b, + 0x2b082b08, 0x2b2b082b, 0x2b082b2b, 0x2b2b082b, 0x2b2b2b08, 0x2b2b082b, 0x08080819, 0x2b2b1908, + 0x08081908, 0x2b2b1908, 0x08190808, 0x2b2b1908, 0x19080808, 0x2b2b1908, 0x2b082b19, 0x2b2b1908, + 0x2b2b1908, 0x2b2b1908, 0x08080808, 0x2b2b1919, 0x08192b19, 0x2b2b1919, 0x19190819, 0x2b2b192b, + 0x08082b2b, 0x2b2b2b08, 0x082b2b08, 0x2b2b2b08, 0x2b2b082b, 0x2b2b2b08, 0x19191908, 0x2b2b2b19, + 0x2b08192b, 0x2b2b2b19, 0x08082b08, 0x2b2b2b2b, 0x08082b2b, 0x2b2b2b2b, 0x082b0808, 0x2b2b2b2b, + 0x082b082b, 0x2b2b2b2b, 0x082b2b08, 0x2b2b2b2b, 0x2b082b08, 0x2b2b2b2b, 0x2b2b2b2b, 0x2b2b2b2b +); +#enddecl(IQ2_S_GRID) + +#decl(IQ3_XSS_GRID) + +const iq3xxs_grid = array( + 0x04040404, 0x04040414, 0x04040424, 0x04040c0c, 0x04040c1c, 0x04040c3e, 0x04041404, 0x04041414, + 0x04041c0c, 0x04042414, 0x04043e1c, 0x04043e2c, 0x040c040c, 0x040c041c, 0x040c0c04, 0x040c0c14, + 0x040c140c, 0x040c142c, 0x040c1c04, 0x040c1c14, 0x040c240c, 0x040c2c24, 0x040c3e04, 0x04140404, + 0x04140414, 0x04140424, 0x04140c0c, 0x04141404, 0x04141414, 0x04141c0c, 0x04141c1c, 0x04141c3e, + 0x04142c0c, 0x04142c3e, 0x04143e2c, 0x041c040c, 0x041c043e, 0x041c0c04, 0x041c0c14, 0x041c142c, + 0x041c3e04, 0x04240c1c, 0x04241c3e, 0x04242424, 0x04242c3e, 0x04243e1c, 0x04243e2c, 0x042c040c, + 0x042c043e, 0x042c1c14, 0x042c2c14, 0x04341c2c, 0x04343424, 0x043e0c04, 0x043e0c24, 0x043e0c34, + 0x043e241c, 0x043e340c, 0x0c04040c, 0x0c04041c, 0x0c040c04, 0x0c040c14, 0x0c04140c, 0x0c04141c, + 0x0c041c04, 0x0c041c14, 0x0c041c24, 0x0c04243e, 0x0c042c04, 0x0c0c0404, 0x0c0c0414, 0x0c0c0c0c, + 0x0c0c1404, 0x0c0c1414, 0x0c14040c, 0x0c14041c, 0x0c140c04, 0x0c140c14, 0x0c14140c, 0x0c141c04, + 0x0c143e14, 0x0c1c0404, 0x0c1c0414, 0x0c1c1404, 0x0c1c1c0c, 0x0c1c2434, 0x0c1c3434, 0x0c24040c, + 0x0c24042c, 0x0c242c04, 0x0c2c1404, 0x0c2c1424, 0x0c2c2434, 0x0c2c3e0c, 0x0c34042c, 0x0c3e1414, + 0x0c3e2404, 0x14040404, 0x14040414, 0x14040c0c, 0x14040c1c, 0x14041404, 0x14041414, 0x14041434, + 0x14041c0c, 0x14042414, 0x140c040c, 0x140c041c, 0x140c042c, 0x140c0c04, 0x140c0c14, 0x140c140c, + 0x140c1c04, 0x140c341c, 0x140c343e, 0x140c3e04, 0x14140404, 0x14140414, 0x14140c0c, 0x14140c3e, + 0x14141404, 0x14141414, 0x14141c3e, 0x14142404, 0x14142c2c, 0x141c040c, 0x141c0c04, 0x141c0c24, + 0x141c3e04, 0x141c3e24, 0x14241c2c, 0x14242c1c, 0x142c041c, 0x142c143e, 0x142c240c, 0x142c3e24, + 0x143e040c, 0x143e041c, 0x143e0c34, 0x143e242c, 0x1c04040c, 0x1c040c04, 0x1c040c14, 0x1c04140c, + 0x1c04141c, 0x1c042c04, 0x1c04342c, 0x1c043e14, 0x1c0c0404, 0x1c0c0414, 0x1c0c1404, 0x1c0c1c0c, + 0x1c0c2424, 0x1c0c2434, 0x1c14040c, 0x1c14041c, 0x1c140c04, 0x1c14142c, 0x1c142c14, 0x1c143e14, + 0x1c1c0c0c, 0x1c1c1c1c, 0x1c241c04, 0x1c24243e, 0x1c243e14, 0x1c2c0404, 0x1c2c0434, 0x1c2c1414, + 0x1c2c2c2c, 0x1c340c24, 0x1c341c34, 0x1c34341c, 0x1c3e1c1c, 0x1c3e3404, 0x24040424, 0x24040c3e, + 0x24041c2c, 0x24041c3e, 0x24042c1c, 0x24042c3e, 0x240c3e24, 0x24141404, 0x24141c3e, 0x24142404, + 0x24143404, 0x24143434, 0x241c043e, 0x241c242c, 0x24240424, 0x24242c0c, 0x24243424, 0x242c142c, + 0x242c241c, 0x242c3e04, 0x243e042c, 0x243e0c04, 0x243e0c14, 0x243e1c04, 0x2c040c14, 0x2c04240c, + 0x2c043e04, 0x2c0c0404, 0x2c0c0434, 0x2c0c1434, 0x2c0c2c2c, 0x2c140c24, 0x2c141c14, 0x2c143e14, + 0x2c1c0414, 0x2c1c2c1c, 0x2c240c04, 0x2c24141c, 0x2c24143e, 0x2c243e14, 0x2c2c0414, 0x2c2c1c0c, + 0x2c342c04, 0x2c3e1424, 0x2c3e2414, 0x34041424, 0x34042424, 0x34042434, 0x34043424, 0x340c140c, + 0x340c340c, 0x34140c3e, 0x34143424, 0x341c1c04, 0x341c1c34, 0x34242424, 0x342c042c, 0x342c2c14, + 0x34341c1c, 0x343e041c, 0x343e140c, 0x3e04041c, 0x3e04042c, 0x3e04043e, 0x3e040c04, 0x3e041c14, + 0x3e042c14, 0x3e0c1434, 0x3e0c2404, 0x3e140c14, 0x3e14242c, 0x3e142c14, 0x3e1c0404, 0x3e1c0c2c, + 0x3e1c1c1c, 0x3e1c3404, 0x3e24140c, 0x3e24240c, 0x3e2c0404, 0x3e2c0414, 0x3e2c1424, 0x3e341c04 +); +#enddecl(IQ3_XSS_GRID) + +#decl(IQ3_S_GRID) + +const iq3s_grid = array( + 0x01010101, 0x01010103, 0x01010105, 0x0101010b, 0x0101010f, 0x01010301, 0x01010303, 0x01010305, + 0x01010309, 0x0101030d, 0x01010501, 0x01010503, 0x0101050b, 0x01010707, 0x01010901, 0x01010905, + 0x0101090b, 0x0101090f, 0x01010b03, 0x01010b07, 0x01010d01, 0x01010d05, 0x01010f03, 0x01010f09, + 0x01010f0f, 0x01030101, 0x01030103, 0x01030105, 0x01030109, 0x01030301, 0x01030303, 0x0103030b, + 0x01030501, 0x01030507, 0x0103050f, 0x01030703, 0x0103070b, 0x01030909, 0x01030d03, 0x01030d0b, + 0x01030f05, 0x01050101, 0x01050103, 0x0105010b, 0x0105010f, 0x01050301, 0x01050307, 0x0105030d, + 0x01050503, 0x0105050b, 0x01050701, 0x01050709, 0x01050905, 0x0105090b, 0x0105090f, 0x01050b03, + 0x01050b07, 0x01050f01, 0x01050f07, 0x01070107, 0x01070303, 0x0107030b, 0x01070501, 0x01070505, + 0x01070703, 0x01070707, 0x0107070d, 0x01070909, 0x01070b01, 0x01070b05, 0x01070d0f, 0x01070f03, + 0x01070f0b, 0x01090101, 0x01090307, 0x0109030f, 0x01090503, 0x01090509, 0x01090705, 0x01090901, + 0x01090907, 0x01090b03, 0x01090f01, 0x010b0105, 0x010b0109, 0x010b0501, 0x010b0505, 0x010b050d, + 0x010b0707, 0x010b0903, 0x010b090b, 0x010b090f, 0x010b0d0d, 0x010b0f07, 0x010d010d, 0x010d0303, + 0x010d0307, 0x010d0703, 0x010d0b05, 0x010d0f03, 0x010f0101, 0x010f0105, 0x010f0109, 0x010f0501, + 0x010f0505, 0x010f050d, 0x010f0707, 0x010f0b01, 0x010f0b09, 0x03010101, 0x03010103, 0x03010105, + 0x03010109, 0x03010301, 0x03010303, 0x03010307, 0x0301030b, 0x0301030f, 0x03010501, 0x03010505, + 0x03010703, 0x03010709, 0x0301070d, 0x03010b09, 0x03010b0d, 0x03010d03, 0x03010f05, 0x03030101, + 0x03030103, 0x03030107, 0x0303010d, 0x03030301, 0x03030309, 0x03030503, 0x03030701, 0x03030707, + 0x03030903, 0x03030b01, 0x03030b05, 0x03030f01, 0x03030f0d, 0x03050101, 0x03050305, 0x0305030b, + 0x0305030f, 0x03050501, 0x03050509, 0x03050705, 0x03050901, 0x03050907, 0x03050b0b, 0x03050d01, + 0x03050f05, 0x03070103, 0x03070109, 0x0307010f, 0x03070301, 0x03070307, 0x03070503, 0x0307050f, + 0x03070701, 0x03070709, 0x03070903, 0x03070d05, 0x03070f01, 0x03090107, 0x0309010b, 0x03090305, + 0x03090309, 0x03090703, 0x03090707, 0x03090905, 0x0309090d, 0x03090b01, 0x03090b09, 0x030b0103, + 0x030b0301, 0x030b0307, 0x030b0503, 0x030b0701, 0x030b0705, 0x030b0b03, 0x030d0501, 0x030d0509, + 0x030d050f, 0x030d0909, 0x030d090d, 0x030f0103, 0x030f0107, 0x030f0301, 0x030f0305, 0x030f0503, + 0x030f070b, 0x030f0903, 0x030f0d05, 0x030f0f01, 0x05010101, 0x05010103, 0x05010107, 0x0501010b, + 0x0501010f, 0x05010301, 0x05010305, 0x05010309, 0x0501030d, 0x05010503, 0x05010507, 0x0501050f, + 0x05010701, 0x05010705, 0x05010903, 0x05010907, 0x0501090b, 0x05010b01, 0x05010b05, 0x05010d0f, + 0x05010f01, 0x05010f07, 0x05010f0b, 0x05030101, 0x05030105, 0x05030301, 0x05030307, 0x0503030f, + 0x05030505, 0x0503050b, 0x05030703, 0x05030709, 0x05030905, 0x05030b03, 0x05050103, 0x05050109, + 0x0505010f, 0x05050503, 0x05050507, 0x05050701, 0x0505070f, 0x05050903, 0x05050b07, 0x05050b0f, + 0x05050f03, 0x05050f09, 0x05070101, 0x05070105, 0x0507010b, 0x05070303, 0x05070505, 0x05070509, + 0x05070703, 0x05070707, 0x05070905, 0x05070b01, 0x05070d0d, 0x05090103, 0x0509010f, 0x05090501, + 0x05090507, 0x05090705, 0x0509070b, 0x05090903, 0x05090f05, 0x05090f0b, 0x050b0109, 0x050b0303, + 0x050b0505, 0x050b070f, 0x050b0901, 0x050b0b07, 0x050b0f01, 0x050d0101, 0x050d0105, 0x050d010f, + 0x050d0503, 0x050d0b0b, 0x050d0d03, 0x050f010b, 0x050f0303, 0x050f050d, 0x050f0701, 0x050f0907, + 0x050f0b01, 0x07010105, 0x07010303, 0x07010307, 0x0701030b, 0x0701030f, 0x07010505, 0x07010703, + 0x07010707, 0x0701070b, 0x07010905, 0x07010909, 0x0701090f, 0x07010b03, 0x07010d07, 0x07010f03, + 0x07030103, 0x07030107, 0x0703010b, 0x07030309, 0x07030503, 0x07030507, 0x07030901, 0x07030d01, + 0x07030f05, 0x07030f0d, 0x07050101, 0x07050305, 0x07050501, 0x07050705, 0x07050709, 0x07050b01, + 0x07070103, 0x07070301, 0x07070309, 0x07070503, 0x07070507, 0x0707050f, 0x07070701, 0x07070903, + 0x07070907, 0x0707090f, 0x07070b0b, 0x07070f07, 0x07090107, 0x07090303, 0x0709030d, 0x07090505, + 0x07090703, 0x07090b05, 0x07090d01, 0x07090d09, 0x070b0103, 0x070b0301, 0x070b0305, 0x070b050b, + 0x070b0705, 0x070b0909, 0x070b0b0d, 0x070b0f07, 0x070d030d, 0x070d0903, 0x070f0103, 0x070f0107, + 0x070f0501, 0x070f0505, 0x070f070b, 0x09010101, 0x09010109, 0x09010305, 0x09010501, 0x09010509, + 0x0901050f, 0x09010705, 0x09010903, 0x09010b01, 0x09010f01, 0x09030105, 0x0903010f, 0x09030303, + 0x09030307, 0x09030505, 0x09030701, 0x0903070b, 0x09030907, 0x09030b03, 0x09030b0b, 0x09050103, + 0x09050107, 0x09050301, 0x0905030b, 0x09050503, 0x09050707, 0x09050901, 0x09050b0f, 0x09050d05, + 0x09050f01, 0x09070109, 0x09070303, 0x09070307, 0x09070501, 0x09070505, 0x09070703, 0x0907070b, + 0x09090101, 0x09090105, 0x09090509, 0x0909070f, 0x09090901, 0x09090f03, 0x090b010b, 0x090b010f, + 0x090b0503, 0x090b0d05, 0x090d0307, 0x090d0709, 0x090d0d01, 0x090f0301, 0x090f030b, 0x090f0701, + 0x090f0907, 0x090f0b03, 0x0b010105, 0x0b010301, 0x0b010309, 0x0b010505, 0x0b010901, 0x0b010909, + 0x0b01090f, 0x0b010b05, 0x0b010d0d, 0x0b010f09, 0x0b030103, 0x0b030107, 0x0b03010b, 0x0b030305, + 0x0b030503, 0x0b030705, 0x0b030f05, 0x0b050101, 0x0b050303, 0x0b050507, 0x0b050701, 0x0b05070d, + 0x0b050b07, 0x0b070105, 0x0b07010f, 0x0b070301, 0x0b07050f, 0x0b070909, 0x0b070b03, 0x0b070d0b, + 0x0b070f07, 0x0b090103, 0x0b090109, 0x0b090501, 0x0b090705, 0x0b09090d, 0x0b0b0305, 0x0b0b050d, + 0x0b0b0b03, 0x0b0b0b07, 0x0b0d0905, 0x0b0f0105, 0x0b0f0109, 0x0b0f0505, 0x0d010303, 0x0d010307, + 0x0d01030b, 0x0d010703, 0x0d010707, 0x0d010d01, 0x0d030101, 0x0d030501, 0x0d03050f, 0x0d030d09, + 0x0d050305, 0x0d050709, 0x0d050905, 0x0d050b0b, 0x0d050d05, 0x0d050f01, 0x0d070101, 0x0d070309, + 0x0d070503, 0x0d070901, 0x0d09050b, 0x0d090907, 0x0d090d05, 0x0d0b0101, 0x0d0b0107, 0x0d0b0709, + 0x0d0b0d01, 0x0d0d010b, 0x0d0d0901, 0x0d0f0303, 0x0d0f0307, 0x0f010101, 0x0f010109, 0x0f01010f, + 0x0f010501, 0x0f010505, 0x0f01070d, 0x0f010901, 0x0f010b09, 0x0f010d05, 0x0f030105, 0x0f030303, + 0x0f030509, 0x0f030907, 0x0f03090b, 0x0f050103, 0x0f050109, 0x0f050301, 0x0f05030d, 0x0f050503, + 0x0f050701, 0x0f050b03, 0x0f070105, 0x0f070705, 0x0f07070b, 0x0f070b07, 0x0f090103, 0x0f09010b, + 0x0f090307, 0x0f090501, 0x0f090b01, 0x0f0b0505, 0x0f0b0905, 0x0f0d0105, 0x0f0d0703, 0x0f0f0101 +); +#enddecl(IQ3_S_GRID) + +#decl(IQ1_GRID) + +const IQ1_DELTA: f32 = 0.125; + +const iq1_grid = array( + 0xfffdffff, 0xfff7fff0, 0xffccfff5, 0xffdfffc0, 0xffd7ffdd, 0xff30ffd5, 0xff03ff0c, 0xff10ff01, + 0xff7dff7f, 0xff75ff77, 0xff5fff40, 0xff57ff5d, 0xfcf3ff55, 0xfcccfcf0, 0xfcc1fcc3, 0xfcc5fcc4, + 0xfc3cfcd0, 0xfc34fc31, 0xfc00fc0d, 0xfc1cfc05, 0xfc11fc13, 0xfc70fc17, 0xfc43fc4c, 0xfc50fc41, + 0xfdfdfdff, 0xfdf5fdf7, 0xfddffdc0, 0xfdd7fddd, 0xfd30fdd5, 0xfd04fd0c, 0xfd14fd13, 0xfd7dfd7f, + 0xfd75fd77, 0xfd40fd4c, 0xfd5ffd44, 0xfd57fd5d, 0xf3ccfd55, 0xf3c1f3c3, 0xf33cf3d0, 0xf300f334, + 0xf313f305, 0xf34cf310, 0xf350f344, 0xf0f3f0fc, 0xf0f1f0f0, 0xf0c7f0c0, 0xf0d4f0c5, 0xf030f03f, + 0xf00ff035, 0xf003f00c, 0xf001f000, 0xf01ff004, 0xf010f01d, 0xf015f017, 0xf04cf07c, 0xf047f040, + 0xf05cf045, 0xf050f053, 0xf054f051, 0xf1c4f1c3, 0xf133f13c, 0xf10df10f, 0xf107f100, 0xf11cf11f, + 0xf114f111, 0xf14cf170, 0xf144f143, 0xf7fdf7ff, 0xf7f5f7f7, 0xf7dff7c0, 0xf7d7f7dd, 0xf730f7d5, + 0xf701f70c, 0xf77ff710, 0xf777f77d, 0xf740f775, 0xf75df75f, 0xf755f757, 0xf4ccf4f0, 0xf4c4f4c3, + 0xf4d0f4d3, 0xf40ff43c, 0xf400f40c, 0xf413f41c, 0xf44cf414, 0xf441f443, 0xf450f444, 0xf5fdf5ff, + 0xf5f5f5f7, 0xf5dff5c0, 0xf5d7f5dd, 0xf530f5d5, 0xf504f50c, 0xf510f51c, 0xf57df57f, 0xf577f570, + 0xf540f575, 0xf55df55f, 0xf555f557, 0xcfcccfcf, 0xcfc4cfc3, 0xcfd0cfd3, 0xcf33cf3c, 0xcf00cf0f, + 0xcf1ccf07, 0xcf10cf13, 0xcf4ccf14, 0xcf41cf43, 0xcf50cf5c, 0xccf3ccfc, 0xccf4ccf1, 0xcccdcccf, + 0xccc7ccc0, 0xccd3ccdc, 0xcc30ccd4, 0xcc0fcc35, 0xcc0dcc0c, 0xcc00cc03, 0xcc04cc01, 0xcc10cc1f, + 0xcc4dcc73, 0xcc5ccc40, 0xcdcccc53, 0xcdc1cdc3, 0xcd3fcdd0, 0xcd34cd31, 0xcd00cd0d, 0xcd05cd07, + 0xcd11cd13, 0xcd4ccd70, 0xcd41cd43, 0xc3fccd50, 0xc3f4c3f1, 0xc3c0c3c3, 0xc3c4c3c7, 0xc3d1c3dc, + 0xc330c33c, 0xc337c331, 0xc30cc335, 0xc300c303, 0xc304c301, 0xc310c31d, 0xc373c317, 0xc34fc374, + 0xc340c343, 0xc344c347, 0xc35cc345, 0xc350c353, 0xc0fdc354, 0xc0f5c0f0, 0xc0c3c0cc, 0xc0c1c0c0, + 0xc0dfc0c4, 0xc0d0c0dd, 0xc0d5c0d7, 0xc033c03c, 0xc031c030, 0xc00dc00c, 0xc000c003, 0xc004c001, + 0xc01cc005, 0xc010c013, 0xc014c011, 0xc07dc07f, 0xc070c073, 0xc075c077, 0xc04cc04f, 0xc040c043, + 0xc044c041, 0xc05fc045, 0xc050c05d, 0xc1f3c1fc, 0xc1f1c1f0, 0xc1c1c1c0, 0xc1c5c1c7, 0xc1d1c1dc, + 0xc13dc13f, 0xc130c133, 0xc135c137, 0xc100c10c, 0xc107c101, 0xc11cc104, 0xc110c113, 0xc114c117, + 0xc171c115, 0xc14dc175, 0xc153c140, 0xc7ccc154, 0xc7d0c7c1, 0xc733c73c, 0xc734c731, 0xc700c70f, + 0xc705c707, 0xc71cc71f, 0xc711c713, 0xc770c714, 0xc743c74c, 0xc4cfc750, 0xc4c0c4cd, 0xc4dcc4c5, + 0xc43dc4d0, 0xc430c433, 0xc40cc437, 0xc400c403, 0xc404c401, 0xc41fc405, 0xc415c410, 0xc44cc474, + 0xc440c44d, 0xc45cc447, 0xc454c451, 0xc5c1c5f4, 0xc5d1c5d3, 0xc531c533, 0xc50fc534, 0xc500c50d, + 0xc51cc507, 0xc514c511, 0xc54cc570, 0xc545c541, 0xdffddfff, 0xdff5dff7, 0xdfdfdfc0, 0xdfd0dfdd, + 0xdfd5dfd7, 0xdf0cdf30, 0xdf1cdf04, 0xdf7fdf10, 0xdf77df7d, 0xdf40df75, 0xdf5ddf5f, 0xdf57df50, + 0xdcf0df55, 0xdcc3dccc, 0xdcd0dcc4, 0xdc33dc3d, 0xdc00dc34, 0xdc05dc07, 0xdc13dc1c, 0xdc11dc10, + 0xdc4fdc70, 0xdc44dc41, 0xddfcdc50, 0xddf5ddf7, 0xddc0ddcc, 0xdddddddf, 0xddd5ddd7, 0xdd0cdd30, + 0xdd04dd01, 0xdd7cdd10, 0xdd75dd77, 0xdd40dd4c, 0xdd5ddd5f, 0xdd55dd57, 0xd3c3d3f0, 0xd3c4d3c1, + 0xd333d3d0, 0xd331d330, 0xd30dd334, 0xd307d300, 0xd311d305, 0xd34cd370, 0xd344d343, 0xd350d35c, + 0xd0c0d0f4, 0xd0d4d0dc, 0xd030d03f, 0xd00cd037, 0xd000d003, 0xd01dd004, 0xd017d010, 0xd04fd074, + 0xd040d043, 0xd045d047, 0xd053d05c, 0xd054d051, 0xd1cfd1f0, 0xd1c4d1cd, 0xd13cd1d0, 0xd100d134, + 0xd11cd11f, 0xd173d114, 0xd14fd171, 0xd7ffd145, 0xd7f7d7fd, 0xd7c0d7f5, 0xd7ddd7df, 0xd7d5d7d7, + 0xd70cd730, 0xd710d703, 0xd77dd77f, 0xd775d777, 0xd75dd75f, 0xd755d757, 0xd4ccd4f4, 0xd4c4d4c3, + 0xd431d4d0, 0xd40dd434, 0xd41cd400, 0xd411d413, 0xd470d414, 0xd441d44f, 0xd453d444, 0xd5ffd450, + 0xd5f7d5fd, 0xd5dfd5f5, 0xd5d7d5dd, 0xd530d5d5, 0xd501d50c, 0xd510d504, 0xd57dd57f, 0xd575d577, + 0xd55fd540, 0xd557d55d, 0x3ff0d555, 0x3fc13fcc, 0x3f343fd0, 0x3f003f0d, 0x3f053f07, 0x3f133f1c, + 0x3f433f11, 0x3f5c3f44, 0x3cff3f51, 0x3cf33cfc, 0x3cf43cf1, 0x3cc03ccd, 0x3cc73cc1, 0x3cdc3cc5, + 0x3cd43cd1, 0x3c373c30, 0x3c0c3c35, 0x3c003c03, 0x3c043c01, 0x3c103c05, 0x3c153c17, 0x3c733c7c, + 0x3c4f3c71, 0x3c403c4d, 0x3c5c3c5f, 0x3df03c5d, 0x3dc33dcc, 0x3dd03dc1, 0x3d0d3d3c, 0x3d053d00, + 0x3d143d13, 0x3d433d74, 0x33fc3d50, 0x33c433c0, 0x333033d4, 0x33353337, 0x3303330c, 0x33013300, + 0x331d331c, 0x33173310, 0x337c3315, 0x33743371, 0x334d334f, 0x335f3340, 0x3354335c, 0x30fd30fc, + 0x30f530f0, 0x30c330cc, 0x30c130c0, 0x30df30c4, 0x30d530d0, 0x3033303c, 0x30313030, 0x300f3034, + 0x3003300c, 0x30013000, 0x30043007, 0x3013301c, 0x30113010, 0x307d3014, 0x30703073, 0x304c3077, + 0x30403043, 0x30443041, 0x30503045, 0x30553057, 0x31f031fc, 0x31c331f4, 0x31c731c0, 0x31dc31c5, + 0x31d431d3, 0x313d313f, 0x31373130, 0x310c310f, 0x3100310d, 0x31043101, 0x3110311d, 0x317c3117, + 0x31753170, 0x31403143, 0x3153315c, 0x37f03151, 0x37c037cc, 0x37d037c5, 0x3734373d, 0x3700370f, + 0x371c3707, 0x37113713, 0x37703714, 0x3743374c, 0x37443741, 0x34fc3750, 0x34f134f0, 0x34cf34f5, + 0x34c034c3, 0x34dc34c7, 0x34d134d3, 0x3430343f, 0x340c3435, 0x3403340d, 0x34013400, 0x341f3404, + 0x3410341d, 0x34153411, 0x34743471, 0x3440344d, 0x34473441, 0x3453345c, 0x34543451, 0x353335c1, + 0x35343531, 0x35073500, 0x35133505, 0x35433514, 0x0ffc3550, 0x0ff00ff3, 0x0ff40ff1, 0x0fc00fcd, + 0x0fdc0fc5, 0x0fd40fd3, 0x0f300f3f, 0x0f0c0f37, 0x0f000f03, 0x0f040f01, 0x0f170f10, 0x0f740f71, + 0x0f470f40, 0x0f5c0f5f, 0x0f540f51, 0x0cf70cf0, 0x0cf50cf4, 0x0cc30ccc, 0x0cc10cc0, 0x0cc40cc7, + 0x0cd00cdf, 0x0cd70cd1, 0x0c3c0cd5, 0x0c300c33, 0x0c340c31, 0x0c0c0c0f, 0x0c030c0d, 0x0c010c00, + 0x0c040c07, 0x0c1c0c05, 0x0c100c13, 0x0c140c11, 0x0c700c7d, 0x0c430c4c, 0x0c410c40, 0x0c5f0c44, + 0x0c550c50, 0x0df10dfc, 0x0dc00dcd, 0x0ddc0dc5, 0x0d3d0dd3, 0x0d350d30, 0x0d030d0c, 0x0d010d00, + 0x0d1d0d04, 0x0d700d10, 0x0d4d0d4f, 0x0d440d40, 0x0d530d45, 0x03f003f3, 0x03c303cc, 0x03c103c0, + 0x03c403c7, 0x03d003dc, 0x03d503d7, 0x0333033c, 0x03310330, 0x03350334, 0x030c030f, 0x03000303, + 0x03070301, 0x03050304, 0x031d031c, 0x03100313, 0x03140311, 0x0377037f, 0x034c0375, 0x03400343, + 0x03440341, 0x0353035c, 0x03550350, 0x00fd00fc, 0x00f000f3, 0x00f400f1, 0x00cc00cf, 0x00c300cd, + 0x00c100c0, 0x00c500c4, 0x00d300dc, 0x00d100d0, 0x003f00d4, 0x003d003c, 0x00300033, 0x00370031, + 0x000f0034, 0x000d000c, 0x00000003, 0x00070001, 0x00050004, 0x001c001f, 0x00100013, 0x00170011, + 0x00150014, 0x0073007c, 0x00740070, 0x004f0075, 0x0043004c, 0x00410040, 0x00440047, 0x0053005c, + 0x00510050, 0x01ff0054, 0x01fd01fc, 0x01f101f3, 0x01f401f7, 0x01c301cc, 0x01c701c0, 0x01df01c4, + 0x01dd01dc, 0x01d001d3, 0x01d701d1, 0x013c01d4, 0x01310130, 0x01340137, 0x010f0135, 0x010d010c, + 0x01000103, 0x01070101, 0x01050104, 0x0113011c, 0x01140110, 0x0170017d, 0x01770171, 0x01750174, + 0x0140014c, 0x015d0145, 0x01510150, 0x01540157, 0x07f007f3, 0x07f407f1, 0x07c007cf, 0x07dc07c7, + 0x073007d5, 0x07350737, 0x0703070c, 0x07010700, 0x07040707, 0x071d071f, 0x07100713, 0x0774077d, + 0x074d074f, 0x07470740, 0x0754075c, 0x04fd04fc, 0x04f504f0, 0x04c304cc, 0x04c104c0, 0x04d004c4, + 0x0433043c, 0x04310430, 0x040f0434, 0x040d040c, 0x04000403, 0x04070401, 0x04050404, 0x0413041c, + 0x04110410, 0x047c0414, 0x04740470, 0x0443044c, 0x04410440, 0x04440447, 0x05f30450, 0x05c005f7, + 0x05df05c5, 0x05d105d0, 0x053005d4, 0x05340537, 0x0500050c, 0x05070501, 0x051d0504, 0x05170510, + 0x057c0515, 0x054d0575, 0x05410540, 0x05450547, 0x1ff0055c, 0x1fc11fc3, 0x1fd01fc4, 0x1f0f1f33, + 0x1f011f00, 0x1f051f07, 0x1f131f1c, 0x1f141f11, 0x1f411f7c, 0x1cfc1f50, 0x1cf11cf3, 0x1ccd1cf4, + 0x1cdc1cc0, 0x1cd11cdd, 0x1c301cd4, 0x1c0c1c34, 0x1c011c00, 0x1c101c04, 0x1c151c11, 0x1c751c73, + 0x1c401c4d, 0x1c511c5c, 0x1dcc1c54, 0x1dc41dc1, 0x1d3c1d3f, 0x1d001d31, 0x1d071d01, 0x1d701d1f, + 0x1d411d4c, 0x13cc1d50, 0x13c013cd, 0x13c513c1, 0x13d113dc, 0x133f13d4, 0x1330133d, 0x13351337, + 0x1303130c, 0x13011300, 0x13051304, 0x131d131f, 0x13731310, 0x13741370, 0x134d134f, 0x13401343, + 0x13471341, 0x135c1345, 0x13541353, 0x10f710f0, 0x10cc10f5, 0x10c110c0, 0x103310c4, 0x10311030, + 0x100f1034, 0x1003100c, 0x10011000, 0x101c1004, 0x10101013, 0x10141011, 0x10741071, 0x104c1075, + 0x10411040, 0x10451044, 0x1050105d, 0x10571051, 0x11f411fd, 0x11df11c0, 0x11d711d1, 0x113f11d4, + 0x11371130, 0x110c1135, 0x11001103, 0x11071101, 0x111f1105, 0x11171110, 0x117d117f, 0x11751170, + 0x11411143, 0x11441147, 0x1153115f, 0x11551151, 0x17c417c1, 0x173c17d0, 0x1700170d, 0x171c1705, + 0x17701714, 0x1747174c, 0x14fc1751, 0x14cf14f3, 0x14dc14c0, 0x14d114d3, 0x143f14d4, 0x1430143c, + 0x14371431, 0x1403140c, 0x14011400, 0x141f1404, 0x14151410, 0x1473147d, 0x14401475, 0x1453145c, + 0x14541450, 0x15c115cc, 0x153c15c7, 0x15341533, 0x1500150f, 0x15051507, 0x15101513, 0x15711514, + 0x15471543, 0x15511545, 0x7ffd7fff, 0x7ff57ff7, 0x7fdd7fdf, 0x7fd57fd7, 0x7f0f7f30, 0x7f037f0c, + 0x7f047f01, 0x7f7f7f10, 0x7f777f7d, 0x7f407f75, 0x7f5d7f5f, 0x7f557f57, 0x7ccc7cf0, 0x7cc17cc3, + 0x7cd07cc4, 0x7c337c3c, 0x7c0f7c34, 0x7c007c0d, 0x7c077c01, 0x7c137c04, 0x7c147c11, 0x7c747c70, + 0x7c417c43, 0x7c507c44, 0x7dfd7dff, 0x7df57df7, 0x7ddf7dc0, 0x7dd77ddd, 0x7d0c7dd5, 0x7d047d03, + 0x7d7f7d10, 0x7d777d7d, 0x7d407d75, 0x7d5d7d5f, 0x7d557d57, 0x73c473c3, 0x7333733c, 0x7300730c, + 0x731c7305, 0x73147313, 0x73447343, 0x70f470fc, 0x70c070cd, 0x70d170c5, 0x703f70d4, 0x7030703c, + 0x700c7037, 0x70007003, 0x70047001, 0x70107005, 0x70177011, 0x707c7015, 0x70717073, 0x704f7074, + 0x7040704d, 0x70517047, 0x71c171cc, 0x71d071c4, 0x7133713c, 0x71357134, 0x7100710f, 0x71057104, + 0x7111711c, 0x71707115, 0x7145714c, 0x77ff7153, 0x77f777fd, 0x77c077f5, 0x77dd77df, 0x77d577d7, + 0x7730773c, 0x7703770c, 0x77107704, 0x777f7714, 0x7777777d, 0x77407775, 0x775d775f, 0x77557757, + 0x74f174f0, 0x74c374cc, 0x74d074c1, 0x7433743c, 0x74347431, 0x740d740f, 0x74057400, 0x7413741c, + 0x74417470, 0x74507444, 0x75fd75ff, 0x75f575f7, 0x75df75c0, 0x75d775dd, 0x753075d5, 0x7503750c, + 0x757f7501, 0x7577757d, 0x75407575, 0x755d755f, 0x75557557, 0x4fcc4ff0, 0x4fc74fc1, 0x4fd04fc4, + 0x4f314f3c, 0x4f004f34, 0x4f054f07, 0x4f154f14, 0x4f4c4f70, 0x4f414f43, 0x4f504f44, 0x4cf34cfc, + 0x4cf44cf1, 0x4cc04ccf, 0x4cc54cc7, 0x4cd34cdc, 0x4cd44cd1, 0x4c304c3f, 0x4c0c4c0f, 0x4c004c03, + 0x4c044c01, 0x4c104c1d, 0x4c714c73, 0x4c404c4d, 0x4c5c4c47, 0x4c514c53, 0x4df04c54, 0x4dc34dcc, + 0x4dd04dc4, 0x4d314d33, 0x4d0f4d34, 0x4d004d0d, 0x4d114d07, 0x4d704d14, 0x4d414d43, 0x43fc4d54, + 0x43f143f3, 0x43c043cf, 0x43d143c7, 0x4335433f, 0x4303430c, 0x43014300, 0x43044307, 0x431c431f, + 0x4310431d, 0x43714373, 0x4343434d, 0x43474340, 0x4354435c, 0x40f040ff, 0x40f540f7, 0x40cc40cf, + 0x40c040c3, 0x40c440c1, 0x40d040dc, 0x40d540d4, 0x4033403c, 0x40314030, 0x400f4034, 0x400d400c, + 0x40004003, 0x40074001, 0x40054004, 0x4013401c, 0x40114010, 0x407c4014, 0x40774070, 0x404d404c, + 0x40404043, 0x40444041, 0x405f4045, 0x4050405d, 0x40554057, 0x41f341fc, 0x41c041cf, 0x41df41c4, + 0x41d441d1, 0x41374130, 0x410c4134, 0x4100410d, 0x41044101, 0x41174110, 0x4173417d, 0x41754174, + 0x4143414d, 0x41534140, 0x41544151, 0x47c147f0, 0x47d047c4, 0x4731473c, 0x470d470f, 0x47014700, + 0x47134705, 0x47704710, 0x4741474c, 0x47504744, 0x44f144f3, 0x44cf44f4, 0x44c044cd, 0x44c544c7, + 0x44dc44df, 0x44d144d3, 0x443d443f, 0x44374430, 0x440c4435, 0x44004403, 0x44044401, 0x4410441d, + 0x44154411, 0x4473447c, 0x444d444f, 0x44454440, 0x4451445c, 0x45c045f0, 0x453345d0, 0x45344531, + 0x4500450f, 0x451c4507, 0x454c4570, 0x45404543, 0x5fff4541, 0x5ff75ffd, 0x5fc05ff5, 0x5fdd5fdf, + 0x5fd55fd7, 0x5f0c5f30, 0x5f015f03, 0x5f7f5f04, 0x5f775f7d, 0x5f405f75, 0x5f5d5f5f, 0x5f555f57, + 0x5cf45cf0, 0x5cc35ccc, 0x5cc45cc1, 0x5c315cc5, 0x5c0c5c34, 0x5c075c00, 0x5c1c5c05, 0x5c705c13, + 0x5c4d5c4f, 0x5c445c41, 0x5df75dfd, 0x5dcf5df5, 0x5ddd5dc4, 0x5dd55dd7, 0x5d0c5d30, 0x5d045d01, + 0x5d7f5d10, 0x5d775d7d, 0x5d405d75, 0x5d5d5d5f, 0x5d555d57, 0x53d053c4, 0x5333533c, 0x5303530f, + 0x53075300, 0x531c5305, 0x53115310, 0x53145317, 0x50f15370, 0x50cf50f4, 0x50c050cd, 0x50d150c7, + 0x503d50d4, 0x500c5030, 0x50005003, 0x50045001, 0x50155010, 0x5073507c, 0x50715070, 0x504d5074, + 0x50475040, 0x51cc51f0, 0x51c551c1, 0x51d051dc, 0x51315133, 0x510d5135, 0x51015100, 0x511f5107, + 0x5171511d, 0x5140514f, 0x51445141, 0x5153515c, 0x57ff5151, 0x57f757fd, 0x57df57f5, 0x57d757dd, + 0x570c57d5, 0x57015703, 0x577f5704, 0x5777577d, 0x57405775, 0x575d575f, 0x57555757, 0x54c354f0, + 0x54dc54c4, 0x543c54d0, 0x5400540f, 0x541c5405, 0x54145411, 0x5441544f, 0x55fd55ff, 0x55f555f7, + 0x55dd55df, 0x55d555d7, 0x5503550c, 0x557f5501, 0x5577557d, 0x55405575, 0x555d555f, 0x55555557 +); + +#enddecl(IQ1_GRID) + +#decl(IQ4_GRID) + +const kvalues_iq4nl = array( + -127, -104, -83, -65, -49, -35, -22, -10, 1, 13, 25, 38, 53, 69, 89, 113 +); + +#enddecl(IQ4_GRID) diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/embed_wgsl.py b/ggml/src/ggml-webgpu/wgsl-shaders/embed_wgsl.py index cc8def7f13..d9dfd7d6f4 100755 --- a/ggml/src/ggml-webgpu/wgsl-shaders/embed_wgsl.py +++ b/ggml/src/ggml-webgpu/wgsl-shaders/embed_wgsl.py @@ -27,6 +27,26 @@ def replace_placeholders(shader_text, replacements): return shader_text +def expand_includes(shader, input_dir): + """ + Replace #include "file" lines in the text with the contents of that file. + Searches for files relative to input_dir. + """ + include_pattern = re.compile(r'^\s*#include\s+"([^"]+)"\s*$', re.MULTILINE) + + def replacer(match): + fname = match.group(1) + file_path = os.path.join(input_dir, fname) + if not os.path.exists(file_path): + raise FileNotFoundError(f"Included file not found: {file_path}") + with open(file_path, "r", encoding="utf-8") as f: + included_code = f.read() + # Recursively expand includes inside the included file + return expand_includes(included_code, input_dir) + + return include_pattern.sub(replacer, shader) + + def write_shader(shader_name, shader_code, output_dir, outfile): if output_dir: wgsl_filename = os.path.join(output_dir, f"{shader_name}.wgsl") @@ -35,8 +55,9 @@ def write_shader(shader_name, shader_code, output_dir, outfile): outfile.write(f'const char* wgsl_{shader_name} = R"({shader_code})";\n\n') -def generate_variants(shader_path, output_dir, outfile): - shader_base_name = shader_path.split("/")[-1].split(".")[0] +def generate_variants(fname, input_dir, output_dir, outfile): + shader_path = os.path.join(input_dir, fname) + shader_base_name = fname.split(".")[0] with open(shader_path, "r", encoding="utf-8") as f: text = f.read() @@ -46,11 +67,21 @@ def generate_variants(shader_path, output_dir, outfile): except ValueError: write_shader(shader_base_name, text, output_dir, outfile) else: - decls_map = parse_decls(extract_block(text, "DECLS")) - shader_template = extract_block(text, "SHADER") + try: + decls_map = parse_decls(extract_block(text, "DECLS")) + except ValueError: + decls_map = {} + with open(os.path.join(input_dir, "common_decls.tmpl"), "r", encoding="utf-8") as f: + common_decls = f.read() + decls_map.update(parse_decls(common_decls)) + + shader_template = extract_block(text, "SHADER") for variant in variants: - decls = variant["DECLS"] + if "DECLS" in variant: + decls = variant["DECLS"] + else: + decls = [] decls_code = "" for key in decls: if key not in decls_map: @@ -59,8 +90,16 @@ def generate_variants(shader_path, output_dir, outfile): shader_variant = replace_placeholders(shader_template, variant["REPLS"]) final_shader = re.sub(r'\bDECLS\b', decls_code, shader_variant) + final_shader = expand_includes(final_shader, input_dir) - output_name = f"{shader_base_name}_" + "_".join([variant["REPLS"]["SRC0_TYPE"], variant["REPLS"]["SRC1_TYPE"]]) + if "SRC0_TYPE" in variant["REPLS"] and "SRC1_TYPE" in variant["REPLS"]: + output_name = f"{shader_base_name}_" + "_".join([variant["REPLS"]["SRC0_TYPE"], variant["REPLS"]["SRC1_TYPE"]]) + elif "TYPE_SUFFIX" in variant["REPLS"]: + output_name = f"{shader_base_name}_" + variant["REPLS"]["TYPE_SUFFIX"] + elif "TYPE" in variant["REPLS"]: + output_name = f"{shader_base_name}_" + variant["REPLS"]["TYPE"] + else: + output_name = shader_base_name write_shader(output_name, final_shader, output_dir, outfile) @@ -78,7 +117,7 @@ def main(): out.write("// Auto-generated shader embedding\n\n") for fname in sorted(os.listdir(args.input_dir)): if fname.endswith(".wgsl"): - generate_variants(os.path.join(args.input_dir, fname), args.output_dir, out) + generate_variants(fname, args.input_dir, args.output_dir, out) if __name__ == "__main__": diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/get_rows.tmpl.wgsl b/ggml/src/ggml-webgpu/wgsl-shaders/get_rows.tmpl.wgsl new file mode 100644 index 0000000000..e3fe311b26 --- /dev/null +++ b/ggml/src/ggml-webgpu/wgsl-shaders/get_rows.tmpl.wgsl @@ -0,0 +1,874 @@ +#define(VARIANTS) + +[ + { + "REPLS": { + "TYPE" : "vec4", + "TYPE_SUFFIX": "f32_vec", + "DST_TYPE": "vec4", + "BLOCK_SIZE": 4 + }, + "DECLS": ["F32_VEC"] + }, + { + "REPLS": { + "TYPE" : "f32", + "DST_TYPE": "f32", + "BLOCK_SIZE": 1 + }, + "DECLS": ["F32"] + }, + { + "REPLS": { + "TYPE" : "f16", + "DST_TYPE": "f32", + "BLOCK_SIZE": 1 + }, + "DECLS": ["F16"] + }, + { + "REPLS": { + "TYPE" : "i32", + "DST_TYPE": "i32", + "BLOCK_SIZE": 1 + }, + "DECLS": ["I32"] + }, + { + "REPLS": { + "TYPE" : "q4_0", + "DST_TYPE": "f32", + "BLOCK_SIZE": 32 + }, + "DECLS": ["BYTE_HELPERS", "Q4_0_T", "Q4_0"] + }, + { + "REPLS": { + "TYPE" : "q4_1", + "DST_TYPE": "f32", + "BLOCK_SIZE": 32 + }, + "DECLS": ["BYTE_HELPERS", "Q4_1_T", "Q4_1"] + }, + { + "REPLS": { + "TYPE" : "q5_0", + "DST_TYPE": "f32", + "BLOCK_SIZE": 32 + }, + "DECLS": ["BYTE_HELPERS", "Q5_0_T", "Q5_0"] + }, + { + "REPLS": { + "TYPE" : "q5_1", + "DST_TYPE": "f32", + "BLOCK_SIZE": 32 + }, + "DECLS": ["BYTE_HELPERS", "Q5_1_T", "Q5_1"] + }, + { + "REPLS": { + "TYPE" : "q8_0", + "DST_TYPE": "f32", + "BLOCK_SIZE": 32 + }, + "DECLS": ["BYTE_HELPERS", "Q8_0_T", "Q8_0"] + }, + { + "REPLS": { + "TYPE" : "q2_k", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["BYTE_HELPERS", "Q2_K_T", "Q2_K"] + }, + { + "REPLS": { + "TYPE" : "q3_k", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["BYTE_HELPERS", "Q3_K_T", "Q3_K"] + }, + { + "REPLS": { + "TYPE" : "q4_k", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["Q45_K_SCALE_MIN", "BYTE_HELPERS", "Q4_K_T", "Q4_K"] + }, + { + "REPLS": { + "TYPE" : "q5_k", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["Q45_K_SCALE_MIN", "BYTE_HELPERS", "Q5_K_T", "Q5_K"] + }, + { + "REPLS": { + "TYPE" : "q6_k", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["BYTE_HELPERS", "Q6_K_T", "Q6_K"] + }, + { + "REPLS": { + "TYPE" : "iq2_xxs", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ2_XXS_GRID", "IQ2_XXS_T", "IQ2_XXS"] + }, + { + "REPLS": { + "TYPE" : "iq2_xs", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ2_XS_GRID", "IQ2_XS_T", "IQ2_XS"] + }, + { + "REPLS": { + "TYPE": "iq2_s", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ2_S_GRID", "IQ2_S_T", "IQ2_S"] + }, + { + "REPLS": { + "TYPE": "iq3_xxs", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ3_XSS_GRID", "IQ3_XSS_T", "IQ3_XSS"] + }, + { + "REPLS": { + "TYPE": "iq3_s", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ3_S_GRID", "IQ3_S_T", "IQ3_S"] + }, + { + "REPLS": { + "TYPE": "iq1_s", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["BYTE_HELPERS", "IQ1_GRID", "IQ1_S_T", "IQ1_S"] + }, + { + "REPLS": { + "TYPE": "iq1_m", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256 + }, + "DECLS": ["BYTE_HELPERS", "IQ1_GRID", "IQ1_M_T", "IQ1_M"] + }, + { + "REPLS": { + "TYPE": "iq4_nl", + "DST_TYPE": "f32", + "BLOCK_SIZE": 32, + }, + "DECLS": ["BYTE_HELPERS", "IQ4_GRID", "IQ4_NL_T", "IQ4_NL"] + }, + { + "REPLS": { + "TYPE": "iq4_xs", + "DST_TYPE": "f32", + "BLOCK_SIZE": 256, + }, + "DECLS": ["BYTE_HELPERS", "IQ4_GRID", "IQ4_XS_T", "IQ4_XS"] + } +] + +#end(VARIANTS) + +#define(DECLS) + +#decl(F32_VEC) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + dst[(dst_base / 4) + offset] = src[(src_base / 4) + offset]; +} +#enddecl(F32_VEC) + +#decl(F32) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + dst[dst_base + offset] = src[src_base + offset]; +} +#enddecl(F32) + +#decl(F16) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + dst[dst_base + offset] = f32(src[src_base + offset]); +} +#enddecl(F16) + +#decl(I32) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + dst[dst_base + offset] = src[src_base + offset]; +} +#enddecl(I32) + +#decl(Q4_0) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block_q4_0 = src[src_base + offset]; + let d = f32(block_q4_0.d); + for (var j: u32 = 0; j < 4; j++) { + let q_packed = bitcast(vec2(block_q4_0.qs[2 * j], block_q4_0.qs[2 * j + 1])); + for (var k: u32 = 0; k < 4; k++) { + let q_byte = get_byte(q_packed, k); + let q_hi = (f32((q_byte >> 4) & 0xF) - 8.0f) * d; + let q_lo = (f32(q_byte & 0xF) - 8.0f) * d; + let dst_offset = dst_base + offset * 32 + j * 4 + k; + dst[dst_offset] = q_lo; + dst[dst_offset + 16] = q_hi; + } + } +} +#enddecl(Q4_0) + +#decl(Q4_1) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block_q4_1 = src[src_base + offset]; + let d = f32(block_q4_1.d); + let m = f32(block_q4_1.m); + for (var j: u32 = 0; j < 4; j++) { + let q_packed = block_q4_1.qs[j]; + for (var k: u32 = 0; k < 4; k++) { + let q_byte = get_byte(q_packed, k); + let q_hi = f32((q_byte >> 4) & 0xF) * d + m; + let q_lo = f32(q_byte & 0xF) * d + m; + let dst_offset = dst_base + offset * 32 + j * 4 + k; + dst[dst_offset] = q_lo; + dst[dst_offset + 16] = q_hi; + } + } +} +#enddecl(Q4_1) + +#decl(Q5_0) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block_q5_0 = src[src_base + offset]; + let d = f32(block_q5_0.d); + let qh_packed = bitcast(vec2(block_q5_0.qh[0], block_q5_0.qh[1])); + for (var j: u32 = 0; j < 4; j++) { + let q_packed = bitcast(vec2(block_q5_0.qs[2 * j], block_q5_0.qs[2 * j + 1])); + for (var k: u32 = 0; k < 4; k++) { + let q_byte = get_byte(q_packed, k); + let qh_hi = (qh_packed >> (j * 4 + k + 12)) & 0x10; + let q_hi = (f32(((q_byte >> 4) & 0xF) | qh_hi) - 16.0) * d; + let qh_lo = ((qh_packed >> (j * 4 + k)) << 4) & 0x10; + let q_lo = (f32((q_byte & 0xF) | qh_lo) - 16.0) * d; + let dst_offset = dst_base + offset * 32 + j * 4 + k; + dst[dst_offset] = q_lo; + dst[dst_offset + 16] = q_hi; + } + } +} + +#enddecl(Q5_0) + +#decl(Q5_1) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block_q5_1 = src[src_base + offset]; + let d = f32(block_q5_1.d); + let m = f32(block_q5_1.m); + for (var j: u32 = 0; j < 4; j++) { + let q_packed = block_q5_1.qs[j]; + for (var k: u32 = 0; k < 4; k++) { + let q_byte = get_byte(q_packed, k); + let qh_hi = (block_q5_1.qh >> (j * 4 + k + 12)) & 0x10; + let q_hi = f32(((q_byte >> 4) & 0xF) | qh_hi) * d + m; + let qh_lo = ((block_q5_1.qh >> (j * 4 + k)) << 4) & 0x10; + let q_lo = f32((q_byte & 0xF) | qh_lo) * d + m; + let dst_offset = dst_base + offset * 32 + j * 4 + k; + dst[dst_offset] = q_lo; + dst[dst_offset + 16] = q_hi; + } + } +} +#enddecl(Q5_1) + +#decl(Q8_0) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block_q8_0 = src[src_base + offset]; + let d = f32(block_q8_0.d); + for (var j: u32 = 0; j < 8; j++) { + let q_packed = bitcast(vec2(block_q8_0.qs[2 * j], block_q8_0.qs[2 * j + 1])); + for (var k: u32 = 0; k < 4; k++) { + let q_byte = get_byte_i32(q_packed, k); + let q_val = f32(q_byte) * d; + let dst_offset = dst_base + offset * 32 + j * 4 + k; + dst[dst_offset] = q_val; + } + } +} +#enddecl(Q8_0) + +#decl(Q2_K) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + let m = f32(block.dmin); + var dst_i = dst_base + offset * 256; + var is: u32 = 0; + // 2 halves of the block (128 elements each) + for (var q_b_idx: u32 = 0; q_b_idx < 64; q_b_idx += 32) { + // 4 groups (each group has 2 blocks of 16 elements) + for (var shift: u32 = 0; shift < 8; shift += 2) { + // 2 blocks + for (var k: u32 = 0; k < 32; k += 16) { + let sc = get_byte(block.scales[is / 4], is % 4); + is++; + let dl = d * f32(sc & 0xF); + let ml = m * f32(sc >> 4); + for (var l: u32 = 0u; l < 16; l++) { + let q_idx = q_b_idx + k + l; + let q_byte = get_byte(block.qs[q_idx / 4], q_idx % 4); + let qs_val = (q_byte >> shift) & 3; + dst[dst_i] = (f32(qs_val) * dl - ml); + dst_i++; + } + } + } + } +} +#enddecl(Q2_K) + +#decl(Q3_K) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + + // extract 6-bit scales, which consist of 4-bits from first 8 bytes of scale, + // and 2-bits from the last 4 bytes + let kmask1: u32 = 0x03030303; + let kmask2: u32 = 0x0f0f0f0f; + var scale_vals: array; + for (var i: u32 = 0; i < 4; i++) { + scale_vals[i] = bitcast(vec2(block.scales[2 * i], block.scales[2 * i + 1])); + } + var tmp: u32 = scale_vals[2]; + scale_vals[2] = ((scale_vals[0] >> 4) & kmask2) | (((tmp >> 4) & kmask1) << 4); + scale_vals[3] = ((scale_vals[1] >> 4) & kmask2) | (((tmp >> 6) & kmask1) << 4); + scale_vals[0] = (scale_vals[0] & kmask2) | ((tmp & kmask1) << 4); + scale_vals[1] = (scale_vals[1] & kmask2) | (((tmp >> 2) & kmask1) << 4); + + // convert arrays of f16 -> u32 + var hmask_vals: array; + for (var i: u32 = 0; i < 8; i++) { + hmask_vals[i] = bitcast(vec2(block.hmask[2 * i], block.hmask[2 * i + 1])); + } + var qs_vals: array; + for (var i: u32 = 0; i < 16; i++) { + qs_vals[i] = bitcast(vec2(block.qs[2 * i], block.qs[2 * i + 1])); + } + + var dst_i = dst_base + offset * 256; + var is: u32 = 0; + var m: u32 = 1; + // 2 halves of the block (128 elements each) + for (var q_b_idx: u32 = 0; q_b_idx < 64; q_b_idx += 32) { + // 4 groups (each group has 2 blocks of 16 elements) + for (var shift: u32 = 0; shift < 8; shift += 2) { + // 2 blocks + for (var k: u32 = 0; k < 32; k += 16) { + let sc = get_byte(scale_vals[is / 4], is % 4); + is++; + let dl = d * (f32(sc) - 32.0); + for (var l: u32 = 0u; l < 16u; l++) { + let q_idx = q_b_idx + k + l; + let hm_idx = k + l; + let q_byte = get_byte(qs_vals[q_idx / 4], q_idx % 4); + let hmask_byte = get_byte(hmask_vals[hm_idx / 4], hm_idx % 4); + let hm = select(4.0, 0.0, (hmask_byte & m) != 0); + let qs_val = (q_byte >> shift) & 3; + dst[dst_i] = (f32(qs_val) - hm) * dl; + dst_i++; + } + } + m <<= 1; + } + } +} +#enddecl(Q3_K) + +#decl(Q4_K) +// 8 blocks of 32 elements each +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + let m = f32(block.dmin); + var dst_i = dst_base + offset * 256; + var is: u32 = 0; + // 2 blocks each iteration + for (var q_b_idx: u32 = 0; q_b_idx < 128; q_b_idx += 32) { + for (var shift: u32 = 0; shift < 8; shift += 4) { + let scale_min = get_scale_min(is, block.scales); + is++; + let dl = d * scale_min.x; + let ml = m * scale_min.y; + for (var l: u32 = 0; l < 32; l++) { + let q_idx = q_b_idx + l; + let q_byte = get_byte(block.qs[q_idx / 4], q_idx % 4); + let qs_val = (q_byte >> shift) & 0xF; + dst[dst_i] = (f32(qs_val) * dl - ml); + dst_i++; + } + } + } +} +#enddecl(Q4_K) + +#decl(Q5_K) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + let m = f32(block.dmin); + var dst_i = dst_base + offset * 256; + var is: u32 = 0; + var u: u32 = 1; + // 2 blocks each iteration + for (var q_b_idx: u32 = 0; q_b_idx < 128; q_b_idx += 32) { + for (var shift: u32 = 0; shift < 8; shift += 4) { + let scale_min = get_scale_min(is, block.scales); + is++; + let dl = d * scale_min.x; + let ml = m * scale_min.y; + for (var l: u32 = 0; l < 32; l++) { + let q_idx = q_b_idx + l; + let q_byte = get_byte(block.qs[q_idx / 4], q_idx % 4); + let qh_byte = get_byte(block.qh[l / 4], l % 4); + let qs_val = (q_byte >> shift) & 0xF; + let qh_val = select(0.0, 16.0, (qh_byte & u) != 0); + dst[dst_i] = (f32(qs_val) + qh_val) * dl - ml; + dst_i++; + } + u <<= 1; + } + } +} +#enddecl(Q5_K) + +#decl(Q6_K) +// 16 blocks of 16 elements each +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + + // convert arrays of f16 -> u32 + var ql_vals: array; + for (var i: u32 = 0; i < 32; i++) { + ql_vals[i] = bitcast(vec2(block.ql[2 * i], block.ql[2 * i + 1])); + } + var qh_vals: array; + for (var i: u32 = 0; i < 16; i++) { + qh_vals[i] = bitcast(vec2(block.qh[2 * i], block.qh[2 * i + 1])); + } + var scale_vals: array; + for (var i: u32 = 0; i < 4; i++) { + scale_vals[i] = bitcast(vec2(block.scales[2 * i], block.scales[2 * i + 1])); + } + + var dst_i = dst_base + offset * 256; + var qh_b_idx: u32 = 0; + var sc_b_idx: u32 = 0; + for (var ql_b_idx: u32 = 0; ql_b_idx < 128; ql_b_idx += 64) { + for (var l: u32 = 0; l < 32; l++) { + let ql13_b = get_byte(ql_vals[(ql_b_idx + l) / 4], (ql_b_idx + l) % 4); + let ql24_b = get_byte(ql_vals[(ql_b_idx + l + 32) / 4], (ql_b_idx + l + 32) % 4); + let qh_b = get_byte(qh_vals[(qh_b_idx + l) / 4], (qh_b_idx + l) % 4); + + let q1 = f32((ql13_b & 0xF) | ((qh_b & 3) << 4)) - 32.0; + let q2 = f32((ql24_b & 0xF) | (((qh_b >> 2) & 3) << 4)) - 32.0; + let q3 = f32((ql13_b >> 4) | (((qh_b >> 4) & 3) << 4)) - 32.0; + let q4 = f32((ql24_b >> 4) | (((qh_b >> 6) & 3) << 4)) - 32.0; + + let is = l/16; + let is1 = sc_b_idx + is; + let sc1 = get_byte_i32(scale_vals[is1 / 4], is1 % 4); + let is2 = sc_b_idx + is + 2; + let sc2 = get_byte_i32(scale_vals[is2 / 4], is2 % 4); + let is3 = sc_b_idx + is + 4; + let sc3 = get_byte_i32(scale_vals[is3 / 4], is3 % 4); + let is4 = sc_b_idx + is + 6; + let sc4 = get_byte_i32(scale_vals[is4 / 4], is4 % 4); + + dst[dst_i + l] = (q1 * f32(sc1)) * d; + dst[dst_i + l + 32] = (q2 * f32(sc2)) * d; + dst[dst_i + l + 64] = (q3 * f32(sc3)) * d; + dst[dst_i + l + 96] = (q4 * f32(sc4)) * d; + } + dst_i += 128; + qh_b_idx += 32; + sc_b_idx += 8; + } +} + +#enddecl(Q6_K) + +#decl(IQ2_XXS) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + var dst_i = dst_base + offset * 256; + for (var ib: u32 = 0; ib < 32; ib += 4) { + let aux0 = bitcast(vec2(block.qs[ib], block.qs[ib + 1])); + let aux1 = bitcast(vec2(block.qs[ib + 2], block.qs[ib + 3])); + let db = d * (0.5 + f32(aux1 >> 28)) * 0.25; + for (var l: u32 = 0; l < 4; l++) { + let ig = get_byte(aux0, l) * 8; + let is = (aux1 >> (7 * l)) & 127; + let signs = get_byte(ksigns_iq2xs[is / 4], is % 4); + for (var j: u32 = 0; j < 8; j++) { + let g = get_byte(iq2xxs_grid[(ig + j) / 4], (ig + j) % 4); + let m = select(1.0, -1.0, (get_byte(kmask_iq2xs[j / 4], j % 4) & signs) != 0); + dst[dst_i] = db * f32(g) * m; + dst_i++; + } + } + } +} +#enddecl(IQ2_XXS) + +#decl(IQ2_XS) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + var dst_i = dst_base + offset * 256; + var scale_vals = array( + bitcast(vec2(block.scales[0], block.scales[1])), + bitcast(vec2(block.scales[2], block.scales[3])) + ); + for (var ib: u32 = 0; ib < 32; ib += 4) { + let s = get_byte(scale_vals[ib / 16], (ib % 16) / 4); + let db = array( + d * (0.5 + f32(s & 0xF)) * 0.25, + d * (0.5 + f32(s >> 4)) * 0.25 + ); + for (var l: u32 = 0; l < 4; l++) { + let qs_val = bitcast(vec2(block.qs[ib + l], 0.0)); + let ig = (qs_val & 511) * 8; + let is = qs_val >> 9; + let signs = get_byte(ksigns_iq2xs[is / 4], is % 4); + let dl = db[l/2]; + for (var j: u32 = 0; j < 8; j++) { + let g = get_byte(iq2xs_grid[(ig + j) / 4], (ig + j) % 4); + let m = select(1.0, -1.0, (get_byte(kmask_iq2xs[j / 4], j % 4) & signs) != 0); + dst[dst_i] = dl * f32(g) * m; + dst_i++; + } + } + } +} +#enddecl(IQ2_XS) + +#decl(IQ2_S) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + var dst_i = dst_base + offset * 256; + var qs_vals : array; + for (var i: u32 = 0; i < 16; i++) { + qs_vals[i] = bitcast(vec2(block.qs[i * 2], block.qs[i * 2 + 1])); + } + var qh_vals = array( + bitcast(vec2(block.qh[0], block.qh[1])), + bitcast(vec2(block.qh[2], block.qh[3])) + ); + var scale_vals = array( + bitcast(vec2(block.scales[0], block.scales[1])), + bitcast(vec2(block.scales[2], block.scales[3])) + ); + for (var ib: u32 = 0; ib < 8; ib ++) { + let s = get_byte(scale_vals[ib / 4], ib % 4); + let db = array( + d * (0.5 + f32(s & 0xF)) * 0.25, + d * (0.5 + f32(s >> 4)) * 0.25 + ); + let qs_w = qs_vals[ib]; + for (var l: u32 = 0; l < 4; l++) { + let qh_b = (get_byte(qh_vals[ib / 4], ib % 4) << (8 - 2 * l)) & 0x300; + let ig = (get_byte(qs_w, l) | qh_b) * 8; + let signs = get_byte(qs_vals[ib + 8], l); + let dl = db[l/2]; + for (var j: u32 = 0; j < 8; j++) { + let g = get_byte(iq2s_grid[(ig + j) / 4], (ig + j) % 4); + let m = select(1.0, -1.0, (get_byte(kmask_iq2xs[j / 4], j % 4) & signs) != 0); + dst[dst_i] = dl * f32(g) * m; + dst_i++; + } + } + } +} + +#enddecl(IQ2_S) + +#decl(IQ3_XSS) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + var dst_i = dst_base + offset * 256; + for (var ib: u32 = 0; ib < 16; ib += 2) { + let sc_sign = bitcast(vec2(block.qs[ib + 32], block.qs[ib + 33])); + let db = d * (0.5 + f32(sc_sign >> 28)) * 0.5; + for (var l: u32 = 0; l < 4; l++) { + let is = (sc_sign >> (7 * l)) & 127; + let signs = get_byte(ksigns_iq2xs[is / 4], is % 4); + let ig_val = bitcast(vec2(block.qs[ib * 2 + l], 0.0)); + let ig1 = get_byte(ig_val, 0); + let ig2 = get_byte(ig_val, 1); + for (var j: u32 = 0; j < 4; j++) { + let g1 = get_byte(iq3xxs_grid[ig1], j); + let g2 = get_byte(iq3xxs_grid[ig2], j); + let m1 = select(1.0, -1.0, (get_byte(kmask_iq2xs[0], j) & signs) != 0); + let m2 = select(1.0, -1.0, (get_byte(kmask_iq2xs[1], j) & signs) != 0); + dst[dst_i] = db * f32(g1) * m1; + dst[dst_i + 4] = db * f32(g2) * m2; + dst_i++; + } + dst_i += 4; + } + } +} +#enddecl(IQ3_XSS) + +#decl(IQ3_S) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + var dst_i = dst_base + offset * 256; + var qh_vals = array( + bitcast(vec2(block.qh[0], block.qh[1])), + bitcast(vec2(block.qh[2], block.qh[3])) + ); + var sign_vals: array; + for (var i: u32 = 0; i < 8; i++) { + sign_vals[i] = bitcast(vec2(block.signs[i * 2], block.signs[i * 2 + 1])); + } + var scale_vals = bitcast(vec2(block.scales[0], block.scales[1])); + for (var ib: u32 = 0; ib < 4; ib++) { + let s = get_byte(scale_vals, ib); + let db = array( + d * (1.0 + 2.0 * f32(s & 0xF)), + d * (1.0 + 2.0 * f32(s >> 4)) + ); + for (var k: u32 = 0; k < 2; k++) { + let dl = db[k]; + let qh_byte = get_byte(qh_vals[ib / 2], (ib % 2) * 2 + k); + let sign_w = sign_vals[ib * 2 + k]; + for (var l: u32 = 0; l < 4; l++) { + let signs = get_byte(sign_w, l); + let ig_val = bitcast(vec2(block.qs[ib * 8 + k * 4 + l], 0.0)); + let ig1 = get_byte(ig_val, 0) | ((qh_byte << ((8 - (2 * l)))) & 256); + let ig2 = get_byte(ig_val, 1) | ((qh_byte << ((7 - (2 * l)))) & 256); + for (var j: u32 = 0; j < 4; j++) { + let g1 = get_byte(iq3s_grid[ig1], j); + let g2 = get_byte(iq3s_grid[ig2], j); + let m1 = select(1.0, -1.0, (get_byte(kmask_iq2xs[0], j) & signs) != 0); + let m2 = select(1.0, -1.0, (get_byte(kmask_iq2xs[1], j) & signs) != 0); + dst[dst_i] = dl * f32(g1) * m1; + dst[dst_i + 4] = dl * f32(g2) * m2; + dst_i++; + } + dst_i += 4; + } + } + } +} +#enddecl(IQ3_S) + +#decl(IQ1_S) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + var dst_i = dst_base + offset * 256; + for (var ib: u32 = 0; ib < 8; ib++) { + let qh = bitcast(vec2(block.qh[ib], 0.0)); + let dl = d * (2 * f32((qh >> 12) & 7) + 1); + let delta = select(IQ1_DELTA, -IQ1_DELTA, (qh & 0x8000) != 0); + let qs_w = bitcast(vec2(block.qs[ib * 2], block.qs[ib * 2 + 1])); + for (var l: u32 = 0; l < 4; l++) { + let ig = (get_byte(qs_w, l) | (((qh >> (3 * l)) & 7) << 8)) * 8; + for (var j: u32 = 0; j < 8; j++) { + let gw = iq1_grid[(ig + j) / 16]; + let g = (gw >> (((ig + j) % 16) * 2)) & 3; + let gs = bitcast(g << 30) >> 30; + dst[dst_i] = dl * (f32(gs) + delta); + dst_i++; + } + } + } +} + +#enddecl(IQ1_S) + +#decl(IQ1_M) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + + let scale = ((block.scales[0] >> 12) & 0xF) | ((block.scales[0] >> 24) & 0x00F0) | ((block.scales[1] >> 4) & 0x0F00) | ((block.scales[1] >> 16) & 0xF000); + let d = f32(bitcast>(scale).x); + var dst_i = dst_base + offset * 256; + for (var ib: u32 = 0; ib < 8; ib++) { + let sw = (block.scales[ib / 4] >> (16 * ((ib / 2) % 2))) & 0xFFFF; + let s1 : u32 = (sw >> (6 * (ib % 2))) & 0x7; + let s2 : u32 = (sw >> (6 * (ib % 2) + 3)) & 0x7; + var dl = array( + d * f32(2 * s1 + 1), + d * f32(2 * s2 + 1) + ); + + let qh = block.qh[ib / 2] >> (16 * (ib % 2)); + var idx = array( + get_byte(block.qs[ib], 0) | ((qh << 8) & 0x700), + get_byte(block.qs[ib], 1) | ((qh << 4) & 0x700), + get_byte(block.qs[ib], 2) | ((qh) & 0x700), + get_byte(block.qs[ib], 3) | ((qh >> 4) & 0x700) + ); + var delta = array( + select(IQ1_DELTA, -IQ1_DELTA, (qh & 0x08) != 0), + select(IQ1_DELTA, -IQ1_DELTA, (qh & 0x80) != 0), + select(IQ1_DELTA, -IQ1_DELTA, ((qh >> 8) & 0x08) != 0), + select(IQ1_DELTA, -IQ1_DELTA, ((qh >> 8) & 0x80) != 0) + ); + for (var l: u32 = 0; l < 4; l++) { + let ig = idx[l] * 8; + for (var j: u32 = 0; j < 8; j++) { + let gw = iq1_grid[(ig + j) / 16]; + let g = (gw >> (((ig + j) % 16) * 2)) & 3; + let gs = bitcast(g << 30) >> 30; + dst[dst_i] = dl[l/2] * (f32(gs) + delta[l]); + dst_i++; + } + } + } +} + +#enddecl(IQ1_M) + +#decl(IQ4_NL) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + var dst_i = dst_base + offset * 32; + var qs: array; + for (var i: u32 = 0; i < 4; i++) { + qs[i] = bitcast(vec2(block.qs[i * 2], block.qs[i * 2 + 1])); + } + for (var j: u32 = 0; j < 16; j++) { + let qsb = get_byte(qs[j / 4], j % 4); + dst[dst_i] = d * f32(kvalues_iq4nl[qsb & 0xF]); + dst[dst_i + 16] = d * f32(kvalues_iq4nl[qsb >> 4]); + dst_i++; + } +} +#enddecl(IQ4_NL) + +#decl(IQ4_XS) +fn copy_elements(src_base: u32, dst_base: u32, offset: u32) { + let block = src[src_base + offset]; + let d = f32(block.d); + let scales_h = bitcast(vec2(block.scales_h, 0.0)); + var dst_i = dst_base + offset * 256; + for (var ib: u32 = 0; ib < 8; ib++) { + let ls = ((get_byte(block.scales_l, ib / 2) >> (4 * (ib % 2))) & 0xF) | (((scales_h >> (2 * ib)) & 3) << 4); + let dl = d * (f32(ls) - 32.0); + for (var j: u32 = 0; j < 16; j++) { + let iqs = ib * 16 + j; + let qsb = get_byte(block.qs[iqs / 4], iqs % 4); + dst[dst_i] = dl * f32(kvalues_iq4nl[qsb & 0xF]); + dst[dst_i + 16] = dl * f32(kvalues_iq4nl[qsb >> 4]); + dst_i++; + } + dst_i += 16; + } +} +#enddecl(IQ4_XS) + +#end(DECLS) + +#define(SHADER) + +enable f16; + +DECLS + +@group(0) @binding(0) +var src: array<{{TYPE}}>; + +@group(0) @binding(1) +var idx: array; + +@group(0) @binding(2) +var dst: array<{{DST_TYPE}}>; + +struct Params { + offset_src: u32, // in elements + offset_idx: u32, // in elements + offset_dst: u32, // in elements + + // Strides (in elements) + stride_src1: u32, + stride_src2: u32, + stride_src3: u32, + + stride_idx0: u32, + stride_idx1: u32, + stride_idx2: u32, + + stride_dst1: u32, + stride_dst2: u32, + stride_dst3: u32, + + // Shape of dst + ne0: u32, + n_rows: u32, + ne2: u32, + ne3: u32, + + // Shape of idx + idx1: u32, + idx2: u32, +}; + +@group(0) @binding(3) +var params: Params; + +override wg_size: u32; +@compute @workgroup_size(wg_size) +fn main(@builtin(global_invocation_id) gid: vec3) { + if (gid.x >= params.n_rows * params.ne2 * params.ne3) { + return; + } + var i = gid.x; + let i_dst3 = i / (params.ne2 * params.n_rows); + + i = i % (params.ne2 * params.n_rows); + let i_dst2 = i / params.n_rows; + let i_dst1 = i % params.n_rows; + + let i_idx2 = i_dst3 % params.idx2; + let i_idx1 = i_dst2 % params.idx1; + let i_idx0 = i_dst1; + + let i_idx = params.offset_idx + i_idx0 * params.stride_idx0 + i_idx1 * params.stride_idx1 + i_idx2 * params.stride_idx2; + + let idx_val = u32(idx[i_idx]); + + let i_src_row = params.offset_src + idx_val * params.stride_src1 + i_dst2 * params.stride_src2 + i_dst3 * params.stride_src3; + let i_dst_row = params.offset_dst + i_dst1 * params.stride_dst1 + i_dst2 * params.stride_dst2 + i_dst3 * params.stride_dst3; + + for (var i: u32 = 0; i < params.ne0/{{BLOCK_SIZE}}; i++) { + copy_elements(i_src_row, i_dst_row, i); + } +} + +#end(SHADER) diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/mul.tmpl.wgsl b/ggml/src/ggml-webgpu/wgsl-shaders/mul.tmpl.wgsl new file mode 100644 index 0000000000..12506e1420 --- /dev/null +++ b/ggml/src/ggml-webgpu/wgsl-shaders/mul.tmpl.wgsl @@ -0,0 +1,44 @@ +#define(VARIANTS) + +[ + { + "REPLS": { + "TYPE" : "f32", + } + }, + { + "REPLS": { + "TYPE" : "f16", + } + } +] + +#end(VARIANTS) + +#define(SHADER) + +enable f16; + +#include "binary_head.tmpl" + +@group(0) @binding(0) +var src0: array<{{TYPE}}>; + +@group(0) @binding(1) +var src1: array<{{TYPE}}>; + +@group(0) @binding(2) +var dst: array<{{TYPE}}>; + +@group(0) @binding(3) +var params: Params; + +override wg_size: u32; +@compute @workgroup_size(wg_size) +fn main(@builtin(global_invocation_id) gid: vec3) { + if (gid.x < params.ne) { + dst[params.offset_dst + gid.x] = src0[params.offset_src0 + gid.x] * src1[params.offset_src1 + src1_index(gid.x)]; + } +} + +#end(SHADER) diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/mul_in_place.tmpl.wgsl b/ggml/src/ggml-webgpu/wgsl-shaders/mul_in_place.tmpl.wgsl new file mode 100644 index 0000000000..e467e59edb --- /dev/null +++ b/ggml/src/ggml-webgpu/wgsl-shaders/mul_in_place.tmpl.wgsl @@ -0,0 +1,41 @@ +#define(VARIANTS) + +[ + { + "REPLS": { + "TYPE" : "f32", + } + }, + { + "REPLS": { + "TYPE" : "f16", + } + } +] + +#end(VARIANTS) + +#define(SHADER) + +enable f16; + +#include "binary_head.tmpl" + +@group(0) @binding(0) +var src0: array<{{TYPE}}>; + +@group(0) @binding(1) +var src1: array<{{TYPE}}>; + +@group(0) @binding(2) +var params: Params; + +override wg_size: u32; +@compute @workgroup_size(wg_size) +fn main(@builtin(global_invocation_id) gid: vec3) { + if (gid.x < params.ne) { + src0[params.offset_dst + gid.x] = src0[params.offset_src0 + gid.x] * src1[params.offset_src1 + src1_index(gid.x)]; + } +} + +#end(SHADER) diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat.tmpl.wgsl b/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat.tmpl.wgsl index 79465c298d..25e2185de8 100644 --- a/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat.tmpl.wgsl +++ b/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat.tmpl.wgsl @@ -31,7 +31,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 32 }, - "DECLS": ["BYTE_HELPERS", "Q4_0"] + "DECLS": ["BYTE_HELPERS", "Q4_0_T", "Q4_0"] }, { "REPLS": { @@ -39,7 +39,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 32 }, - "DECLS": ["BYTE_HELPERS", "Q4_1"] + "DECLS": ["BYTE_HELPERS", "Q4_1_T", "Q4_1"] }, { "REPLS": { @@ -47,7 +47,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 32 }, - "DECLS": ["BYTE_HELPERS", "Q5_0"] + "DECLS": ["BYTE_HELPERS", "Q5_0_T", "Q5_0"] }, { "REPLS": { @@ -55,7 +55,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 32 }, - "DECLS": ["BYTE_HELPERS", "Q5_1"] + "DECLS": ["BYTE_HELPERS", "Q5_1_T", "Q5_1"] }, { "REPLS": { @@ -63,7 +63,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 32 }, - "DECLS": ["BYTE_HELPERS", "Q8_0"] + "DECLS": ["BYTE_HELPERS", "Q8_0_T", "Q8_0"] }, { "REPLS": { @@ -71,7 +71,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["BYTE_HELPERS", "Q2_K"] + "DECLS": ["BYTE_HELPERS", "Q2_K_T", "Q2_K"] }, { "REPLS": { @@ -79,7 +79,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["BYTE_HELPERS", "Q3_K"] + "DECLS": ["BYTE_HELPERS", "Q3_K_T", "Q3_K"] }, { "REPLS": { @@ -87,7 +87,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["Q45_K_SCALE_MIN", "BYTE_HELPERS", "Q4_K"] + "DECLS": ["Q45_K_SCALE_MIN", "BYTE_HELPERS", "Q4_K_T", "Q4_K"] }, { "REPLS": { @@ -95,7 +95,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["Q45_K_SCALE_MIN", "BYTE_HELPERS", "Q5_K"] + "DECLS": ["Q45_K_SCALE_MIN", "BYTE_HELPERS", "Q5_K_T", "Q5_K"] }, { "REPLS": { @@ -103,7 +103,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["BYTE_HELPERS", "Q6_K"] + "DECLS": ["BYTE_HELPERS", "Q6_K_T", "Q6_K"] }, { "REPLS": { @@ -111,7 +111,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ2_XXS"] + "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ2_XXS_GRID", "IQ2_XXS_T", "IQ2_XXS"] }, { "REPLS": { @@ -119,7 +119,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ2_XS"] + "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ2_XS_GRID", "IQ2_XS_T", "IQ2_XS"] }, { "REPLS": { @@ -127,7 +127,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ2_S"] + "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ2_S_GRID", "IQ2_S_T", "IQ2_S"] }, { "REPLS": { @@ -135,7 +135,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ3_XSS"] + "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ3_XSS_GRID", "IQ3_XSS_T", "IQ3_XSS"] }, { "REPLS": { @@ -143,7 +143,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ3_S"] + "DECLS": ["BYTE_HELPERS", "IQ23_TABLES", "IQ3_S_GRID", "IQ3_S_T", "IQ3_S"] }, { "REPLS": { @@ -151,7 +151,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["BYTE_HELPERS", "IQ1_TABLE","IQ1_S"] + "DECLS": ["BYTE_HELPERS", "IQ1_GRID", "IQ1_S_T", "IQ1_S"] }, { "REPLS": { @@ -159,7 +159,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256 }, - "DECLS": ["BYTE_HELPERS", "IQ1_TABLE","IQ1_M"] + "DECLS": ["BYTE_HELPERS", "IQ1_GRID", "IQ1_M_T", "IQ1_M"] }, { "REPLS": { @@ -167,7 +167,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 32, }, - "DECLS": ["BYTE_HELPERS", "IQ4_TABLE", "IQ4_NL"] + "DECLS": ["BYTE_HELPERS", "IQ4_GRID", "IQ4_NL_T", "IQ4_NL"] }, { "REPLS": { @@ -175,7 +175,7 @@ "SRC1_TYPE": "f32", "BLOCK_SIZE": 256, }, - "DECLS": ["BYTE_HELPERS", "IQ4_TABLE", "IQ4_XS"] + "DECLS": ["BYTE_HELPERS", "IQ4_GRID", "IQ4_XS_T", "IQ4_XS"] } ] @@ -183,18 +183,6 @@ #define(DECLS) -#decl(BYTE_HELPERS) - -fn get_byte(value: u32, index: u32) -> u32 { - return (value >> (index * 8)) & 0xFF; -} - -fn get_byte_i32(value: u32, index: u32) -> i32 { - return bitcast(((value >> (index * 8)) & 0xFF) << 24) >> 24; -} - -#enddecl(BYTE_HELPERS) - #decl(FLOAT) fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { return f32(src0[src0_idx_base + offset]) * f32(src1[src1_idx_base + offset]); @@ -202,11 +190,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(FLOAT) #decl(Q4_0) -struct q4_0 { - d: f16, - qs: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block_q4_0 = src0[src0_idx_base + offset]; let d = f32(block_q4_0.d); @@ -227,12 +210,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(Q4_0) #decl(Q4_1) -struct q4_1 { - d: f16, - m: f16, - qs: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block_q4_1 = src0[src0_idx_base + offset]; let d = f32(block_q4_1.d); @@ -254,12 +231,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(Q4_1) #decl(Q5_0) -struct q5_0 { - d: f16, - qh: array, - qs: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block_q5_0 = src0[src0_idx_base + offset]; let d = f32(block_q5_0.d); @@ -283,13 +254,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(Q5_0) #decl(Q5_1) -struct q5_1 { - d: f16, - m: f16, - qh: u32, - qs: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block_q5_1 = src0[src0_idx_base + offset]; let d = f32(block_q5_1.d); @@ -313,11 +277,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(Q5_1) #decl(Q8_0) -struct q8_0 { - d: f16, - qs: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block_q8_0 = src0[src0_idx_base + offset]; let d = f32(block_q8_0.d); @@ -336,12 +295,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(Q8_0) #decl(Q8_1) -struct q8_1 { - d: f16, - m: f16, - qs: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block_q8_1 = src0[src0_idx_base + offset]; let d = f32(block_q8_1.d); @@ -362,13 +315,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #decl(Q2_K) // 16 blocks of 16 elements each -struct q2_k { - scales: array, - qs: array, - d: f16, - dmin: f16 -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -403,13 +349,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #decl(Q3_K) // 16 blocks of 16 elements each -struct q3_k { - hmask: array, - qs: array, - scales: array, // 6-bit quantized values - d: f16 -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -470,34 +409,8 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(Q3_K) -#decl(Q45_K_SCALE_MIN) - -fn get_scale_min(is: u32, scales: array) -> vec2 { - if (is < 4) { - let sc_byte = get_byte(scales[is / 4], is % 4); - let min_byte = get_byte(scales[(is + 4) / 4], is % 4); - return vec2(f32(sc_byte & 63), f32(min_byte & 63)); - } else { - let sc_min_lo = get_byte(scales[(is + 4) / 4], (is + 4) % 4); - let sc_hi = get_byte(scales[(is - 4) / 4], (is - 4) % 4); - let min_hi = get_byte(scales[is / 4], is % 4); - let sc = (sc_min_lo & 0xF) | ((sc_hi >> 6) << 4); - let m = (sc_min_lo >> 4) | ((min_hi >> 6) << 4); - return vec2(f32(sc), f32(m)); - } -} - -#enddecl(Q45_K_SCALE_MIN) - #decl(Q4_K) // 8 blocks of 32 elements each -struct q4_k { - d: f16, - dmin: f16, - scales: array, - qs: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -528,14 +441,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #decl(Q5_K) // 8 blocks of 32 elements each -struct q5_k { - d: f16, - dmin: f16, - scales: array, - qh: array, - qs: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -570,13 +475,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #decl(Q6_K) // 16 blocks of 16 elements each -struct q6_k { - ql: array, - qh: array, - scales: array, - d: f16 -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -634,98 +532,7 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(Q6_K) -#decl(IQ23_TABLES) -const kmask_iq2xs : array = array( - 0x08040201u, // 1, 2, 4, 8 - 0x80402010u // 16, 32, 64, 128 -); - -const ksigns_iq2xs: array = array( - 0x03828100,0x87060584,0x8b0a0988,0x0f8e8d0c, - 0x93121190,0x17969514,0x1b9a9918,0x9f1e1d9c, - 0xa32221a0,0x27a6a524,0x2baaa928,0xaf2e2dac, - 0x33b2b130,0xb73635b4,0xbb3a39b8,0x3fbebd3c, - 0xc34241c0,0x47c6c544,0x4bcac948,0xcf4e4dcc, - 0x53d2d150,0xd75655d4,0xdb5a59d8,0x5fdedd5c, - 0x63e2e160,0xe76665e4,0xeb6a69e8,0x6feeed6c, - 0xf37271f0,0x77f6f574,0x7bfaf978,0xff7e7dfc -); -#enddecl(IQ23_TABLES) - #decl(IQ2_XXS) - -const iq2xxs_grid = array( - 0x08080808, 0x08080808, 0x0808082b, 0x08080808, 0x08081919, 0x08080808, 0x08082b08, 0x08080808, - 0x08082b2b, 0x08080808, 0x08190819, 0x08080808, 0x08191908, 0x08080808, 0x082b0808, 0x08080808, - 0x082b082b, 0x08080808, 0x082b2b08, 0x08080808, 0x082b2b2b, 0x08080808, 0x19080819, 0x08080808, - 0x19081908, 0x08080808, 0x19190808, 0x08080808, 0x19192b08, 0x08080808, 0x192b0819, 0x08080808, - 0x192b1908, 0x08080808, 0x2b080808, 0x08080808, 0x2b08082b, 0x08080808, 0x2b082b2b, 0x08080808, - 0x2b2b082b, 0x08080808, 0x08080819, 0x08080819, 0x08081908, 0x08080819, 0x08190808, 0x08080819, - 0x08191919, 0x08080819, 0x19080808, 0x08080819, 0x2b081908, 0x08080819, 0x2b192b08, 0x08080819, - 0x08080808, 0x0808082b, 0x0808082b, 0x0808082b, 0x082b082b, 0x0808082b, 0x2b08082b, 0x0808082b, - 0x08080819, 0x08081908, 0x08081908, 0x08081908, 0x08190808, 0x08081908, 0x082b0819, 0x08081908, - 0x082b1908, 0x08081908, 0x19080808, 0x08081908, 0x1908082b, 0x08081908, 0x19082b08, 0x08081908, - 0x192b0808, 0x08081908, 0x2b080819, 0x08081908, 0x2b081908, 0x08081908, 0x2b190808, 0x08081908, - 0x2b2b1908, 0x08081908, 0x08080808, 0x08081919, 0x0808082b, 0x08081919, 0x08082b08, 0x08081919, - 0x082b0808, 0x08081919, 0x1908192b, 0x08081919, 0x192b2b19, 0x08081919, 0x2b080808, 0x08081919, - 0x2b190819, 0x08081919, 0x08082b19, 0x0808192b, 0x08190808, 0x0808192b, 0x19080808, 0x0808192b, - 0x2b081908, 0x0808192b, 0x2b2b1908, 0x0808192b, 0x08080808, 0x08082b08, 0x08081919, 0x08082b08, - 0x08082b08, 0x08082b08, 0x08191908, 0x08082b08, 0x082b2b08, 0x08082b08, 0x19080819, 0x08082b08, - 0x19081908, 0x08082b08, 0x19190808, 0x08082b08, 0x1919082b, 0x08082b08, 0x2b082b08, 0x08082b08, - 0x08081908, 0x08082b19, 0x19080808, 0x08082b19, 0x0808082b, 0x08082b2b, 0x08191908, 0x08082b2b, - 0x08080819, 0x08190808, 0x08081908, 0x08190808, 0x08190808, 0x08190808, 0x082b0819, 0x08190808, - 0x19080808, 0x08190808, 0x192b0808, 0x08190808, 0x2b081908, 0x08190808, 0x2b190808, 0x08190808, - 0x2b191919, 0x08190808, 0x08080808, 0x08190819, 0x08082b08, 0x08190819, 0x082b0808, 0x08190819, - 0x19190808, 0x08190819, 0x19192b2b, 0x08190819, 0x2b080808, 0x08190819, 0x082b1908, 0x0819082b, - 0x19081919, 0x0819082b, 0x08080808, 0x08191908, 0x08082b08, 0x08191908, 0x082b0808, 0x08191908, - 0x082b1919, 0x08191908, 0x19082b19, 0x08191908, 0x2b080808, 0x08191908, 0x08192b08, 0x08191919, - 0x192b082b, 0x08191919, 0x08080808, 0x0819192b, 0x0819192b, 0x0819192b, 0x08080819, 0x08192b08, - 0x08081908, 0x08192b08, 0x08190808, 0x08192b08, 0x19080808, 0x08192b08, 0x2b080819, 0x08192b08, - 0x08080808, 0x08192b19, 0x08081919, 0x08192b19, 0x2b2b0808, 0x08192b19, 0x19190819, 0x08192b2b, - 0x08080808, 0x082b0808, 0x0808082b, 0x082b0808, 0x08082b2b, 0x082b0808, 0x19081908, 0x082b0808, - 0x192b0819, 0x082b0808, 0x2b080808, 0x082b0808, 0x2b08082b, 0x082b0808, 0x082b2b19, 0x082b0819, - 0x19082b08, 0x082b0819, 0x08080808, 0x082b082b, 0x0808082b, 0x082b082b, 0x08080819, 0x082b1908, - 0x08081908, 0x082b1908, 0x08190808, 0x082b1908, 0x19080808, 0x082b1908, 0x1919192b, 0x082b1908, - 0x08080808, 0x082b1919, 0x19080819, 0x082b1919, 0x192b1908, 0x082b1919, 0x2b190808, 0x082b192b, - 0x08082b08, 0x082b2b08, 0x082b0808, 0x082b2b08, 0x2b191908, 0x082b2b08, 0x19081908, 0x082b2b2b, - 0x08080819, 0x19080808, 0x08081908, 0x19080808, 0x08190808, 0x19080808, 0x08192b08, 0x19080808, - 0x082b0819, 0x19080808, 0x082b1908, 0x19080808, 0x19080808, 0x19080808, 0x19082b08, 0x19080808, - 0x1919192b, 0x19080808, 0x192b0808, 0x19080808, 0x2b080819, 0x19080808, 0x2b081908, 0x19080808, - 0x2b190808, 0x19080808, 0x08080808, 0x19080819, 0x082b0808, 0x19080819, 0x192b0819, 0x19080819, - 0x2b080808, 0x19080819, 0x2b081919, 0x19080819, 0x08080819, 0x1908082b, 0x08190808, 0x1908082b, - 0x19082b08, 0x1908082b, 0x1919192b, 0x1908082b, 0x192b2b08, 0x1908082b, 0x08080808, 0x19081908, - 0x08082b08, 0x19081908, 0x082b0808, 0x19081908, 0x2b080808, 0x19081908, 0x2b192b19, 0x19081908, - 0x0819082b, 0x19081919, 0x082b1908, 0x19081919, 0x08080808, 0x1908192b, 0x08080819, 0x19082b08, - 0x08081908, 0x19082b08, 0x08190808, 0x19082b08, 0x19080808, 0x19082b08, 0x19081919, 0x19082b08, - 0x08080808, 0x19082b19, 0x19192b08, 0x19082b19, 0x192b0819, 0x19082b19, 0x2b08082b, 0x19082b19, - 0x19081919, 0x19082b2b, 0x2b190808, 0x19082b2b, 0x08080808, 0x19190808, 0x08082b08, 0x19190808, - 0x08190819, 0x19190808, 0x08192b19, 0x19190808, 0x082b0808, 0x19190808, 0x2b080808, 0x19190808, - 0x2b082b08, 0x19190808, 0x08081908, 0x19190819, 0x1908082b, 0x19190819, 0x2b2b1908, 0x19190819, - 0x2b190819, 0x1919082b, 0x2b190808, 0x19191908, 0x2b19082b, 0x19191908, 0x08082b2b, 0x19191919, - 0x08080819, 0x1919192b, 0x19191908, 0x1919192b, 0x08080808, 0x19192b08, 0x08190819, 0x19192b08, - 0x08192b19, 0x19192b08, 0x192b1908, 0x19192b08, 0x19080808, 0x19192b19, 0x08082b08, 0x19192b2b, - 0x08081908, 0x192b0808, 0x08190808, 0x192b0808, 0x19080808, 0x192b0808, 0x192b2b08, 0x192b0808, - 0x08080808, 0x192b0819, 0x19191919, 0x192b0819, 0x08192b08, 0x192b082b, 0x192b0808, 0x192b082b, - 0x08080808, 0x192b1908, 0x08081919, 0x192b1908, 0x08190808, 0x192b1919, 0x0819082b, 0x192b1919, - 0x2b081908, 0x192b1919, 0x1908082b, 0x192b2b08, 0x08080808, 0x2b080808, 0x0808082b, 0x2b080808, - 0x08082b2b, 0x2b080808, 0x19080819, 0x2b080808, 0x2b08082b, 0x2b080808, 0x08081908, 0x2b080819, - 0x08192b08, 0x2b080819, 0x19080808, 0x2b080819, 0x08190819, 0x2b08082b, 0x08080819, 0x2b081908, - 0x08081908, 0x2b081908, 0x08190808, 0x2b081908, 0x08191919, 0x2b081908, 0x19080808, 0x2b081908, - 0x192b0808, 0x2b081908, 0x08080808, 0x2b081919, 0x1908192b, 0x2b081919, 0x2b191908, 0x2b081919, - 0x08082b19, 0x2b08192b, 0x19080808, 0x2b08192b, 0x192b0808, 0x2b08192b, 0x0808082b, 0x2b082b08, - 0x08081908, 0x2b082b19, 0x08190819, 0x2b082b2b, 0x08081908, 0x2b190808, 0x08190808, 0x2b190808, - 0x082b1908, 0x2b190808, 0x19080808, 0x2b190808, 0x2b2b0819, 0x2b190808, 0x0819192b, 0x2b190819, - 0x2b080808, 0x2b190819, 0x19081919, 0x2b19082b, 0x08080808, 0x2b191908, 0x082b082b, 0x2b191908, - 0x19081908, 0x2b191908, 0x19190819, 0x2b191919, 0x2b080819, 0x2b192b08, 0x082b0808, 0x2b192b19, - 0x0808082b, 0x2b2b0808, 0x19190808, 0x2b2b0808, 0x2b081919, 0x2b2b0808, 0x08082b19, 0x2b2b0819, - 0x08080808, 0x2b2b082b, 0x08192b08, 0x2b2b1908, 0x19190808, 0x2b2b2b08, 0x08081908, 0x2b2b2b19 -); - -struct iq2_xxs { - d: f16, - qs: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -753,143 +560,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(IQ2_XXS) #decl(IQ2_XS) -const iq2xs_grid = array( - 0x08080808, 0x08080808, 0x0808082b, 0x08080808, 0x08081919, 0x08080808, 0x08082b08, 0x08080808, - 0x08082b2b, 0x08080808, 0x08190819, 0x08080808, 0x08191908, 0x08080808, 0x0819192b, 0x08080808, - 0x08192b19, 0x08080808, 0x082b0808, 0x08080808, 0x082b082b, 0x08080808, 0x082b1919, 0x08080808, - 0x082b2b08, 0x08080808, 0x19080819, 0x08080808, 0x19081908, 0x08080808, 0x1908192b, 0x08080808, - 0x19082b19, 0x08080808, 0x19190808, 0x08080808, 0x1919082b, 0x08080808, 0x19191919, 0x08080808, - 0x19192b08, 0x08080808, 0x192b0819, 0x08080808, 0x192b1908, 0x08080808, 0x2b080808, 0x08080808, - 0x2b08082b, 0x08080808, 0x2b081919, 0x08080808, 0x2b082b08, 0x08080808, 0x2b190819, 0x08080808, - 0x2b191908, 0x08080808, 0x2b192b19, 0x08080808, 0x2b2b0808, 0x08080808, 0x08080819, 0x08080819, - 0x08081908, 0x08080819, 0x0808192b, 0x08080819, 0x08082b19, 0x08080819, 0x08190808, 0x08080819, - 0x0819082b, 0x08080819, 0x08191919, 0x08080819, 0x08192b08, 0x08080819, 0x08192b2b, 0x08080819, - 0x082b0819, 0x08080819, 0x082b1908, 0x08080819, 0x19080808, 0x08080819, 0x1908082b, 0x08080819, - 0x19081919, 0x08080819, 0x19082b08, 0x08080819, 0x19190819, 0x08080819, 0x19191908, 0x08080819, - 0x192b0808, 0x08080819, 0x192b2b08, 0x08080819, 0x2b080819, 0x08080819, 0x2b081908, 0x08080819, - 0x2b190808, 0x08080819, 0x08080808, 0x0808082b, 0x0808082b, 0x0808082b, 0x08081919, 0x0808082b, - 0x08082b08, 0x0808082b, 0x08190819, 0x0808082b, 0x08191908, 0x0808082b, 0x082b0808, 0x0808082b, - 0x19080819, 0x0808082b, 0x19081908, 0x0808082b, 0x19190808, 0x0808082b, 0x19191919, 0x0808082b, - 0x2b080808, 0x0808082b, 0x2b082b2b, 0x0808082b, 0x08080819, 0x08081908, 0x08081908, 0x08081908, - 0x0808192b, 0x08081908, 0x08082b19, 0x08081908, 0x08190808, 0x08081908, 0x0819082b, 0x08081908, - 0x08191919, 0x08081908, 0x08192b08, 0x08081908, 0x082b0819, 0x08081908, 0x082b1908, 0x08081908, - 0x19080808, 0x08081908, 0x1908082b, 0x08081908, 0x19081919, 0x08081908, 0x19082b08, 0x08081908, - 0x19190819, 0x08081908, 0x19191908, 0x08081908, 0x1919192b, 0x08081908, 0x192b0808, 0x08081908, - 0x2b080819, 0x08081908, 0x2b081908, 0x08081908, 0x2b190808, 0x08081908, 0x08080808, 0x08081919, - 0x0808082b, 0x08081919, 0x08081919, 0x08081919, 0x08082b08, 0x08081919, 0x08190819, 0x08081919, - 0x08191908, 0x08081919, 0x082b0808, 0x08081919, 0x19080819, 0x08081919, 0x19081908, 0x08081919, - 0x19190808, 0x08081919, 0x192b0819, 0x08081919, 0x2b080808, 0x08081919, 0x08080819, 0x0808192b, - 0x08081908, 0x0808192b, 0x08190808, 0x0808192b, 0x082b192b, 0x0808192b, 0x19080808, 0x0808192b, - 0x1908082b, 0x0808192b, 0x2b081908, 0x0808192b, 0x08080808, 0x08082b08, 0x0808082b, 0x08082b08, - 0x08081919, 0x08082b08, 0x08082b08, 0x08082b08, 0x08082b2b, 0x08082b08, 0x08190819, 0x08082b08, - 0x08191908, 0x08082b08, 0x082b0808, 0x08082b08, 0x082b1919, 0x08082b08, 0x19080819, 0x08082b08, - 0x19081908, 0x08082b08, 0x19190808, 0x08082b08, 0x19192b08, 0x08082b08, 0x2b080808, 0x08082b08, - 0x2b2b0808, 0x08082b08, 0x2b2b2b2b, 0x08082b08, 0x08080819, 0x08082b19, 0x08081908, 0x08082b19, - 0x08190808, 0x08082b19, 0x19080808, 0x08082b19, 0x2b080819, 0x08082b19, 0x2b082b19, 0x08082b19, - 0x08080808, 0x08082b2b, 0x082b0808, 0x08082b2b, 0x082b2b08, 0x08082b2b, 0x2b19192b, 0x08082b2b, - 0x2b2b0808, 0x08082b2b, 0x08080819, 0x08190808, 0x08081908, 0x08190808, 0x0808192b, 0x08190808, - 0x08082b19, 0x08190808, 0x08190808, 0x08190808, 0x0819082b, 0x08190808, 0x08191919, 0x08190808, - 0x08192b08, 0x08190808, 0x082b0819, 0x08190808, 0x082b1908, 0x08190808, 0x19080808, 0x08190808, - 0x1908082b, 0x08190808, 0x19081919, 0x08190808, 0x19082b08, 0x08190808, 0x19190819, 0x08190808, - 0x19191908, 0x08190808, 0x192b0808, 0x08190808, 0x192b2b2b, 0x08190808, 0x2b080819, 0x08190808, - 0x2b081908, 0x08190808, 0x2b190808, 0x08190808, 0x08080808, 0x08190819, 0x0808082b, 0x08190819, - 0x08081919, 0x08190819, 0x08082b08, 0x08190819, 0x08190819, 0x08190819, 0x08191908, 0x08190819, - 0x082b0808, 0x08190819, 0x19080819, 0x08190819, 0x19081908, 0x08190819, 0x19190808, 0x08190819, - 0x2b080808, 0x08190819, 0x2b191908, 0x08190819, 0x2b19192b, 0x08190819, 0x08080819, 0x0819082b, - 0x08081908, 0x0819082b, 0x0808192b, 0x0819082b, 0x08190808, 0x0819082b, 0x19080808, 0x0819082b, - 0x192b0808, 0x0819082b, 0x08080808, 0x08191908, 0x0808082b, 0x08191908, 0x08081919, 0x08191908, - 0x08082b08, 0x08191908, 0x08190819, 0x08191908, 0x08191908, 0x08191908, 0x082b0808, 0x08191908, - 0x19080819, 0x08191908, 0x19081908, 0x08191908, 0x19082b19, 0x08191908, 0x19190808, 0x08191908, - 0x192b1908, 0x08191908, 0x2b080808, 0x08191908, 0x08080819, 0x08191919, 0x08081908, 0x08191919, - 0x08190808, 0x08191919, 0x19080808, 0x08191919, 0x08080808, 0x0819192b, 0x08191908, 0x0819192b, - 0x19082b19, 0x0819192b, 0x08080819, 0x08192b08, 0x08081908, 0x08192b08, 0x08190808, 0x08192b08, - 0x0819082b, 0x08192b08, 0x19080808, 0x08192b08, 0x19191908, 0x08192b08, 0x2b08192b, 0x08192b08, - 0x08080808, 0x08192b19, 0x08081919, 0x08192b19, 0x192b192b, 0x08192b19, 0x19190819, 0x08192b2b, - 0x2b2b2b19, 0x08192b2b, 0x08080808, 0x082b0808, 0x0808082b, 0x082b0808, 0x08081919, 0x082b0808, - 0x08082b08, 0x082b0808, 0x08082b2b, 0x082b0808, 0x08190819, 0x082b0808, 0x08191908, 0x082b0808, - 0x082b0808, 0x082b0808, 0x19080819, 0x082b0808, 0x19081908, 0x082b0808, 0x19190808, 0x082b0808, - 0x2b080808, 0x082b0808, 0x2b2b0808, 0x082b0808, 0x08080819, 0x082b0819, 0x08081908, 0x082b0819, - 0x08190808, 0x082b0819, 0x19080808, 0x082b0819, 0x19082b08, 0x082b0819, 0x192b1919, 0x082b0819, - 0x08080808, 0x082b082b, 0x082b082b, 0x082b082b, 0x2b080808, 0x082b082b, 0x2b2b2b08, 0x082b082b, - 0x08080819, 0x082b1908, 0x08081908, 0x082b1908, 0x08190808, 0x082b1908, 0x082b2b19, 0x082b1908, - 0x19080808, 0x082b1908, 0x08080808, 0x082b1919, 0x19080819, 0x082b1919, 0x1919082b, 0x082b1919, - 0x2b192b19, 0x082b1919, 0x08080819, 0x082b192b, 0x08192b2b, 0x082b192b, 0x2b2b192b, 0x082b192b, - 0x08080808, 0x082b2b08, 0x08082b08, 0x082b2b08, 0x08082b2b, 0x082b2b08, 0x082b0808, 0x082b2b08, - 0x19191919, 0x082b2b08, 0x2b082b08, 0x082b2b08, 0x2b2b082b, 0x082b2b08, 0x192b2b08, 0x082b2b19, - 0x2b190808, 0x082b2b19, 0x08082b08, 0x082b2b2b, 0x082b0808, 0x082b2b2b, 0x2b08082b, 0x082b2b2b, - 0x2b082b08, 0x082b2b2b, 0x2b082b2b, 0x082b2b2b, 0x08080819, 0x19080808, 0x08081908, 0x19080808, - 0x0808192b, 0x19080808, 0x08082b19, 0x19080808, 0x08190808, 0x19080808, 0x0819082b, 0x19080808, - 0x08191919, 0x19080808, 0x08192b08, 0x19080808, 0x082b0819, 0x19080808, 0x082b1908, 0x19080808, - 0x19080808, 0x19080808, 0x1908082b, 0x19080808, 0x19081919, 0x19080808, 0x19082b08, 0x19080808, - 0x19082b2b, 0x19080808, 0x19190819, 0x19080808, 0x19191908, 0x19080808, 0x192b0808, 0x19080808, - 0x192b1919, 0x19080808, 0x2b080819, 0x19080808, 0x2b081908, 0x19080808, 0x2b190808, 0x19080808, - 0x08080808, 0x19080819, 0x0808082b, 0x19080819, 0x08081919, 0x19080819, 0x08082b08, 0x19080819, - 0x08190819, 0x19080819, 0x08191908, 0x19080819, 0x082b0808, 0x19080819, 0x19080819, 0x19080819, - 0x19081908, 0x19080819, 0x19190808, 0x19080819, 0x2b080808, 0x19080819, 0x2b081919, 0x19080819, - 0x2b2b082b, 0x19080819, 0x08080819, 0x1908082b, 0x08081908, 0x1908082b, 0x08190808, 0x1908082b, - 0x0819082b, 0x1908082b, 0x082b2b19, 0x1908082b, 0x19080808, 0x1908082b, 0x08080808, 0x19081908, - 0x0808082b, 0x19081908, 0x08081919, 0x19081908, 0x08082b08, 0x19081908, 0x08190819, 0x19081908, - 0x08191908, 0x19081908, 0x08192b19, 0x19081908, 0x082b0808, 0x19081908, 0x19080819, 0x19081908, - 0x19081908, 0x19081908, 0x19190808, 0x19081908, 0x2b080808, 0x19081908, 0x2b191908, 0x19081908, - 0x08080819, 0x19081919, 0x08081908, 0x19081919, 0x08190808, 0x19081919, 0x082b1908, 0x19081919, - 0x19080808, 0x19081919, 0x2b192b2b, 0x19081919, 0x08080808, 0x1908192b, 0x08082b2b, 0x1908192b, - 0x19081908, 0x1908192b, 0x19190808, 0x1908192b, 0x08080819, 0x19082b08, 0x08081908, 0x19082b08, - 0x08190808, 0x19082b08, 0x19080808, 0x19082b08, 0x19081919, 0x19082b08, 0x19191908, 0x19082b08, - 0x192b082b, 0x19082b08, 0x08080808, 0x19082b19, 0x08190819, 0x19082b19, 0x19081908, 0x19082b19, - 0x19190808, 0x19082b19, 0x192b2b19, 0x19082b19, 0x08081908, 0x19082b2b, 0x08080808, 0x19190808, - 0x0808082b, 0x19190808, 0x08081919, 0x19190808, 0x08082b08, 0x19190808, 0x08190819, 0x19190808, - 0x08191908, 0x19190808, 0x082b0808, 0x19190808, 0x082b2b08, 0x19190808, 0x19080819, 0x19190808, - 0x19081908, 0x19190808, 0x19190808, 0x19190808, 0x2b080808, 0x19190808, 0x08080819, 0x19190819, - 0x08081908, 0x19190819, 0x08190808, 0x19190819, 0x08191919, 0x19190819, 0x19080808, 0x19190819, - 0x1908082b, 0x19190819, 0x08080808, 0x1919082b, 0x19081908, 0x1919082b, 0x2b2b2b2b, 0x1919082b, - 0x08080819, 0x19191908, 0x08081908, 0x19191908, 0x08190808, 0x19191908, 0x082b0819, 0x19191908, - 0x19080808, 0x19191908, 0x192b0808, 0x19191908, 0x2b080819, 0x19191908, 0x2b2b0819, 0x19191908, - 0x08080808, 0x19191919, 0x08082b08, 0x19191919, 0x2b080808, 0x19191919, 0x2b082b08, 0x19191919, - 0x082b0819, 0x1919192b, 0x192b2b08, 0x1919192b, 0x2b2b0819, 0x1919192b, 0x08080808, 0x19192b08, - 0x08191908, 0x19192b08, 0x19080819, 0x19192b08, 0x19190808, 0x19192b08, 0x2b192b19, 0x19192b08, - 0x08192b2b, 0x19192b19, 0x19080808, 0x19192b19, 0x1908082b, 0x19192b19, 0x2b081919, 0x19192b2b, - 0x08080819, 0x192b0808, 0x08081908, 0x192b0808, 0x08190808, 0x192b0808, 0x19080808, 0x192b0808, - 0x19191908, 0x192b0808, 0x192b082b, 0x192b0808, 0x2b08192b, 0x192b0808, 0x2b2b2b19, 0x192b0808, - 0x08080808, 0x192b0819, 0x082b1908, 0x192b082b, 0x19082b2b, 0x192b082b, 0x2b19082b, 0x192b082b, - 0x08080808, 0x192b1908, 0x0819192b, 0x192b1908, 0x08190808, 0x192b1919, 0x19080808, 0x192b1919, - 0x19081919, 0x192b1919, 0x2b2b1908, 0x192b1919, 0x08080819, 0x192b2b08, 0x192b2b2b, 0x192b2b08, - 0x082b1919, 0x192b2b19, 0x0808192b, 0x192b2b2b, 0x19191908, 0x192b2b2b, 0x192b082b, 0x192b2b2b, - 0x08080808, 0x2b080808, 0x0808082b, 0x2b080808, 0x08081919, 0x2b080808, 0x08082b08, 0x2b080808, - 0x08190819, 0x2b080808, 0x08191908, 0x2b080808, 0x082b0808, 0x2b080808, 0x082b2b2b, 0x2b080808, - 0x19080819, 0x2b080808, 0x19081908, 0x2b080808, 0x19190808, 0x2b080808, 0x2b080808, 0x2b080808, - 0x2b08082b, 0x2b080808, 0x2b2b2b08, 0x2b080808, 0x2b2b2b2b, 0x2b080808, 0x08080819, 0x2b080819, - 0x08081908, 0x2b080819, 0x0808192b, 0x2b080819, 0x08190808, 0x2b080819, 0x19080808, 0x2b080819, - 0x19190819, 0x2b080819, 0x19192b19, 0x2b080819, 0x08080808, 0x2b08082b, 0x082b0808, 0x2b08082b, - 0x2b080808, 0x2b08082b, 0x2b08082b, 0x2b08082b, 0x2b2b0808, 0x2b08082b, 0x2b2b2b08, 0x2b08082b, - 0x08080819, 0x2b081908, 0x08081908, 0x2b081908, 0x08190808, 0x2b081908, 0x0819082b, 0x2b081908, - 0x08191919, 0x2b081908, 0x19080808, 0x2b081908, 0x192b0808, 0x2b081908, 0x2b082b19, 0x2b081908, - 0x08080808, 0x2b081919, 0x19081908, 0x2b081919, 0x2b2b1919, 0x2b081919, 0x08192b08, 0x2b08192b, - 0x192b2b2b, 0x2b08192b, 0x08080808, 0x2b082b08, 0x08082b08, 0x2b082b08, 0x082b1919, 0x2b082b08, - 0x19192b2b, 0x2b082b08, 0x2b080808, 0x2b082b08, 0x2b08082b, 0x2b082b08, 0x2b2b2b08, 0x2b082b08, - 0x0808192b, 0x2b082b19, 0x082b082b, 0x2b082b2b, 0x2b080808, 0x2b082b2b, 0x2b082b08, 0x2b082b2b, - 0x2b19192b, 0x2b082b2b, 0x2b2b2b08, 0x2b082b2b, 0x08080819, 0x2b190808, 0x08081908, 0x2b190808, - 0x08190808, 0x2b190808, 0x19080808, 0x2b190808, 0x1919192b, 0x2b190808, 0x2b081908, 0x2b190808, - 0x08080808, 0x2b190819, 0x082b082b, 0x2b190819, 0x192b1908, 0x2b190819, 0x1919192b, 0x2b19082b, - 0x2b082b19, 0x2b19082b, 0x08080808, 0x2b191908, 0x08081919, 0x2b191908, 0x19081908, 0x2b191908, - 0x19190808, 0x2b191908, 0x19192b08, 0x2b191908, 0x082b2b19, 0x2b191919, 0x2b190808, 0x2b191919, - 0x2b19082b, 0x2b191919, 0x19080819, 0x2b19192b, 0x19190819, 0x2b192b08, 0x2b2b192b, 0x2b192b08, - 0x19082b19, 0x2b192b19, 0x08191919, 0x2b192b2b, 0x192b0808, 0x2b192b2b, 0x08080808, 0x2b2b0808, - 0x0808082b, 0x2b2b0808, 0x08082b08, 0x2b2b0808, 0x08082b2b, 0x2b2b0808, 0x082b0808, 0x2b2b0808, - 0x082b2b2b, 0x2b2b0808, 0x2b2b0808, 0x2b2b0808, 0x19190819, 0x2b2b0819, 0x19192b19, 0x2b2b0819, - 0x2b2b192b, 0x2b2b0819, 0x08080808, 0x2b2b082b, 0x0808082b, 0x2b2b082b, 0x08082b08, 0x2b2b082b, - 0x082b2b2b, 0x2b2b082b, 0x2b080808, 0x2b2b082b, 0x2b2b0808, 0x2b2b082b, 0x19080808, 0x2b2b1908, - 0x2b191919, 0x2b2b1908, 0x192b1919, 0x2b2b192b, 0x2b192b08, 0x2b2b192b, 0x08082b2b, 0x2b2b2b08, - 0x082b0808, 0x2b2b2b08, 0x082b082b, 0x2b2b2b08, 0x082b2b08, 0x2b2b2b08, 0x2b2b0808, 0x2b2b2b08, - 0x2b2b2b08, 0x2b2b2b08, 0x08081908, 0x2b2b2b19, 0x2b081908, 0x2b2b2b19, 0x2b08192b, 0x2b2b2b19, - 0x082b2b08, 0x2b2b2b2b, 0x082b2b2b, 0x2b2b2b2b, 0x2b190819, 0x2b2b2b2b, 0x2b2b2b2b, 0x2b2b2b2b -); - -struct iq2_xs { - d: f16, - qs: array, - scales: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -925,273 +595,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(IQ2_XS) #decl(IQ2_S) - -const iq2s_grid = array( - 0x08080808, 0x08080808, 0x0808082b, 0x08080808, 0x08081919, 0x08080808, 0x08082b08, 0x08080808, - 0x08082b2b, 0x08080808, 0x08190819, 0x08080808, 0x08191908, 0x08080808, 0x0819192b, 0x08080808, - 0x08192b19, 0x08080808, 0x082b0808, 0x08080808, 0x082b082b, 0x08080808, 0x082b1919, 0x08080808, - 0x082b2b08, 0x08080808, 0x19080819, 0x08080808, 0x19081908, 0x08080808, 0x1908192b, 0x08080808, - 0x19082b19, 0x08080808, 0x19190808, 0x08080808, 0x1919082b, 0x08080808, 0x19191919, 0x08080808, - 0x19192b08, 0x08080808, 0x192b0819, 0x08080808, 0x192b1908, 0x08080808, 0x192b192b, 0x08080808, - 0x192b2b19, 0x08080808, 0x2b080808, 0x08080808, 0x2b08082b, 0x08080808, 0x2b081919, 0x08080808, - 0x2b082b08, 0x08080808, 0x2b190819, 0x08080808, 0x2b191908, 0x08080808, 0x2b2b0808, 0x08080808, - 0x2b2b1919, 0x08080808, 0x2b2b2b2b, 0x08080808, 0x08080819, 0x08080819, 0x08081908, 0x08080819, - 0x0808192b, 0x08080819, 0x08082b19, 0x08080819, 0x08190808, 0x08080819, 0x0819082b, 0x08080819, - 0x08191919, 0x08080819, 0x08192b08, 0x08080819, 0x082b0819, 0x08080819, 0x082b1908, 0x08080819, - 0x19080808, 0x08080819, 0x1908082b, 0x08080819, 0x19081919, 0x08080819, 0x19082b08, 0x08080819, - 0x19190819, 0x08080819, 0x19191908, 0x08080819, 0x1919192b, 0x08080819, 0x19192b19, 0x08080819, - 0x192b0808, 0x08080819, 0x192b1919, 0x08080819, 0x192b2b08, 0x08080819, 0x2b080819, 0x08080819, - 0x2b081908, 0x08080819, 0x2b190808, 0x08080819, 0x2b19082b, 0x08080819, 0x2b191919, 0x08080819, - 0x2b2b0819, 0x08080819, 0x2b2b1908, 0x08080819, 0x08080808, 0x0808082b, 0x0808082b, 0x0808082b, - 0x08081919, 0x0808082b, 0x08082b08, 0x0808082b, 0x08190819, 0x0808082b, 0x08191908, 0x0808082b, - 0x082b0808, 0x0808082b, 0x082b2b2b, 0x0808082b, 0x19080819, 0x0808082b, 0x19081908, 0x0808082b, - 0x1908192b, 0x0808082b, 0x19082b19, 0x0808082b, 0x19190808, 0x0808082b, 0x19191919, 0x0808082b, - 0x2b080808, 0x0808082b, 0x2b081919, 0x0808082b, 0x2b082b2b, 0x0808082b, 0x2b191908, 0x0808082b, - 0x2b2b082b, 0x0808082b, 0x08080819, 0x08081908, 0x08081908, 0x08081908, 0x0808192b, 0x08081908, - 0x08082b19, 0x08081908, 0x08190808, 0x08081908, 0x0819082b, 0x08081908, 0x08191919, 0x08081908, - 0x08192b08, 0x08081908, 0x082b0819, 0x08081908, 0x082b1908, 0x08081908, 0x082b192b, 0x08081908, - 0x082b2b19, 0x08081908, 0x19080808, 0x08081908, 0x1908082b, 0x08081908, 0x19081919, 0x08081908, - 0x19082b08, 0x08081908, 0x19082b2b, 0x08081908, 0x19190819, 0x08081908, 0x19191908, 0x08081908, - 0x1919192b, 0x08081908, 0x19192b19, 0x08081908, 0x192b0808, 0x08081908, 0x192b082b, 0x08081908, - 0x192b1919, 0x08081908, 0x2b080819, 0x08081908, 0x2b081908, 0x08081908, 0x2b08192b, 0x08081908, - 0x2b082b19, 0x08081908, 0x2b190808, 0x08081908, 0x2b191919, 0x08081908, 0x2b192b08, 0x08081908, - 0x2b2b0819, 0x08081908, 0x2b2b1908, 0x08081908, 0x08080808, 0x08081919, 0x0808082b, 0x08081919, - 0x08081919, 0x08081919, 0x08082b08, 0x08081919, 0x08082b2b, 0x08081919, 0x08190819, 0x08081919, - 0x08191908, 0x08081919, 0x0819192b, 0x08081919, 0x08192b19, 0x08081919, 0x082b0808, 0x08081919, - 0x082b1919, 0x08081919, 0x082b2b08, 0x08081919, 0x19080819, 0x08081919, 0x19081908, 0x08081919, - 0x1908192b, 0x08081919, 0x19082b19, 0x08081919, 0x19190808, 0x08081919, 0x1919082b, 0x08081919, - 0x19191919, 0x08081919, 0x19192b08, 0x08081919, 0x192b0819, 0x08081919, 0x192b1908, 0x08081919, - 0x2b080808, 0x08081919, 0x2b08082b, 0x08081919, 0x2b081919, 0x08081919, 0x2b082b08, 0x08081919, - 0x2b190819, 0x08081919, 0x2b191908, 0x08081919, 0x2b2b0808, 0x08081919, 0x08080819, 0x0808192b, - 0x08081908, 0x0808192b, 0x0808192b, 0x0808192b, 0x08082b19, 0x0808192b, 0x08190808, 0x0808192b, - 0x08191919, 0x0808192b, 0x19080808, 0x0808192b, 0x19081919, 0x0808192b, 0x19082b08, 0x0808192b, - 0x19190819, 0x0808192b, 0x19191908, 0x0808192b, 0x192b0808, 0x0808192b, 0x2b080819, 0x0808192b, - 0x2b081908, 0x0808192b, 0x2b190808, 0x0808192b, 0x08080808, 0x08082b08, 0x0808082b, 0x08082b08, - 0x08081919, 0x08082b08, 0x08082b08, 0x08082b08, 0x08190819, 0x08082b08, 0x08191908, 0x08082b08, - 0x0819192b, 0x08082b08, 0x08192b19, 0x08082b08, 0x082b0808, 0x08082b08, 0x082b1919, 0x08082b08, - 0x082b2b2b, 0x08082b08, 0x19080819, 0x08082b08, 0x19081908, 0x08082b08, 0x1908192b, 0x08082b08, - 0x19082b19, 0x08082b08, 0x19190808, 0x08082b08, 0x1919082b, 0x08082b08, 0x19191919, 0x08082b08, - 0x19192b08, 0x08082b08, 0x192b0819, 0x08082b08, 0x192b1908, 0x08082b08, 0x2b080808, 0x08082b08, - 0x2b081919, 0x08082b08, 0x2b191908, 0x08082b08, 0x2b2b2b2b, 0x08082b08, 0x08080819, 0x08082b19, - 0x08081908, 0x08082b19, 0x08190808, 0x08082b19, 0x0819082b, 0x08082b19, 0x08191919, 0x08082b19, - 0x08192b08, 0x08082b19, 0x082b0819, 0x08082b19, 0x19080808, 0x08082b19, 0x19081919, 0x08082b19, - 0x19082b08, 0x08082b19, 0x19190819, 0x08082b19, 0x19191908, 0x08082b19, 0x192b0808, 0x08082b19, - 0x2b080819, 0x08082b19, 0x2b190808, 0x08082b19, 0x08080808, 0x08082b2b, 0x08190819, 0x08082b2b, - 0x08191908, 0x08082b2b, 0x082b082b, 0x08082b2b, 0x082b2b08, 0x08082b2b, 0x082b2b2b, 0x08082b2b, - 0x19190808, 0x08082b2b, 0x2b192b19, 0x08082b2b, 0x08080819, 0x08190808, 0x08081908, 0x08190808, - 0x0808192b, 0x08190808, 0x08082b19, 0x08190808, 0x08190808, 0x08190808, 0x0819082b, 0x08190808, - 0x08191919, 0x08190808, 0x08192b08, 0x08190808, 0x082b0819, 0x08190808, 0x082b1908, 0x08190808, - 0x082b192b, 0x08190808, 0x19080808, 0x08190808, 0x1908082b, 0x08190808, 0x19081919, 0x08190808, - 0x19082b08, 0x08190808, 0x19190819, 0x08190808, 0x19191908, 0x08190808, 0x1919192b, 0x08190808, - 0x19192b19, 0x08190808, 0x192b0808, 0x08190808, 0x192b082b, 0x08190808, 0x192b1919, 0x08190808, - 0x192b2b08, 0x08190808, 0x2b080819, 0x08190808, 0x2b081908, 0x08190808, 0x2b08192b, 0x08190808, - 0x2b190808, 0x08190808, 0x2b191919, 0x08190808, 0x2b192b08, 0x08190808, 0x2b2b0819, 0x08190808, - 0x2b2b1908, 0x08190808, 0x08080808, 0x08190819, 0x0808082b, 0x08190819, 0x08081919, 0x08190819, - 0x08082b08, 0x08190819, 0x08082b2b, 0x08190819, 0x08190819, 0x08190819, 0x08191908, 0x08190819, - 0x0819192b, 0x08190819, 0x08192b19, 0x08190819, 0x082b0808, 0x08190819, 0x082b082b, 0x08190819, - 0x082b1919, 0x08190819, 0x082b2b08, 0x08190819, 0x19080819, 0x08190819, 0x19081908, 0x08190819, - 0x1908192b, 0x08190819, 0x19082b19, 0x08190819, 0x19190808, 0x08190819, 0x1919082b, 0x08190819, - 0x19191919, 0x08190819, 0x19192b08, 0x08190819, 0x192b0819, 0x08190819, 0x192b1908, 0x08190819, - 0x2b080808, 0x08190819, 0x2b08082b, 0x08190819, 0x2b081919, 0x08190819, 0x2b082b08, 0x08190819, - 0x2b190819, 0x08190819, 0x2b191908, 0x08190819, 0x08080819, 0x0819082b, 0x08081908, 0x0819082b, - 0x08082b19, 0x0819082b, 0x08190808, 0x0819082b, 0x08191919, 0x0819082b, 0x082b0819, 0x0819082b, - 0x082b1908, 0x0819082b, 0x19080808, 0x0819082b, 0x19081919, 0x0819082b, 0x19190819, 0x0819082b, - 0x19191908, 0x0819082b, 0x2b080819, 0x0819082b, 0x2b081908, 0x0819082b, 0x2b190808, 0x0819082b, - 0x08080808, 0x08191908, 0x0808082b, 0x08191908, 0x08081919, 0x08191908, 0x08082b08, 0x08191908, - 0x08190819, 0x08191908, 0x08191908, 0x08191908, 0x0819192b, 0x08191908, 0x08192b19, 0x08191908, - 0x082b0808, 0x08191908, 0x082b1919, 0x08191908, 0x082b2b08, 0x08191908, 0x19080819, 0x08191908, - 0x19081908, 0x08191908, 0x1908192b, 0x08191908, 0x19082b19, 0x08191908, 0x19190808, 0x08191908, - 0x1919082b, 0x08191908, 0x19191919, 0x08191908, 0x19192b08, 0x08191908, 0x192b0819, 0x08191908, - 0x192b1908, 0x08191908, 0x2b080808, 0x08191908, 0x2b08082b, 0x08191908, 0x2b081919, 0x08191908, - 0x2b082b08, 0x08191908, 0x2b190819, 0x08191908, 0x2b191908, 0x08191908, 0x2b2b0808, 0x08191908, - 0x08080819, 0x08191919, 0x08081908, 0x08191919, 0x0808192b, 0x08191919, 0x08082b19, 0x08191919, - 0x08190808, 0x08191919, 0x0819082b, 0x08191919, 0x08191919, 0x08191919, 0x08192b08, 0x08191919, - 0x082b0819, 0x08191919, 0x082b1908, 0x08191919, 0x19080808, 0x08191919, 0x1908082b, 0x08191919, - 0x19081919, 0x08191919, 0x19082b08, 0x08191919, 0x19190819, 0x08191919, 0x19191908, 0x08191919, - 0x192b0808, 0x08191919, 0x2b080819, 0x08191919, 0x2b081908, 0x08191919, 0x2b190808, 0x08191919, - 0x08080808, 0x0819192b, 0x08081919, 0x0819192b, 0x08082b08, 0x0819192b, 0x08190819, 0x0819192b, - 0x08191908, 0x0819192b, 0x082b0808, 0x0819192b, 0x19080819, 0x0819192b, 0x19081908, 0x0819192b, - 0x19190808, 0x0819192b, 0x2b080808, 0x0819192b, 0x2b2b2b2b, 0x0819192b, 0x08080819, 0x08192b08, - 0x08081908, 0x08192b08, 0x0808192b, 0x08192b08, 0x08082b19, 0x08192b08, 0x08190808, 0x08192b08, - 0x08191919, 0x08192b08, 0x08192b08, 0x08192b08, 0x082b0819, 0x08192b08, 0x19080808, 0x08192b08, - 0x1908082b, 0x08192b08, 0x19081919, 0x08192b08, 0x19082b08, 0x08192b08, 0x19190819, 0x08192b08, - 0x19191908, 0x08192b08, 0x192b0808, 0x08192b08, 0x2b080819, 0x08192b08, 0x2b081908, 0x08192b08, - 0x08080808, 0x08192b19, 0x0808082b, 0x08192b19, 0x08081919, 0x08192b19, 0x08082b08, 0x08192b19, - 0x08190819, 0x08192b19, 0x08191908, 0x08192b19, 0x082b0808, 0x08192b19, 0x19080819, 0x08192b19, - 0x19081908, 0x08192b19, 0x19190808, 0x08192b19, 0x192b2b19, 0x08192b19, 0x2b2b082b, 0x08192b19, - 0x08081908, 0x08192b2b, 0x08190808, 0x08192b2b, 0x19080808, 0x08192b2b, 0x1919192b, 0x08192b2b, - 0x08080808, 0x082b0808, 0x0808082b, 0x082b0808, 0x08081919, 0x082b0808, 0x08082b08, 0x082b0808, - 0x08190819, 0x082b0808, 0x08191908, 0x082b0808, 0x0819192b, 0x082b0808, 0x08192b19, 0x082b0808, - 0x082b0808, 0x082b0808, 0x082b1919, 0x082b0808, 0x082b2b2b, 0x082b0808, 0x19080819, 0x082b0808, - 0x19081908, 0x082b0808, 0x19190808, 0x082b0808, 0x1919082b, 0x082b0808, 0x19191919, 0x082b0808, - 0x192b1908, 0x082b0808, 0x2b080808, 0x082b0808, 0x2b082b2b, 0x082b0808, 0x2b191908, 0x082b0808, - 0x2b2b2b2b, 0x082b0808, 0x08080819, 0x082b0819, 0x08081908, 0x082b0819, 0x08190808, 0x082b0819, - 0x0819082b, 0x082b0819, 0x08191919, 0x082b0819, 0x082b0819, 0x082b0819, 0x19080808, 0x082b0819, - 0x1908082b, 0x082b0819, 0x19081919, 0x082b0819, 0x19190819, 0x082b0819, 0x19191908, 0x082b0819, - 0x192b0808, 0x082b0819, 0x2b080819, 0x082b0819, 0x2b081908, 0x082b0819, 0x2b190808, 0x082b0819, - 0x08080808, 0x082b082b, 0x08082b2b, 0x082b082b, 0x082b082b, 0x082b082b, 0x082b2b08, 0x082b082b, - 0x082b2b2b, 0x082b082b, 0x19081908, 0x082b082b, 0x19190808, 0x082b082b, 0x2b082b08, 0x082b082b, - 0x2b082b2b, 0x082b082b, 0x2b2b2b08, 0x082b082b, 0x08080819, 0x082b1908, 0x08081908, 0x082b1908, - 0x0808192b, 0x082b1908, 0x08082b19, 0x082b1908, 0x08190808, 0x082b1908, 0x08191919, 0x082b1908, - 0x08192b08, 0x082b1908, 0x082b0819, 0x082b1908, 0x082b1908, 0x082b1908, 0x19080808, 0x082b1908, - 0x1908082b, 0x082b1908, 0x19081919, 0x082b1908, 0x19082b08, 0x082b1908, 0x19190819, 0x082b1908, - 0x19191908, 0x082b1908, 0x192b0808, 0x082b1908, 0x2b080819, 0x082b1908, 0x2b081908, 0x082b1908, - 0x2b190808, 0x082b1908, 0x08080808, 0x082b1919, 0x08081919, 0x082b1919, 0x08082b08, 0x082b1919, - 0x08190819, 0x082b1919, 0x08191908, 0x082b1919, 0x082b0808, 0x082b1919, 0x19080819, 0x082b1919, - 0x19081908, 0x082b1919, 0x19190808, 0x082b1919, 0x192b192b, 0x082b1919, 0x2b080808, 0x082b1919, - 0x08080819, 0x082b192b, 0x08081908, 0x082b192b, 0x08190808, 0x082b192b, 0x19080808, 0x082b192b, - 0x19192b19, 0x082b192b, 0x08080808, 0x082b2b08, 0x08081919, 0x082b2b08, 0x08190819, 0x082b2b08, - 0x08191908, 0x082b2b08, 0x19080819, 0x082b2b08, 0x19081908, 0x082b2b08, 0x19190808, 0x082b2b08, - 0x2b082b2b, 0x082b2b08, 0x2b2b2b2b, 0x082b2b08, 0x08080819, 0x082b2b19, 0x08081908, 0x082b2b19, - 0x08190808, 0x082b2b19, 0x2b191919, 0x082b2b19, 0x08082b2b, 0x082b2b2b, 0x082b082b, 0x082b2b2b, - 0x192b1908, 0x082b2b2b, 0x2b082b08, 0x082b2b2b, 0x2b082b2b, 0x082b2b2b, 0x08080819, 0x19080808, - 0x08081908, 0x19080808, 0x0808192b, 0x19080808, 0x08082b19, 0x19080808, 0x08190808, 0x19080808, - 0x0819082b, 0x19080808, 0x08191919, 0x19080808, 0x08192b08, 0x19080808, 0x08192b2b, 0x19080808, - 0x082b0819, 0x19080808, 0x082b1908, 0x19080808, 0x082b192b, 0x19080808, 0x19080808, 0x19080808, - 0x1908082b, 0x19080808, 0x19081919, 0x19080808, 0x19082b08, 0x19080808, 0x19082b2b, 0x19080808, - 0x19190819, 0x19080808, 0x19191908, 0x19080808, 0x1919192b, 0x19080808, 0x19192b19, 0x19080808, - 0x192b0808, 0x19080808, 0x192b082b, 0x19080808, 0x192b1919, 0x19080808, 0x2b080819, 0x19080808, - 0x2b081908, 0x19080808, 0x2b190808, 0x19080808, 0x2b191919, 0x19080808, 0x2b192b08, 0x19080808, - 0x2b2b0819, 0x19080808, 0x2b2b1908, 0x19080808, 0x08080808, 0x19080819, 0x0808082b, 0x19080819, - 0x08081919, 0x19080819, 0x08082b08, 0x19080819, 0x08190819, 0x19080819, 0x08191908, 0x19080819, - 0x0819192b, 0x19080819, 0x08192b19, 0x19080819, 0x082b0808, 0x19080819, 0x082b082b, 0x19080819, - 0x082b1919, 0x19080819, 0x19080819, 0x19080819, 0x19081908, 0x19080819, 0x1908192b, 0x19080819, - 0x19082b19, 0x19080819, 0x19190808, 0x19080819, 0x1919082b, 0x19080819, 0x19191919, 0x19080819, - 0x19192b08, 0x19080819, 0x192b0819, 0x19080819, 0x192b1908, 0x19080819, 0x2b080808, 0x19080819, - 0x2b08082b, 0x19080819, 0x2b081919, 0x19080819, 0x2b082b08, 0x19080819, 0x2b190819, 0x19080819, - 0x2b191908, 0x19080819, 0x2b2b0808, 0x19080819, 0x08080819, 0x1908082b, 0x08081908, 0x1908082b, - 0x08190808, 0x1908082b, 0x0819082b, 0x1908082b, 0x08191919, 0x1908082b, 0x08192b08, 0x1908082b, - 0x082b1908, 0x1908082b, 0x19080808, 0x1908082b, 0x19081919, 0x1908082b, 0x19082b08, 0x1908082b, - 0x19190819, 0x1908082b, 0x19191908, 0x1908082b, 0x192b0808, 0x1908082b, 0x2b080819, 0x1908082b, - 0x2b081908, 0x1908082b, 0x08080808, 0x19081908, 0x0808082b, 0x19081908, 0x08081919, 0x19081908, - 0x08082b08, 0x19081908, 0x08082b2b, 0x19081908, 0x08190819, 0x19081908, 0x08191908, 0x19081908, - 0x0819192b, 0x19081908, 0x08192b19, 0x19081908, 0x082b0808, 0x19081908, 0x082b082b, 0x19081908, - 0x082b1919, 0x19081908, 0x082b2b08, 0x19081908, 0x19080819, 0x19081908, 0x19081908, 0x19081908, - 0x1908192b, 0x19081908, 0x19082b19, 0x19081908, 0x19190808, 0x19081908, 0x1919082b, 0x19081908, - 0x19191919, 0x19081908, 0x19192b08, 0x19081908, 0x192b0819, 0x19081908, 0x192b1908, 0x19081908, - 0x2b080808, 0x19081908, 0x2b08082b, 0x19081908, 0x2b081919, 0x19081908, 0x2b082b08, 0x19081908, - 0x2b190819, 0x19081908, 0x2b191908, 0x19081908, 0x2b2b0808, 0x19081908, 0x08080819, 0x19081919, - 0x08081908, 0x19081919, 0x0808192b, 0x19081919, 0x08082b19, 0x19081919, 0x08190808, 0x19081919, - 0x0819082b, 0x19081919, 0x08191919, 0x19081919, 0x08192b08, 0x19081919, 0x082b0819, 0x19081919, - 0x082b1908, 0x19081919, 0x19080808, 0x19081919, 0x1908082b, 0x19081919, 0x19081919, 0x19081919, - 0x19082b08, 0x19081919, 0x19190819, 0x19081919, 0x19191908, 0x19081919, 0x192b0808, 0x19081919, - 0x192b2b2b, 0x19081919, 0x2b080819, 0x19081919, 0x2b081908, 0x19081919, 0x2b190808, 0x19081919, - 0x08080808, 0x1908192b, 0x0808082b, 0x1908192b, 0x08081919, 0x1908192b, 0x08082b08, 0x1908192b, - 0x08190819, 0x1908192b, 0x08191908, 0x1908192b, 0x082b0808, 0x1908192b, 0x19080819, 0x1908192b, - 0x19081908, 0x1908192b, 0x19190808, 0x1908192b, 0x2b080808, 0x1908192b, 0x2b2b1919, 0x1908192b, - 0x08080819, 0x19082b08, 0x08081908, 0x19082b08, 0x08082b19, 0x19082b08, 0x08190808, 0x19082b08, - 0x0819082b, 0x19082b08, 0x08191919, 0x19082b08, 0x08192b08, 0x19082b08, 0x082b0819, 0x19082b08, - 0x082b1908, 0x19082b08, 0x19080808, 0x19082b08, 0x1908082b, 0x19082b08, 0x19081919, 0x19082b08, - 0x19082b08, 0x19082b08, 0x19190819, 0x19082b08, 0x19191908, 0x19082b08, 0x192b0808, 0x19082b08, - 0x2b081908, 0x19082b08, 0x2b190808, 0x19082b08, 0x08080808, 0x19082b19, 0x0808082b, 0x19082b19, - 0x08081919, 0x19082b19, 0x08082b08, 0x19082b19, 0x08190819, 0x19082b19, 0x08191908, 0x19082b19, - 0x082b0808, 0x19082b19, 0x19080819, 0x19082b19, 0x19081908, 0x19082b19, 0x19190808, 0x19082b19, - 0x2b080808, 0x19082b19, 0x2b19192b, 0x19082b19, 0x08080819, 0x19082b2b, 0x08081908, 0x19082b2b, - 0x08190808, 0x19082b2b, 0x19080808, 0x19082b2b, 0x08080808, 0x19190808, 0x0808082b, 0x19190808, - 0x08081919, 0x19190808, 0x08082b08, 0x19190808, 0x08190819, 0x19190808, 0x08191908, 0x19190808, - 0x0819192b, 0x19190808, 0x08192b19, 0x19190808, 0x082b0808, 0x19190808, 0x082b082b, 0x19190808, - 0x082b1919, 0x19190808, 0x082b2b08, 0x19190808, 0x19080819, 0x19190808, 0x19081908, 0x19190808, - 0x1908192b, 0x19190808, 0x19082b19, 0x19190808, 0x19190808, 0x19190808, 0x1919082b, 0x19190808, - 0x19191919, 0x19190808, 0x19192b08, 0x19190808, 0x192b0819, 0x19190808, 0x192b1908, 0x19190808, - 0x2b080808, 0x19190808, 0x2b08082b, 0x19190808, 0x2b081919, 0x19190808, 0x2b082b08, 0x19190808, - 0x2b190819, 0x19190808, 0x2b191908, 0x19190808, 0x08080819, 0x19190819, 0x08081908, 0x19190819, - 0x0808192b, 0x19190819, 0x08082b19, 0x19190819, 0x08190808, 0x19190819, 0x0819082b, 0x19190819, - 0x08191919, 0x19190819, 0x08192b08, 0x19190819, 0x082b0819, 0x19190819, 0x082b1908, 0x19190819, - 0x19080808, 0x19190819, 0x1908082b, 0x19190819, 0x19081919, 0x19190819, 0x19082b08, 0x19190819, - 0x19190819, 0x19190819, 0x19191908, 0x19190819, 0x192b0808, 0x19190819, 0x2b080819, 0x19190819, - 0x2b081908, 0x19190819, 0x2b190808, 0x19190819, 0x08080808, 0x1919082b, 0x08081919, 0x1919082b, - 0x08082b08, 0x1919082b, 0x08190819, 0x1919082b, 0x08191908, 0x1919082b, 0x082b0808, 0x1919082b, - 0x19080819, 0x1919082b, 0x19081908, 0x1919082b, 0x19190808, 0x1919082b, 0x192b2b19, 0x1919082b, - 0x2b080808, 0x1919082b, 0x08080819, 0x19191908, 0x08081908, 0x19191908, 0x0808192b, 0x19191908, - 0x08082b19, 0x19191908, 0x08190808, 0x19191908, 0x0819082b, 0x19191908, 0x08191919, 0x19191908, - 0x08192b08, 0x19191908, 0x082b0819, 0x19191908, 0x082b1908, 0x19191908, 0x19080808, 0x19191908, - 0x1908082b, 0x19191908, 0x19081919, 0x19191908, 0x19082b08, 0x19191908, 0x19190819, 0x19191908, - 0x19191908, 0x19191908, 0x192b0808, 0x19191908, 0x2b080819, 0x19191908, 0x2b081908, 0x19191908, - 0x2b190808, 0x19191908, 0x08080808, 0x19191919, 0x0808082b, 0x19191919, 0x08081919, 0x19191919, - 0x08082b08, 0x19191919, 0x08190819, 0x19191919, 0x08191908, 0x19191919, 0x082b0808, 0x19191919, - 0x19080819, 0x19191919, 0x19081908, 0x19191919, 0x19190808, 0x19191919, 0x2b080808, 0x19191919, - 0x08080819, 0x1919192b, 0x08081908, 0x1919192b, 0x08190808, 0x1919192b, 0x082b192b, 0x1919192b, - 0x19080808, 0x1919192b, 0x08080808, 0x19192b08, 0x0808082b, 0x19192b08, 0x08081919, 0x19192b08, - 0x08082b08, 0x19192b08, 0x08190819, 0x19192b08, 0x08191908, 0x19192b08, 0x082b0808, 0x19192b08, - 0x19080819, 0x19192b08, 0x19081908, 0x19192b08, 0x19190808, 0x19192b08, 0x19192b2b, 0x19192b08, - 0x2b080808, 0x19192b08, 0x08080819, 0x19192b19, 0x08081908, 0x19192b19, 0x08190808, 0x19192b19, - 0x19080808, 0x19192b19, 0x08080808, 0x19192b2b, 0x08192b19, 0x19192b2b, 0x2b081919, 0x19192b2b, - 0x2b2b2b08, 0x19192b2b, 0x08080819, 0x192b0808, 0x08081908, 0x192b0808, 0x0808192b, 0x192b0808, - 0x08190808, 0x192b0808, 0x0819082b, 0x192b0808, 0x08191919, 0x192b0808, 0x08192b08, 0x192b0808, - 0x082b0819, 0x192b0808, 0x082b1908, 0x192b0808, 0x19080808, 0x192b0808, 0x19081919, 0x192b0808, - 0x19082b08, 0x192b0808, 0x19190819, 0x192b0808, 0x19191908, 0x192b0808, 0x192b0808, 0x192b0808, - 0x2b081908, 0x192b0808, 0x2b190808, 0x192b0808, 0x08080808, 0x192b0819, 0x0808082b, 0x192b0819, - 0x08081919, 0x192b0819, 0x08082b08, 0x192b0819, 0x08190819, 0x192b0819, 0x08191908, 0x192b0819, - 0x082b0808, 0x192b0819, 0x19080819, 0x192b0819, 0x19081908, 0x192b0819, 0x19190808, 0x192b0819, - 0x2b080808, 0x192b0819, 0x2b192b19, 0x192b0819, 0x08081908, 0x192b082b, 0x08190808, 0x192b082b, - 0x19080808, 0x192b082b, 0x1919192b, 0x192b082b, 0x2b2b0819, 0x192b082b, 0x08080808, 0x192b1908, - 0x08081919, 0x192b1908, 0x08082b08, 0x192b1908, 0x08190819, 0x192b1908, 0x08191908, 0x192b1908, - 0x082b0808, 0x192b1908, 0x19080819, 0x192b1908, 0x19081908, 0x192b1908, 0x19190808, 0x192b1908, - 0x2b080808, 0x192b1908, 0x08080819, 0x192b1919, 0x08081908, 0x192b1919, 0x08190808, 0x192b1919, - 0x19080808, 0x192b1919, 0x19082b2b, 0x192b1919, 0x192b2b08, 0x192b1919, 0x2b19082b, 0x192b1919, - 0x08080808, 0x192b192b, 0x2b191908, 0x192b192b, 0x08080819, 0x192b2b08, 0x08081908, 0x192b2b08, - 0x08190808, 0x192b2b08, 0x192b1919, 0x192b2b08, 0x2b192b08, 0x192b2b08, 0x08080808, 0x192b2b19, - 0x082b2b2b, 0x192b2b19, 0x1908082b, 0x192b2b2b, 0x2b2b0819, 0x192b2b2b, 0x08080808, 0x2b080808, - 0x0808082b, 0x2b080808, 0x08081919, 0x2b080808, 0x08082b08, 0x2b080808, 0x08190819, 0x2b080808, - 0x08191908, 0x2b080808, 0x08192b19, 0x2b080808, 0x082b0808, 0x2b080808, 0x082b1919, 0x2b080808, - 0x19080819, 0x2b080808, 0x19081908, 0x2b080808, 0x19190808, 0x2b080808, 0x1919082b, 0x2b080808, - 0x19191919, 0x2b080808, 0x19192b08, 0x2b080808, 0x192b0819, 0x2b080808, 0x2b080808, 0x2b080808, - 0x2b081919, 0x2b080808, 0x2b190819, 0x2b080808, 0x2b191908, 0x2b080808, 0x08080819, 0x2b080819, - 0x08081908, 0x2b080819, 0x08082b19, 0x2b080819, 0x08190808, 0x2b080819, 0x0819082b, 0x2b080819, - 0x08191919, 0x2b080819, 0x08192b08, 0x2b080819, 0x082b0819, 0x2b080819, 0x082b1908, 0x2b080819, - 0x19080808, 0x2b080819, 0x1908082b, 0x2b080819, 0x19081919, 0x2b080819, 0x19082b08, 0x2b080819, - 0x19190819, 0x2b080819, 0x19191908, 0x2b080819, 0x2b080819, 0x2b080819, 0x2b081908, 0x2b080819, - 0x2b190808, 0x2b080819, 0x2b2b2b19, 0x2b080819, 0x08080808, 0x2b08082b, 0x08081919, 0x2b08082b, - 0x08082b2b, 0x2b08082b, 0x08190819, 0x2b08082b, 0x08191908, 0x2b08082b, 0x19080819, 0x2b08082b, - 0x19081908, 0x2b08082b, 0x19190808, 0x2b08082b, 0x08080819, 0x2b081908, 0x08081908, 0x2b081908, - 0x0808192b, 0x2b081908, 0x08082b19, 0x2b081908, 0x08190808, 0x2b081908, 0x0819082b, 0x2b081908, - 0x08191919, 0x2b081908, 0x08192b08, 0x2b081908, 0x082b0819, 0x2b081908, 0x19080808, 0x2b081908, - 0x1908082b, 0x2b081908, 0x19081919, 0x2b081908, 0x19082b08, 0x2b081908, 0x19190819, 0x2b081908, - 0x19191908, 0x2b081908, 0x192b0808, 0x2b081908, 0x2b080819, 0x2b081908, 0x2b081908, 0x2b081908, - 0x2b190808, 0x2b081908, 0x08080808, 0x2b081919, 0x0808082b, 0x2b081919, 0x08081919, 0x2b081919, - 0x08082b08, 0x2b081919, 0x08190819, 0x2b081919, 0x08191908, 0x2b081919, 0x082b0808, 0x2b081919, - 0x19080819, 0x2b081919, 0x19081908, 0x2b081919, 0x19190808, 0x2b081919, 0x2b080808, 0x2b081919, - 0x2b082b2b, 0x2b081919, 0x08080819, 0x2b08192b, 0x08081908, 0x2b08192b, 0x08190808, 0x2b08192b, - 0x082b2b19, 0x2b08192b, 0x19080808, 0x2b08192b, 0x08080808, 0x2b082b08, 0x08081919, 0x2b082b08, - 0x08190819, 0x2b082b08, 0x08191908, 0x2b082b08, 0x19080819, 0x2b082b08, 0x19081908, 0x2b082b08, - 0x19190808, 0x2b082b08, 0x2b2b082b, 0x2b082b08, 0x08080819, 0x2b082b19, 0x08081908, 0x2b082b19, - 0x19080808, 0x2b082b19, 0x192b1919, 0x2b082b19, 0x082b082b, 0x2b082b2b, 0x19192b08, 0x2b082b2b, - 0x19192b2b, 0x2b082b2b, 0x2b08082b, 0x2b082b2b, 0x2b2b082b, 0x2b082b2b, 0x08080819, 0x2b190808, - 0x08081908, 0x2b190808, 0x08082b19, 0x2b190808, 0x08190808, 0x2b190808, 0x0819082b, 0x2b190808, - 0x08191919, 0x2b190808, 0x08192b08, 0x2b190808, 0x082b1908, 0x2b190808, 0x19080808, 0x2b190808, - 0x1908082b, 0x2b190808, 0x19081919, 0x2b190808, 0x19082b08, 0x2b190808, 0x19190819, 0x2b190808, - 0x19191908, 0x2b190808, 0x192b0808, 0x2b190808, 0x2b080819, 0x2b190808, 0x2b081908, 0x2b190808, - 0x2b190808, 0x2b190808, 0x08080808, 0x2b190819, 0x08081919, 0x2b190819, 0x08190819, 0x2b190819, - 0x08191908, 0x2b190819, 0x19080819, 0x2b190819, 0x19081908, 0x2b190819, 0x19190808, 0x2b190819, - 0x19192b2b, 0x2b190819, 0x08080819, 0x2b19082b, 0x08081908, 0x2b19082b, 0x08190808, 0x2b19082b, - 0x19080808, 0x2b19082b, 0x2b2b192b, 0x2b19082b, 0x08080808, 0x2b191908, 0x0808082b, 0x2b191908, - 0x08081919, 0x2b191908, 0x08082b08, 0x2b191908, 0x08190819, 0x2b191908, 0x08191908, 0x2b191908, - 0x082b0808, 0x2b191908, 0x19080819, 0x2b191908, 0x19081908, 0x2b191908, 0x19190808, 0x2b191908, - 0x2b080808, 0x2b191908, 0x2b19192b, 0x2b191908, 0x08080819, 0x2b191919, 0x08081908, 0x2b191919, - 0x08190808, 0x2b191919, 0x19080808, 0x2b191919, 0x2b192b08, 0x2b191919, 0x2b2b0819, 0x2b191919, - 0x08080808, 0x2b19192b, 0x1908192b, 0x2b19192b, 0x192b1908, 0x2b19192b, 0x08080819, 0x2b192b08, - 0x08081908, 0x2b192b08, 0x08190808, 0x2b192b08, 0x082b192b, 0x2b192b08, 0x19080808, 0x2b192b08, - 0x2b2b2b19, 0x2b192b08, 0x08080808, 0x2b192b19, 0x19082b19, 0x2b192b19, 0x1919082b, 0x2b192b19, - 0x2b190808, 0x2b192b2b, 0x08080808, 0x2b2b0808, 0x08081919, 0x2b2b0808, 0x08082b2b, 0x2b2b0808, - 0x08191908, 0x2b2b0808, 0x082b082b, 0x2b2b0808, 0x082b2b2b, 0x2b2b0808, 0x19080819, 0x2b2b0808, - 0x19081908, 0x2b2b0808, 0x19190808, 0x2b2b0808, 0x2b2b082b, 0x2b2b0808, 0x2b2b2b2b, 0x2b2b0808, - 0x19080808, 0x2b2b0819, 0x192b1919, 0x2b2b0819, 0x0808082b, 0x2b2b082b, 0x08082b2b, 0x2b2b082b, - 0x082b082b, 0x2b2b082b, 0x082b2b08, 0x2b2b082b, 0x082b2b2b, 0x2b2b082b, 0x2b08082b, 0x2b2b082b, - 0x2b082b08, 0x2b2b082b, 0x2b082b2b, 0x2b2b082b, 0x2b2b2b08, 0x2b2b082b, 0x08080819, 0x2b2b1908, - 0x08081908, 0x2b2b1908, 0x08190808, 0x2b2b1908, 0x19080808, 0x2b2b1908, 0x2b082b19, 0x2b2b1908, - 0x2b2b1908, 0x2b2b1908, 0x08080808, 0x2b2b1919, 0x08192b19, 0x2b2b1919, 0x19190819, 0x2b2b192b, - 0x08082b2b, 0x2b2b2b08, 0x082b2b08, 0x2b2b2b08, 0x2b2b082b, 0x2b2b2b08, 0x19191908, 0x2b2b2b19, - 0x2b08192b, 0x2b2b2b19, 0x08082b08, 0x2b2b2b2b, 0x08082b2b, 0x2b2b2b2b, 0x082b0808, 0x2b2b2b2b, - 0x082b082b, 0x2b2b2b2b, 0x082b2b08, 0x2b2b2b2b, 0x2b082b08, 0x2b2b2b2b, 0x2b2b2b2b, 0x2b2b2b2b -); - -struct iq2_s { - d: f16, - qs: array, - qh: array, - scales: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -1236,47 +639,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(IQ2_S) #decl(IQ3_XSS) - -const iq3xxs_grid = array( - 0x04040404, 0x04040414, 0x04040424, 0x04040c0c, 0x04040c1c, 0x04040c3e, 0x04041404, 0x04041414, - 0x04041c0c, 0x04042414, 0x04043e1c, 0x04043e2c, 0x040c040c, 0x040c041c, 0x040c0c04, 0x040c0c14, - 0x040c140c, 0x040c142c, 0x040c1c04, 0x040c1c14, 0x040c240c, 0x040c2c24, 0x040c3e04, 0x04140404, - 0x04140414, 0x04140424, 0x04140c0c, 0x04141404, 0x04141414, 0x04141c0c, 0x04141c1c, 0x04141c3e, - 0x04142c0c, 0x04142c3e, 0x04143e2c, 0x041c040c, 0x041c043e, 0x041c0c04, 0x041c0c14, 0x041c142c, - 0x041c3e04, 0x04240c1c, 0x04241c3e, 0x04242424, 0x04242c3e, 0x04243e1c, 0x04243e2c, 0x042c040c, - 0x042c043e, 0x042c1c14, 0x042c2c14, 0x04341c2c, 0x04343424, 0x043e0c04, 0x043e0c24, 0x043e0c34, - 0x043e241c, 0x043e340c, 0x0c04040c, 0x0c04041c, 0x0c040c04, 0x0c040c14, 0x0c04140c, 0x0c04141c, - 0x0c041c04, 0x0c041c14, 0x0c041c24, 0x0c04243e, 0x0c042c04, 0x0c0c0404, 0x0c0c0414, 0x0c0c0c0c, - 0x0c0c1404, 0x0c0c1414, 0x0c14040c, 0x0c14041c, 0x0c140c04, 0x0c140c14, 0x0c14140c, 0x0c141c04, - 0x0c143e14, 0x0c1c0404, 0x0c1c0414, 0x0c1c1404, 0x0c1c1c0c, 0x0c1c2434, 0x0c1c3434, 0x0c24040c, - 0x0c24042c, 0x0c242c04, 0x0c2c1404, 0x0c2c1424, 0x0c2c2434, 0x0c2c3e0c, 0x0c34042c, 0x0c3e1414, - 0x0c3e2404, 0x14040404, 0x14040414, 0x14040c0c, 0x14040c1c, 0x14041404, 0x14041414, 0x14041434, - 0x14041c0c, 0x14042414, 0x140c040c, 0x140c041c, 0x140c042c, 0x140c0c04, 0x140c0c14, 0x140c140c, - 0x140c1c04, 0x140c341c, 0x140c343e, 0x140c3e04, 0x14140404, 0x14140414, 0x14140c0c, 0x14140c3e, - 0x14141404, 0x14141414, 0x14141c3e, 0x14142404, 0x14142c2c, 0x141c040c, 0x141c0c04, 0x141c0c24, - 0x141c3e04, 0x141c3e24, 0x14241c2c, 0x14242c1c, 0x142c041c, 0x142c143e, 0x142c240c, 0x142c3e24, - 0x143e040c, 0x143e041c, 0x143e0c34, 0x143e242c, 0x1c04040c, 0x1c040c04, 0x1c040c14, 0x1c04140c, - 0x1c04141c, 0x1c042c04, 0x1c04342c, 0x1c043e14, 0x1c0c0404, 0x1c0c0414, 0x1c0c1404, 0x1c0c1c0c, - 0x1c0c2424, 0x1c0c2434, 0x1c14040c, 0x1c14041c, 0x1c140c04, 0x1c14142c, 0x1c142c14, 0x1c143e14, - 0x1c1c0c0c, 0x1c1c1c1c, 0x1c241c04, 0x1c24243e, 0x1c243e14, 0x1c2c0404, 0x1c2c0434, 0x1c2c1414, - 0x1c2c2c2c, 0x1c340c24, 0x1c341c34, 0x1c34341c, 0x1c3e1c1c, 0x1c3e3404, 0x24040424, 0x24040c3e, - 0x24041c2c, 0x24041c3e, 0x24042c1c, 0x24042c3e, 0x240c3e24, 0x24141404, 0x24141c3e, 0x24142404, - 0x24143404, 0x24143434, 0x241c043e, 0x241c242c, 0x24240424, 0x24242c0c, 0x24243424, 0x242c142c, - 0x242c241c, 0x242c3e04, 0x243e042c, 0x243e0c04, 0x243e0c14, 0x243e1c04, 0x2c040c14, 0x2c04240c, - 0x2c043e04, 0x2c0c0404, 0x2c0c0434, 0x2c0c1434, 0x2c0c2c2c, 0x2c140c24, 0x2c141c14, 0x2c143e14, - 0x2c1c0414, 0x2c1c2c1c, 0x2c240c04, 0x2c24141c, 0x2c24143e, 0x2c243e14, 0x2c2c0414, 0x2c2c1c0c, - 0x2c342c04, 0x2c3e1424, 0x2c3e2414, 0x34041424, 0x34042424, 0x34042434, 0x34043424, 0x340c140c, - 0x340c340c, 0x34140c3e, 0x34143424, 0x341c1c04, 0x341c1c34, 0x34242424, 0x342c042c, 0x342c2c14, - 0x34341c1c, 0x343e041c, 0x343e140c, 0x3e04041c, 0x3e04042c, 0x3e04043e, 0x3e040c04, 0x3e041c14, - 0x3e042c14, 0x3e0c1434, 0x3e0c2404, 0x3e140c14, 0x3e14242c, 0x3e142c14, 0x3e1c0404, 0x3e1c0c2c, - 0x3e1c1c1c, 0x3e1c3404, 0x3e24140c, 0x3e24240c, 0x3e2c0404, 0x3e2c0414, 0x3e2c1424, 0x3e341c04 -); - -struct iq3_xxs { - d: f16, - qs: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -1309,82 +671,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(IQ3_XSS) #decl(IQ3_S) - -const iq3s_grid = array( - 0x01010101, 0x01010103, 0x01010105, 0x0101010b, 0x0101010f, 0x01010301, 0x01010303, 0x01010305, - 0x01010309, 0x0101030d, 0x01010501, 0x01010503, 0x0101050b, 0x01010707, 0x01010901, 0x01010905, - 0x0101090b, 0x0101090f, 0x01010b03, 0x01010b07, 0x01010d01, 0x01010d05, 0x01010f03, 0x01010f09, - 0x01010f0f, 0x01030101, 0x01030103, 0x01030105, 0x01030109, 0x01030301, 0x01030303, 0x0103030b, - 0x01030501, 0x01030507, 0x0103050f, 0x01030703, 0x0103070b, 0x01030909, 0x01030d03, 0x01030d0b, - 0x01030f05, 0x01050101, 0x01050103, 0x0105010b, 0x0105010f, 0x01050301, 0x01050307, 0x0105030d, - 0x01050503, 0x0105050b, 0x01050701, 0x01050709, 0x01050905, 0x0105090b, 0x0105090f, 0x01050b03, - 0x01050b07, 0x01050f01, 0x01050f07, 0x01070107, 0x01070303, 0x0107030b, 0x01070501, 0x01070505, - 0x01070703, 0x01070707, 0x0107070d, 0x01070909, 0x01070b01, 0x01070b05, 0x01070d0f, 0x01070f03, - 0x01070f0b, 0x01090101, 0x01090307, 0x0109030f, 0x01090503, 0x01090509, 0x01090705, 0x01090901, - 0x01090907, 0x01090b03, 0x01090f01, 0x010b0105, 0x010b0109, 0x010b0501, 0x010b0505, 0x010b050d, - 0x010b0707, 0x010b0903, 0x010b090b, 0x010b090f, 0x010b0d0d, 0x010b0f07, 0x010d010d, 0x010d0303, - 0x010d0307, 0x010d0703, 0x010d0b05, 0x010d0f03, 0x010f0101, 0x010f0105, 0x010f0109, 0x010f0501, - 0x010f0505, 0x010f050d, 0x010f0707, 0x010f0b01, 0x010f0b09, 0x03010101, 0x03010103, 0x03010105, - 0x03010109, 0x03010301, 0x03010303, 0x03010307, 0x0301030b, 0x0301030f, 0x03010501, 0x03010505, - 0x03010703, 0x03010709, 0x0301070d, 0x03010b09, 0x03010b0d, 0x03010d03, 0x03010f05, 0x03030101, - 0x03030103, 0x03030107, 0x0303010d, 0x03030301, 0x03030309, 0x03030503, 0x03030701, 0x03030707, - 0x03030903, 0x03030b01, 0x03030b05, 0x03030f01, 0x03030f0d, 0x03050101, 0x03050305, 0x0305030b, - 0x0305030f, 0x03050501, 0x03050509, 0x03050705, 0x03050901, 0x03050907, 0x03050b0b, 0x03050d01, - 0x03050f05, 0x03070103, 0x03070109, 0x0307010f, 0x03070301, 0x03070307, 0x03070503, 0x0307050f, - 0x03070701, 0x03070709, 0x03070903, 0x03070d05, 0x03070f01, 0x03090107, 0x0309010b, 0x03090305, - 0x03090309, 0x03090703, 0x03090707, 0x03090905, 0x0309090d, 0x03090b01, 0x03090b09, 0x030b0103, - 0x030b0301, 0x030b0307, 0x030b0503, 0x030b0701, 0x030b0705, 0x030b0b03, 0x030d0501, 0x030d0509, - 0x030d050f, 0x030d0909, 0x030d090d, 0x030f0103, 0x030f0107, 0x030f0301, 0x030f0305, 0x030f0503, - 0x030f070b, 0x030f0903, 0x030f0d05, 0x030f0f01, 0x05010101, 0x05010103, 0x05010107, 0x0501010b, - 0x0501010f, 0x05010301, 0x05010305, 0x05010309, 0x0501030d, 0x05010503, 0x05010507, 0x0501050f, - 0x05010701, 0x05010705, 0x05010903, 0x05010907, 0x0501090b, 0x05010b01, 0x05010b05, 0x05010d0f, - 0x05010f01, 0x05010f07, 0x05010f0b, 0x05030101, 0x05030105, 0x05030301, 0x05030307, 0x0503030f, - 0x05030505, 0x0503050b, 0x05030703, 0x05030709, 0x05030905, 0x05030b03, 0x05050103, 0x05050109, - 0x0505010f, 0x05050503, 0x05050507, 0x05050701, 0x0505070f, 0x05050903, 0x05050b07, 0x05050b0f, - 0x05050f03, 0x05050f09, 0x05070101, 0x05070105, 0x0507010b, 0x05070303, 0x05070505, 0x05070509, - 0x05070703, 0x05070707, 0x05070905, 0x05070b01, 0x05070d0d, 0x05090103, 0x0509010f, 0x05090501, - 0x05090507, 0x05090705, 0x0509070b, 0x05090903, 0x05090f05, 0x05090f0b, 0x050b0109, 0x050b0303, - 0x050b0505, 0x050b070f, 0x050b0901, 0x050b0b07, 0x050b0f01, 0x050d0101, 0x050d0105, 0x050d010f, - 0x050d0503, 0x050d0b0b, 0x050d0d03, 0x050f010b, 0x050f0303, 0x050f050d, 0x050f0701, 0x050f0907, - 0x050f0b01, 0x07010105, 0x07010303, 0x07010307, 0x0701030b, 0x0701030f, 0x07010505, 0x07010703, - 0x07010707, 0x0701070b, 0x07010905, 0x07010909, 0x0701090f, 0x07010b03, 0x07010d07, 0x07010f03, - 0x07030103, 0x07030107, 0x0703010b, 0x07030309, 0x07030503, 0x07030507, 0x07030901, 0x07030d01, - 0x07030f05, 0x07030f0d, 0x07050101, 0x07050305, 0x07050501, 0x07050705, 0x07050709, 0x07050b01, - 0x07070103, 0x07070301, 0x07070309, 0x07070503, 0x07070507, 0x0707050f, 0x07070701, 0x07070903, - 0x07070907, 0x0707090f, 0x07070b0b, 0x07070f07, 0x07090107, 0x07090303, 0x0709030d, 0x07090505, - 0x07090703, 0x07090b05, 0x07090d01, 0x07090d09, 0x070b0103, 0x070b0301, 0x070b0305, 0x070b050b, - 0x070b0705, 0x070b0909, 0x070b0b0d, 0x070b0f07, 0x070d030d, 0x070d0903, 0x070f0103, 0x070f0107, - 0x070f0501, 0x070f0505, 0x070f070b, 0x09010101, 0x09010109, 0x09010305, 0x09010501, 0x09010509, - 0x0901050f, 0x09010705, 0x09010903, 0x09010b01, 0x09010f01, 0x09030105, 0x0903010f, 0x09030303, - 0x09030307, 0x09030505, 0x09030701, 0x0903070b, 0x09030907, 0x09030b03, 0x09030b0b, 0x09050103, - 0x09050107, 0x09050301, 0x0905030b, 0x09050503, 0x09050707, 0x09050901, 0x09050b0f, 0x09050d05, - 0x09050f01, 0x09070109, 0x09070303, 0x09070307, 0x09070501, 0x09070505, 0x09070703, 0x0907070b, - 0x09090101, 0x09090105, 0x09090509, 0x0909070f, 0x09090901, 0x09090f03, 0x090b010b, 0x090b010f, - 0x090b0503, 0x090b0d05, 0x090d0307, 0x090d0709, 0x090d0d01, 0x090f0301, 0x090f030b, 0x090f0701, - 0x090f0907, 0x090f0b03, 0x0b010105, 0x0b010301, 0x0b010309, 0x0b010505, 0x0b010901, 0x0b010909, - 0x0b01090f, 0x0b010b05, 0x0b010d0d, 0x0b010f09, 0x0b030103, 0x0b030107, 0x0b03010b, 0x0b030305, - 0x0b030503, 0x0b030705, 0x0b030f05, 0x0b050101, 0x0b050303, 0x0b050507, 0x0b050701, 0x0b05070d, - 0x0b050b07, 0x0b070105, 0x0b07010f, 0x0b070301, 0x0b07050f, 0x0b070909, 0x0b070b03, 0x0b070d0b, - 0x0b070f07, 0x0b090103, 0x0b090109, 0x0b090501, 0x0b090705, 0x0b09090d, 0x0b0b0305, 0x0b0b050d, - 0x0b0b0b03, 0x0b0b0b07, 0x0b0d0905, 0x0b0f0105, 0x0b0f0109, 0x0b0f0505, 0x0d010303, 0x0d010307, - 0x0d01030b, 0x0d010703, 0x0d010707, 0x0d010d01, 0x0d030101, 0x0d030501, 0x0d03050f, 0x0d030d09, - 0x0d050305, 0x0d050709, 0x0d050905, 0x0d050b0b, 0x0d050d05, 0x0d050f01, 0x0d070101, 0x0d070309, - 0x0d070503, 0x0d070901, 0x0d09050b, 0x0d090907, 0x0d090d05, 0x0d0b0101, 0x0d0b0107, 0x0d0b0709, - 0x0d0b0d01, 0x0d0d010b, 0x0d0d0901, 0x0d0f0303, 0x0d0f0307, 0x0f010101, 0x0f010109, 0x0f01010f, - 0x0f010501, 0x0f010505, 0x0f01070d, 0x0f010901, 0x0f010b09, 0x0f010d05, 0x0f030105, 0x0f030303, - 0x0f030509, 0x0f030907, 0x0f03090b, 0x0f050103, 0x0f050109, 0x0f050301, 0x0f05030d, 0x0f050503, - 0x0f050701, 0x0f050b03, 0x0f070105, 0x0f070705, 0x0f07070b, 0x0f070b07, 0x0f090103, 0x0f09010b, - 0x0f090307, 0x0f090501, 0x0f090b01, 0x0f0b0505, 0x0f0b0905, 0x0f0d0105, 0x0f0d0703, 0x0f0f0101 -); - -struct iq3_s { - d: f16, - qs: array, - qh: array, - signs: array, - scales: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -1431,151 +717,7 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { } #enddecl(IQ3_S) -#decl(IQ1_TABLE) - -const IQ1_DELTA: f32 = 0.125; - -const iq1_grid = array( - 0xfffdffff, 0xfff7fff0, 0xffccfff5, 0xffdfffc0, 0xffd7ffdd, 0xff30ffd5, 0xff03ff0c, 0xff10ff01, - 0xff7dff7f, 0xff75ff77, 0xff5fff40, 0xff57ff5d, 0xfcf3ff55, 0xfcccfcf0, 0xfcc1fcc3, 0xfcc5fcc4, - 0xfc3cfcd0, 0xfc34fc31, 0xfc00fc0d, 0xfc1cfc05, 0xfc11fc13, 0xfc70fc17, 0xfc43fc4c, 0xfc50fc41, - 0xfdfdfdff, 0xfdf5fdf7, 0xfddffdc0, 0xfdd7fddd, 0xfd30fdd5, 0xfd04fd0c, 0xfd14fd13, 0xfd7dfd7f, - 0xfd75fd77, 0xfd40fd4c, 0xfd5ffd44, 0xfd57fd5d, 0xf3ccfd55, 0xf3c1f3c3, 0xf33cf3d0, 0xf300f334, - 0xf313f305, 0xf34cf310, 0xf350f344, 0xf0f3f0fc, 0xf0f1f0f0, 0xf0c7f0c0, 0xf0d4f0c5, 0xf030f03f, - 0xf00ff035, 0xf003f00c, 0xf001f000, 0xf01ff004, 0xf010f01d, 0xf015f017, 0xf04cf07c, 0xf047f040, - 0xf05cf045, 0xf050f053, 0xf054f051, 0xf1c4f1c3, 0xf133f13c, 0xf10df10f, 0xf107f100, 0xf11cf11f, - 0xf114f111, 0xf14cf170, 0xf144f143, 0xf7fdf7ff, 0xf7f5f7f7, 0xf7dff7c0, 0xf7d7f7dd, 0xf730f7d5, - 0xf701f70c, 0xf77ff710, 0xf777f77d, 0xf740f775, 0xf75df75f, 0xf755f757, 0xf4ccf4f0, 0xf4c4f4c3, - 0xf4d0f4d3, 0xf40ff43c, 0xf400f40c, 0xf413f41c, 0xf44cf414, 0xf441f443, 0xf450f444, 0xf5fdf5ff, - 0xf5f5f5f7, 0xf5dff5c0, 0xf5d7f5dd, 0xf530f5d5, 0xf504f50c, 0xf510f51c, 0xf57df57f, 0xf577f570, - 0xf540f575, 0xf55df55f, 0xf555f557, 0xcfcccfcf, 0xcfc4cfc3, 0xcfd0cfd3, 0xcf33cf3c, 0xcf00cf0f, - 0xcf1ccf07, 0xcf10cf13, 0xcf4ccf14, 0xcf41cf43, 0xcf50cf5c, 0xccf3ccfc, 0xccf4ccf1, 0xcccdcccf, - 0xccc7ccc0, 0xccd3ccdc, 0xcc30ccd4, 0xcc0fcc35, 0xcc0dcc0c, 0xcc00cc03, 0xcc04cc01, 0xcc10cc1f, - 0xcc4dcc73, 0xcc5ccc40, 0xcdcccc53, 0xcdc1cdc3, 0xcd3fcdd0, 0xcd34cd31, 0xcd00cd0d, 0xcd05cd07, - 0xcd11cd13, 0xcd4ccd70, 0xcd41cd43, 0xc3fccd50, 0xc3f4c3f1, 0xc3c0c3c3, 0xc3c4c3c7, 0xc3d1c3dc, - 0xc330c33c, 0xc337c331, 0xc30cc335, 0xc300c303, 0xc304c301, 0xc310c31d, 0xc373c317, 0xc34fc374, - 0xc340c343, 0xc344c347, 0xc35cc345, 0xc350c353, 0xc0fdc354, 0xc0f5c0f0, 0xc0c3c0cc, 0xc0c1c0c0, - 0xc0dfc0c4, 0xc0d0c0dd, 0xc0d5c0d7, 0xc033c03c, 0xc031c030, 0xc00dc00c, 0xc000c003, 0xc004c001, - 0xc01cc005, 0xc010c013, 0xc014c011, 0xc07dc07f, 0xc070c073, 0xc075c077, 0xc04cc04f, 0xc040c043, - 0xc044c041, 0xc05fc045, 0xc050c05d, 0xc1f3c1fc, 0xc1f1c1f0, 0xc1c1c1c0, 0xc1c5c1c7, 0xc1d1c1dc, - 0xc13dc13f, 0xc130c133, 0xc135c137, 0xc100c10c, 0xc107c101, 0xc11cc104, 0xc110c113, 0xc114c117, - 0xc171c115, 0xc14dc175, 0xc153c140, 0xc7ccc154, 0xc7d0c7c1, 0xc733c73c, 0xc734c731, 0xc700c70f, - 0xc705c707, 0xc71cc71f, 0xc711c713, 0xc770c714, 0xc743c74c, 0xc4cfc750, 0xc4c0c4cd, 0xc4dcc4c5, - 0xc43dc4d0, 0xc430c433, 0xc40cc437, 0xc400c403, 0xc404c401, 0xc41fc405, 0xc415c410, 0xc44cc474, - 0xc440c44d, 0xc45cc447, 0xc454c451, 0xc5c1c5f4, 0xc5d1c5d3, 0xc531c533, 0xc50fc534, 0xc500c50d, - 0xc51cc507, 0xc514c511, 0xc54cc570, 0xc545c541, 0xdffddfff, 0xdff5dff7, 0xdfdfdfc0, 0xdfd0dfdd, - 0xdfd5dfd7, 0xdf0cdf30, 0xdf1cdf04, 0xdf7fdf10, 0xdf77df7d, 0xdf40df75, 0xdf5ddf5f, 0xdf57df50, - 0xdcf0df55, 0xdcc3dccc, 0xdcd0dcc4, 0xdc33dc3d, 0xdc00dc34, 0xdc05dc07, 0xdc13dc1c, 0xdc11dc10, - 0xdc4fdc70, 0xdc44dc41, 0xddfcdc50, 0xddf5ddf7, 0xddc0ddcc, 0xdddddddf, 0xddd5ddd7, 0xdd0cdd30, - 0xdd04dd01, 0xdd7cdd10, 0xdd75dd77, 0xdd40dd4c, 0xdd5ddd5f, 0xdd55dd57, 0xd3c3d3f0, 0xd3c4d3c1, - 0xd333d3d0, 0xd331d330, 0xd30dd334, 0xd307d300, 0xd311d305, 0xd34cd370, 0xd344d343, 0xd350d35c, - 0xd0c0d0f4, 0xd0d4d0dc, 0xd030d03f, 0xd00cd037, 0xd000d003, 0xd01dd004, 0xd017d010, 0xd04fd074, - 0xd040d043, 0xd045d047, 0xd053d05c, 0xd054d051, 0xd1cfd1f0, 0xd1c4d1cd, 0xd13cd1d0, 0xd100d134, - 0xd11cd11f, 0xd173d114, 0xd14fd171, 0xd7ffd145, 0xd7f7d7fd, 0xd7c0d7f5, 0xd7ddd7df, 0xd7d5d7d7, - 0xd70cd730, 0xd710d703, 0xd77dd77f, 0xd775d777, 0xd75dd75f, 0xd755d757, 0xd4ccd4f4, 0xd4c4d4c3, - 0xd431d4d0, 0xd40dd434, 0xd41cd400, 0xd411d413, 0xd470d414, 0xd441d44f, 0xd453d444, 0xd5ffd450, - 0xd5f7d5fd, 0xd5dfd5f5, 0xd5d7d5dd, 0xd530d5d5, 0xd501d50c, 0xd510d504, 0xd57dd57f, 0xd575d577, - 0xd55fd540, 0xd557d55d, 0x3ff0d555, 0x3fc13fcc, 0x3f343fd0, 0x3f003f0d, 0x3f053f07, 0x3f133f1c, - 0x3f433f11, 0x3f5c3f44, 0x3cff3f51, 0x3cf33cfc, 0x3cf43cf1, 0x3cc03ccd, 0x3cc73cc1, 0x3cdc3cc5, - 0x3cd43cd1, 0x3c373c30, 0x3c0c3c35, 0x3c003c03, 0x3c043c01, 0x3c103c05, 0x3c153c17, 0x3c733c7c, - 0x3c4f3c71, 0x3c403c4d, 0x3c5c3c5f, 0x3df03c5d, 0x3dc33dcc, 0x3dd03dc1, 0x3d0d3d3c, 0x3d053d00, - 0x3d143d13, 0x3d433d74, 0x33fc3d50, 0x33c433c0, 0x333033d4, 0x33353337, 0x3303330c, 0x33013300, - 0x331d331c, 0x33173310, 0x337c3315, 0x33743371, 0x334d334f, 0x335f3340, 0x3354335c, 0x30fd30fc, - 0x30f530f0, 0x30c330cc, 0x30c130c0, 0x30df30c4, 0x30d530d0, 0x3033303c, 0x30313030, 0x300f3034, - 0x3003300c, 0x30013000, 0x30043007, 0x3013301c, 0x30113010, 0x307d3014, 0x30703073, 0x304c3077, - 0x30403043, 0x30443041, 0x30503045, 0x30553057, 0x31f031fc, 0x31c331f4, 0x31c731c0, 0x31dc31c5, - 0x31d431d3, 0x313d313f, 0x31373130, 0x310c310f, 0x3100310d, 0x31043101, 0x3110311d, 0x317c3117, - 0x31753170, 0x31403143, 0x3153315c, 0x37f03151, 0x37c037cc, 0x37d037c5, 0x3734373d, 0x3700370f, - 0x371c3707, 0x37113713, 0x37703714, 0x3743374c, 0x37443741, 0x34fc3750, 0x34f134f0, 0x34cf34f5, - 0x34c034c3, 0x34dc34c7, 0x34d134d3, 0x3430343f, 0x340c3435, 0x3403340d, 0x34013400, 0x341f3404, - 0x3410341d, 0x34153411, 0x34743471, 0x3440344d, 0x34473441, 0x3453345c, 0x34543451, 0x353335c1, - 0x35343531, 0x35073500, 0x35133505, 0x35433514, 0x0ffc3550, 0x0ff00ff3, 0x0ff40ff1, 0x0fc00fcd, - 0x0fdc0fc5, 0x0fd40fd3, 0x0f300f3f, 0x0f0c0f37, 0x0f000f03, 0x0f040f01, 0x0f170f10, 0x0f740f71, - 0x0f470f40, 0x0f5c0f5f, 0x0f540f51, 0x0cf70cf0, 0x0cf50cf4, 0x0cc30ccc, 0x0cc10cc0, 0x0cc40cc7, - 0x0cd00cdf, 0x0cd70cd1, 0x0c3c0cd5, 0x0c300c33, 0x0c340c31, 0x0c0c0c0f, 0x0c030c0d, 0x0c010c00, - 0x0c040c07, 0x0c1c0c05, 0x0c100c13, 0x0c140c11, 0x0c700c7d, 0x0c430c4c, 0x0c410c40, 0x0c5f0c44, - 0x0c550c50, 0x0df10dfc, 0x0dc00dcd, 0x0ddc0dc5, 0x0d3d0dd3, 0x0d350d30, 0x0d030d0c, 0x0d010d00, - 0x0d1d0d04, 0x0d700d10, 0x0d4d0d4f, 0x0d440d40, 0x0d530d45, 0x03f003f3, 0x03c303cc, 0x03c103c0, - 0x03c403c7, 0x03d003dc, 0x03d503d7, 0x0333033c, 0x03310330, 0x03350334, 0x030c030f, 0x03000303, - 0x03070301, 0x03050304, 0x031d031c, 0x03100313, 0x03140311, 0x0377037f, 0x034c0375, 0x03400343, - 0x03440341, 0x0353035c, 0x03550350, 0x00fd00fc, 0x00f000f3, 0x00f400f1, 0x00cc00cf, 0x00c300cd, - 0x00c100c0, 0x00c500c4, 0x00d300dc, 0x00d100d0, 0x003f00d4, 0x003d003c, 0x00300033, 0x00370031, - 0x000f0034, 0x000d000c, 0x00000003, 0x00070001, 0x00050004, 0x001c001f, 0x00100013, 0x00170011, - 0x00150014, 0x0073007c, 0x00740070, 0x004f0075, 0x0043004c, 0x00410040, 0x00440047, 0x0053005c, - 0x00510050, 0x01ff0054, 0x01fd01fc, 0x01f101f3, 0x01f401f7, 0x01c301cc, 0x01c701c0, 0x01df01c4, - 0x01dd01dc, 0x01d001d3, 0x01d701d1, 0x013c01d4, 0x01310130, 0x01340137, 0x010f0135, 0x010d010c, - 0x01000103, 0x01070101, 0x01050104, 0x0113011c, 0x01140110, 0x0170017d, 0x01770171, 0x01750174, - 0x0140014c, 0x015d0145, 0x01510150, 0x01540157, 0x07f007f3, 0x07f407f1, 0x07c007cf, 0x07dc07c7, - 0x073007d5, 0x07350737, 0x0703070c, 0x07010700, 0x07040707, 0x071d071f, 0x07100713, 0x0774077d, - 0x074d074f, 0x07470740, 0x0754075c, 0x04fd04fc, 0x04f504f0, 0x04c304cc, 0x04c104c0, 0x04d004c4, - 0x0433043c, 0x04310430, 0x040f0434, 0x040d040c, 0x04000403, 0x04070401, 0x04050404, 0x0413041c, - 0x04110410, 0x047c0414, 0x04740470, 0x0443044c, 0x04410440, 0x04440447, 0x05f30450, 0x05c005f7, - 0x05df05c5, 0x05d105d0, 0x053005d4, 0x05340537, 0x0500050c, 0x05070501, 0x051d0504, 0x05170510, - 0x057c0515, 0x054d0575, 0x05410540, 0x05450547, 0x1ff0055c, 0x1fc11fc3, 0x1fd01fc4, 0x1f0f1f33, - 0x1f011f00, 0x1f051f07, 0x1f131f1c, 0x1f141f11, 0x1f411f7c, 0x1cfc1f50, 0x1cf11cf3, 0x1ccd1cf4, - 0x1cdc1cc0, 0x1cd11cdd, 0x1c301cd4, 0x1c0c1c34, 0x1c011c00, 0x1c101c04, 0x1c151c11, 0x1c751c73, - 0x1c401c4d, 0x1c511c5c, 0x1dcc1c54, 0x1dc41dc1, 0x1d3c1d3f, 0x1d001d31, 0x1d071d01, 0x1d701d1f, - 0x1d411d4c, 0x13cc1d50, 0x13c013cd, 0x13c513c1, 0x13d113dc, 0x133f13d4, 0x1330133d, 0x13351337, - 0x1303130c, 0x13011300, 0x13051304, 0x131d131f, 0x13731310, 0x13741370, 0x134d134f, 0x13401343, - 0x13471341, 0x135c1345, 0x13541353, 0x10f710f0, 0x10cc10f5, 0x10c110c0, 0x103310c4, 0x10311030, - 0x100f1034, 0x1003100c, 0x10011000, 0x101c1004, 0x10101013, 0x10141011, 0x10741071, 0x104c1075, - 0x10411040, 0x10451044, 0x1050105d, 0x10571051, 0x11f411fd, 0x11df11c0, 0x11d711d1, 0x113f11d4, - 0x11371130, 0x110c1135, 0x11001103, 0x11071101, 0x111f1105, 0x11171110, 0x117d117f, 0x11751170, - 0x11411143, 0x11441147, 0x1153115f, 0x11551151, 0x17c417c1, 0x173c17d0, 0x1700170d, 0x171c1705, - 0x17701714, 0x1747174c, 0x14fc1751, 0x14cf14f3, 0x14dc14c0, 0x14d114d3, 0x143f14d4, 0x1430143c, - 0x14371431, 0x1403140c, 0x14011400, 0x141f1404, 0x14151410, 0x1473147d, 0x14401475, 0x1453145c, - 0x14541450, 0x15c115cc, 0x153c15c7, 0x15341533, 0x1500150f, 0x15051507, 0x15101513, 0x15711514, - 0x15471543, 0x15511545, 0x7ffd7fff, 0x7ff57ff7, 0x7fdd7fdf, 0x7fd57fd7, 0x7f0f7f30, 0x7f037f0c, - 0x7f047f01, 0x7f7f7f10, 0x7f777f7d, 0x7f407f75, 0x7f5d7f5f, 0x7f557f57, 0x7ccc7cf0, 0x7cc17cc3, - 0x7cd07cc4, 0x7c337c3c, 0x7c0f7c34, 0x7c007c0d, 0x7c077c01, 0x7c137c04, 0x7c147c11, 0x7c747c70, - 0x7c417c43, 0x7c507c44, 0x7dfd7dff, 0x7df57df7, 0x7ddf7dc0, 0x7dd77ddd, 0x7d0c7dd5, 0x7d047d03, - 0x7d7f7d10, 0x7d777d7d, 0x7d407d75, 0x7d5d7d5f, 0x7d557d57, 0x73c473c3, 0x7333733c, 0x7300730c, - 0x731c7305, 0x73147313, 0x73447343, 0x70f470fc, 0x70c070cd, 0x70d170c5, 0x703f70d4, 0x7030703c, - 0x700c7037, 0x70007003, 0x70047001, 0x70107005, 0x70177011, 0x707c7015, 0x70717073, 0x704f7074, - 0x7040704d, 0x70517047, 0x71c171cc, 0x71d071c4, 0x7133713c, 0x71357134, 0x7100710f, 0x71057104, - 0x7111711c, 0x71707115, 0x7145714c, 0x77ff7153, 0x77f777fd, 0x77c077f5, 0x77dd77df, 0x77d577d7, - 0x7730773c, 0x7703770c, 0x77107704, 0x777f7714, 0x7777777d, 0x77407775, 0x775d775f, 0x77557757, - 0x74f174f0, 0x74c374cc, 0x74d074c1, 0x7433743c, 0x74347431, 0x740d740f, 0x74057400, 0x7413741c, - 0x74417470, 0x74507444, 0x75fd75ff, 0x75f575f7, 0x75df75c0, 0x75d775dd, 0x753075d5, 0x7503750c, - 0x757f7501, 0x7577757d, 0x75407575, 0x755d755f, 0x75557557, 0x4fcc4ff0, 0x4fc74fc1, 0x4fd04fc4, - 0x4f314f3c, 0x4f004f34, 0x4f054f07, 0x4f154f14, 0x4f4c4f70, 0x4f414f43, 0x4f504f44, 0x4cf34cfc, - 0x4cf44cf1, 0x4cc04ccf, 0x4cc54cc7, 0x4cd34cdc, 0x4cd44cd1, 0x4c304c3f, 0x4c0c4c0f, 0x4c004c03, - 0x4c044c01, 0x4c104c1d, 0x4c714c73, 0x4c404c4d, 0x4c5c4c47, 0x4c514c53, 0x4df04c54, 0x4dc34dcc, - 0x4dd04dc4, 0x4d314d33, 0x4d0f4d34, 0x4d004d0d, 0x4d114d07, 0x4d704d14, 0x4d414d43, 0x43fc4d54, - 0x43f143f3, 0x43c043cf, 0x43d143c7, 0x4335433f, 0x4303430c, 0x43014300, 0x43044307, 0x431c431f, - 0x4310431d, 0x43714373, 0x4343434d, 0x43474340, 0x4354435c, 0x40f040ff, 0x40f540f7, 0x40cc40cf, - 0x40c040c3, 0x40c440c1, 0x40d040dc, 0x40d540d4, 0x4033403c, 0x40314030, 0x400f4034, 0x400d400c, - 0x40004003, 0x40074001, 0x40054004, 0x4013401c, 0x40114010, 0x407c4014, 0x40774070, 0x404d404c, - 0x40404043, 0x40444041, 0x405f4045, 0x4050405d, 0x40554057, 0x41f341fc, 0x41c041cf, 0x41df41c4, - 0x41d441d1, 0x41374130, 0x410c4134, 0x4100410d, 0x41044101, 0x41174110, 0x4173417d, 0x41754174, - 0x4143414d, 0x41534140, 0x41544151, 0x47c147f0, 0x47d047c4, 0x4731473c, 0x470d470f, 0x47014700, - 0x47134705, 0x47704710, 0x4741474c, 0x47504744, 0x44f144f3, 0x44cf44f4, 0x44c044cd, 0x44c544c7, - 0x44dc44df, 0x44d144d3, 0x443d443f, 0x44374430, 0x440c4435, 0x44004403, 0x44044401, 0x4410441d, - 0x44154411, 0x4473447c, 0x444d444f, 0x44454440, 0x4451445c, 0x45c045f0, 0x453345d0, 0x45344531, - 0x4500450f, 0x451c4507, 0x454c4570, 0x45404543, 0x5fff4541, 0x5ff75ffd, 0x5fc05ff5, 0x5fdd5fdf, - 0x5fd55fd7, 0x5f0c5f30, 0x5f015f03, 0x5f7f5f04, 0x5f775f7d, 0x5f405f75, 0x5f5d5f5f, 0x5f555f57, - 0x5cf45cf0, 0x5cc35ccc, 0x5cc45cc1, 0x5c315cc5, 0x5c0c5c34, 0x5c075c00, 0x5c1c5c05, 0x5c705c13, - 0x5c4d5c4f, 0x5c445c41, 0x5df75dfd, 0x5dcf5df5, 0x5ddd5dc4, 0x5dd55dd7, 0x5d0c5d30, 0x5d045d01, - 0x5d7f5d10, 0x5d775d7d, 0x5d405d75, 0x5d5d5d5f, 0x5d555d57, 0x53d053c4, 0x5333533c, 0x5303530f, - 0x53075300, 0x531c5305, 0x53115310, 0x53145317, 0x50f15370, 0x50cf50f4, 0x50c050cd, 0x50d150c7, - 0x503d50d4, 0x500c5030, 0x50005003, 0x50045001, 0x50155010, 0x5073507c, 0x50715070, 0x504d5074, - 0x50475040, 0x51cc51f0, 0x51c551c1, 0x51d051dc, 0x51315133, 0x510d5135, 0x51015100, 0x511f5107, - 0x5171511d, 0x5140514f, 0x51445141, 0x5153515c, 0x57ff5151, 0x57f757fd, 0x57df57f5, 0x57d757dd, - 0x570c57d5, 0x57015703, 0x577f5704, 0x5777577d, 0x57405775, 0x575d575f, 0x57555757, 0x54c354f0, - 0x54dc54c4, 0x543c54d0, 0x5400540f, 0x541c5405, 0x54145411, 0x5441544f, 0x55fd55ff, 0x55f555f7, - 0x55dd55df, 0x55d555d7, 0x5503550c, 0x557f5501, 0x5577557d, 0x55405575, 0x555d555f, 0x55555557 -); - -#enddecl(IQ1_TABLE) - #decl(IQ1_S) - -struct iq1_s { - d: f16, - qs: array, - qh: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -1603,13 +745,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(IQ1_S) #decl(IQ1_M) - -struct iq1_m { - qs: array, - qh: array, - scales: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; @@ -1655,21 +790,7 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(IQ1_M) -#decl(IQ4_TABLE) - -const kvalues_iq4nl = array( - -127, -104, -83, -65, -49, -35, -22, -10, 1, 13, 25, 38, 53, 69, 89, 113 -); - -#enddecl(IQ4_TABLE) - #decl(IQ4_NL) - -struct iq4_nl { - d: f16, - qs: array, -} - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); @@ -1691,14 +812,6 @@ fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { #enddecl(IQ4_NL) #decl(IQ4_XS) - -struct iq4_xs { - d: f16, - scales_h: f16, - scales_l: u32, - qs: array -}; - fn multiply_add(src0_idx_base: u32, src1_idx_base: u32, offset: u32) -> f32 { let block = src0[src0_idx_base + offset]; let d = f32(block.d); diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/rms_norm.wgsl b/ggml/src/ggml-webgpu/wgsl-shaders/rms_norm.wgsl new file mode 100644 index 0000000000..f919a51336 --- /dev/null +++ b/ggml/src/ggml-webgpu/wgsl-shaders/rms_norm.wgsl @@ -0,0 +1,57 @@ +@group(0) @binding(0) +var src: array; + +@group(0) @binding(1) +var dst: array; + +struct Params { + offset_src: u32, // in elements + offset_dst: u32, // in elements + + // Strides (in elements) + stride_src1: u32, + stride_src2: u32, + stride_src3: u32, + + stride_dst1: u32, + stride_dst2: u32, + stride_dst3: u32, + + // Shape of src/dst + ne0: u32, + ne1: u32, + ne2: u32, + ne3: u32, + + eps: u32 +}; + +@group(0) @binding(2) +var params: Params; + +override wg_size: u32; +@compute @workgroup_size(wg_size) +fn main(@builtin(global_invocation_id) gid: vec3) { + if (gid.x >= params.ne1 * params.ne2 * params.ne3) { + return; + } + + // one thread per row + var i = gid.x; + let i3 = i / (params.ne2 * params.ne1); + i = i % (params.ne2 * params.ne1); + let i2 = i / params.ne1; + let i1 = i % params.ne1; + let i_src_row = params.offset_src + i3 * params.stride_src3 + i2 * params.stride_src2 + i1 * params.stride_src1; + let i_dst_row = params.offset_src + i3 * params.stride_dst3 + i2 * params.stride_dst2 + i1 * params.stride_dst1; + + var sum = 0.0f; + for (var j: u32 = 0; j < params.ne0; j++) { + sum += src[i_src_row + j] * src[i_src_row + j]; + } + let eps = bitcast(params.eps); + let scale = 1.0/sqrt(sum/f32(params.ne0) + eps); + for (var j: u32 = 0; j < params.ne0; j++) { + dst[i_dst_row + j] = scale * src[i_src_row + j]; + } +} diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/rms_norm_in_place.wgsl b/ggml/src/ggml-webgpu/wgsl-shaders/rms_norm_in_place.wgsl new file mode 100644 index 0000000000..ae84f556d6 --- /dev/null +++ b/ggml/src/ggml-webgpu/wgsl-shaders/rms_norm_in_place.wgsl @@ -0,0 +1,48 @@ +@group(0) @binding(0) +var a: array; + +struct Params { + offset: u32, // in elements + + // Strides (in elements) + stride1: u32, + stride2: u32, + stride3: u32, + + // Shape + ne0: u32, + ne1: u32, + ne2: u32, + ne3: u32, + + eps: u32 +}; + +@group(0) @binding(1) +var params: Params; + +override wg_size: u32; +@compute @workgroup_size(wg_size) +fn main(@builtin(global_invocation_id) gid: vec3) { + if (gid.x >= params.ne1 * params.ne2 * params.ne3) { + return; + } + + // one thread per row + var i = gid.x; + let i3 = i / (params.ne2 * params.ne1); + i = i % (params.ne2 * params.ne1); + let i2 = i / params.ne1; + let i1 = i % params.ne1; + let i_row = params.offset + i3 * params.stride3 + i2 * params.stride2 + i1 * params.stride1; + + var sum = 0.0f; + for (var j: u32 = 0; j < params.ne0; j++) { + sum += a[i_row + j] * a[i_row + j]; + } + let eps = bitcast(params.eps); + let scale = 1.0/sqrt(sum/f32(params.ne0) + eps); + for (var j: u32 = 0; j < params.ne0; j++) { + a[i_row + j] = scale * a[i_row + j]; + } +} diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/set_rows.wgsl b/ggml/src/ggml-webgpu/wgsl-shaders/set_rows.wgsl index 4bd6f94a23..3567713dc2 100644 --- a/ggml/src/ggml-webgpu/wgsl-shaders/set_rows.wgsl +++ b/ggml/src/ggml-webgpu/wgsl-shaders/set_rows.wgsl @@ -52,7 +52,6 @@ fn main(@builtin(global_invocation_id) gid: vec3) { } var i = gid.x; let i_src3 = i / (params.ne2 * params.n_rows); - let i_dst3 = i / (params.ne2 * 3); i = i % (params.ne2 * params.n_rows); let i_src2 = i / params.n_rows; diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index ce4a88761c..893c2af313 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -6071,6 +6071,10 @@ static std::vector> make_test_cases_eval() { //add_test_bin_bcast(type, {3, 3, 2560, 1280}, {2, 1, 1, 1}); } + // single in-place tests, especially important for WebGPU backend since kernels for in-place vs. not are different + test_cases.emplace_back(new test_bin_bcast(ggml_add_inplace, GGML_TYPE_F32, {16, 5, 4, 3}, {1, 1, 1, 1}, 16)); + test_cases.emplace_back(new test_bin_bcast(ggml_mul_inplace, GGML_TYPE_F32, {16, 5, 4, 3}, {1, 1, 1, 1}, 16)); + // fusion test_cases.emplace_back(new test_bin_bcast(ggml_add, GGML_TYPE_F32, {10, 5, 4, 3}, {2, 1, 1, 1}, 2)); test_cases.emplace_back(new test_bin_bcast(ggml_add, GGML_TYPE_F32, {16, 5, 4, 3}, {1, 2, 1, 1}, 3)); From 62c3b645c56ad5288aa401901f043b050edac5a2 Mon Sep 17 00:00:00 2001 From: Chenguang Li <757486878@qq.com> Date: Thu, 18 Sep 2025 09:26:33 +0800 Subject: [PATCH 06/11] CANN: Remove print (#16044) Signed-off-by: noemotiovon <757486878@qq.com> --- ggml/src/ggml-cann/ggml-cann.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/ggml/src/ggml-cann/ggml-cann.cpp b/ggml/src/ggml-cann/ggml-cann.cpp index 56d82b4af3..cbeafa6bc9 100755 --- a/ggml/src/ggml-cann/ggml-cann.cpp +++ b/ggml/src/ggml-cann/ggml-cann.cpp @@ -1728,7 +1728,6 @@ static bool ggml_cann_compute_forward(ggml_backend_cann_context& ctx, ggml_cann_get_rows(ctx, dst); break; case GGML_OP_SET_ROWS: - std::cout << "lcg GGML_OP_SET_ROWS"<< std::endl; ggml_cann_set_rows(ctx, dst); break; case GGML_OP_DUP: From f2f28380ea68939c0481df3e4216b698824a59df Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 18 Sep 2025 10:03:24 +0300 Subject: [PATCH 07/11] metal : handle nil cv during pipeline creation (#16065) ggml-ci --- ggml/src/ggml-metal/ggml-metal-device.m | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-metal/ggml-metal-device.m b/ggml/src/ggml-metal/ggml-metal-device.m index 9983640b43..4974bd15b9 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.m +++ b/ggml/src/ggml-metal/ggml-metal-device.m @@ -327,12 +327,19 @@ ggml_metal_pipeline_t ggml_metal_library_compile_pipeline(ggml_metal_library_t l GGML_LOG_DEBUG("%s: compiling pipeline: base = '%s', name = '%s'\n", __func__, base, name); - id mtl_function = [lib->obj newFunctionWithName:base_func constantValues:(cv ? cv->obj : nil) error:&error]; + id mtl_function; + if (!cv) { + mtl_function = [lib->obj newFunctionWithName:base_func]; + } else { + mtl_function = [lib->obj newFunctionWithName:base_func constantValues:cv->obj error:&error]; + } if (!mtl_function) { ggml_critical_section_end(); GGML_LOG_ERROR("%s: error: failed to compile pipeline: base = '%s', name = '%s'\n", __func__, base, name); - GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); + if (error) { + GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); + } return nil; } From e00f3fd8fff2cf5a8c8c9f475034bd089c8bcce4 Mon Sep 17 00:00:00 2001 From: Jhen-Jie Hong Date: Thu, 18 Sep 2025 15:06:48 +0800 Subject: [PATCH 08/11] metal : avoid call free for non-owned buffer (#16067) --- ggml/src/ggml-metal/ggml-metal-device.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ggml/src/ggml-metal/ggml-metal-device.m b/ggml/src/ggml-metal/ggml-metal-device.m index 4974bd15b9..8f83c5cc16 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.m +++ b/ggml/src/ggml-metal/ggml-metal-device.m @@ -824,6 +824,7 @@ struct ggml_metal_buffer { // if false, the Metal buffer data is allocated in private GPU memory and is not shared with the host bool is_shared; + bool owned; // multiple buffers are used only to avoid the maximum buffer size limitation when using mmap int n_buffers; @@ -956,6 +957,7 @@ ggml_metal_buffer_t ggml_metal_buffer_init(ggml_metal_device_t dev, size_t size, if (shared) { res->all_data = ggml_metal_host_malloc(size_aligned); res->is_shared = true; + res->owned = true; } else { // dummy, non-NULL value - we'll populate this after creating the Metal buffer below res->all_data = (void *) 0x000000400ULL; @@ -1014,6 +1016,7 @@ ggml_metal_buffer_t ggml_metal_buffer_map(ggml_metal_device_t dev, void * ptr, s res->all_size = size; res->is_shared = true; + res->owned = false; res->n_buffers = 0; @@ -1107,7 +1110,7 @@ void ggml_metal_buffer_free(ggml_metal_buffer_t buf) { ggml_metal_buffer_rset_free(buf); - if (buf->is_shared) { + if (buf->is_shared && buf->owned) { #if TARGET_OS_OSX vm_deallocate((vm_map_t)mach_task_self(), (vm_address_t)buf->all_data, buf->all_size); #else From b213fce89bee8cb56b587b91e15a4278f8ed0180 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 18 Sep 2025 12:33:45 +0300 Subject: [PATCH 09/11] metal : improve F32, F16 and BF16 mat-vec multiplication (#16057) * metal : improve F32, F16 and BF16 mat-vec multiplication ggml-ci * metal : make the NSG a function constant in mul_mv kernels ggml-ci --- ggml/src/ggml-metal/ggml-metal-device.cpp | 91 ++-- ggml/src/ggml-metal/ggml-metal-device.h | 1 + ggml/src/ggml-metal/ggml-metal-device.m | 4 + ggml/src/ggml-metal/ggml-metal-impl.h | 4 + ggml/src/ggml-metal/ggml-metal-ops.cpp | 10 +- ggml/src/ggml-metal/ggml-metal.metal | 533 ++++++++++++---------- 6 files changed, 355 insertions(+), 288 deletions(-) diff --git a/ggml/src/ggml-metal/ggml-metal-device.cpp b/ggml/src/ggml-metal/ggml-metal-device.cpp index 5f04789967..bada84cef3 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.cpp +++ b/ggml/src/ggml-metal/ggml-metal-device.cpp @@ -34,6 +34,10 @@ ggml_metal_pipelines_t ggml_metal_pipelines_init(void) { } void ggml_metal_pipelines_free(ggml_metal_pipelines_t ppls) { + if (!ppls) { + return; + } + for (auto it = ppls->data.begin(); it != ppls->data.end(); ++it) { ggml_metal_pipeline_free(it->second); } @@ -467,37 +471,25 @@ ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mv(ggml_metal_library_ // use custom matrix x vector kernel switch (tsrc0) { case GGML_TYPE_F32: - { - GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); - - nsg = 1; - nr0 = 1; - nr1 = 4; - if (ne00 == 4) { - nr0 = 32; - suffix = "_c4"; - } - } break; case GGML_TYPE_F16: case GGML_TYPE_BF16: { - nsg = 1; - nr0 = 1; - if (op->src[1]->type == GGML_TYPE_F32) { - if (ne00 == 4) { - nr0 = 32; - nr1 = 4; - suffix = "_c4"; - } else if (ne11 * ne12 < 4) { - suffix = "_1row"; - } else if (ne00 >= 128 && ne01 >= 8 && ne00%4 == 0) { - suffix = "_l4"; - nr1 = ne11; - } else { - nr1 = 4; - } - } else { + if (ne00 == 4) { + nsg = 1; + nr0 = 32; nr1 = 4; + suffix = "_c4"; + } else if (ne00 % 4 == 0) { + nsg = N_SG_F; + nr0 = N_R0_F; + nr1 = 1; + smem = 32*sizeof(float)*N_R0_F; + suffix = "_4"; + } else { + nsg = N_SG_F; + nr0 = N_R0_F; + nr1 = 1; + smem = 32*sizeof(float)*N_R0_F; } } break; case GGML_TYPE_Q4_0: @@ -623,7 +615,13 @@ ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mv(ggml_metal_library_ return res; } - res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + ggml_metal_cv_t cv = ggml_metal_cv_init(); + + ggml_metal_cv_set_int16(cv, nsg, FC_MUL_MV + 0); + + res = ggml_metal_library_compile_pipeline(lib, base, name, cv); + + ggml_metal_cv_free(cv); ggml_metal_pipeline_set_nr0 (res, nr0); ggml_metal_pipeline_set_nr1 (res, nr1); @@ -689,25 +687,26 @@ ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mv_id(ggml_metal_libra const ggml_type tsrc0 = op->src[0]->type; const ggml_type tsrc1 = op->src[1]->type; + const char * suffix = ""; + // use custom matrix x vector kernel switch (tsrc0) { case GGML_TYPE_F32: - { - GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); - nsg = 1; - nr0 = 1; - } break; case GGML_TYPE_F16: - { - GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); - nsg = 1; - nr0 = 1; - } break; case GGML_TYPE_BF16: { - GGML_ASSERT(op->src[1]->type == GGML_TYPE_F32); - nsg = 1; - nr0 = 1; + if (ne00 % 4 == 0) { + nsg = N_SG_F; + nr0 = N_R0_F; + nr1 = 1; + smem = 32*sizeof(float)*N_R0_F; + suffix = "_4"; + } else { + nsg = N_SG_F; + nr0 = N_R0_F; + nr1 = 1; + smem = 32*sizeof(float)*N_R0_F; + } } break; case GGML_TYPE_Q4_0: { @@ -824,7 +823,7 @@ ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mv_id(ggml_metal_libra } }; - snprintf(base, 256, "kernel_mul_mv_id_%s_%s", ggml_type_name(tsrc0), ggml_type_name(tsrc1)); + snprintf(base, 256, "kernel_mul_mv_id_%s_%s%s", ggml_type_name(tsrc0), ggml_type_name(tsrc1), suffix); snprintf(name, 256, "%s", base); ggml_metal_pipeline_t res = ggml_metal_library_get_pipeline(lib, name); @@ -832,7 +831,13 @@ ggml_metal_pipeline_t ggml_metal_library_get_pipeline_mul_mv_id(ggml_metal_libra return res; } - res = ggml_metal_library_compile_pipeline(lib, base, name, nullptr); + ggml_metal_cv_t cv = ggml_metal_cv_init(); + + ggml_metal_cv_set_int16(cv, nsg, FC_MUL_MV + 0); + + res = ggml_metal_library_compile_pipeline(lib, base, name, cv); + + ggml_metal_cv_free(cv); ggml_metal_pipeline_set_nr0 (res, nr0); ggml_metal_pipeline_set_nr1 (res, nr1); diff --git a/ggml/src/ggml-metal/ggml-metal-device.h b/ggml/src/ggml-metal/ggml-metal-device.h index c48337f514..4a3a819fc0 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.h +++ b/ggml/src/ggml-metal/ggml-metal-device.h @@ -22,6 +22,7 @@ typedef struct ggml_metal_cv * ggml_metal_cv_t; ggml_metal_cv_t ggml_metal_cv_init(void); void ggml_metal_cv_free(ggml_metal_cv_t cv); +void ggml_metal_cv_set_int16(ggml_metal_cv_t cv, int16_t value, int32_t idx); void ggml_metal_cv_set_int32(ggml_metal_cv_t cv, int32_t value, int32_t idx); void ggml_metal_cv_set_bool (ggml_metal_cv_t cv, bool value, int32_t idx); diff --git a/ggml/src/ggml-metal/ggml-metal-device.m b/ggml/src/ggml-metal/ggml-metal-device.m index 8f83c5cc16..67f71ace2b 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.m +++ b/ggml/src/ggml-metal/ggml-metal-device.m @@ -51,6 +51,10 @@ void ggml_metal_cv_free(ggml_metal_cv_t cv) { free(cv); } +void ggml_metal_cv_set_int16(ggml_metal_cv_t cv, int16_t value, int32_t idx) { + [cv->obj setConstantValue:&value type:MTLDataTypeShort atIndex:idx]; +} + void ggml_metal_cv_set_int32(ggml_metal_cv_t cv, int32_t value, int32_t idx) { [cv->obj setConstantValue:&value type:MTLDataTypeInt atIndex:idx]; } diff --git a/ggml/src/ggml-metal/ggml-metal-impl.h b/ggml/src/ggml-metal/ggml-metal-impl.h index 0776bb6485..b257296540 100644 --- a/ggml/src/ggml-metal/ggml-metal-impl.h +++ b/ggml/src/ggml-metal/ggml-metal-impl.h @@ -8,6 +8,9 @@ // // TODO: for optimal performance, become function of the device and work size +#define N_R0_F 2 +#define N_SG_F 4 + #define N_R0_Q4_0 4 #define N_SG_Q4_0 2 @@ -72,6 +75,7 @@ #define FC_FLASH_ATTN_EXT 100 #define FC_FLASH_ATTN_EXT_VEC 200 #define FC_FLASH_ATTN_EXT_VEC_REDUCE 300 +#define FC_MUL_MV 400 // kernel argument structs // diff --git a/ggml/src/ggml-metal/ggml-metal-ops.cpp b/ggml/src/ggml-metal/ggml-metal-ops.cpp index 839c16894d..a28206e786 100644 --- a/ggml/src/ggml-metal/ggml-metal-ops.cpp +++ b/ggml/src/ggml-metal/ggml-metal-ops.cpp @@ -1564,7 +1564,10 @@ int ggml_metal_op_mul_mat(ggml_metal_op_t ctx, int idx) { ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); - if (op->src[0]->type == GGML_TYPE_Q8_0) { + if (op->src[0]->type == GGML_TYPE_F32 || + op->src[0]->type == GGML_TYPE_F16 || + op->src[0]->type == GGML_TYPE_BF16 || + op->src[0]->type == GGML_TYPE_Q8_0) { ggml_metal_encoder_dispatch_threadgroups(enc, ((ne01 + nr0 - 1)/(nr0)), ((ne11 + nr1 - 1)/nr1), ne12*ne13, 32, nsg, 1); } else { ggml_metal_encoder_dispatch_threadgroups(enc, ((ne01 + nr0*nsg - 1)/(nr0*nsg)), ((ne11 + nr1 - 1)/nr1), ne12*ne13, 32, nsg, 1); @@ -1772,7 +1775,10 @@ int ggml_metal_op_mul_mat_id(ggml_metal_op_t ctx, int idx) { ggml_metal_encoder_set_threadgroup_memory_size(enc, smem, 0); - if (op->src[0]->type == GGML_TYPE_Q8_0) { + if (op->src[0]->type == GGML_TYPE_F32 || + op->src[0]->type == GGML_TYPE_F16 || + op->src[0]->type == GGML_TYPE_BF16 || + op->src[0]->type == GGML_TYPE_Q8_0) { ggml_metal_encoder_dispatch_threadgroups(enc, (ne01 + nr0 - 1)/(nr0), (_ne1 + nr1 - 1)/nr1, ne123, 32, nsg, 1); } else { ggml_metal_encoder_dispatch_threadgroups(enc, (ne01 + nr0*nsg - 1)/(nr0*nsg), (_ne1 + nr1 - 1)/nr1, ne123, 32, nsg, 1); diff --git a/ggml/src/ggml-metal/ggml-metal.metal b/ggml/src/ggml-metal/ggml-metal.metal index f34b89e590..20ceb1fe04 100644 --- a/ggml/src/ggml-metal/ggml-metal.metal +++ b/ggml/src/ggml-metal/ggml-metal.metal @@ -2883,7 +2883,9 @@ static inline void helper_mv_reduce_and_write( } } -template +constant short FC_mul_mv_nsg [[function_constant(FC_MUL_MV + 0)]]; + +template void mul_vec_q_n_f32_impl( args_t args, device const char * src0, @@ -2893,6 +2895,8 @@ void mul_vec_q_n_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; + constexpr short NQ = 16; const int nb = args.ne00/QK4_0; @@ -2977,7 +2981,7 @@ kernel void kernel_mul_mv_q4_0_f32( uint3 tgpig[[threadgroup_position_in_grid]], ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - mul_vec_q_n_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + mul_vec_q_n_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } kernel void kernel_mul_mv_q4_1_f32( @@ -2989,7 +2993,7 @@ kernel void kernel_mul_mv_q4_1_f32( uint3 tgpig[[threadgroup_position_in_grid]], ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - mul_vec_q_n_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + mul_vec_q_n_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } kernel void kernel_mul_mv_q5_0_f32( @@ -3001,7 +3005,7 @@ kernel void kernel_mul_mv_q5_0_f32( uint3 tgpig[[threadgroup_position_in_grid]], ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - mul_vec_q_n_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + mul_vec_q_n_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } kernel void kernel_mul_mv_q5_1_f32( @@ -3013,10 +3017,10 @@ kernel void kernel_mul_mv_q5_1_f32( uint3 tgpig[[threadgroup_position_in_grid]], ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - mul_vec_q_n_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + mul_vec_q_n_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_q8_0_f32_impl( args_t args, device const char * src0, @@ -3026,6 +3030,8 @@ void kernel_mul_mv_q8_0_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; + constexpr short NQ = 8; const int nb = args.ne00/QK8_0; @@ -3097,7 +3103,7 @@ kernel void kernel_mul_mv_q8_0_f32( uint3 tgpig[[threadgroup_position_in_grid]], ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_q8_0_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + kernel_mul_mv_q8_0_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } // mat-vec kernel processing in chunks of float4 @@ -3404,104 +3410,215 @@ template [[host_name("kernel_mul_mv_ext_q6_K_f32_r1_3")]] kernel mul_mv_ext_q4x4 template [[host_name("kernel_mul_mv_ext_q6_K_f32_r1_4")]] kernel mul_mv_ext_q4x4_f32_t kernel_mul_mv_ext_q4x4_f32_disp<4, block_q6_K, 256, dequantize_q6_K>; template [[host_name("kernel_mul_mv_ext_q6_K_f32_r1_5")]] kernel mul_mv_ext_q4x4_f32_t kernel_mul_mv_ext_q4x4_f32_disp<5, block_q6_K, 256, dequantize_q6_K>; -#define N_MV_T_T 4 - -template -void kernel_mul_mv_impl( +template +void kernel_mul_mv_t_t_impl( args_t args, device const char * src0, device const char * src1, device char * dst, + threadgroup char * shmem, uint3 tgpig, - ushort tiisg) { - const int r0 = tgpig.x; - const int rb = tgpig.y*N_MV_T_T; + ushort tiisg, + ushort sgitg) { + const short NSG = FC_mul_mv_nsg; + + constexpr short NB = 32; + constexpr short NF = 8; + + const int nb = args.ne00/NB; + + const int r0 = tgpig.x*NR0; + const int r1 = tgpig.y; const int im = tgpig.z; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; - const uint64_t offset0 = r0*args.nb01 + (i12/args.r2)*args.nb02 + (i13/args.r3)*args.nb03; + //const uint64_t offset0 = r0*args.nb01 + (i12/args.r2)*args.nb02 + (i13/args.r3)*args.nb03; + const uint64_t offset1 = r1*args.nb11 + (i12 )*args.nb12 + (i13 )*args.nb13; - device const T0 * x = (device const T0 *) (src0 + offset0); + //device const T0 * x = (device const T0 *) (src0 + offset0); + device const T1 * y = (device const T1 *) (src1 + offset1); - device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1; + // pointers to src0 rows + device const T0 * ax [NR0]; + FOR_UNROLL (short row = 0; row < NR0; ++row) { + const uint64_t offset0 = (r0 + row)*args.nb01 + (i12/args.r2)*args.nb02 + (i13/args.r3)*args.nb03; - if (args.ne00 < 128) { - for (int row = 0; row < N_MV_T_T; ++row) { - int r1 = rb + row; - if (r1 >= args.ne11) { - break; - } + ax[row] = (device const T0 *) ((device char *) src0 + offset0); + } - const uint64_t offset1 = r1*args.nb11 + (i12 )*args.nb12 + (i13 )*args.nb13; + float sumf[NR0] = { 0.f }; - device const T1 * y = (device const T1 *) (src1 + offset1); + const short ix = tiisg/(NW/NF); + const short il = tiisg%(NW/NF); - float sumf = 0; - for (int i = tiisg; i < args.ne00; i += 32) { - sumf += (T0) x[i] * (T1) y[i]; - } + const int ib0 = sgitg*NF + ix; - float sum_all = simd_sum(sumf); - if (tiisg == 0) { - dst_f32[(uint64_t)r1*args.ne0 + r0] = sum_all; - } + T1 yl[NF]; + + device const T1 * yb = y + (ib0*NB + il*NF); + + for (int ib = ib0; ib < nb; ib += NSG*NF) { + for (short i = 0; i < NF; ++i) { + yl[i] = yb[i]; } - } else { - device const T04 * x4 = (device const T04 *) x; - for (int row = 0; row < N_MV_T_T; ++row) { - int r1 = rb + row; - if (r1 >= args.ne11) { - break; + + for (short row = 0; row < NR0; row++) { + device const T0 * xb = ax[row] + (ib*NB + il*NF); + + float sumq = 0.f; + FOR_UNROLL (short i = 0; i < NF; ++i) { + sumq += xb[i] * yl[i]; } - const uint64_t offset1 = r1*args.nb11 + (i12 )*args.nb12 + (i13 )*args.nb13; + sumf[row] += sumq; + } - device const T1 * y = (device const T1 *) (src1 + offset1); - device const T14 * y4 = (device const T14 *) y; + yb += NSG*NF*NW; + } - float sumf = 0; - for (int i = tiisg; i < args.ne00/4; i += 32) { - sumf += dot((float4) x4[i], (float4) y4[i]); - } - - float sum_all = simd_sum(sumf); - if (tiisg == 0) { - for (int i = 4*(args.ne00/4); i < args.ne00; ++i) sum_all += (float) (x[i] * y[i]); - dst_f32[(uint64_t)r1*args.ne0 + r0] = sum_all; - } + for (int i = nb*NB + sgitg*NW + tiisg; i < args.ne00; i += NW*NSG) { + for (short row = 0; row < NR0; row++) { + sumf[row] += ax[row][i] * y[i]; } } + + device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; + + helper_mv_reduce_and_write(dst_f32, sumf, r0, args.ne01, tiisg, sgitg, shmem); } -template -kernel void kernel_mul_mv( +template +kernel void kernel_mul_mv_t_t( constant ggml_metal_kargs_mul_mv & args, device const char * src0, device const char * src1, device char * dst, + threadgroup char * shmem [[threadgroup(0)]], uint3 tgpig[[threadgroup_position_in_grid]], - ushort tiisg[[thread_index_in_simdgroup]]) { - kernel_mul_mv_impl( - args, - src0, - src1, - dst, - tgpig, - tiisg); + ushort tiisg[[thread_index_in_simdgroup]], + ushort sgitg[[simdgroup_index_in_threadgroup]]) { + kernel_mul_mv_t_t_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } -typedef decltype(kernel_mul_mv) mul_mv_t; +typedef decltype(kernel_mul_mv_t_t) mul_mv_t_t; -template [[host_name("kernel_mul_mv_f32_f32")]] kernel mul_mv_t kernel_mul_mv; -template [[host_name("kernel_mul_mv_f16_f32")]] kernel mul_mv_t kernel_mul_mv; -template [[host_name("kernel_mul_mv_f16_f16")]] kernel mul_mv_t kernel_mul_mv; +template [[host_name("kernel_mul_mv_f32_f32")]] kernel mul_mv_t_t kernel_mul_mv_t_t; +template [[host_name("kernel_mul_mv_f16_f32")]] kernel mul_mv_t_t kernel_mul_mv_t_t; +template [[host_name("kernel_mul_mv_f16_f16")]] kernel mul_mv_t_t kernel_mul_mv_t_t; #if defined(GGML_METAL_HAS_BF16) -template [[host_name("kernel_mul_mv_bf16_f32")]] kernel mul_mv_t kernel_mul_mv; -template [[host_name("kernel_mul_mv_bf16_bf16")]] kernel mul_mv_t kernel_mul_mv; +template [[host_name("kernel_mul_mv_bf16_f32")]] kernel mul_mv_t_t kernel_mul_mv_t_t; +template [[host_name("kernel_mul_mv_bf16_bf16")]] kernel mul_mv_t_t kernel_mul_mv_t_t; #endif +template +void kernel_mul_mv_t_t_4_impl( + args_t args, + device const char * src0, + device const char * src1, + device char * dst, + threadgroup char * shmem, + uint3 tgpig, + ushort tiisg, + ushort sgitg) { + const short NSG = FC_mul_mv_nsg; + + constexpr short NB = 32; + constexpr short NF = 16; + constexpr short NF4 = NF/4; + + const int nb = args.ne00/NB; + + const int r0 = tgpig.x*NR0; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const uint i12 = im%args.ne12; + const uint i13 = im/args.ne12; + + //const uint64_t offset0 = r0*args.nb01 + (i12/args.r2)*args.nb02 + (i13/args.r3)*args.nb03; + const uint64_t offset1 = r1*args.nb11 + (i12 )*args.nb12 + (i13 )*args.nb13; + + device const T1 * y = (device const T1 *) (src1 + offset1); + device const T14 * y4 = (device const T14 *) (src1 + offset1); + + // pointers to src0 rows + device const T0 * ax [NR0]; + device const T04 * ax4[NR0]; + FOR_UNROLL (short row = 0; row < NR0; ++row) { + const uint64_t offset0 = (r0 + row)*args.nb01 + (i12/args.r2)*args.nb02 + (i13/args.r3)*args.nb03; + + ax [row] = (device const T0 *) ((device char *) src0 + offset0); + ax4[row] = (device const T04 *) ((device char *) src0 + offset0); + } + + float sumf[NR0] = { 0.f }; + + const short ix = tiisg/(NW/NF); + const short il = tiisg%(NW/NF); + + const int ib0 = sgitg*NF + ix; + + T14 yl4[NF4]; + + device const T14 * yb4 = y4 + (ib0*NB + il*NF)/4; + + for (int ib = ib0; ib < nb; ib += NSG*NF) { + for (short i = 0; i < NF4; ++i) { + yl4[i] = yb4[i]; + } + + for (short row = 0; row < NR0; row++) { + device const T04 * xb4 = ax4[row] + (ib*NB + il*NF)/4; + + float sumq = 0.f; + FOR_UNROLL (short i = 0; i < NF4; ++i) { + sumq += dot(float4(xb4[i]), float4(yl4[i])); + } + + sumf[row] += sumq; + } + + yb4 += NSG*NF*NW/4; + } + + for (int i = nb*NB + sgitg*NW + tiisg; i < args.ne00; i += NW*NSG) { + for (short row = 0; row < NR0; row++) { + sumf[row] += ax[row][i] * y[i]; + } + } + + device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; + + helper_mv_reduce_and_write(dst_f32, sumf, r0, args.ne01, tiisg, sgitg, shmem); +} + +template +kernel void kernel_mul_mv_t_t_4( + constant ggml_metal_kargs_mul_mv & args, + device const char * src0, + device const char * src1, + device char * dst, + threadgroup char * shmem [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + ushort tiisg[[thread_index_in_simdgroup]], + ushort sgitg[[simdgroup_index_in_threadgroup]]) { + kernel_mul_mv_t_t_4_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); +} + +typedef decltype(kernel_mul_mv_t_t_4) mul_mv_t_t_4; + +template [[host_name("kernel_mul_mv_f32_f32_4")]] kernel mul_mv_t_t_4 kernel_mul_mv_t_t_4; +template [[host_name("kernel_mul_mv_f16_f32_4")]] kernel mul_mv_t_t_4 kernel_mul_mv_t_t_4; +template [[host_name("kernel_mul_mv_f16_f16_4")]] kernel mul_mv_t_t_4 kernel_mul_mv_t_t_4; +#if defined(GGML_METAL_HAS_BF16) +template [[host_name("kernel_mul_mv_bf16_f32_4")]] kernel mul_mv_t_t_4 kernel_mul_mv_t_t_4; +template [[host_name("kernel_mul_mv_bf16_bf16_4")]] kernel mul_mv_t_t_4 kernel_mul_mv_t_t_4; +#endif + +#define N_MV_T_T 4 + template void kernel_mul_mv_c4_impl( args_t args, @@ -3562,112 +3679,10 @@ typedef decltype(kernel_mul_mv_c4) mul_mv_c4_t; template [[host_name("kernel_mul_mv_f32_f32_c4")]] kernel mul_mv_c4_t kernel_mul_mv_c4; template [[host_name("kernel_mul_mv_f16_f32_c4")]] kernel mul_mv_c4_t kernel_mul_mv_c4; +template [[host_name("kernel_mul_mv_f16_f16_c4")]] kernel mul_mv_c4_t kernel_mul_mv_c4; #if defined(GGML_METAL_HAS_BF16) -template [[host_name("kernel_mul_mv_bf16_f32_c4")]] kernel mul_mv_c4_t kernel_mul_mv_c4; -#endif - -template -kernel void kernel_mul_mv_1row( - constant ggml_metal_kargs_mul_mv & args, - device const char * src0, - device const char * src1, - device char * dst, - uint3 tgpig[[threadgroup_position_in_grid]], - ushort tiisg[[thread_index_in_simdgroup]]) { - - const int r0 = tgpig.x; - const int r1 = tgpig.y; - const int im = tgpig.z; - - const uint i12 = im%args.ne12; - const uint i13 = im/args.ne12; - - const uint64_t offset0 = r0*args.nb01 + (i12/args.r2)*args.nb02 + (i13/args.r3)*args.nb03; - const uint64_t offset1 = r1*args.nb11 + (i12 )*args.nb12 + (i13 )*args.nb13; - - device const T * x = (device const T *) (src0 + offset0); - device const float * y = (device const float *) (src1 + offset1); - - device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - - float sumf = 0; - if (args.ne00 < 128) { - for (int i = tiisg; i < args.ne00; i += 32) { - sumf += (float) x[i] * (float) y[i]; - } - float sum_all = simd_sum(sumf); - if (tiisg == 0) { - dst_f32[r0] = sum_all; - } - } else { - device const T4 * x4 = (device const T4 *) x; - device const float4 * y4 = (device const float4 *) y; - - for (int i = tiisg; i < args.ne00/4; i += 32) { - sumf += dot((float4) x4[i], y4[i]); - } - - float sum_all = simd_sum(sumf); - - if (tiisg == 0) { - for (int i = 4*(args.ne00/4); i < args.ne00; ++i) sum_all += (float) (x[i] * y[i]); - dst_f32[r0] = sum_all; - } - } -} - -typedef decltype(kernel_mul_mv_1row) mul_mv_1row_t; - -template [[host_name("kernel_mul_mv_f16_f32_1row")]] kernel mul_mv_1row_t kernel_mul_mv_1row; -#if defined(GGML_METAL_HAS_BF16) -template [[host_name("kernel_mul_mv_bf16_f32_1row")]] kernel mul_mv_1row_t kernel_mul_mv_1row; -#endif - -// Assumes row size (ne00) is a multiple of 4 -template -kernel void kernel_mul_mv_l4( - constant ggml_metal_kargs_mul_mv & args, - device const char * src0, - device const char * src1, - device char * dst, - uint3 tgpig[[threadgroup_position_in_grid]], - ushort tiisg[[thread_index_in_simdgroup]]) { - - const int nrows = args.ne11; - const int r0 = tgpig.x; - const int im = tgpig.z; - - const uint i12 = im%args.ne12; - const uint i13 = im/args.ne12; - - const uint64_t offset0 = r0*args.nb01 + (i12/args.r2)*args.nb02 + (i13/args.r3)*args.nb03; - - device const T4 * x4 = (device const T4 *) (src0 + offset0); - - device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1; - - for (int r1 = 0; r1 < nrows; ++r1) { - const uint64_t offset1 = r1*args.nb11 + (i12 )*args.nb12 + (i13 )*args.nb13; - - device const float4 * y4 = (device const float4 *) (src1 + offset1); - - float sumf = 0; - for (int i = tiisg; i < args.ne00/4; i += 32) { - sumf += dot((float4) x4[i], y4[i]); - } - - float sum_all = simd_sum(sumf); - if (tiisg == 0) { - dst_f32[(uint64_t)r1*args.ne0 + r0] = sum_all; - } - } -} - -typedef decltype(kernel_mul_mv_l4) mul_mv_l4_t; - -template [[host_name("kernel_mul_mv_f16_f32_l4")]] kernel mul_mv_l4_t kernel_mul_mv_l4; -#if defined(GGML_METAL_HAS_BF16) -template [[host_name("kernel_mul_mv_bf16_f32_l4")]] kernel mul_mv_l4_t kernel_mul_mv_l4; +template [[host_name("kernel_mul_mv_bf16_f32_c4")]] kernel mul_mv_c4_t kernel_mul_mv_c4; +template [[host_name("kernel_mul_mv_bf16_bf16_c4")]] kernel mul_mv_c4_t kernel_mul_mv_c4; #endif static float rope_yarn_ramp(const float low, const float high, const int i0) { @@ -5951,7 +5966,7 @@ kernel void kernel_concat( } } -template +template void kernel_mul_mv_q2_K_f32_impl( args_t args, device const char * src0, @@ -5961,13 +5976,15 @@ void kernel_mul_mv_q2_K_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; const int nb = args.ne00/QK_K; + const int r0 = tgpig.x; const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -6051,10 +6068,10 @@ kernel void kernel_mul_mv_q2_K_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_q2_K_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); + kernel_mul_mv_q2_K_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_q3_K_f32_impl( args_t args, device const char * src0, @@ -6064,6 +6081,7 @@ void kernel_mul_mv_q3_K_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; const int nb = args.ne00/QK_K; @@ -6071,7 +6089,7 @@ void kernel_mul_mv_q3_K_f32_impl( const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -6215,10 +6233,10 @@ kernel void kernel_mul_mv_q3_K_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_q3_K_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); + kernel_mul_mv_q3_K_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_q4_K_f32_impl( args_t args, device const char * src0, @@ -6228,6 +6246,8 @@ void kernel_mul_mv_q4_K_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; + const uint16_t kmask1 = 0x3f3f; const uint16_t kmask2 = 0x0f0f; const uint16_t kmask3 = 0xc0c0; @@ -6243,7 +6263,7 @@ void kernel_mul_mv_q4_K_f32_impl( const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -6337,10 +6357,10 @@ kernel void kernel_mul_mv_q4_K_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_q4_K_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); + kernel_mul_mv_q4_K_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_q5_K_f32_impl( args_t args, device const char * src0, @@ -6350,6 +6370,7 @@ void kernel_mul_mv_q5_K_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; const int nb = args.ne00/QK_K; @@ -6357,7 +6378,7 @@ void kernel_mul_mv_q5_K_f32_impl( const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -6468,10 +6489,10 @@ kernel void kernel_mul_mv_q5_K_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_q5_K_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); + kernel_mul_mv_q5_K_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_q6_K_f32_impl( args_t args, device const char * src0, @@ -6481,6 +6502,7 @@ void kernel_mul_mv_q6_K_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; const uint8_t kmask1 = 0x03; const uint8_t kmask2 = 0x0C; @@ -6493,7 +6515,7 @@ void kernel_mul_mv_q6_K_f32_impl( const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -6577,12 +6599,12 @@ kernel void kernel_mul_mv_q6_K_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_q6_K_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); + kernel_mul_mv_q6_K_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); } // ======================= "True" 2-bit -template +template void kernel_mul_mv_iq2_xxs_f32_impl( args_t args, device const char * src0, @@ -6592,13 +6614,15 @@ void kernel_mul_mv_iq2_xxs_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; const int nb = args.ne00/QK_K; + const int r0 = tgpig.x; const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -6685,10 +6709,10 @@ kernel void kernel_mul_mv_iq2_xxs_f32( uint3 tgpig[[threadgroup_position_in_grid]], ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_iq2_xxs_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + kernel_mul_mv_iq2_xxs_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_iq2_xs_f32_impl( args_t args, device const char * src0, @@ -6698,13 +6722,15 @@ void kernel_mul_mv_iq2_xs_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; const int nb = args.ne00/QK_K; + const int r0 = tgpig.x; const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -6802,10 +6828,10 @@ kernel void kernel_mul_mv_iq2_xs_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_iq2_xs_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + kernel_mul_mv_iq2_xs_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_iq3_xxs_f32_impl( args_t args, device const char * src0, @@ -6815,13 +6841,15 @@ void kernel_mul_mv_iq3_xxs_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; const int nb = args.ne00/QK_K; + const int r0 = tgpig.x; const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -6912,10 +6940,10 @@ kernel void kernel_mul_mv_iq3_xxs_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_iq3_xxs_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + kernel_mul_mv_iq3_xxs_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_iq3_s_f32_impl( args_t args, device const char * src0, @@ -6925,13 +6953,15 @@ void kernel_mul_mv_iq3_s_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; const int nb = args.ne00/QK_K; + const int r0 = tgpig.x; const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -7022,10 +7052,10 @@ kernel void kernel_mul_mv_iq3_s_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_iq3_s_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + kernel_mul_mv_iq3_s_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_iq2_s_f32_impl( args_t args, device const char * src0, @@ -7035,13 +7065,15 @@ void kernel_mul_mv_iq2_s_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; const int nb = args.ne00/QK_K; + const int r0 = tgpig.x; const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -7133,10 +7165,10 @@ kernel void kernel_mul_mv_iq2_s_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_iq2_s_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + kernel_mul_mv_iq2_s_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_iq1_s_f32_impl( args_t args, device const char * src0, @@ -7146,13 +7178,15 @@ void kernel_mul_mv_iq1_s_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; const int nb = args.ne00/QK_K; + const int r0 = tgpig.x; const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -7230,10 +7264,10 @@ kernel void kernel_mul_mv_iq1_s_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_iq1_s_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); + kernel_mul_mv_iq1_s_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_iq1_m_f32_impl( args_t args, device const char * src0, @@ -7243,6 +7277,7 @@ void kernel_mul_mv_iq1_m_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; const int nb = args.ne00/QK_K; @@ -7250,7 +7285,7 @@ void kernel_mul_mv_iq1_m_f32_impl( const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -7338,10 +7373,10 @@ kernel void kernel_mul_mv_iq1_m_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_iq1_m_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); + kernel_mul_mv_iq1_m_f32_impl(args, src0, src1, dst, nullptr, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_iq4_nl_f32_impl( args_t args, device const char * src0, @@ -7351,6 +7386,7 @@ void kernel_mul_mv_iq4_nl_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; threadgroup float * shmem_f32 = (threadgroup float *) shmem; const int nb = args.ne00/QK4_NL; @@ -7359,7 +7395,7 @@ void kernel_mul_mv_iq4_nl_f32_impl( const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -7444,10 +7480,10 @@ kernel void kernel_mul_mv_iq4_nl_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_iq4_nl_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + kernel_mul_mv_iq4_nl_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_iq4_xs_f32_impl( args_t args, device const char * src0, @@ -7457,13 +7493,15 @@ void kernel_mul_mv_iq4_xs_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; threadgroup float * shmem_f32 = (threadgroup float *) shmem; const int nb = args.ne00/QK_K; + const int r0 = tgpig.x; const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -7549,10 +7587,10 @@ kernel void kernel_mul_mv_iq4_xs_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_iq4_xs_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + kernel_mul_mv_iq4_xs_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } -template +template void kernel_mul_mv_mxfp4_f32_impl( args_t args, device const char * src0, @@ -7562,6 +7600,7 @@ void kernel_mul_mv_mxfp4_f32_impl( uint3 tgpig, ushort tiisg, ushort sgitg) { + const short NSG = FC_mul_mv_nsg; threadgroup float * shmem_f32 = (threadgroup float *) shmem; const int nb = args.ne00/QK_MXFP4; @@ -7570,7 +7609,7 @@ void kernel_mul_mv_mxfp4_f32_impl( const int r1 = tgpig.y; const int im = tgpig.z; - const int first_row = (r0 * nsg + sgitg) * nr0; + const int first_row = (r0 * NSG + sgitg) * nr0; const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -7638,7 +7677,7 @@ kernel void kernel_mul_mv_mxfp4_f32( ushort tiisg[[thread_index_in_simdgroup]], ushort sgitg[[simdgroup_index_in_threadgroup]]) { - kernel_mul_mv_mxfp4_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); + kernel_mul_mv_mxfp4_f32_impl(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } template @@ -8314,7 +8353,7 @@ void mmv_fn( impl_fn(args, src0, src1, dst, shmem, tgpig, tiisg, sgitg); } -typedef decltype(mmv_fn>) mul_mv_impl_fn_t; +typedef decltype(mmv_fn>) mul_mv_impl_fn_t; template kernel void kernel_mul_mv_id( @@ -8379,36 +8418,44 @@ kernel void kernel_mul_mv_id( sgitg); } -typedef decltype(kernel_mul_mv_id>>) kernel_mul_mv_id_t; +typedef decltype(kernel_mul_mv_id>>) kernel_mul_mv_id_t; -template [[host_name("kernel_mul_mv_id_f32_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_f16_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +typedef decltype(kernel_mul_mv_id>>) kernel_mul_mv_id_4_t; + +template [[host_name("kernel_mul_mv_id_f32_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_f16_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; #if defined(GGML_METAL_HAS_BF16) -template [[host_name("kernel_mul_mv_id_bf16_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_bf16_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +#endif +template [[host_name("kernel_mul_mv_id_f32_f32_4")]] kernel kernel_mul_mv_id_4_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_f16_f32_4")]] kernel kernel_mul_mv_id_4_t kernel_mul_mv_id>>; +#if defined(GGML_METAL_HAS_BF16) +template [[host_name("kernel_mul_mv_id_bf16_f32_4")]] kernel kernel_mul_mv_id_4_t kernel_mul_mv_id>>; #endif -template [[host_name("kernel_mul_mv_id_q8_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_q4_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_q4_1_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_q5_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_q5_1_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q8_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_mxfp4_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q4_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q4_1_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q5_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q5_1_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_q2_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_q3_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_q4_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_q5_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_q6_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_iq1_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_iq1_m_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_iq2_xxs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_iq2_xs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_iq3_xxs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_iq3_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_iq2_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_iq4_nl_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; -template [[host_name("kernel_mul_mv_id_iq4_xs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_mxfp4_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; + +template [[host_name("kernel_mul_mv_id_q2_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q3_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q4_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q5_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q6_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_iq1_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_iq1_m_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_iq2_xxs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_iq2_xs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_iq3_xxs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_iq3_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_iq2_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_iq4_nl_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_iq4_xs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; kernel void kernel_pool_2d_max_f32( constant ggml_metal_kargs_pool_2d & args, From e58174cecbc45bf79bf653cd2c984395940c6ef4 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 18 Sep 2025 12:47:56 +0300 Subject: [PATCH 10/11] llama : bump max seq limit from 64 to 256 (#15916) ggml-ci --- src/llama-cparams.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llama-cparams.h b/src/llama-cparams.h index dbbaba9f62..eae7b839f4 100644 --- a/src/llama-cparams.h +++ b/src/llama-cparams.h @@ -4,7 +4,7 @@ #include -#define LLAMA_MAX_SEQ 64 +#define LLAMA_MAX_SEQ 256 struct llama_cparams { uint32_t n_ctx; // context size used during inference From 2b6b55a59f590a1e1eb2dcd09d5b8b6feb9cc748 Mon Sep 17 00:00:00 2001 From: Radoslav Gerganov Date: Thu, 18 Sep 2025 13:36:57 +0300 Subject: [PATCH 11/11] server : include usage statistics only when user request them (#16052) * server : include usage statistics only when user request them When serving the OpenAI compatible API, we should check if {"stream_options": {"include_usage": true} is set in the request when deciding whether we should send usage statistics closes: #16048 * add unit test --- tools/server/server.cpp | 59 +++++++++++-------- .../server/tests/unit/test_chat_completion.py | 4 ++ 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/tools/server/server.cpp b/tools/server/server.cpp index 5e5698e672..c0ffe17692 100644 --- a/tools/server/server.cpp +++ b/tools/server/server.cpp @@ -111,6 +111,7 @@ static bool server_task_type_need_logits(server_task_type task_type) { struct slot_params { bool stream = true; + bool include_usage = false; bool cache_prompt = true; // remember the prompt to avoid reprocessing all prompt bool return_tokens = false; bool return_progress = false; @@ -310,17 +311,19 @@ struct server_task { params.verbose = params_base.verbosity > 9; params.timings_per_token = json_value(data, "timings_per_token", false); - params.stream = json_value(data, "stream", false); - params.cache_prompt = json_value(data, "cache_prompt", true); - params.return_tokens = json_value(data, "return_tokens", false); - params.return_progress = json_value(data, "return_progress", false); - params.n_predict = json_value(data, "n_predict", json_value(data, "max_tokens", defaults.n_predict)); - params.n_indent = json_value(data, "n_indent", defaults.n_indent); - params.n_keep = json_value(data, "n_keep", defaults.n_keep); - params.n_discard = json_value(data, "n_discard", defaults.n_discard); - //params.t_max_prompt_ms = json_value(data, "t_max_prompt_ms", defaults.t_max_prompt_ms); // TODO: implement - params.t_max_predict_ms = json_value(data, "t_max_predict_ms", defaults.t_max_predict_ms); - params.response_fields = json_value(data, "response_fields", std::vector()); + params.stream = json_value(data, "stream", false); + auto stream_opt = json_value(data, "stream_options", json::object()); + params.include_usage = json_value(stream_opt, "include_usage", false); + params.cache_prompt = json_value(data, "cache_prompt", true); + params.return_tokens = json_value(data, "return_tokens", false); + params.return_progress = json_value(data, "return_progress", false); + params.n_predict = json_value(data, "n_predict", json_value(data, "max_tokens", defaults.n_predict)); + params.n_indent = json_value(data, "n_indent", defaults.n_indent); + params.n_keep = json_value(data, "n_keep", defaults.n_keep); + params.n_discard = json_value(data, "n_discard", defaults.n_discard); + //params.t_max_prompt_ms = json_value(data, "t_max_prompt_ms", defaults.t_max_prompt_ms); // TODO: implement + params.t_max_predict_ms = json_value(data, "t_max_predict_ms", defaults.t_max_predict_ms); + params.response_fields = json_value(data, "response_fields", std::vector()); params.sampling.top_k = json_value(data, "top_k", defaults.sampling.top_k); params.sampling.top_p = json_value(data, "top_p", defaults.sampling.top_p); @@ -775,6 +778,7 @@ struct server_task_result_cmpl_final : server_task_result { llama_tokens tokens; bool stream; + bool include_usage; result_timings timings; std::string prompt; @@ -982,21 +986,23 @@ struct server_task_result_cmpl_final : server_task_result { {"object", "chat.completion.chunk"}, }); - // OpenAI API spec for chat.completion.chunks specifies an empty `choices` array for the last chunk when including usage - // https://platform.openai.com/docs/api-reference/chat_streaming/streaming#chat_streaming/streaming-choices - deltas.push_back({ - {"choices", json::array()}, - {"created", t}, - {"id", oaicompat_cmpl_id}, - {"model", oaicompat_model}, - {"system_fingerprint", build_info}, - {"object", "chat.completion.chunk"}, - {"usage", json { - {"completion_tokens", n_decoded}, - {"prompt_tokens", n_prompt_tokens}, - {"total_tokens", n_decoded + n_prompt_tokens}, - }}, - }); + if (include_usage) { + // OpenAI API spec for chat.completion.chunks specifies an empty `choices` array for the last chunk when including usage + // https://platform.openai.com/docs/api-reference/chat_streaming/streaming#chat_streaming/streaming-choices + deltas.push_back({ + {"choices", json::array()}, + {"created", t}, + {"id", oaicompat_cmpl_id}, + {"model", oaicompat_model}, + {"system_fingerprint", build_info}, + {"object", "chat.completion.chunk"}, + {"usage", json { + {"completion_tokens", n_decoded}, + {"prompt_tokens", n_prompt_tokens}, + {"total_tokens", n_decoded + n_prompt_tokens}, + }}, + }); + } if (timings.prompt_n >= 0) { deltas.back().push_back({"timings", timings.to_json()}); @@ -2815,6 +2821,7 @@ struct server_context { res->verbose = slot.params.verbose; res->stream = slot.params.stream; + res->include_usage = slot.params.include_usage; res->oaicompat = slot.params.oaicompat; res->oaicompat_model = slot.params.oaicompat_model; res->oaicompat_cmpl_id = slot.params.oaicompat_cmpl_id; diff --git a/tools/server/tests/unit/test_chat_completion.py b/tools/server/tests/unit/test_chat_completion.py index 53421d1b57..2979ed4bb7 100644 --- a/tools/server/tests/unit/test_chat_completion.py +++ b/tools/server/tests/unit/test_chat_completion.py @@ -271,8 +271,10 @@ def test_chat_completion_with_timings_per_token(): "max_tokens": 10, "messages": [{"role": "user", "content": "test"}], "stream": True, + "stream_options": {"include_usage": True}, "timings_per_token": True, }) + stats_received = False for i, data in enumerate(res): if i == 0: # Check first role message for stream=True @@ -288,6 +290,8 @@ def test_chat_completion_with_timings_per_token(): assert "predicted_per_second" in data["timings"] assert "predicted_n" in data["timings"] assert data["timings"]["predicted_n"] <= 10 + stats_received = True + assert stats_received def test_logprobs():

QI(Y2`lhCP>I$y_ONy0vR<)KC2MNAtOpChD| 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